From 5c6f8a75247d1ffe8b83994041b93090151dae77 Mon Sep 17 00:00:00 2001
From: Mateusz Bolewski <mateusz.bolewski@appunite.com>
Date: Thu, 21 Dec 2023 10:38:12 +0100
Subject: [PATCH] feat(map): molart

---
 package.json                                  |      3 +-
 public/molart.js                              | 120287 +++++++++++++++
 .../ContextMenu/ContextMenu.component.tsx     |     21 +-
 .../FunctionalArea/Modal/Modal.component.tsx  |      2 +
 .../MolArtModal/MolArtModal.component.tsx     |     43 +
 .../FunctionalArea/Modal/MolArtModal/index.ts |      1 +
 .../MapAdditionalOptions.component.test.tsx   |      4 +-
 .../reactionsLayer/useOlMapReactionsLayer.ts  |      3 +-
 .../mapRightClick/handleBioEntityResults.ts   |      1 -
 src/redux/map/map.constants.ts                |      2 +
 src/redux/modal/modal.constants.ts            |      5 +-
 src/redux/modal/modal.mock.ts                 |      5 +-
 src/redux/modal/modal.reducers.ts             |     12 +
 src/redux/modal/modal.selector.ts             |      7 +-
 src/redux/modal/modal.slice.ts                |      5 +-
 src/redux/modal/modal.types.ts                |      5 +
 src/types/modal.ts                            |      2 +-
 yarn.lock                                     |   1692 +-
 18 files changed, 121362 insertions(+), 738 deletions(-)
 create mode 100644 public/molart.js
 create mode 100644 src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx
 create mode 100644 src/components/FunctionalArea/Modal/MolArtModal/index.ts

diff --git a/package.json b/package.json
index 6d2d8529..93132b52 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,7 @@
     "check-types": "tsc --pretty --noEmit",
     "prepare": "husky install",
     "postinstall": "husky install",
-    "test": "jest --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'",
+    "test": "jest --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!@toolz/allow-react)/'",
     "test:watch": "jest --watch --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'",
     "test:ci": "jest --config ./jest.config.ts --collectCoverage --coverageDirectory=\"./coverage\" --ci --reporters=default --reporters=jest-junit --watchAll=false --passWithNoTests --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'",
     "test:coverage": "jest --watchAll --coverage --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'",
@@ -34,6 +34,7 @@
     "axios-hooks": "^5.0.0",
     "downshift": "^8.2.3",
     "eslint-config-next": "13.4.19",
+    "molart": "github:davidhoksza/MolArt",
     "next": "13.4.19",
     "ol": "^8.1.0",
     "postcss": "8.4.29",
diff --git a/public/molart.js b/public/molart.js
new file mode 100644
index 00000000..2c125dd8
--- /dev/null
+++ b/public/molart.js
@@ -0,0 +1,120287 @@
+!(function (t) {
+  'object' == typeof exports && 'undefined' != typeof module
+    ? (module.exports = t())
+    : 'function' == typeof define && define.amd
+      ? define([], t)
+      : (('undefined' != typeof window
+          ? window
+          : 'undefined' != typeof global
+            ? global
+            : 'undefined' != typeof self
+              ? self
+              : this
+        ).MolArt = t());
+})(function () {
+  return (function r(i, o, a) {
+    function s(e, t) {
+      if (!o[e]) {
+        if (!i[e]) {
+          var n = 'function' == typeof require && require;
+          if (!t && n) return n(e, !0);
+          if (l) return l(e, !0);
+          throw (((t = new Error("Cannot find module '" + e + "'")).code = 'MODULE_NOT_FOUND'), t);
+        }
+        (n = o[e] = { exports: {} }),
+          i[e][0].call(
+            n.exports,
+            function (t) {
+              return s(i[e][1][t] || t);
+            },
+            n,
+            n.exports,
+            r,
+            i,
+            o,
+            a,
+          );
+      }
+      return o[e].exports;
+    }
+    for (var l = 'function' == typeof require && require, t = 0; t < a.length; t++) s(a[t]);
+    return s;
+  })(
+    {
+      1: [
+        function (t, e, n) {
+          var r, i;
+          (r = 'undefined' != typeof window ? window : this),
+            (i = function (w, U) {
+              function N(t, e) {
+                return e.toUpperCase();
+              }
+              var t = [],
+                E = w.document,
+                c = t.slice,
+                P = t.concat,
+                L = t.push,
+                i = t.indexOf,
+                Y = {},
+                O = Y.toString,
+                d = Y.hasOwnProperty,
+                f = {},
+                e = '2.2.4',
+                B = function (t, e) {
+                  return new B.fn.init(t, e);
+                },
+                G = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+                z = /^-ms-/,
+                H = /-([\da-z])/gi;
+              function j(t) {
+                var e = !!t && 'length' in t && t.length,
+                  n = B.type(t);
+                return (
+                  'function' !== n &&
+                  !B.isWindow(t) &&
+                  ('array' === n || 0 === e || ('number' == typeof e && 0 < e && e - 1 in t))
+                );
+              }
+              (B.fn = B.prototype =
+                {
+                  jquery: e,
+                  constructor: B,
+                  selector: '',
+                  length: 0,
+                  toArray: function () {
+                    return c.call(this);
+                  },
+                  get: function (t) {
+                    return null != t ? (t < 0 ? this[t + this.length] : this[t]) : c.call(this);
+                  },
+                  pushStack: function (t) {
+                    t = B.merge(this.constructor(), t);
+                    return (t.prevObject = this), (t.context = this.context), t;
+                  },
+                  each: function (t) {
+                    return B.each(this, t);
+                  },
+                  map: function (n) {
+                    return this.pushStack(
+                      B.map(this, function (t, e) {
+                        return n.call(t, e, t);
+                      }),
+                    );
+                  },
+                  slice: function () {
+                    return this.pushStack(c.apply(this, arguments));
+                  },
+                  first: function () {
+                    return this.eq(0);
+                  },
+                  last: function () {
+                    return this.eq(-1);
+                  },
+                  eq: function (t) {
+                    var e = this.length,
+                      t = +t + (t < 0 ? e : 0);
+                    return this.pushStack(0 <= t && t < e ? [this[t]] : []);
+                  },
+                  end: function () {
+                    return this.prevObject || this.constructor();
+                  },
+                  push: L,
+                  sort: t.sort,
+                  splice: t.splice,
+                }),
+                (B.extend = B.fn.extend =
+                  function () {
+                    var t,
+                      e,
+                      n,
+                      r,
+                      i,
+                      o = arguments[0] || {},
+                      a = 1,
+                      s = arguments.length,
+                      l = !1;
+                    for (
+                      'boolean' == typeof o && ((l = o), (o = arguments[a] || {}), a++),
+                        'object' == typeof o || B.isFunction(o) || (o = {}),
+                        a === s && ((o = this), a--);
+                      a < s;
+                      a++
+                    )
+                      if (null != (t = arguments[a]))
+                        for (e in t)
+                          (i = o[e]),
+                            o !== (n = t[e]) &&
+                              (l && n && (B.isPlainObject(n) || (r = B.isArray(n)))
+                                ? ((i = r
+                                    ? ((r = !1), i && B.isArray(i) ? i : [])
+                                    : i && B.isPlainObject(i)
+                                      ? i
+                                      : {}),
+                                  (o[e] = B.extend(l, i, n)))
+                                : void 0 !== n && (o[e] = n));
+                    return o;
+                  }),
+                B.extend({
+                  expando: 'jQuery' + (e + Math.random()).replace(/\D/g, ''),
+                  isReady: !0,
+                  error: function (t) {
+                    throw new Error(t);
+                  },
+                  noop: function () {},
+                  isFunction: function (t) {
+                    return 'function' === B.type(t);
+                  },
+                  isArray: Array.isArray,
+                  isWindow: function (t) {
+                    return null != t && t === t.window;
+                  },
+                  isNumeric: function (t) {
+                    var e = t && t.toString();
+                    return !B.isArray(t) && 0 <= e - parseFloat(e) + 1;
+                  },
+                  isPlainObject: function (t) {
+                    if ('object' !== B.type(t) || t.nodeType || B.isWindow(t)) return !1;
+                    if (
+                      t.constructor &&
+                      !d.call(t, 'constructor') &&
+                      !d.call(t.constructor.prototype || {}, 'isPrototypeOf')
+                    )
+                      return !1;
+                    for (var e in t);
+                    return void 0 === e || d.call(t, e);
+                  },
+                  isEmptyObject: function (t) {
+                    for (var e in t) return !1;
+                    return !0;
+                  },
+                  type: function (t) {
+                    return null == t
+                      ? t + ''
+                      : 'object' == typeof t || 'function' == typeof t
+                        ? Y[O.call(t)] || 'object'
+                        : typeof t;
+                  },
+                  globalEval: function (t) {
+                    var e,
+                      n = eval;
+                    (t = B.trim(t)) &&
+                      (1 === t.indexOf('use strict')
+                        ? (((e = E.createElement('script')).text = t),
+                          E.head.appendChild(e).parentNode.removeChild(e))
+                        : n(t));
+                  },
+                  camelCase: function (t) {
+                    return t.replace(z, 'ms-').replace(H, N);
+                  },
+                  nodeName: function (t, e) {
+                    return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase();
+                  },
+                  each: function (t, e) {
+                    var n,
+                      r = 0;
+                    if (j(t)) for (n = t.length; r < n && !1 !== e.call(t[r], r, t[r]); r++);
+                    else for (r in t) if (!1 === e.call(t[r], r, t[r])) break;
+                    return t;
+                  },
+                  trim: function (t) {
+                    return null == t ? '' : (t + '').replace(G, '');
+                  },
+                  makeArray: function (t, e) {
+                    e = e || [];
+                    return (
+                      null != t &&
+                        (j(Object(t)) ? B.merge(e, 'string' == typeof t ? [t] : t) : L.call(e, t)),
+                      e
+                    );
+                  },
+                  inArray: function (t, e, n) {
+                    return null == e ? -1 : i.call(e, t, n);
+                  },
+                  merge: function (t, e) {
+                    for (var n = +e.length, r = 0, i = t.length; r < n; r++) t[i++] = e[r];
+                    return (t.length = i), t;
+                  },
+                  grep: function (t, e, n) {
+                    for (var r = [], i = 0, o = t.length, a = !n; i < o; i++)
+                      !e(t[i], i) != a && r.push(t[i]);
+                    return r;
+                  },
+                  map: function (t, e, n) {
+                    var r,
+                      i,
+                      o = 0,
+                      a = [];
+                    if (j(t))
+                      for (r = t.length; o < r; o++) null != (i = e(t[o], o, n)) && a.push(i);
+                    else for (o in t) null != (i = e(t[o], o, n)) && a.push(i);
+                    return P.apply([], a);
+                  },
+                  guid: 1,
+                  proxy: function (t, e) {
+                    var n, r;
+                    if (('string' == typeof e && ((r = t[e]), (e = t), (t = r)), B.isFunction(t)))
+                      return (
+                        (n = c.call(arguments, 2)),
+                        ((r = function () {
+                          return t.apply(e || this, n.concat(c.call(arguments)));
+                        }).guid = t.guid =
+                          t.guid || B.guid++),
+                        r
+                      );
+                  },
+                  now: Date.now,
+                  support: f,
+                }),
+                'function' == typeof Symbol && (B.fn[Symbol.iterator] = t[Symbol.iterator]),
+                B.each(
+                  'Boolean Number String Function Array Date RegExp Object Error Symbol'.split(' '),
+                  function (t, e) {
+                    Y['[object ' + e + ']'] = e.toLowerCase();
+                  },
+                );
+              function r(t, e, n) {
+                for (var r = [], i = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; )
+                  if (1 === t.nodeType) {
+                    if (i && B(t).is(n)) break;
+                    r.push(t);
+                  }
+                return r;
+              }
+              function V(t, e) {
+                for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t);
+                return n;
+              }
+              var e = (function (U) {
+                  function A(t, e, n) {
+                    var r = '0x' + e - 65536;
+                    return r != r || n
+                      ? e
+                      : r < 0
+                        ? String.fromCharCode(65536 + r)
+                        : String.fromCharCode((r >> 10) | 55296, (1023 & r) | 56320);
+                  }
+                  function N() {
+                    E();
+                  }
+                  var t,
+                    d,
+                    y,
+                    o,
+                    P,
+                    f,
+                    L,
+                    Y,
+                    w,
+                    l,
+                    u,
+                    E,
+                    B,
+                    e,
+                    C,
+                    g,
+                    r,
+                    i,
+                    m,
+                    x = 'sizzle' + +new Date(),
+                    v = U.document,
+                    I = 0,
+                    O = 0,
+                    G = ut(),
+                    z = ut(),
+                    b = ut(),
+                    H = function (t, e) {
+                      return t === e && (u = !0), 0;
+                    },
+                    j = {}.hasOwnProperty,
+                    n = [],
+                    V = n.pop,
+                    q = n.push,
+                    M = n.push,
+                    W = n.slice,
+                    D = function (t, e) {
+                      for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n;
+                      return -1;
+                    },
+                    J =
+                      'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped',
+                    a = '[\\x20\\t\\r\\n\\f]',
+                    s = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+',
+                    K =
+                      '\\[' +
+                      a +
+                      '*(' +
+                      s +
+                      ')(?:' +
+                      a +
+                      '*([*^$|!~]?=)' +
+                      a +
+                      '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' +
+                      s +
+                      '))|)' +
+                      a +
+                      '*\\]',
+                    Z =
+                      ':(' +
+                      s +
+                      ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' +
+                      K +
+                      ')*)|.*)\\)|)',
+                    X = new RegExp(a + '+', 'g'),
+                    S = new RegExp('^' + a + '+|((?:^|[^\\\\])(?:\\\\.)*)' + a + '+$', 'g'),
+                    $ = new RegExp('^' + a + '*,' + a + '*'),
+                    tt = new RegExp('^' + a + '*([>+~]|' + a + ')' + a + '*'),
+                    et = new RegExp('=' + a + '*([^\\]\'"]*?)' + a + '*\\]', 'g'),
+                    nt = new RegExp(Z),
+                    rt = new RegExp('^' + s + '$'),
+                    h = {
+                      ID: new RegExp('^#(' + s + ')'),
+                      CLASS: new RegExp('^\\.(' + s + ')'),
+                      TAG: new RegExp('^(' + s + '|[*])'),
+                      ATTR: new RegExp('^' + K),
+                      PSEUDO: new RegExp('^' + Z),
+                      CHILD: new RegExp(
+                        '^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' +
+                          a +
+                          '*(even|odd|(([+-]|)(\\d*)n|)' +
+                          a +
+                          '*(?:([+-]|)' +
+                          a +
+                          '*(\\d+)|))' +
+                          a +
+                          '*\\)|)',
+                        'i',
+                      ),
+                      bool: new RegExp('^(?:' + J + ')$', 'i'),
+                      needsContext: new RegExp(
+                        '^' +
+                          a +
+                          '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' +
+                          a +
+                          '*((?:-\\d)?\\d*)' +
+                          a +
+                          '*\\)|)(?=[^-]|$)',
+                        'i',
+                      ),
+                    },
+                    it = /^(?:input|select|textarea|button)$/i,
+                    ot = /^h\d$/i,
+                    c = /^[^{]+\{\s*\[native \w/,
+                    at = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+                    st = /[+~]/,
+                    lt = /'|\\/g,
+                    p = new RegExp('\\\\([\\da-f]{1,6}' + a + '?|(' + a + ')|.)', 'ig');
+                  try {
+                    M.apply((n = W.call(v.childNodes)), v.childNodes),
+                      n[v.childNodes.length].nodeType;
+                  } catch (t) {
+                    M = {
+                      apply: n.length
+                        ? function (t, e) {
+                            q.apply(t, W.call(e));
+                          }
+                        : function (t, e) {
+                            for (var n = t.length, r = 0; (t[n++] = e[r++]); );
+                            t.length = n - 1;
+                          },
+                    };
+                  }
+                  function k(t, e, n, r) {
+                    var i,
+                      o,
+                      a,
+                      s,
+                      l,
+                      u,
+                      c,
+                      A,
+                      h = e && e.ownerDocument,
+                      p = e ? e.nodeType : 9;
+                    if (
+                      ((n = n || []),
+                      'string' != typeof t || !t || (1 !== p && 9 !== p && 11 !== p))
+                    )
+                      return n;
+                    if (!r && ((e ? e.ownerDocument || e : v) !== B && E(e), (e = e || B), C)) {
+                      if (11 !== p && (u = at.exec(t)))
+                        if ((i = u[1])) {
+                          if (9 === p) {
+                            if (!(a = e.getElementById(i))) return n;
+                            if (a.id === i) return n.push(a), n;
+                          } else if (h && (a = h.getElementById(i)) && m(e, a) && a.id === i)
+                            return n.push(a), n;
+                        } else {
+                          if (u[2]) return M.apply(n, e.getElementsByTagName(t)), n;
+                          if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName)
+                            return M.apply(n, e.getElementsByClassName(i)), n;
+                        }
+                      if (d.qsa && !b[t + ' '] && (!g || !g.test(t))) {
+                        if (1 !== p) (h = e), (A = t);
+                        else if ('object' !== e.nodeName.toLowerCase()) {
+                          for (
+                            (s = e.getAttribute('id'))
+                              ? (s = s.replace(lt, '\\$&'))
+                              : e.setAttribute('id', (s = x)),
+                              o = (c = f(t)).length,
+                              l = rt.test(s) ? '#' + s : "[id='" + s + "']";
+                            o--;
+
+                          )
+                            c[o] = l + ' ' + T(c[o]);
+                          (A = c.join(',')), (h = (st.test(t) && ht(e.parentNode)) || e);
+                        }
+                        if (A)
+                          try {
+                            return M.apply(n, h.querySelectorAll(A)), n;
+                          } catch (t) {
+                          } finally {
+                            s === x && e.removeAttribute('id');
+                          }
+                      }
+                    }
+                    return Y(t.replace(S, '$1'), e, n, r);
+                  }
+                  function ut() {
+                    var n = [];
+                    function r(t, e) {
+                      return (
+                        n.push(t + ' ') > y.cacheLength && delete r[n.shift()], (r[t + ' '] = e)
+                      );
+                    }
+                    return r;
+                  }
+                  function F(t) {
+                    return (t[x] = !0), t;
+                  }
+                  function Q(t) {
+                    var e = B.createElement('div');
+                    try {
+                      return !!t(e);
+                    } catch (t) {
+                      return !1;
+                    } finally {
+                      e.parentNode && e.parentNode.removeChild(e);
+                    }
+                  }
+                  function ct(t, e) {
+                    for (var n = t.split('|'), r = n.length; r--; ) y.attrHandle[n[r]] = e;
+                  }
+                  function At(t, e) {
+                    var n = e && t,
+                      r =
+                        n &&
+                        1 === t.nodeType &&
+                        1 === e.nodeType &&
+                        (~e.sourceIndex || 1 << 31) - (~t.sourceIndex || 1 << 31);
+                    if (r) return r;
+                    if (n) for (; (n = n.nextSibling); ) if (n === e) return -1;
+                    return t ? 1 : -1;
+                  }
+                  function _(a) {
+                    return F(function (o) {
+                      return (
+                        (o = +o),
+                        F(function (t, e) {
+                          for (var n, r = a([], t.length, o), i = r.length; i--; )
+                            t[(n = r[i])] && (t[n] = !(e[n] = t[n]));
+                        })
+                      );
+                    });
+                  }
+                  function ht(t) {
+                    return t && void 0 !== t.getElementsByTagName && t;
+                  }
+                  for (t in ((d = k.support = {}),
+                  (P = k.isXML =
+                    function (t) {
+                      t = t && (t.ownerDocument || t).documentElement;
+                      return !!t && 'HTML' !== t.nodeName;
+                    }),
+                  (E = k.setDocument =
+                    function (t) {
+                      var t = t ? t.ownerDocument || t : v;
+                      return (
+                        t !== B &&
+                          9 === t.nodeType &&
+                          t.documentElement &&
+                          ((e = (B = t).documentElement),
+                          (C = !P(B)),
+                          (t = B.defaultView) &&
+                            t.top !== t &&
+                            (t.addEventListener
+                              ? t.addEventListener('unload', N, !1)
+                              : t.attachEvent && t.attachEvent('onunload', N)),
+                          (d.attributes = Q(function (t) {
+                            return (t.className = 'i'), !t.getAttribute('className');
+                          })),
+                          (d.getElementsByTagName = Q(function (t) {
+                            return (
+                              t.appendChild(B.createComment('')),
+                              !t.getElementsByTagName('*').length
+                            );
+                          })),
+                          (d.getElementsByClassName = c.test(B.getElementsByClassName)),
+                          (d.getById = Q(function (t) {
+                            return (
+                              (e.appendChild(t).id = x),
+                              !B.getElementsByName || !B.getElementsByName(x).length
+                            );
+                          })),
+                          d.getById
+                            ? ((y.find.ID = function (t, e) {
+                                if (void 0 !== e.getElementById && C)
+                                  return (e = e.getElementById(t)) ? [e] : [];
+                              }),
+                              (y.filter.ID = function (t) {
+                                var e = t.replace(p, A);
+                                return function (t) {
+                                  return t.getAttribute('id') === e;
+                                };
+                              }))
+                            : (delete y.find.ID,
+                              (y.filter.ID = function (t) {
+                                var e = t.replace(p, A);
+                                return function (t) {
+                                  t = void 0 !== t.getAttributeNode && t.getAttributeNode('id');
+                                  return t && t.value === e;
+                                };
+                              })),
+                          (y.find.TAG = d.getElementsByTagName
+                            ? function (t, e) {
+                                return void 0 !== e.getElementsByTagName
+                                  ? e.getElementsByTagName(t)
+                                  : d.qsa
+                                    ? e.querySelectorAll(t)
+                                    : void 0;
+                              }
+                            : function (t, e) {
+                                var n,
+                                  r = [],
+                                  i = 0,
+                                  o = e.getElementsByTagName(t);
+                                if ('*' !== t) return o;
+                                for (; (n = o[i++]); ) 1 === n.nodeType && r.push(n);
+                                return r;
+                              }),
+                          (y.find.CLASS =
+                            d.getElementsByClassName &&
+                            function (t, e) {
+                              if (void 0 !== e.getElementsByClassName && C)
+                                return e.getElementsByClassName(t);
+                            }),
+                          (r = []),
+                          (g = []),
+                          (d.qsa = c.test(B.querySelectorAll)) &&
+                            (Q(function (t) {
+                              (e.appendChild(t).innerHTML =
+                                "<a id='" +
+                                x +
+                                "'></a><select id='" +
+                                x +
+                                "-\r\\' msallowcapture=''><option selected=''></option></select>"),
+                                t.querySelectorAll("[msallowcapture^='']").length &&
+                                  g.push('[*^$]=' + a + '*(?:\'\'|"")'),
+                                t.querySelectorAll('[selected]').length ||
+                                  g.push('\\[' + a + '*(?:value|' + J + ')'),
+                                t.querySelectorAll('[id~=' + x + '-]').length || g.push('~='),
+                                t.querySelectorAll(':checked').length || g.push(':checked'),
+                                t.querySelectorAll('a#' + x + '+*').length || g.push('.#.+[+~]');
+                            }),
+                            Q(function (t) {
+                              var e = B.createElement('input');
+                              e.setAttribute('type', 'hidden'),
+                                t.appendChild(e).setAttribute('name', 'D'),
+                                t.querySelectorAll('[name=d]').length &&
+                                  g.push('name' + a + '*[*^$|!~]?='),
+                                t.querySelectorAll(':enabled').length ||
+                                  g.push(':enabled', ':disabled'),
+                                t.querySelectorAll('*,:x'),
+                                g.push(',.*:');
+                            })),
+                          (d.matchesSelector = c.test(
+                            (i =
+                              e.matches ||
+                              e.webkitMatchesSelector ||
+                              e.mozMatchesSelector ||
+                              e.oMatchesSelector ||
+                              e.msMatchesSelector),
+                          )) &&
+                            Q(function (t) {
+                              (d.disconnectedMatch = i.call(t, 'div')),
+                                i.call(t, "[s!='']:x"),
+                                r.push('!=', Z);
+                            }),
+                          (g = g.length && new RegExp(g.join('|'))),
+                          (r = r.length && new RegExp(r.join('|'))),
+                          (t = c.test(e.compareDocumentPosition)),
+                          (m =
+                            t || c.test(e.contains)
+                              ? function (t, e) {
+                                  var n = 9 === t.nodeType ? t.documentElement : t,
+                                    e = e && e.parentNode;
+                                  return (
+                                    t === e ||
+                                    !(
+                                      !e ||
+                                      1 !== e.nodeType ||
+                                      !(n.contains
+                                        ? n.contains(e)
+                                        : t.compareDocumentPosition &&
+                                          16 & t.compareDocumentPosition(e))
+                                    )
+                                  );
+                                }
+                              : function (t, e) {
+                                  if (e) for (; (e = e.parentNode); ) if (e === t) return !0;
+                                  return !1;
+                                }),
+                          (H = t
+                            ? function (t, e) {
+                                if (t === e) return (u = !0), 0;
+                                var n = !t.compareDocumentPosition - !e.compareDocumentPosition;
+                                return (
+                                  n ||
+                                  (1 &
+                                    (n =
+                                      (t.ownerDocument || t) === (e.ownerDocument || e)
+                                        ? t.compareDocumentPosition(e)
+                                        : 1) ||
+                                  (!d.sortDetached && e.compareDocumentPosition(t) === n)
+                                    ? t === B || (t.ownerDocument === v && m(v, t))
+                                      ? -1
+                                      : e === B || (e.ownerDocument === v && m(v, e))
+                                        ? 1
+                                        : l
+                                          ? D(l, t) - D(l, e)
+                                          : 0
+                                    : 4 & n
+                                      ? -1
+                                      : 1)
+                                );
+                              }
+                            : function (t, e) {
+                                if (t === e) return (u = !0), 0;
+                                var n,
+                                  r = 0,
+                                  i = t.parentNode,
+                                  o = e.parentNode,
+                                  a = [t],
+                                  s = [e];
+                                if (!i || !o)
+                                  return t === B
+                                    ? -1
+                                    : e === B
+                                      ? 1
+                                      : i
+                                        ? -1
+                                        : o
+                                          ? 1
+                                          : l
+                                            ? D(l, t) - D(l, e)
+                                            : 0;
+                                if (i === o) return At(t, e);
+                                for (n = t; (n = n.parentNode); ) a.unshift(n);
+                                for (n = e; (n = n.parentNode); ) s.unshift(n);
+                                for (; a[r] === s[r]; ) r++;
+                                return r ? At(a[r], s[r]) : a[r] === v ? -1 : s[r] === v ? 1 : 0;
+                              })),
+                        B
+                      );
+                    }),
+                  (k.matches = function (t, e) {
+                    return k(t, null, null, e);
+                  }),
+                  (k.matchesSelector = function (t, e) {
+                    if (
+                      ((t.ownerDocument || t) !== B && E(t),
+                      (e = e.replace(et, "='$1']")),
+                      d.matchesSelector &&
+                        C &&
+                        !b[e + ' '] &&
+                        (!r || !r.test(e)) &&
+                        (!g || !g.test(e)))
+                    )
+                      try {
+                        var n = i.call(t, e);
+                        if (n || d.disconnectedMatch || (t.document && 11 !== t.document.nodeType))
+                          return n;
+                      } catch (t) {}
+                    return 0 < k(e, B, null, [t]).length;
+                  }),
+                  (k.contains = function (t, e) {
+                    return (t.ownerDocument || t) !== B && E(t), m(t, e);
+                  }),
+                  (k.attr = function (t, e) {
+                    (t.ownerDocument || t) !== B && E(t);
+                    var n = y.attrHandle[e.toLowerCase()],
+                      n = n && j.call(y.attrHandle, e.toLowerCase()) ? n(t, e, !C) : void 0;
+                    return void 0 !== n
+                      ? n
+                      : d.attributes || !C
+                        ? t.getAttribute(e)
+                        : (n = t.getAttributeNode(e)) && n.specified
+                          ? n.value
+                          : null;
+                  }),
+                  (k.error = function (t) {
+                    throw new Error('Syntax error, unrecognized expression: ' + t);
+                  }),
+                  (k.uniqueSort = function (t) {
+                    var e,
+                      n = [],
+                      r = 0,
+                      i = 0;
+                    if (
+                      ((u = !d.detectDuplicates), (l = !d.sortStable && t.slice(0)), t.sort(H), u)
+                    ) {
+                      for (; (e = t[i++]); ) e === t[i] && (r = n.push(i));
+                      for (; r--; ) t.splice(n[r], 1);
+                    }
+                    return (l = null), t;
+                  }),
+                  (o = k.getText =
+                    function (t) {
+                      var e,
+                        n = '',
+                        r = 0,
+                        i = t.nodeType;
+                      if (i) {
+                        if (1 === i || 9 === i || 11 === i) {
+                          if ('string' == typeof t.textContent) return t.textContent;
+                          for (t = t.firstChild; t; t = t.nextSibling) n += o(t);
+                        } else if (3 === i || 4 === i) return t.nodeValue;
+                      } else for (; (e = t[r++]); ) n += o(e);
+                      return n;
+                    }),
+                  ((y = k.selectors =
+                    {
+                      cacheLength: 50,
+                      createPseudo: F,
+                      match: h,
+                      attrHandle: {},
+                      find: {},
+                      relative: {
+                        '>': { dir: 'parentNode', first: !0 },
+                        ' ': { dir: 'parentNode' },
+                        '+': { dir: 'previousSibling', first: !0 },
+                        '~': { dir: 'previousSibling' },
+                      },
+                      preFilter: {
+                        ATTR: function (t) {
+                          return (
+                            (t[1] = t[1].replace(p, A)),
+                            (t[3] = (t[3] || t[4] || t[5] || '').replace(p, A)),
+                            '~=' === t[2] && (t[3] = ' ' + t[3] + ' '),
+                            t.slice(0, 4)
+                          );
+                        },
+                        CHILD: function (t) {
+                          return (
+                            (t[1] = t[1].toLowerCase()),
+                            'nth' === t[1].slice(0, 3)
+                              ? (t[3] || k.error(t[0]),
+                                (t[4] = +(t[4]
+                                  ? t[5] + (t[6] || 1)
+                                  : 2 * ('even' === t[3] || 'odd' === t[3]))),
+                                (t[5] = +(t[7] + t[8] || 'odd' === t[3])))
+                              : t[3] && k.error(t[0]),
+                            t
+                          );
+                        },
+                        PSEUDO: function (t) {
+                          var e,
+                            n = !t[6] && t[2];
+                          return h.CHILD.test(t[0])
+                            ? null
+                            : (t[3]
+                                ? (t[2] = t[4] || t[5] || '')
+                                : n &&
+                                  nt.test(n) &&
+                                  (e = f(n, !0)) &&
+                                  (e = n.indexOf(')', n.length - e) - n.length) &&
+                                  ((t[0] = t[0].slice(0, e)), (t[2] = n.slice(0, e))),
+                              t.slice(0, 3));
+                        },
+                      },
+                      filter: {
+                        TAG: function (t) {
+                          var e = t.replace(p, A).toLowerCase();
+                          return '*' === t
+                            ? function () {
+                                return !0;
+                              }
+                            : function (t) {
+                                return t.nodeName && t.nodeName.toLowerCase() === e;
+                              };
+                        },
+                        CLASS: function (t) {
+                          var e = G[t + ' '];
+                          return (
+                            e ||
+                            ((e = new RegExp('(^|' + a + ')' + t + '(' + a + '|$)')) &&
+                              G(t, function (t) {
+                                return e.test(
+                                  ('string' == typeof t.className && t.className) ||
+                                    (void 0 !== t.getAttribute && t.getAttribute('class')) ||
+                                    '',
+                                );
+                              }))
+                          );
+                        },
+                        ATTR: function (e, n, r) {
+                          return function (t) {
+                            t = k.attr(t, e);
+                            return null == t
+                              ? '!=' === n
+                              : !n ||
+                                  ((t += ''),
+                                  '=' === n
+                                    ? t === r
+                                    : '!=' === n
+                                      ? t !== r
+                                      : '^=' === n
+                                        ? r && 0 === t.indexOf(r)
+                                        : '*=' === n
+                                          ? r && -1 < t.indexOf(r)
+                                          : '$=' === n
+                                            ? r && t.slice(-r.length) === r
+                                            : '~=' === n
+                                              ? -1 < (' ' + t.replace(X, ' ') + ' ').indexOf(r)
+                                              : '|=' === n &&
+                                                (t === r || t.slice(0, r.length + 1) === r + '-'));
+                          };
+                        },
+                        CHILD: function (d, t, e, f, g) {
+                          var m = 'nth' !== d.slice(0, 3),
+                            v = 'last' !== d.slice(-4),
+                            b = 'of-type' === t;
+                          return 1 === f && 0 === g
+                            ? function (t) {
+                                return !!t.parentNode;
+                              }
+                            : function (t, e, n) {
+                                var r,
+                                  i,
+                                  o,
+                                  a,
+                                  s,
+                                  l,
+                                  u = m != v ? 'nextSibling' : 'previousSibling',
+                                  c = t.parentNode,
+                                  A = b && t.nodeName.toLowerCase(),
+                                  h = !n && !b,
+                                  p = !1;
+                                if (c) {
+                                  if (m) {
+                                    for (; u; ) {
+                                      for (a = t; (a = a[u]); )
+                                        if (b ? a.nodeName.toLowerCase() === A : 1 === a.nodeType)
+                                          return !1;
+                                      l = u = 'only' === d && !l && 'nextSibling';
+                                    }
+                                    return !0;
+                                  }
+                                  if (((l = [v ? c.firstChild : c.lastChild]), v && h)) {
+                                    for (
+                                      p =
+                                        (s =
+                                          (r =
+                                            (i =
+                                              (o = (a = c)[x] || (a[x] = {}))[a.uniqueID] ||
+                                              (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1]) &&
+                                        r[2],
+                                        a = s && c.childNodes[s];
+                                      (a = (++s && a && a[u]) || (p = s = 0) || l.pop());
+
+                                    )
+                                      if (1 === a.nodeType && ++p && a === t) {
+                                        i[d] = [I, s, p];
+                                        break;
+                                      }
+                                  } else if (
+                                    !1 ===
+                                    (p = h
+                                      ? (s =
+                                          (r =
+                                            (i =
+                                              (o = (a = t)[x] || (a[x] = {}))[a.uniqueID] ||
+                                              (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1])
+                                      : p)
+                                  )
+                                    for (
+                                      ;
+                                      (a = (++s && a && a[u]) || (p = s = 0) || l.pop()) &&
+                                      ((b ? a.nodeName.toLowerCase() !== A : 1 !== a.nodeType) ||
+                                        !++p ||
+                                        (h &&
+                                          ((i =
+                                            (o = a[x] || (a[x] = {}))[a.uniqueID] ||
+                                            (o[a.uniqueID] = {}))[d] = [I, p]),
+                                        a !== t));
+
+                                    );
+                                  return (p -= g) === f || (p % f == 0 && 0 <= p / f);
+                                }
+                              };
+                        },
+                        PSEUDO: function (t, o) {
+                          var e,
+                            a =
+                              y.pseudos[t] ||
+                              y.setFilters[t.toLowerCase()] ||
+                              k.error('unsupported pseudo: ' + t);
+                          return a[x]
+                            ? a(o)
+                            : 1 < a.length
+                              ? ((e = [t, t, '', o]),
+                                y.setFilters.hasOwnProperty(t.toLowerCase())
+                                  ? F(function (t, e) {
+                                      for (var n, r = a(t, o), i = r.length; i--; )
+                                        t[(n = D(t, r[i]))] = !(e[n] = r[i]);
+                                    })
+                                  : function (t) {
+                                      return a(t, 0, e);
+                                    })
+                              : a;
+                        },
+                      },
+                      pseudos: {
+                        not: F(function (t) {
+                          var r = [],
+                            i = [],
+                            s = L(t.replace(S, '$1'));
+                          return s[x]
+                            ? F(function (t, e, n, r) {
+                                for (var i, o = s(t, null, r, []), a = t.length; a--; )
+                                  (i = o[a]) && (t[a] = !(e[a] = i));
+                              })
+                            : function (t, e, n) {
+                                return (r[0] = t), s(r, null, n, i), (r[0] = null), !i.pop();
+                              };
+                        }),
+                        has: F(function (e) {
+                          return function (t) {
+                            return 0 < k(e, t).length;
+                          };
+                        }),
+                        contains: F(function (e) {
+                          return (
+                            (e = e.replace(p, A)),
+                            function (t) {
+                              return -1 < (t.textContent || t.innerText || o(t)).indexOf(e);
+                            }
+                          );
+                        }),
+                        lang: F(function (n) {
+                          return (
+                            rt.test(n || '') || k.error('unsupported lang: ' + n),
+                            (n = n.replace(p, A).toLowerCase()),
+                            function (t) {
+                              var e;
+                              do {
+                                if (
+                                  (e = C
+                                    ? t.lang
+                                    : t.getAttribute('xml:lang') || t.getAttribute('lang'))
+                                )
+                                  return (e = e.toLowerCase()) === n || 0 === e.indexOf(n + '-');
+                              } while ((t = t.parentNode) && 1 === t.nodeType);
+                              return !1;
+                            }
+                          );
+                        }),
+                        target: function (t) {
+                          var e = U.location && U.location.hash;
+                          return e && e.slice(1) === t.id;
+                        },
+                        root: function (t) {
+                          return t === e;
+                        },
+                        focus: function (t) {
+                          return (
+                            t === B.activeElement &&
+                            (!B.hasFocus || B.hasFocus()) &&
+                            !!(t.type || t.href || ~t.tabIndex)
+                          );
+                        },
+                        enabled: function (t) {
+                          return !1 === t.disabled;
+                        },
+                        disabled: function (t) {
+                          return !0 === t.disabled;
+                        },
+                        checked: function (t) {
+                          var e = t.nodeName.toLowerCase();
+                          return ('input' === e && !!t.checked) || ('option' === e && !!t.selected);
+                        },
+                        selected: function (t) {
+                          return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected;
+                        },
+                        empty: function (t) {
+                          for (t = t.firstChild; t; t = t.nextSibling)
+                            if (t.nodeType < 6) return !1;
+                          return !0;
+                        },
+                        parent: function (t) {
+                          return !y.pseudos.empty(t);
+                        },
+                        header: function (t) {
+                          return ot.test(t.nodeName);
+                        },
+                        input: function (t) {
+                          return it.test(t.nodeName);
+                        },
+                        button: function (t) {
+                          var e = t.nodeName.toLowerCase();
+                          return ('input' === e && 'button' === t.type) || 'button' === e;
+                        },
+                        text: function (t) {
+                          return (
+                            'input' === t.nodeName.toLowerCase() &&
+                            'text' === t.type &&
+                            (null == (t = t.getAttribute('type')) || 'text' === t.toLowerCase())
+                          );
+                        },
+                        first: _(function () {
+                          return [0];
+                        }),
+                        last: _(function (t, e) {
+                          return [e - 1];
+                        }),
+                        eq: _(function (t, e, n) {
+                          return [n < 0 ? n + e : n];
+                        }),
+                        even: _(function (t, e) {
+                          for (var n = 0; n < e; n += 2) t.push(n);
+                          return t;
+                        }),
+                        odd: _(function (t, e) {
+                          for (var n = 1; n < e; n += 2) t.push(n);
+                          return t;
+                        }),
+                        lt: _(function (t, e, n) {
+                          for (var r = n < 0 ? n + e : n; 0 <= --r; ) t.push(r);
+                          return t;
+                        }),
+                        gt: _(function (t, e, n) {
+                          for (var r = n < 0 ? n + e : n; ++r < e; ) t.push(r);
+                          return t;
+                        }),
+                      },
+                    }).pseudos.nth = y.pseudos.eq),
+                  { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }))
+                    y.pseudos[t] = (function (e) {
+                      return function (t) {
+                        return 'input' === t.nodeName.toLowerCase() && t.type === e;
+                      };
+                    })(t);
+                  for (t in { submit: !0, reset: !0 })
+                    y.pseudos[t] = (function (n) {
+                      return function (t) {
+                        var e = t.nodeName.toLowerCase();
+                        return ('input' === e || 'button' === e) && t.type === n;
+                      };
+                    })(t);
+                  function pt() {}
+                  function T(t) {
+                    for (var e = 0, n = t.length, r = ''; e < n; e++) r += t[e].value;
+                    return r;
+                  }
+                  function dt(a, t, e) {
+                    var s = t.dir,
+                      l = e && 'parentNode' === s,
+                      u = O++;
+                    return t.first
+                      ? function (t, e, n) {
+                          for (; (t = t[s]); ) if (1 === t.nodeType || l) return a(t, e, n);
+                        }
+                      : function (t, e, n) {
+                          var r,
+                            i,
+                            o = [I, u];
+                          if (n) {
+                            for (; (t = t[s]); )
+                              if ((1 === t.nodeType || l) && a(t, e, n)) return !0;
+                          } else
+                            for (; (t = t[s]); )
+                              if (1 === t.nodeType || l) {
+                                if (
+                                  (r = (i =
+                                    (i = t[x] || (t[x] = {}))[t.uniqueID] || (i[t.uniqueID] = {}))[
+                                    s
+                                  ]) &&
+                                  r[0] === I &&
+                                  r[1] === u
+                                )
+                                  return (o[2] = r[2]);
+                                if (((i[s] = o)[2] = a(t, e, n))) return !0;
+                              }
+                        };
+                  }
+                  function ft(i) {
+                    return 1 < i.length
+                      ? function (t, e, n) {
+                          for (var r = i.length; r--; ) if (!i[r](t, e, n)) return !1;
+                          return !0;
+                        }
+                      : i[0];
+                  }
+                  function R(t, e, n, r, i) {
+                    for (var o, a = [], s = 0, l = t.length, u = null != e; s < l; s++)
+                      !(o = t[s]) || (n && !n(o, r, i)) || (a.push(o), u && e.push(s));
+                    return a;
+                  }
+                  function gt(p, d, f, g, m, t) {
+                    return (
+                      g && !g[x] && (g = gt(g)),
+                      m && !m[x] && (m = gt(m, t)),
+                      F(function (t, e, n, r) {
+                        var i,
+                          o,
+                          a,
+                          s = [],
+                          l = [],
+                          u = e.length,
+                          c =
+                            t ||
+                            (function (t, e, n) {
+                              for (var r = 0, i = e.length; r < i; r++) k(t, e[r], n);
+                              return n;
+                            })(d || '*', n.nodeType ? [n] : n, []),
+                          A = !p || (!t && d) ? c : R(c, s, p, n, r),
+                          h = f ? (m || (t ? p : u || g) ? [] : e) : A;
+                        if ((f && f(A, h, n, r), g))
+                          for (i = R(h, l), g(i, [], n, r), o = i.length; o--; )
+                            (a = i[o]) && (h[l[o]] = !(A[l[o]] = a));
+                        if (t) {
+                          if (m || p) {
+                            if (m) {
+                              for (i = [], o = h.length; o--; ) (a = h[o]) && i.push((A[o] = a));
+                              m(null, (h = []), i, r);
+                            }
+                            for (o = h.length; o--; )
+                              (a = h[o]) && -1 < (i = m ? D(t, a) : s[o]) && (t[i] = !(e[i] = a));
+                          }
+                        } else
+                          (h = R(h === e ? h.splice(u, h.length) : h)),
+                            m ? m(null, e, h, r) : M.apply(e, h);
+                      })
+                    );
+                  }
+                  function mt(g, m) {
+                    function t(t, e, n, r, i) {
+                      var o,
+                        a,
+                        s,
+                        l = 0,
+                        u = '0',
+                        c = t && [],
+                        A = [],
+                        h = w,
+                        p = t || (b && y.find.TAG('*', i)),
+                        d = (I += null == h ? 1 : Math.random() || 0.1),
+                        f = p.length;
+                      for (i && (w = e === B || e || i); u !== f && null != (o = p[u]); u++) {
+                        if (b && o) {
+                          for (
+                            a = 0, e || o.ownerDocument === B || (E(o), (n = !C));
+                            (s = g[a++]);
+
+                          )
+                            if (s(o, e || B, n)) {
+                              r.push(o);
+                              break;
+                            }
+                          i && (I = d);
+                        }
+                        v && ((o = !s && o) && l--, t && c.push(o));
+                      }
+                      if (((l += u), v && u !== l)) {
+                        for (a = 0; (s = m[a++]); ) s(c, A, e, n);
+                        if (t) {
+                          if (0 < l) for (; u--; ) c[u] || A[u] || (A[u] = V.call(r));
+                          A = R(A);
+                        }
+                        M.apply(r, A),
+                          i && !t && 0 < A.length && 1 < l + m.length && k.uniqueSort(r);
+                      }
+                      return i && ((I = d), (w = h)), c;
+                    }
+                    var v = 0 < m.length,
+                      b = 0 < g.length;
+                    return v ? F(t) : t;
+                  }
+                  return (
+                    (pt.prototype = y.filters = y.pseudos),
+                    (y.setFilters = new pt()),
+                    (f = k.tokenize =
+                      function (t, e) {
+                        var n,
+                          r,
+                          i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u = z[t + ' '];
+                        if (u) return e ? 0 : u.slice(0);
+                        for (a = t, s = [], l = y.preFilter; a; ) {
+                          for (o in ((n && !(r = $.exec(a))) ||
+                            (r && (a = a.slice(r[0].length) || a), s.push((i = []))),
+                          (n = !1),
+                          (r = tt.exec(a)) &&
+                            ((n = r.shift()),
+                            i.push({ value: n, type: r[0].replace(S, ' ') }),
+                            (a = a.slice(n.length))),
+                          y.filter))
+                            !(r = h[o].exec(a)) ||
+                              (l[o] && !(r = l[o](r))) ||
+                              ((n = r.shift()),
+                              i.push({ value: n, type: o, matches: r }),
+                              (a = a.slice(n.length)));
+                          if (!n) break;
+                        }
+                        return e ? a.length : a ? k.error(t) : z(t, s).slice(0);
+                      }),
+                    (L = k.compile =
+                      function (t, e) {
+                        var n,
+                          r = [],
+                          i = [],
+                          o = b[t + ' '];
+                        if (!o) {
+                          for (n = (e = e || f(t)).length; n--; )
+                            ((o = (function t(e) {
+                              for (
+                                var r,
+                                  n,
+                                  i,
+                                  o = e.length,
+                                  a = y.relative[e[0].type],
+                                  s = a || y.relative[' '],
+                                  l = a ? 1 : 0,
+                                  u = dt(
+                                    function (t) {
+                                      return t === r;
+                                    },
+                                    s,
+                                    !0,
+                                  ),
+                                  c = dt(
+                                    function (t) {
+                                      return -1 < D(r, t);
+                                    },
+                                    s,
+                                    !0,
+                                  ),
+                                  A = [
+                                    function (t, e, n) {
+                                      return (
+                                        (t =
+                                          (!a && (n || e !== w)) ||
+                                          ((r = e).nodeType ? u : c)(t, e, n)),
+                                        (r = null),
+                                        t
+                                      );
+                                    },
+                                  ];
+                                l < o;
+                                l++
+                              )
+                                if ((n = y.relative[e[l].type])) A = [dt(ft(A), n)];
+                                else {
+                                  if ((n = y.filter[e[l].type].apply(null, e[l].matches))[x]) {
+                                    for (i = ++l; i < o && !y.relative[e[i].type]; i++);
+                                    return gt(
+                                      1 < l && ft(A),
+                                      1 < l &&
+                                        T(
+                                          e
+                                            .slice(0, l - 1)
+                                            .concat({ value: ' ' === e[l - 2].type ? '*' : '' }),
+                                        ).replace(S, '$1'),
+                                      n,
+                                      l < i && t(e.slice(l, i)),
+                                      i < o && t((e = e.slice(i))),
+                                      i < o && T(e),
+                                    );
+                                  }
+                                  A.push(n);
+                                }
+                              return ft(A);
+                            })(e[n]))[x]
+                              ? r
+                              : i
+                            ).push(o);
+                          (o = b(t, mt(i, r))).selector = t;
+                        }
+                        return o;
+                      }),
+                    (Y = k.select =
+                      function (t, e, n, r) {
+                        var i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u = 'function' == typeof t && t,
+                          c = !r && f((t = u.selector || t));
+                        if (((n = n || []), 1 === c.length)) {
+                          if (
+                            2 < (o = c[0] = c[0].slice(0)).length &&
+                            'ID' === (a = o[0]).type &&
+                            d.getById &&
+                            9 === e.nodeType &&
+                            C &&
+                            y.relative[o[1].type]
+                          ) {
+                            if (!(e = (y.find.ID(a.matches[0].replace(p, A), e) || [])[0]))
+                              return n;
+                            u && (e = e.parentNode), (t = t.slice(o.shift().value.length));
+                          }
+                          for (
+                            i = h.needsContext.test(t) ? 0 : o.length;
+                            i-- && ((a = o[i]), !y.relative[(s = a.type)]);
+
+                          )
+                            if (
+                              (l = y.find[s]) &&
+                              (r = l(
+                                a.matches[0].replace(p, A),
+                                (st.test(o[0].type) && ht(e.parentNode)) || e,
+                              ))
+                            ) {
+                              if ((o.splice(i, 1), (t = r.length && T(o)))) break;
+                              return M.apply(n, r), n;
+                            }
+                        }
+                        return (
+                          (u || L(t, c))(r, e, !C, n, !e || (st.test(t) && ht(e.parentNode)) || e),
+                          n
+                        );
+                      }),
+                    (d.sortStable = x.split('').sort(H).join('') === x),
+                    (d.detectDuplicates = !!u),
+                    E(),
+                    (d.sortDetached = Q(function (t) {
+                      return 1 & t.compareDocumentPosition(B.createElement('div'));
+                    })),
+                    Q(function (t) {
+                      return (
+                        (t.innerHTML = "<a href='#'></a>"),
+                        '#' === t.firstChild.getAttribute('href')
+                      );
+                    }) ||
+                      ct('type|href|height|width', function (t, e, n) {
+                        if (!n) return t.getAttribute(e, 'type' === e.toLowerCase() ? 1 : 2);
+                      }),
+                    (d.attributes &&
+                      Q(function (t) {
+                        return (
+                          (t.innerHTML = '<input/>'),
+                          t.firstChild.setAttribute('value', ''),
+                          '' === t.firstChild.getAttribute('value')
+                        );
+                      })) ||
+                      ct('value', function (t, e, n) {
+                        if (!n && 'input' === t.nodeName.toLowerCase()) return t.defaultValue;
+                      }),
+                    Q(function (t) {
+                      return null == t.getAttribute('disabled');
+                    }) ||
+                      ct(J, function (t, e, n) {
+                        if (!n)
+                          return !0 === t[e]
+                            ? e.toLowerCase()
+                            : (n = t.getAttributeNode(e)) && n.specified
+                              ? n.value
+                              : null;
+                      }),
+                    k
+                  );
+                })(w),
+                q =
+                  ((B.find = e),
+                  (B.expr = e.selectors),
+                  (B.expr[':'] = B.expr.pseudos),
+                  (B.uniqueSort = B.unique = e.uniqueSort),
+                  (B.text = e.getText),
+                  (B.isXMLDoc = e.isXML),
+                  (B.contains = e.contains),
+                  B.expr.match.needsContext),
+                W = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
+                J = /^.[^:#\[\.,]*$/;
+              function K(t, n, r) {
+                if (B.isFunction(n))
+                  return B.grep(t, function (t, e) {
+                    return !!n.call(t, e, t) !== r;
+                  });
+                if (n.nodeType)
+                  return B.grep(t, function (t) {
+                    return (t === n) !== r;
+                  });
+                if ('string' == typeof n) {
+                  if (J.test(n)) return B.filter(n, t, r);
+                  n = B.filter(n, t);
+                }
+                return B.grep(t, function (t) {
+                  return -1 < i.call(n, t) !== r;
+                });
+              }
+              (B.filter = function (t, e, n) {
+                var r = e[0];
+                return (
+                  n && (t = ':not(' + t + ')'),
+                  1 === e.length && 1 === r.nodeType
+                    ? B.find.matchesSelector(r, t)
+                      ? [r]
+                      : []
+                    : B.find.matches(
+                        t,
+                        B.grep(e, function (t) {
+                          return 1 === t.nodeType;
+                        }),
+                      )
+                );
+              }),
+                B.fn.extend({
+                  find: function (t) {
+                    var e,
+                      n = this.length,
+                      r = [],
+                      i = this;
+                    if ('string' != typeof t)
+                      return this.pushStack(
+                        B(t).filter(function () {
+                          for (e = 0; e < n; e++) if (B.contains(i[e], this)) return !0;
+                        }),
+                      );
+                    for (e = 0; e < n; e++) B.find(t, i[e], r);
+                    return (
+                      ((r = this.pushStack(1 < n ? B.unique(r) : r)).selector = this.selector
+                        ? this.selector + ' ' + t
+                        : t),
+                      r
+                    );
+                  },
+                  filter: function (t) {
+                    return this.pushStack(K(this, t || [], !1));
+                  },
+                  not: function (t) {
+                    return this.pushStack(K(this, t || [], !0));
+                  },
+                  is: function (t) {
+                    return !!K(this, 'string' == typeof t && q.test(t) ? B(t) : t || [], !1).length;
+                  },
+                });
+              var Z,
+                X = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+                $ =
+                  (((B.fn.init = function (t, e, n) {
+                    if (!t) return this;
+                    if (((n = n || Z), 'string' != typeof t))
+                      return t.nodeType
+                        ? ((this.context = this[0] = t), (this.length = 1), this)
+                        : B.isFunction(t)
+                          ? void 0 !== n.ready
+                            ? n.ready(t)
+                            : t(B)
+                          : (void 0 !== t.selector &&
+                              ((this.selector = t.selector), (this.context = t.context)),
+                            B.makeArray(t, this));
+                    if (
+                      !(r =
+                        '<' === t[0] && '>' === t[t.length - 1] && 3 <= t.length
+                          ? [null, t, null]
+                          : X.exec(t)) ||
+                      (!r[1] && e)
+                    )
+                      return (!e || e.jquery ? e || n : this.constructor(e)).find(t);
+                    if (r[1]) {
+                      if (
+                        ((e = e instanceof B ? e[0] : e),
+                        B.merge(
+                          this,
+                          B.parseHTML(r[1], e && e.nodeType ? e.ownerDocument || e : E, !0),
+                        ),
+                        W.test(r[1]) && B.isPlainObject(e))
+                      )
+                        for (var r in e) B.isFunction(this[r]) ? this[r](e[r]) : this.attr(r, e[r]);
+                      return this;
+                    }
+                    return (
+                      (n = E.getElementById(r[2])) &&
+                        n.parentNode &&
+                        ((this.length = 1), (this[0] = n)),
+                      (this.context = E),
+                      (this.selector = t),
+                      this
+                    );
+                  }).prototype = B.fn),
+                  (Z = B(E)),
+                  /^(?:parents|prev(?:Until|All))/),
+                tt = { children: !0, contents: !0, next: !0, prev: !0 };
+              function et(t, e) {
+                for (; (t = t[e]) && 1 !== t.nodeType; );
+                return t;
+              }
+              B.fn.extend({
+                has: function (t) {
+                  var e = B(t, this),
+                    n = e.length;
+                  return this.filter(function () {
+                    for (var t = 0; t < n; t++) if (B.contains(this, e[t])) return !0;
+                  });
+                },
+                closest: function (t, e) {
+                  for (
+                    var n,
+                      r = 0,
+                      i = this.length,
+                      o = [],
+                      a = q.test(t) || 'string' != typeof t ? B(t, e || this.context) : 0;
+                    r < i;
+                    r++
+                  )
+                    for (n = this[r]; n && n !== e; n = n.parentNode)
+                      if (
+                        n.nodeType < 11 &&
+                        (a ? -1 < a.index(n) : 1 === n.nodeType && B.find.matchesSelector(n, t))
+                      ) {
+                        o.push(n);
+                        break;
+                      }
+                  return this.pushStack(1 < o.length ? B.uniqueSort(o) : o);
+                },
+                index: function (t) {
+                  return t
+                    ? 'string' == typeof t
+                      ? i.call(B(t), this[0])
+                      : i.call(this, t.jquery ? t[0] : t)
+                    : this[0] && this[0].parentNode
+                      ? this.first().prevAll().length
+                      : -1;
+                },
+                add: function (t, e) {
+                  return this.pushStack(B.uniqueSort(B.merge(this.get(), B(t, e))));
+                },
+                addBack: function (t) {
+                  return this.add(null == t ? this.prevObject : this.prevObject.filter(t));
+                },
+              }),
+                B.each(
+                  {
+                    parent: function (t) {
+                      t = t.parentNode;
+                      return t && 11 !== t.nodeType ? t : null;
+                    },
+                    parents: function (t) {
+                      return r(t, 'parentNode');
+                    },
+                    parentsUntil: function (t, e, n) {
+                      return r(t, 'parentNode', n);
+                    },
+                    next: function (t) {
+                      return et(t, 'nextSibling');
+                    },
+                    prev: function (t) {
+                      return et(t, 'previousSibling');
+                    },
+                    nextAll: function (t) {
+                      return r(t, 'nextSibling');
+                    },
+                    prevAll: function (t) {
+                      return r(t, 'previousSibling');
+                    },
+                    nextUntil: function (t, e, n) {
+                      return r(t, 'nextSibling', n);
+                    },
+                    prevUntil: function (t, e, n) {
+                      return r(t, 'previousSibling', n);
+                    },
+                    siblings: function (t) {
+                      return V((t.parentNode || {}).firstChild, t);
+                    },
+                    children: function (t) {
+                      return V(t.firstChild);
+                    },
+                    contents: function (t) {
+                      return t.contentDocument || B.merge([], t.childNodes);
+                    },
+                  },
+                  function (r, i) {
+                    B.fn[r] = function (t, e) {
+                      var n = B.map(this, i, t);
+                      return (
+                        (e = 'Until' !== r.slice(-5) ? t : e) &&
+                          'string' == typeof e &&
+                          (n = B.filter(e, n)),
+                        1 < this.length && (tt[r] || B.uniqueSort(n), $.test(r) && n.reverse()),
+                        this.pushStack(n)
+                      );
+                    };
+                  },
+                );
+              var nt,
+                C = /\S+/g;
+              function rt() {
+                E.removeEventListener('DOMContentLoaded', rt),
+                  w.removeEventListener('load', rt),
+                  B.ready();
+              }
+              (B.Callbacks = function (r) {
+                var t, n;
+                r =
+                  'string' == typeof r
+                    ? ((t = r),
+                      (n = {}),
+                      B.each(t.match(C) || [], function (t, e) {
+                        n[e] = !0;
+                      }),
+                      n)
+                    : B.extend({}, r);
+                function i() {
+                  for (s = r.once, a = o = !0; u.length; c = -1)
+                    for (e = u.shift(); ++c < l.length; )
+                      !1 === l[c].apply(e[0], e[1]) && r.stopOnFalse && ((c = l.length), (e = !1));
+                  r.memory || (e = !1), (o = !1), s && (l = e ? [] : '');
+                }
+                var o,
+                  e,
+                  a,
+                  s,
+                  l = [],
+                  u = [],
+                  c = -1,
+                  A = {
+                    add: function () {
+                      return (
+                        l &&
+                          (e && !o && ((c = l.length - 1), u.push(e)),
+                          (function n(t) {
+                            B.each(t, function (t, e) {
+                              B.isFunction(e)
+                                ? (r.unique && A.has(e)) || l.push(e)
+                                : e && e.length && 'string' !== B.type(e) && n(e);
+                            });
+                          })(arguments),
+                          e && !o && i()),
+                        this
+                      );
+                    },
+                    remove: function () {
+                      return (
+                        B.each(arguments, function (t, e) {
+                          for (var n; -1 < (n = B.inArray(e, l, n)); )
+                            l.splice(n, 1), n <= c && c--;
+                        }),
+                        this
+                      );
+                    },
+                    has: function (t) {
+                      return t ? -1 < B.inArray(t, l) : 0 < l.length;
+                    },
+                    empty: function () {
+                      return (l = l && []), this;
+                    },
+                    disable: function () {
+                      return (s = u = []), (l = e = ''), this;
+                    },
+                    disabled: function () {
+                      return !l;
+                    },
+                    lock: function () {
+                      return (s = u = []), e || (l = e = ''), this;
+                    },
+                    locked: function () {
+                      return !!s;
+                    },
+                    fireWith: function (t, e) {
+                      return (
+                        s || ((e = [t, (e = e || []).slice ? e.slice() : e]), u.push(e), o || i()),
+                        this
+                      );
+                    },
+                    fire: function () {
+                      return A.fireWith(this, arguments), this;
+                    },
+                    fired: function () {
+                      return !!a;
+                    },
+                  };
+                return A;
+              }),
+                B.extend({
+                  Deferred: function (t) {
+                    var o = [
+                        ['resolve', 'done', B.Callbacks('once memory'), 'resolved'],
+                        ['reject', 'fail', B.Callbacks('once memory'), 'rejected'],
+                        ['notify', 'progress', B.Callbacks('memory')],
+                      ],
+                      i = 'pending',
+                      a = {
+                        state: function () {
+                          return i;
+                        },
+                        always: function () {
+                          return s.done(arguments).fail(arguments), this;
+                        },
+                        then: function () {
+                          var i = arguments;
+                          return B.Deferred(function (r) {
+                            B.each(o, function (t, e) {
+                              var n = B.isFunction(i[t]) && i[t];
+                              s[e[1]](function () {
+                                var t = n && n.apply(this, arguments);
+                                t && B.isFunction(t.promise)
+                                  ? t.promise().progress(r.notify).done(r.resolve).fail(r.reject)
+                                  : r[e[0] + 'With'](
+                                      this === a ? r.promise() : this,
+                                      n ? [t] : arguments,
+                                    );
+                              });
+                            }),
+                              (i = null);
+                          }).promise();
+                        },
+                        promise: function (t) {
+                          return null != t ? B.extend(t, a) : a;
+                        },
+                      },
+                      s = {};
+                    return (
+                      (a.pipe = a.then),
+                      B.each(o, function (t, e) {
+                        var n = e[2],
+                          r = e[3];
+                        (a[e[1]] = n.add),
+                          r &&
+                            n.add(
+                              function () {
+                                i = r;
+                              },
+                              o[1 ^ t][2].disable,
+                              o[2][2].lock,
+                            ),
+                          (s[e[0]] = function () {
+                            return s[e[0] + 'With'](this === s ? a : this, arguments), this;
+                          }),
+                          (s[e[0] + 'With'] = n.fireWith);
+                      }),
+                      a.promise(s),
+                      t && t.call(s, s),
+                      s
+                    );
+                  },
+                  when: function (t) {
+                    function e(e, n, r) {
+                      return function (t) {
+                        (n[e] = this),
+                          (r[e] = 1 < arguments.length ? c.call(arguments) : t),
+                          r === i ? u.notifyWith(n, r) : --l || u.resolveWith(n, r);
+                      };
+                    }
+                    var i,
+                      n,
+                      r,
+                      o = 0,
+                      a = c.call(arguments),
+                      s = a.length,
+                      l = 1 !== s || (t && B.isFunction(t.promise)) ? s : 0,
+                      u = 1 === l ? t : B.Deferred();
+                    if (1 < s)
+                      for (i = new Array(s), n = new Array(s), r = new Array(s); o < s; o++)
+                        a[o] && B.isFunction(a[o].promise)
+                          ? a[o]
+                              .promise()
+                              .progress(e(o, n, i))
+                              .done(e(o, r, a))
+                              .fail(u.reject)
+                          : --l;
+                    return l || u.resolveWith(r, a), u.promise();
+                  },
+                }),
+                (B.fn.ready = function (t) {
+                  return B.ready.promise().done(t), this;
+                }),
+                B.extend({
+                  isReady: !1,
+                  readyWait: 1,
+                  holdReady: function (t) {
+                    t ? B.readyWait++ : B.ready(!0);
+                  },
+                  ready: function (t) {
+                    (!0 === t ? --B.readyWait : B.isReady) ||
+                      ((B.isReady = !0) !== t && 0 < --B.readyWait) ||
+                      (nt.resolveWith(E, [B]),
+                      B.fn.triggerHandler && (B(E).triggerHandler('ready'), B(E).off('ready')));
+                  },
+                }),
+                (B.ready.promise = function (t) {
+                  return (
+                    nt ||
+                      ((nt = B.Deferred()),
+                      'complete' === E.readyState ||
+                      ('loading' !== E.readyState && !E.documentElement.doScroll)
+                        ? w.setTimeout(B.ready)
+                        : (E.addEventListener('DOMContentLoaded', rt),
+                          w.addEventListener('load', rt))),
+                    nt.promise(t)
+                  );
+                }),
+                B.ready.promise();
+              function A(t, e, n, r, i, o, a) {
+                var s = 0,
+                  l = t.length,
+                  u = null == n;
+                if ('object' === B.type(n)) for (s in ((i = !0), n)) A(t, e, s, n[s], !0, o, a);
+                else if (
+                  void 0 !== r &&
+                  ((i = !0),
+                  B.isFunction(r) || (a = !0),
+                  (e = u
+                    ? a
+                      ? (e.call(t, r), null)
+                      : ((u = e),
+                        function (t, e, n) {
+                          return u.call(B(t), n);
+                        })
+                    : e))
+                )
+                  for (; s < l; s++) e(t[s], n, a ? r : r.call(t[s], s, e(t[s], n)));
+                return i ? t : u ? e.call(t) : l ? e(t[0], n) : o;
+              }
+              function g(t) {
+                return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType;
+              }
+              function n() {
+                this.expando = B.expando + n.uid++;
+              }
+              (n.uid = 1),
+                (n.prototype = {
+                  register: function (t, e) {
+                    e = e || {};
+                    return (
+                      t.nodeType
+                        ? (t[this.expando] = e)
+                        : Object.defineProperty(t, this.expando, {
+                            value: e,
+                            writable: !0,
+                            configurable: !0,
+                          }),
+                      t[this.expando]
+                    );
+                  },
+                  cache: function (t) {
+                    if (!g(t)) return {};
+                    var e = t[this.expando];
+                    return (
+                      e ||
+                        ((e = {}),
+                        g(t) &&
+                          (t.nodeType
+                            ? (t[this.expando] = e)
+                            : Object.defineProperty(t, this.expando, {
+                                value: e,
+                                configurable: !0,
+                              }))),
+                      e
+                    );
+                  },
+                  set: function (t, e, n) {
+                    var r,
+                      i = this.cache(t);
+                    if ('string' == typeof e) i[e] = n;
+                    else for (r in e) i[r] = e[r];
+                    return i;
+                  },
+                  get: function (t, e) {
+                    return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][e];
+                  },
+                  access: function (t, e, n) {
+                    var r;
+                    return void 0 === e || (e && 'string' == typeof e && void 0 === n)
+                      ? void 0 !== (r = this.get(t, e))
+                        ? r
+                        : this.get(t, B.camelCase(e))
+                      : (this.set(t, e, n), void 0 !== n ? n : e);
+                  },
+                  remove: function (t, e) {
+                    var n,
+                      r,
+                      i,
+                      o = t[this.expando];
+                    if (void 0 !== o) {
+                      if (void 0 === e) this.register(t);
+                      else {
+                        n = (r = B.isArray(e)
+                          ? e.concat(e.map(B.camelCase))
+                          : ((i = B.camelCase(e)),
+                            e in o ? [e, i] : (r = i) in o ? [r] : r.match(C) || [])).length;
+                        for (; n--; ) delete o[r[n]];
+                      }
+                      (void 0 !== e && !B.isEmptyObject(o)) ||
+                        (t.nodeType ? (t[this.expando] = void 0) : delete t[this.expando]);
+                    }
+                  },
+                  hasData: function (t) {
+                    t = t[this.expando];
+                    return void 0 !== t && !B.isEmptyObject(t);
+                  },
+                });
+              var m = new n(),
+                l = new n(),
+                it = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+                ot = /[A-Z]/g;
+              function at(t, e, n) {
+                var r;
+                if (void 0 === n && 1 === t.nodeType)
+                  if (
+                    ((r = 'data-' + e.replace(ot, '-$&').toLowerCase()),
+                    'string' == typeof (n = t.getAttribute(r)))
+                  ) {
+                    try {
+                      n =
+                        'true' === n ||
+                        ('false' !== n &&
+                          ('null' === n
+                            ? null
+                            : +n + '' === n
+                              ? +n
+                              : it.test(n)
+                                ? B.parseJSON(n)
+                                : n));
+                    } catch (t) {}
+                    l.set(t, e, n);
+                  } else n = void 0;
+                return n;
+              }
+              B.extend({
+                hasData: function (t) {
+                  return l.hasData(t) || m.hasData(t);
+                },
+                data: function (t, e, n) {
+                  return l.access(t, e, n);
+                },
+                removeData: function (t, e) {
+                  l.remove(t, e);
+                },
+                _data: function (t, e, n) {
+                  return m.access(t, e, n);
+                },
+                _removeData: function (t, e) {
+                  m.remove(t, e);
+                },
+              }),
+                B.fn.extend({
+                  data: function (r, t) {
+                    var e,
+                      n,
+                      i,
+                      o = this[0],
+                      a = o && o.attributes;
+                    if (void 0 !== r)
+                      return 'object' == typeof r
+                        ? this.each(function () {
+                            l.set(this, r);
+                          })
+                        : A(
+                            this,
+                            function (e) {
+                              var t, n;
+                              if (o && void 0 === e)
+                                return void 0 !==
+                                  (t = l.get(o, r) || l.get(o, r.replace(ot, '-$&').toLowerCase()))
+                                  ? t
+                                  : ((n = B.camelCase(r)),
+                                    void 0 !== (t = l.get(o, n)) ||
+                                    void 0 !== (t = at(o, n, void 0))
+                                      ? t
+                                      : void 0);
+                              (n = B.camelCase(r)),
+                                this.each(function () {
+                                  var t = l.get(this, n);
+                                  l.set(this, n, e),
+                                    -1 < r.indexOf('-') && void 0 !== t && l.set(this, r, e);
+                                });
+                            },
+                            null,
+                            t,
+                            1 < arguments.length,
+                            null,
+                            !0,
+                          );
+                    if (
+                      this.length &&
+                      ((i = l.get(o)), 1 === o.nodeType && !m.get(o, 'hasDataAttrs'))
+                    ) {
+                      for (e = a.length; e--; )
+                        a[e] &&
+                          0 === (n = a[e].name).indexOf('data-') &&
+                          ((n = B.camelCase(n.slice(5))), at(o, n, i[n]));
+                      m.set(o, 'hasDataAttrs', !0);
+                    }
+                    return i;
+                  },
+                  removeData: function (t) {
+                    return this.each(function () {
+                      l.remove(this, t);
+                    });
+                  },
+                }),
+                B.extend({
+                  queue: function (t, e, n) {
+                    var r;
+                    if (t)
+                      return (
+                        (r = m.get(t, (e = (e || 'fx') + 'queue'))),
+                        n &&
+                          (!r || B.isArray(n) ? (r = m.access(t, e, B.makeArray(n))) : r.push(n)),
+                        r || []
+                      );
+                  },
+                  dequeue: function (t, e) {
+                    e = e || 'fx';
+                    var n = B.queue(t, e),
+                      r = n.length,
+                      i = n.shift(),
+                      o = B._queueHooks(t, e);
+                    'inprogress' === i && ((i = n.shift()), r--),
+                      i &&
+                        ('fx' === e && n.unshift('inprogress'),
+                        delete o.stop,
+                        i.call(
+                          t,
+                          function () {
+                            B.dequeue(t, e);
+                          },
+                          o,
+                        )),
+                      !r && o && o.empty.fire();
+                  },
+                  _queueHooks: function (t, e) {
+                    var n = e + 'queueHooks';
+                    return (
+                      m.get(t, n) ||
+                      m.access(t, n, {
+                        empty: B.Callbacks('once memory').add(function () {
+                          m.remove(t, [e + 'queue', n]);
+                        }),
+                      })
+                    );
+                  },
+                }),
+                B.fn.extend({
+                  queue: function (e, n) {
+                    var t = 2;
+                    return (
+                      'string' != typeof e && ((n = e), (e = 'fx'), t--),
+                      arguments.length < t
+                        ? B.queue(this[0], e)
+                        : void 0 === n
+                          ? this
+                          : this.each(function () {
+                              var t = B.queue(this, e, n);
+                              B._queueHooks(this, e),
+                                'fx' === e && 'inprogress' !== t[0] && B.dequeue(this, e);
+                            })
+                    );
+                  },
+                  dequeue: function (t) {
+                    return this.each(function () {
+                      B.dequeue(this, t);
+                    });
+                  },
+                  clearQueue: function (t) {
+                    return this.queue(t || 'fx', []);
+                  },
+                  promise: function (t, e) {
+                    function n() {
+                      --i || o.resolveWith(a, [a]);
+                    }
+                    var r,
+                      i = 1,
+                      o = B.Deferred(),
+                      a = this,
+                      s = this.length;
+                    for ('string' != typeof t && ((e = t), (t = void 0)), t = t || 'fx'; s--; )
+                      (r = m.get(a[s], t + 'queueHooks')) && r.empty && (i++, r.empty.add(n));
+                    return n(), o.promise(e);
+                  },
+                });
+              function v(t, e) {
+                return 'none' === B.css((t = e || t), 'display') || !B.contains(t.ownerDocument, t);
+              }
+              var t = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
+                h = new RegExp('^(?:([+-])=|)(' + t + ')([a-z%]*)$', 'i'),
+                s = ['Top', 'Right', 'Bottom', 'Left'];
+              function st(t, e, n, r) {
+                var i,
+                  o = 1,
+                  a = 20,
+                  s = r
+                    ? function () {
+                        return r.cur();
+                      }
+                    : function () {
+                        return B.css(t, e, '');
+                      },
+                  l = s(),
+                  u = (n && n[3]) || (B.cssNumber[e] ? '' : 'px'),
+                  c = (B.cssNumber[e] || ('px' !== u && +l)) && h.exec(B.css(t, e));
+                if (c && c[3] !== u)
+                  for (
+                    u = u || c[3], n = n || [], c = +l || 1;
+                    (c /= o = o || '.5'),
+                      B.style(t, e, c + u),
+                      o !== (o = s() / l) && 1 !== o && --a;
+
+                  );
+                return (
+                  n &&
+                    ((c = +c || +l || 0),
+                    (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]),
+                    r && ((r.unit = u), (r.start = c), (r.end = i))),
+                  i
+                );
+              }
+              var lt = /^(?:checkbox|radio)$/i,
+                ut = /<([\w:-]+)/,
+                ct = /^$|\/(?:java|ecma)script/i,
+                b = {
+                  option: [1, "<select multiple='multiple'>", '</select>'],
+                  thead: [1, '<table>', '</table>'],
+                  col: [2, '<table><colgroup>', '</colgroup></table>'],
+                  tr: [2, '<table><tbody>', '</tbody></table>'],
+                  td: [3, '<table><tbody><tr>', '</tr></tbody></table>'],
+                  _default: [0, '', ''],
+                };
+              function y(t, e) {
+                var n =
+                  void 0 !== t.getElementsByTagName
+                    ? t.getElementsByTagName(e || '*')
+                    : void 0 !== t.querySelectorAll
+                      ? t.querySelectorAll(e || '*')
+                      : [];
+                return void 0 === e || (e && B.nodeName(t, e)) ? B.merge([t], n) : n;
+              }
+              function At(t, e) {
+                for (var n = 0, r = t.length; n < r; n++)
+                  m.set(t[n], 'globalEval', !e || m.get(e[n], 'globalEval'));
+              }
+              (b.optgroup = b.option),
+                (b.tbody = b.tfoot = b.colgroup = b.caption = b.thead),
+                (b.th = b.td);
+              var ht = /<|&#?\w+;/;
+              function pt(t, e, n, r, i) {
+                for (
+                  var o, a, s, l, u, c = e.createDocumentFragment(), A = [], h = 0, p = t.length;
+                  h < p;
+                  h++
+                )
+                  if ((o = t[h]) || 0 === o)
+                    if ('object' === B.type(o)) B.merge(A, o.nodeType ? [o] : o);
+                    else if (ht.test(o)) {
+                      for (
+                        a = a || c.appendChild(e.createElement('div')),
+                          s = (ut.exec(o) || ['', ''])[1].toLowerCase(),
+                          s = b[s] || b._default,
+                          a.innerHTML = s[1] + B.htmlPrefilter(o) + s[2],
+                          u = s[0];
+                        u--;
+
+                      )
+                        a = a.lastChild;
+                      B.merge(A, a.childNodes), ((a = c.firstChild).textContent = '');
+                    } else A.push(e.createTextNode(o));
+                for (c.textContent = '', h = 0; (o = A[h++]); )
+                  if (r && -1 < B.inArray(o, r)) i && i.push(o);
+                  else if (
+                    ((l = B.contains(o.ownerDocument, o)),
+                    (a = y(c.appendChild(o), 'script')),
+                    l && At(a),
+                    n)
+                  )
+                    for (u = 0; (o = a[u++]); ) ct.test(o.type || '') && n.push(o);
+                return c;
+              }
+              (e = E.createDocumentFragment().appendChild(E.createElement('div'))),
+                (k = E.createElement('input')).setAttribute('type', 'radio'),
+                k.setAttribute('checked', 'checked'),
+                k.setAttribute('name', 't'),
+                e.appendChild(k),
+                (f.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked),
+                (e.innerHTML = '<textarea>x</textarea>'),
+                (f.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue);
+              var dt = /^key/,
+                ft = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+                gt = /^([^.]*)(?:\.(.+)|)/;
+              function mt() {
+                return !0;
+              }
+              function u() {
+                return !1;
+              }
+              function vt() {
+                try {
+                  return E.activeElement;
+                } catch (t) {}
+              }
+              function bt(t, e, n, r, i, o) {
+                var a, s;
+                if ('object' == typeof e) {
+                  for (s in ('string' != typeof n && ((r = r || n), (n = void 0)), e))
+                    bt(t, s, n, r, e[s], o);
+                  return t;
+                }
+                if (
+                  (null == r && null == i
+                    ? ((i = n), (r = n = void 0))
+                    : null == i &&
+                      ('string' == typeof n
+                        ? ((i = r), (r = void 0))
+                        : ((i = r), (r = n), (n = void 0))),
+                  !1 === i)
+                )
+                  i = u;
+                else if (!i) return t;
+                return (
+                  1 === o &&
+                    ((a = i),
+                    ((i = function (t) {
+                      return B().off(t), a.apply(this, arguments);
+                    }).guid = a.guid || (a.guid = B.guid++))),
+                  t.each(function () {
+                    B.event.add(this, e, i, r, n);
+                  })
+                );
+              }
+              (B.event = {
+                global: {},
+                add: function (e, t, n, r, i) {
+                  var o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c,
+                    A,
+                    h,
+                    p,
+                    d = m.get(e);
+                  if (d)
+                    for (
+                      n.handler && ((n = (o = n).handler), (i = o.selector)),
+                        n.guid || (n.guid = B.guid++),
+                        (s = d.events) || (s = d.events = {}),
+                        (a = d.handle) ||
+                          (a = d.handle =
+                            function (t) {
+                              return void 0 !== B && B.event.triggered !== t.type
+                                ? B.event.dispatch.apply(e, arguments)
+                                : void 0;
+                            }),
+                        l = (t = (t || '').match(C) || ['']).length;
+                      l--;
+
+                    )
+                      (A = p = (h = gt.exec(t[l]) || [])[1]),
+                        (h = (h[2] || '').split('.').sort()),
+                        A &&
+                          ((u = B.event.special[A] || {}),
+                          (A = (i ? u.delegateType : u.bindType) || A),
+                          (u = B.event.special[A] || {}),
+                          (p = B.extend(
+                            {
+                              type: A,
+                              origType: p,
+                              data: r,
+                              handler: n,
+                              guid: n.guid,
+                              selector: i,
+                              needsContext: i && B.expr.match.needsContext.test(i),
+                              namespace: h.join('.'),
+                            },
+                            o,
+                          )),
+                          (c = s[A]) ||
+                            (((c = s[A] = []).delegateCount = 0),
+                            (u.setup && !1 !== u.setup.call(e, r, h, a)) ||
+                              (e.addEventListener && e.addEventListener(A, a))),
+                          u.add && (u.add.call(e, p), p.handler.guid || (p.handler.guid = n.guid)),
+                          i ? c.splice(c.delegateCount++, 0, p) : c.push(p),
+                          (B.event.global[A] = !0));
+                },
+                remove: function (t, e, n, r, i) {
+                  var o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c,
+                    A,
+                    h,
+                    p,
+                    d,
+                    f,
+                    g = m.hasData(t) && m.get(t);
+                  if (g && (l = g.events)) {
+                    for (u = (e = (e || '').match(C) || ['']).length; u--; )
+                      if (
+                        ((p = f = (s = gt.exec(e[u]) || [])[1]),
+                        (d = (s[2] || '').split('.').sort()),
+                        p)
+                      ) {
+                        for (
+                          A = B.event.special[p] || {},
+                            h = l[(p = (r ? A.delegateType : A.bindType) || p)] || [],
+                            s = s[2] && new RegExp('(^|\\.)' + d.join('\\.(?:.*\\.|)') + '(\\.|$)'),
+                            a = o = h.length;
+                          o--;
+
+                        )
+                          (c = h[o]),
+                            (!i && f !== c.origType) ||
+                              (n && n.guid !== c.guid) ||
+                              (s && !s.test(c.namespace)) ||
+                              (r && r !== c.selector && ('**' !== r || !c.selector)) ||
+                              (h.splice(o, 1),
+                              c.selector && h.delegateCount--,
+                              A.remove && A.remove.call(t, c));
+                        a &&
+                          !h.length &&
+                          ((A.teardown && !1 !== A.teardown.call(t, d, g.handle)) ||
+                            B.removeEvent(t, p, g.handle),
+                          delete l[p]);
+                      } else for (p in l) B.event.remove(t, p + e[u], n, r, !0);
+                    B.isEmptyObject(l) && m.remove(t, 'handle events');
+                  }
+                },
+                dispatch: function (t) {
+                  t = B.event.fix(t);
+                  var e,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a = c.call(arguments),
+                    s = (m.get(this, 'events') || {})[t.type] || [],
+                    l = B.event.special[t.type] || {};
+                  if (
+                    (((a[0] = t).delegateTarget = this),
+                    !l.preDispatch || !1 !== l.preDispatch.call(this, t))
+                  ) {
+                    for (
+                      o = B.event.handlers.call(this, t, s), e = 0;
+                      (r = o[e++]) && !t.isPropagationStopped();
+
+                    )
+                      for (
+                        t.currentTarget = r.elem, n = 0;
+                        (i = r.handlers[n++]) && !t.isImmediatePropagationStopped();
+
+                      )
+                        (t.rnamespace && !t.rnamespace.test(i.namespace)) ||
+                          ((t.handleObj = i),
+                          (t.data = i.data),
+                          void 0 !==
+                            (i = ((B.event.special[i.origType] || {}).handle || i.handler).apply(
+                              r.elem,
+                              a,
+                            )) &&
+                            !1 === (t.result = i) &&
+                            (t.preventDefault(), t.stopPropagation()));
+                    return l.postDispatch && l.postDispatch.call(this, t), t.result;
+                  }
+                },
+                handlers: function (t, e) {
+                  var n,
+                    r,
+                    i,
+                    o,
+                    a = [],
+                    s = e.delegateCount,
+                    l = t.target;
+                  if (s && l.nodeType && ('click' !== t.type || isNaN(t.button) || t.button < 1))
+                    for (; l !== this; l = l.parentNode || this)
+                      if (1 === l.nodeType && (!0 !== l.disabled || 'click' !== t.type)) {
+                        for (r = [], n = 0; n < s; n++)
+                          void 0 === r[(i = (o = e[n]).selector + ' ')] &&
+                            (r[i] = o.needsContext
+                              ? -1 < B(i, this).index(l)
+                              : B.find(i, this, null, [l]).length),
+                            r[i] && r.push(o);
+                        r.length && a.push({ elem: l, handlers: r });
+                      }
+                  return s < e.length && a.push({ elem: this, handlers: e.slice(s) }), a;
+                },
+                props:
+                  'altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which'.split(
+                    ' ',
+                  ),
+                fixHooks: {},
+                keyHooks: {
+                  props: 'char charCode key keyCode'.split(' '),
+                  filter: function (t, e) {
+                    return (
+                      null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t
+                    );
+                  },
+                },
+                mouseHooks: {
+                  props:
+                    'button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement'.split(
+                      ' ',
+                    ),
+                  filter: function (t, e) {
+                    var n,
+                      r,
+                      i = e.button;
+                    return (
+                      null == t.pageX &&
+                        null != e.clientX &&
+                        ((n = (r = t.target.ownerDocument || E).documentElement),
+                        (r = r.body),
+                        (t.pageX =
+                          e.clientX +
+                          ((n && n.scrollLeft) || (r && r.scrollLeft) || 0) -
+                          ((n && n.clientLeft) || (r && r.clientLeft) || 0)),
+                        (t.pageY =
+                          e.clientY +
+                          ((n && n.scrollTop) || (r && r.scrollTop) || 0) -
+                          ((n && n.clientTop) || (r && r.clientTop) || 0))),
+                      t.which || void 0 === i || (t.which = 1 & i ? 1 : 2 & i ? 3 : 4 & i ? 2 : 0),
+                      t
+                    );
+                  },
+                },
+                fix: function (t) {
+                  if (t[B.expando]) return t;
+                  var e,
+                    n,
+                    r,
+                    i = t.type,
+                    o = t,
+                    a = this.fixHooks[i];
+                  for (
+                    a ||
+                      (this.fixHooks[i] = a =
+                        ft.test(i) ? this.mouseHooks : dt.test(i) ? this.keyHooks : {}),
+                      r = a.props ? this.props.concat(a.props) : this.props,
+                      t = new B.Event(o),
+                      e = r.length;
+                    e--;
+
+                  )
+                    t[(n = r[e])] = o[n];
+                  return (
+                    t.target || (t.target = E),
+                    3 === t.target.nodeType && (t.target = t.target.parentNode),
+                    a.filter ? a.filter(t, o) : t
+                  );
+                },
+                special: {
+                  load: { noBubble: !0 },
+                  focus: {
+                    trigger: function () {
+                      if (this !== vt() && this.focus) return this.focus(), !1;
+                    },
+                    delegateType: 'focusin',
+                  },
+                  blur: {
+                    trigger: function () {
+                      if (this === vt() && this.blur) return this.blur(), !1;
+                    },
+                    delegateType: 'focusout',
+                  },
+                  click: {
+                    trigger: function () {
+                      if ('checkbox' === this.type && this.click && B.nodeName(this, 'input'))
+                        return this.click(), !1;
+                    },
+                    _default: function (t) {
+                      return B.nodeName(t.target, 'a');
+                    },
+                  },
+                  beforeunload: {
+                    postDispatch: function (t) {
+                      void 0 !== t.result &&
+                        t.originalEvent &&
+                        (t.originalEvent.returnValue = t.result);
+                    },
+                  },
+                },
+              }),
+                (B.removeEvent = function (t, e, n) {
+                  t.removeEventListener && t.removeEventListener(e, n);
+                }),
+                (B.Event = function (t, e) {
+                  if (!(this instanceof B.Event)) return new B.Event(t, e);
+                  t && t.type
+                    ? ((this.originalEvent = t),
+                      (this.type = t.type),
+                      (this.isDefaultPrevented =
+                        t.defaultPrevented ||
+                        (void 0 === t.defaultPrevented && !1 === t.returnValue)
+                          ? mt
+                          : u))
+                    : (this.type = t),
+                    e && B.extend(this, e),
+                    (this.timeStamp = (t && t.timeStamp) || B.now()),
+                    (this[B.expando] = !0);
+                }),
+                (B.Event.prototype = {
+                  constructor: B.Event,
+                  isDefaultPrevented: u,
+                  isPropagationStopped: u,
+                  isImmediatePropagationStopped: u,
+                  isSimulated: !1,
+                  preventDefault: function () {
+                    var t = this.originalEvent;
+                    (this.isDefaultPrevented = mt), t && !this.isSimulated && t.preventDefault();
+                  },
+                  stopPropagation: function () {
+                    var t = this.originalEvent;
+                    (this.isPropagationStopped = mt), t && !this.isSimulated && t.stopPropagation();
+                  },
+                  stopImmediatePropagation: function () {
+                    var t = this.originalEvent;
+                    (this.isImmediatePropagationStopped = mt),
+                      t && !this.isSimulated && t.stopImmediatePropagation(),
+                      this.stopPropagation();
+                  },
+                }),
+                B.each(
+                  {
+                    mouseenter: 'mouseover',
+                    mouseleave: 'mouseout',
+                    pointerenter: 'pointerover',
+                    pointerleave: 'pointerout',
+                  },
+                  function (t, i) {
+                    B.event.special[t] = {
+                      delegateType: i,
+                      bindType: i,
+                      handle: function (t) {
+                        var e,
+                          n = t.relatedTarget,
+                          r = t.handleObj;
+                        return (
+                          (n && (n === this || B.contains(this, n))) ||
+                            ((t.type = r.origType),
+                            (e = r.handler.apply(this, arguments)),
+                            (t.type = i)),
+                          e
+                        );
+                      },
+                    };
+                  },
+                ),
+                B.fn.extend({
+                  on: function (t, e, n, r) {
+                    return bt(this, t, e, n, r);
+                  },
+                  one: function (t, e, n, r) {
+                    return bt(this, t, e, n, r, 1);
+                  },
+                  off: function (t, e, n) {
+                    var r, i;
+                    if (t && t.preventDefault && t.handleObj)
+                      return (
+                        (r = t.handleObj),
+                        B(t.delegateTarget).off(
+                          r.namespace ? r.origType + '.' + r.namespace : r.origType,
+                          r.selector,
+                          r.handler,
+                        ),
+                        this
+                      );
+                    if ('object' != typeof t)
+                      return (
+                        (!1 !== e && 'function' != typeof e) || ((n = e), (e = void 0)),
+                        !1 === n && (n = u),
+                        this.each(function () {
+                          B.event.remove(this, t, n, e);
+                        })
+                      );
+                    for (i in t) this.off(i, e, t[i]);
+                    return this;
+                  },
+                });
+              var yt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
+                wt = /<script|<style|<link/i,
+                Et = /checked\s*(?:[^=]|=\s*.checked.)/i,
+                Bt = /^true\/(.*)/,
+                Ct = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+              function xt(t, e) {
+                return B.nodeName(t, 'table') &&
+                  B.nodeName(11 !== e.nodeType ? e : e.firstChild, 'tr')
+                  ? t.getElementsByTagName('tbody')[0] ||
+                      t.appendChild(t.ownerDocument.createElement('tbody'))
+                  : t;
+              }
+              function It(t) {
+                return (t.type = (null !== t.getAttribute('type')) + '/' + t.type), t;
+              }
+              function Mt(t) {
+                var e = Bt.exec(t.type);
+                return e ? (t.type = e[1]) : t.removeAttribute('type'), t;
+              }
+              function Dt(t, e) {
+                var n, r, i, o, a, s;
+                if (1 === e.nodeType) {
+                  if (m.hasData(t) && ((o = m.access(t)), (a = m.set(e, o)), (s = o.events)))
+                    for (i in (delete a.handle, (a.events = {}), s))
+                      for (n = 0, r = s[i].length; n < r; n++) B.event.add(e, i, s[i][n]);
+                  l.hasData(t) && ((o = l.access(t)), (a = B.extend({}, o)), l.set(e, a));
+                }
+              }
+              function x(n, r, i, o) {
+                r = P.apply([], r);
+                var t,
+                  e,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c = 0,
+                  A = n.length,
+                  h = A - 1,
+                  p = r[0],
+                  d = B.isFunction(p);
+                if (d || (1 < A && 'string' == typeof p && !f.checkClone && Et.test(p)))
+                  return n.each(function (t) {
+                    var e = n.eq(t);
+                    d && (r[0] = p.call(this, t, e.html())), x(e, r, i, o);
+                  });
+                if (
+                  A &&
+                  ((e = (t = pt(r, n[0].ownerDocument, !1, n, o)).firstChild),
+                  1 === t.childNodes.length && (t = e),
+                  e || o)
+                ) {
+                  for (s = (a = B.map(y(t, 'script'), It)).length; c < A; c++)
+                    (l = t),
+                      c !== h && ((l = B.clone(l, !0, !0)), s && B.merge(a, y(l, 'script'))),
+                      i.call(n[c], l, c);
+                  if (s)
+                    for (u = a[a.length - 1].ownerDocument, B.map(a, Mt), c = 0; c < s; c++)
+                      (l = a[c]),
+                        ct.test(l.type || '') &&
+                          !m.access(l, 'globalEval') &&
+                          B.contains(u, l) &&
+                          (l.src
+                            ? B._evalUrl && B._evalUrl(l.src)
+                            : B.globalEval(l.textContent.replace(Ct, '')));
+                }
+                return n;
+              }
+              function St(t, e, n) {
+                for (var r, i = e ? B.filter(e, t) : t, o = 0; null != (r = i[o]); o++)
+                  n || 1 !== r.nodeType || B.cleanData(y(r)),
+                    r.parentNode &&
+                      (n && B.contains(r.ownerDocument, r) && At(y(r, 'script')),
+                      r.parentNode.removeChild(r));
+                return t;
+              }
+              B.extend({
+                htmlPrefilter: function (t) {
+                  return t.replace(yt, '<$1></$2>');
+                },
+                clone: function (t, e, n) {
+                  var r,
+                    i,
+                    o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c = t.cloneNode(!0),
+                    A = B.contains(t.ownerDocument, t);
+                  if (
+                    !(f.noCloneChecked || (1 !== t.nodeType && 11 !== t.nodeType) || B.isXMLDoc(t))
+                  )
+                    for (a = y(c), r = 0, i = (o = y(t)).length; r < i; r++)
+                      (s = o[r]),
+                        (l = a[r]),
+                        (u = void 0),
+                        'input' === (u = l.nodeName.toLowerCase()) && lt.test(s.type)
+                          ? (l.checked = s.checked)
+                          : ('input' !== u && 'textarea' !== u) ||
+                            (l.defaultValue = s.defaultValue);
+                  if (e)
+                    if (n)
+                      for (o = o || y(t), a = a || y(c), r = 0, i = o.length; r < i; r++)
+                        Dt(o[r], a[r]);
+                    else Dt(t, c);
+                  return 0 < (a = y(c, 'script')).length && At(a, !A && y(t, 'script')), c;
+                },
+                cleanData: function (t) {
+                  for (var e, n, r, i = B.event.special, o = 0; void 0 !== (n = t[o]); o++)
+                    if (g(n)) {
+                      if ((e = n[m.expando])) {
+                        if (e.events)
+                          for (r in e.events)
+                            i[r] ? B.event.remove(n, r) : B.removeEvent(n, r, e.handle);
+                        n[m.expando] = void 0;
+                      }
+                      n[l.expando] && (n[l.expando] = void 0);
+                    }
+                },
+              }),
+                B.fn.extend({
+                  domManip: x,
+                  detach: function (t) {
+                    return St(this, t, !0);
+                  },
+                  remove: function (t) {
+                    return St(this, t);
+                  },
+                  text: function (t) {
+                    return A(
+                      this,
+                      function (t) {
+                        return void 0 === t
+                          ? B.text(this)
+                          : this.empty().each(function () {
+                              (1 !== this.nodeType &&
+                                11 !== this.nodeType &&
+                                9 !== this.nodeType) ||
+                                (this.textContent = t);
+                            });
+                      },
+                      null,
+                      t,
+                      arguments.length,
+                    );
+                  },
+                  append: function () {
+                    return x(this, arguments, function (t) {
+                      (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) ||
+                        xt(this, t).appendChild(t);
+                    });
+                  },
+                  prepend: function () {
+                    return x(this, arguments, function (t) {
+                      var e;
+                      (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) ||
+                        (e = xt(this, t)).insertBefore(t, e.firstChild);
+                    });
+                  },
+                  before: function () {
+                    return x(this, arguments, function (t) {
+                      this.parentNode && this.parentNode.insertBefore(t, this);
+                    });
+                  },
+                  after: function () {
+                    return x(this, arguments, function (t) {
+                      this.parentNode && this.parentNode.insertBefore(t, this.nextSibling);
+                    });
+                  },
+                  empty: function () {
+                    for (var t, e = 0; null != (t = this[e]); e++)
+                      1 === t.nodeType && (B.cleanData(y(t, !1)), (t.textContent = ''));
+                    return this;
+                  },
+                  clone: function (t, e) {
+                    return (
+                      (t = null != t && t),
+                      (e = null == e ? t : e),
+                      this.map(function () {
+                        return B.clone(this, t, e);
+                      })
+                    );
+                  },
+                  html: function (t) {
+                    return A(
+                      this,
+                      function (t) {
+                        var e = this[0] || {},
+                          n = 0,
+                          r = this.length;
+                        if (void 0 === t && 1 === e.nodeType) return e.innerHTML;
+                        if (
+                          'string' == typeof t &&
+                          !wt.test(t) &&
+                          !b[(ut.exec(t) || ['', ''])[1].toLowerCase()]
+                        ) {
+                          t = B.htmlPrefilter(t);
+                          try {
+                            for (; n < r; n++)
+                              1 === (e = this[n] || {}).nodeType &&
+                                (B.cleanData(y(e, !1)), (e.innerHTML = t));
+                            e = 0;
+                          } catch (t) {}
+                        }
+                        e && this.empty().append(t);
+                      },
+                      null,
+                      t,
+                      arguments.length,
+                    );
+                  },
+                  replaceWith: function () {
+                    var n = [];
+                    return x(
+                      this,
+                      arguments,
+                      function (t) {
+                        var e = this.parentNode;
+                        B.inArray(this, n) < 0 &&
+                          (B.cleanData(y(this)), e && e.replaceChild(t, this));
+                      },
+                      n,
+                    );
+                  },
+                }),
+                B.each(
+                  {
+                    appendTo: 'append',
+                    prependTo: 'prepend',
+                    insertBefore: 'before',
+                    insertAfter: 'after',
+                    replaceAll: 'replaceWith',
+                  },
+                  function (t, a) {
+                    B.fn[t] = function (t) {
+                      for (var e, n = [], r = B(t), i = r.length - 1, o = 0; o <= i; o++)
+                        (e = o === i ? this : this.clone(!0)), B(r[o])[a](e), L.apply(n, e.get());
+                      return this.pushStack(n);
+                    };
+                  },
+                );
+              var kt,
+                Ft = { HTML: 'block', BODY: 'block' };
+              function Qt(t, e) {
+                (t = B(e.createElement(t)).appendTo(e.body)), (e = B.css(t[0], 'display'));
+                return t.detach(), e;
+              }
+              function _t(t) {
+                var e = E,
+                  n = Ft[t];
+                return (
+                  n ||
+                    (('none' !== (n = Qt(t, e)) && n) ||
+                      ((e = (kt = (
+                        kt || B("<iframe frameborder='0' width='0' height='0'/>")
+                      ).appendTo(e.documentElement))[0].contentDocument).write(),
+                      e.close(),
+                      (n = Qt(t, e)),
+                      kt.detach()),
+                    (Ft[t] = n)),
+                  n
+                );
+              }
+              function Tt(t) {
+                var e = t.ownerDocument.defaultView;
+                return (e = e && e.opener ? e : w).getComputedStyle(t);
+              }
+              function Rt(t, e, n, r) {
+                var i,
+                  o = {};
+                for (i in e) (o[i] = t.style[i]), (t.style[i] = e[i]);
+                for (i in ((n = n.apply(t, r || [])), e)) t.style[i] = o[i];
+                return n;
+              }
+              var Ut,
+                o,
+                Nt,
+                Pt,
+                a,
+                p,
+                Lt = /^margin/,
+                Yt = new RegExp('^(' + t + ')(?!px)[a-z%]+$', 'i'),
+                I = E.documentElement;
+              function Ot() {
+                (p.style.cssText =
+                  '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%'),
+                  (p.innerHTML = ''),
+                  I.appendChild(a);
+                var t = w.getComputedStyle(p);
+                (Ut = '1%' !== t.top),
+                  (Pt = '2px' === t.marginLeft),
+                  (o = '4px' === t.width),
+                  (p.style.marginRight = '50%'),
+                  (Nt = '4px' === t.marginRight),
+                  I.removeChild(a);
+              }
+              function M(t, e, n) {
+                var r,
+                  i,
+                  o = t.style;
+                return (
+                  ('' !== (i = (n = n || Tt(t)) ? n.getPropertyValue(e) || n[e] : void 0) &&
+                    void 0 !== i) ||
+                    B.contains(t.ownerDocument, t) ||
+                    (i = B.style(t, e)),
+                  n &&
+                    !f.pixelMarginRight() &&
+                    Yt.test(i) &&
+                    Lt.test(e) &&
+                    ((t = o.width),
+                    (e = o.minWidth),
+                    (r = o.maxWidth),
+                    (o.minWidth = o.maxWidth = o.width = i),
+                    (i = n.width),
+                    (o.width = t),
+                    (o.minWidth = e),
+                    (o.maxWidth = r)),
+                  void 0 !== i ? i + '' : i
+                );
+              }
+              function Gt(t, e) {
+                return {
+                  get: function () {
+                    if (!t()) return (this.get = e).apply(this, arguments);
+                    delete this.get;
+                  },
+                };
+              }
+              (a = E.createElement('div')),
+                (p = E.createElement('div')).style &&
+                  ((p.style.backgroundClip = 'content-box'),
+                  (p.cloneNode(!0).style.backgroundClip = ''),
+                  (f.clearCloneStyle = 'content-box' === p.style.backgroundClip),
+                  (a.style.cssText =
+                    'border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute'),
+                  a.appendChild(p),
+                  B.extend(f, {
+                    pixelPosition: function () {
+                      return Ot(), Ut;
+                    },
+                    boxSizingReliable: function () {
+                      return null == o && Ot(), o;
+                    },
+                    pixelMarginRight: function () {
+                      return null == o && Ot(), Nt;
+                    },
+                    reliableMarginLeft: function () {
+                      return null == o && Ot(), Pt;
+                    },
+                    reliableMarginRight: function () {
+                      var t,
+                        e = p.appendChild(E.createElement('div'));
+                      return (
+                        (e.style.cssText = p.style.cssText =
+                          '-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0'),
+                        (e.style.marginRight = e.style.width = '0'),
+                        (p.style.width = '1px'),
+                        I.appendChild(a),
+                        (t = !parseFloat(w.getComputedStyle(e).marginRight)),
+                        I.removeChild(a),
+                        p.removeChild(e),
+                        t
+                      );
+                    },
+                  }));
+              var zt = /^(none|table(?!-c[ea]).+)/,
+                Ht = { position: 'absolute', visibility: 'hidden', display: 'block' },
+                jt = { letterSpacing: '0', fontWeight: '400' },
+                Vt = ['Webkit', 'O', 'Moz', 'ms'],
+                qt = E.createElement('div').style;
+              function Wt(t) {
+                if (t in qt) return t;
+                for (var e = t[0].toUpperCase() + t.slice(1), n = Vt.length; n--; )
+                  if ((t = Vt[n] + e) in qt) return t;
+              }
+              function Jt(t, e, n) {
+                var r = h.exec(e);
+                return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || 'px') : e;
+              }
+              function Kt(t, e, n, r, i) {
+                for (
+                  var o = n === (r ? 'border' : 'content') ? 4 : 'width' === e ? 1 : 0, a = 0;
+                  o < 4;
+                  o += 2
+                )
+                  'margin' === n && (a += B.css(t, n + s[o], !0, i)),
+                    r
+                      ? ('content' === n && (a -= B.css(t, 'padding' + s[o], !0, i)),
+                        'margin' !== n && (a -= B.css(t, 'border' + s[o] + 'Width', !0, i)))
+                      : ((a += B.css(t, 'padding' + s[o], !0, i)),
+                        'padding' !== n && (a += B.css(t, 'border' + s[o] + 'Width', !0, i)));
+                return a;
+              }
+              function Zt(t, e, n) {
+                var r = !0,
+                  i = 'width' === e ? t.offsetWidth : t.offsetHeight,
+                  o = Tt(t),
+                  a = 'border-box' === B.css(t, 'boxSizing', !1, o);
+                if (i <= 0 || null == i) {
+                  if ((((i = M(t, e, o)) < 0 || null == i) && (i = t.style[e]), Yt.test(i)))
+                    return i;
+                  (r = a && (f.boxSizingReliable() || i === t.style[e])), (i = parseFloat(i) || 0);
+                }
+                return i + Kt(t, e, n || (a ? 'border' : 'content'), r, o) + 'px';
+              }
+              function Xt(t, e) {
+                for (var n, r, i, o = [], a = 0, s = t.length; a < s; a++)
+                  (r = t[a]).style &&
+                    ((o[a] = m.get(r, 'olddisplay')),
+                    (n = r.style.display),
+                    e
+                      ? (o[a] || 'none' !== n || (r.style.display = ''),
+                        '' === r.style.display &&
+                          v(r) &&
+                          (o[a] = m.access(r, 'olddisplay', _t(r.nodeName))))
+                      : ((i = v(r)),
+                        ('none' === n && i) ||
+                          m.set(r, 'olddisplay', i ? n : B.css(r, 'display'))));
+                for (a = 0; a < s; a++)
+                  !(r = t[a]).style ||
+                    (e && 'none' !== r.style.display && '' !== r.style.display) ||
+                    (r.style.display = e ? o[a] || '' : 'none');
+                return t;
+              }
+              function D(t, e, n, r, i) {
+                return new D.prototype.init(t, e, n, r, i);
+              }
+              B.extend({
+                cssHooks: {
+                  opacity: {
+                    get: function (t, e) {
+                      if (e) return '' === (e = M(t, 'opacity')) ? '1' : e;
+                    },
+                  },
+                },
+                cssNumber: {
+                  animationIterationCount: !0,
+                  columnCount: !0,
+                  fillOpacity: !0,
+                  flexGrow: !0,
+                  flexShrink: !0,
+                  fontWeight: !0,
+                  lineHeight: !0,
+                  opacity: !0,
+                  order: !0,
+                  orphans: !0,
+                  widows: !0,
+                  zIndex: !0,
+                  zoom: !0,
+                },
+                cssProps: { float: 'cssFloat' },
+                style: function (t, e, n, r) {
+                  if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
+                    var i,
+                      o,
+                      a,
+                      s = B.camelCase(e),
+                      l = t.style;
+                    if (
+                      ((e = B.cssProps[s] || (B.cssProps[s] = Wt(s) || s)),
+                      (a = B.cssHooks[e] || B.cssHooks[s]),
+                      void 0 === n)
+                    )
+                      return a && 'get' in a && void 0 !== (i = a.get(t, !1, r)) ? i : l[e];
+                    'string' === (o = typeof n) &&
+                      (i = h.exec(n)) &&
+                      i[1] &&
+                      ((n = st(t, e, i)), (o = 'number')),
+                      null != n &&
+                        n == n &&
+                        ('number' === o && (n += (i && i[3]) || (B.cssNumber[s] ? '' : 'px')),
+                        f.clearCloneStyle ||
+                          '' !== n ||
+                          0 !== e.indexOf('background') ||
+                          (l[e] = 'inherit'),
+                        (a && 'set' in a && void 0 === (n = a.set(t, n, r))) || (l[e] = n));
+                  }
+                },
+                css: function (t, e, n, r) {
+                  var i,
+                    o = B.camelCase(e);
+                  return (
+                    (e = B.cssProps[o] || (B.cssProps[o] = Wt(o) || o)),
+                    'normal' ===
+                      (i =
+                        void 0 ===
+                        (i =
+                          (o = B.cssHooks[e] || B.cssHooks[o]) && 'get' in o ? o.get(t, !0, n) : i)
+                          ? M(t, e, r)
+                          : i) &&
+                      e in jt &&
+                      (i = jt[e]),
+                    '' === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i
+                  );
+                },
+              }),
+                B.each(['height', 'width'], function (t, i) {
+                  B.cssHooks[i] = {
+                    get: function (t, e, n) {
+                      if (e)
+                        return zt.test(B.css(t, 'display')) && 0 === t.offsetWidth
+                          ? Rt(t, Ht, function () {
+                              return Zt(t, i, n);
+                            })
+                          : Zt(t, i, n);
+                    },
+                    set: function (t, e, n) {
+                      var r = n && Tt(t),
+                        n = n && Kt(t, i, n, 'border-box' === B.css(t, 'boxSizing', !1, r), r);
+                      return (
+                        n &&
+                          (r = h.exec(e)) &&
+                          'px' !== (r[3] || 'px') &&
+                          ((t.style[i] = e), (e = B.css(t, i))),
+                        Jt(0, e, n)
+                      );
+                    },
+                  };
+                }),
+                (B.cssHooks.marginLeft = Gt(f.reliableMarginLeft, function (t, e) {
+                  if (e)
+                    return (
+                      (parseFloat(M(t, 'marginLeft')) ||
+                        t.getBoundingClientRect().left -
+                          Rt(t, { marginLeft: 0 }, function () {
+                            return t.getBoundingClientRect().left;
+                          })) + 'px'
+                    );
+                })),
+                (B.cssHooks.marginRight = Gt(f.reliableMarginRight, function (t, e) {
+                  if (e) return Rt(t, { display: 'inline-block' }, M, [t, 'marginRight']);
+                })),
+                B.each({ margin: '', padding: '', border: 'Width' }, function (i, o) {
+                  (B.cssHooks[i + o] = {
+                    expand: function (t) {
+                      for (
+                        var e = 0, n = {}, r = 'string' == typeof t ? t.split(' ') : [t];
+                        e < 4;
+                        e++
+                      )
+                        n[i + s[e] + o] = r[e] || r[e - 2] || r[0];
+                      return n;
+                    },
+                  }),
+                    Lt.test(i) || (B.cssHooks[i + o].set = Jt);
+                }),
+                B.fn.extend({
+                  css: function (t, e) {
+                    return A(
+                      this,
+                      function (t, e, n) {
+                        var r,
+                          i,
+                          o = {},
+                          a = 0;
+                        if (B.isArray(e)) {
+                          for (r = Tt(t), i = e.length; a < i; a++) o[e[a]] = B.css(t, e[a], !1, r);
+                          return o;
+                        }
+                        return void 0 !== n ? B.style(t, e, n) : B.css(t, e);
+                      },
+                      t,
+                      e,
+                      1 < arguments.length,
+                    );
+                  },
+                  show: function () {
+                    return Xt(this, !0);
+                  },
+                  hide: function () {
+                    return Xt(this);
+                  },
+                  toggle: function (t) {
+                    return 'boolean' == typeof t
+                      ? t
+                        ? this.show()
+                        : this.hide()
+                      : this.each(function () {
+                          v(this) ? B(this).show() : B(this).hide();
+                        });
+                  },
+                }),
+                (((B.Tween = D).prototype = {
+                  constructor: D,
+                  init: function (t, e, n, r, i, o) {
+                    (this.elem = t),
+                      (this.prop = n),
+                      (this.easing = i || B.easing._default),
+                      (this.options = e),
+                      (this.start = this.now = this.cur()),
+                      (this.end = r),
+                      (this.unit = o || (B.cssNumber[n] ? '' : 'px'));
+                  },
+                  cur: function () {
+                    var t = D.propHooks[this.prop];
+                    return (t && t.get ? t : D.propHooks._default).get(this);
+                  },
+                  run: function (t) {
+                    var e,
+                      n = D.propHooks[this.prop];
+                    return (
+                      this.options.duration
+                        ? (this.pos = e =
+                            B.easing[this.easing](
+                              t,
+                              this.options.duration * t,
+                              0,
+                              1,
+                              this.options.duration,
+                            ))
+                        : (this.pos = e = t),
+                      (this.now = (this.end - this.start) * e + this.start),
+                      this.options.step && this.options.step.call(this.elem, this.now, this),
+                      (n && n.set ? n : D.propHooks._default).set(this),
+                      this
+                    );
+                  },
+                }).init.prototype = D.prototype),
+                ((D.propHooks = {
+                  _default: {
+                    get: function (t) {
+                      return 1 !== t.elem.nodeType ||
+                        (null != t.elem[t.prop] && null == t.elem.style[t.prop])
+                        ? t.elem[t.prop]
+                        : (t = B.css(t.elem, t.prop, '')) && 'auto' !== t
+                          ? t
+                          : 0;
+                    },
+                    set: function (t) {
+                      B.fx.step[t.prop]
+                        ? B.fx.step[t.prop](t)
+                        : 1 !== t.elem.nodeType ||
+                            (null == t.elem.style[B.cssProps[t.prop]] && !B.cssHooks[t.prop])
+                          ? (t.elem[t.prop] = t.now)
+                          : B.style(t.elem, t.prop, t.now + t.unit);
+                    },
+                  },
+                }).scrollTop = D.propHooks.scrollLeft =
+                  {
+                    set: function (t) {
+                      t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now);
+                    },
+                  }),
+                (B.easing = {
+                  linear: function (t) {
+                    return t;
+                  },
+                  swing: function (t) {
+                    return 0.5 - Math.cos(t * Math.PI) / 2;
+                  },
+                  _default: 'swing',
+                }),
+                (B.fx = D.prototype.init),
+                (B.fx.step = {});
+              var S,
+                $t,
+                k,
+                te = /^(?:toggle|show|hide)$/,
+                ee = /queueHooks$/;
+              function ne() {
+                return (
+                  w.setTimeout(function () {
+                    S = void 0;
+                  }),
+                  (S = B.now())
+                );
+              }
+              function re(t, e) {
+                var n,
+                  r = 0,
+                  i = { height: t };
+                for (e = e ? 1 : 0; r < 4; r += 2 - e)
+                  i['margin' + (n = s[r])] = i['padding' + n] = t;
+                return e && (i.opacity = i.width = t), i;
+              }
+              function ie(t, e, n) {
+                for (
+                  var r, i = (F.tweeners[e] || []).concat(F.tweeners['*']), o = 0, a = i.length;
+                  o < a;
+                  o++
+                )
+                  if ((r = i[o].call(n, e, t))) return r;
+              }
+              function F(i, t, e) {
+                var n,
+                  o,
+                  r,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c = 0,
+                  A = F.prefilters.length,
+                  h = B.Deferred().always(function () {
+                    delete p.elem;
+                  }),
+                  p = function () {
+                    if (o) return !1;
+                    for (
+                      var t = S || ne(),
+                        t = Math.max(0, d.startTime + d.duration - t),
+                        e = 1 - (t / d.duration || 0),
+                        n = 0,
+                        r = d.tweens.length;
+                      n < r;
+                      n++
+                    )
+                      d.tweens[n].run(e);
+                    return h.notifyWith(i, [d, e, t]), e < 1 && r ? t : (h.resolveWith(i, [d]), !1);
+                  },
+                  d = h.promise({
+                    elem: i,
+                    props: B.extend({}, t),
+                    opts: B.extend(!0, { specialEasing: {}, easing: B.easing._default }, e),
+                    originalProperties: t,
+                    originalOptions: e,
+                    startTime: S || ne(),
+                    duration: e.duration,
+                    tweens: [],
+                    createTween: function (t, e) {
+                      e = B.Tween(i, d.opts, t, e, d.opts.specialEasing[t] || d.opts.easing);
+                      return d.tweens.push(e), e;
+                    },
+                    stop: function (t) {
+                      var e = 0,
+                        n = t ? d.tweens.length : 0;
+                      if (!o) {
+                        for (o = !0; e < n; e++) d.tweens[e].run(1);
+                        t
+                          ? (h.notifyWith(i, [d, 1, 0]), h.resolveWith(i, [d, t]))
+                          : h.rejectWith(i, [d, t]);
+                      }
+                      return this;
+                    },
+                  }),
+                  f = d.props,
+                  g = f,
+                  m = d.opts.specialEasing;
+                for (r in g)
+                  if (
+                    ((s = m[(a = B.camelCase(r))]),
+                    (l = g[r]),
+                    B.isArray(l) && ((s = l[1]), (l = g[r] = l[0])),
+                    r !== a && ((g[a] = l), delete g[r]),
+                    (u = B.cssHooks[a]) && 'expand' in u)
+                  )
+                    for (r in ((l = u.expand(l)), delete g[a], l))
+                      r in g || ((g[r] = l[r]), (m[r] = s));
+                  else m[a] = s;
+                for (; c < A; c++)
+                  if ((n = F.prefilters[c].call(d, i, f, d.opts)))
+                    return (
+                      B.isFunction(n.stop) &&
+                        (B._queueHooks(d.elem, d.opts.queue).stop = B.proxy(n.stop, n)),
+                      n
+                    );
+                return (
+                  B.map(f, ie, d),
+                  B.isFunction(d.opts.start) && d.opts.start.call(i, d),
+                  B.fx.timer(B.extend(p, { elem: i, anim: d, queue: d.opts.queue })),
+                  d
+                    .progress(d.opts.progress)
+                    .done(d.opts.done, d.opts.complete)
+                    .fail(d.opts.fail)
+                    .always(d.opts.always)
+                );
+              }
+              (B.Animation = B.extend(F, {
+                tweeners: {
+                  '*': [
+                    function (t, e) {
+                      var n = this.createTween(t, e);
+                      return st(n.elem, t, h.exec(e), n), n;
+                    },
+                  ],
+                },
+                tweener: function (t, e) {
+                  for (
+                    var n, r = 0, i = (t = B.isFunction(t) ? ((e = t), ['*']) : t.match(C)).length;
+                    r < i;
+                    r++
+                  )
+                    (n = t[r]), (F.tweeners[n] = F.tweeners[n] || []), F.tweeners[n].unshift(e);
+                },
+                prefilters: [
+                  function (e, t, n) {
+                    var r,
+                      i,
+                      o,
+                      a,
+                      s,
+                      l,
+                      u,
+                      c = this,
+                      A = {},
+                      h = e.style,
+                      p = e.nodeType && v(e),
+                      d = m.get(e, 'fxshow');
+                    for (r in (n.queue ||
+                      (null == (s = B._queueHooks(e, 'fx')).unqueued &&
+                        ((s.unqueued = 0),
+                        (l = s.empty.fire),
+                        (s.empty.fire = function () {
+                          s.unqueued || l();
+                        })),
+                      s.unqueued++,
+                      c.always(function () {
+                        c.always(function () {
+                          s.unqueued--, B.queue(e, 'fx').length || s.empty.fire();
+                        });
+                      })),
+                    1 === e.nodeType &&
+                      ('height' in t || 'width' in t) &&
+                      ((n.overflow = [h.overflow, h.overflowX, h.overflowY]),
+                      'inline' ===
+                        ('none' === (u = B.css(e, 'display'))
+                          ? m.get(e, 'olddisplay') || _t(e.nodeName)
+                          : u) &&
+                        'none' === B.css(e, 'float') &&
+                        (h.display = 'inline-block')),
+                    n.overflow &&
+                      ((h.overflow = 'hidden'),
+                      c.always(function () {
+                        (h.overflow = n.overflow[0]),
+                          (h.overflowX = n.overflow[1]),
+                          (h.overflowY = n.overflow[2]);
+                      })),
+                    t))
+                      if (((i = t[r]), te.exec(i))) {
+                        if ((delete t[r], (o = o || 'toggle' === i), i === (p ? 'hide' : 'show'))) {
+                          if ('show' !== i || !d || void 0 === d[r]) continue;
+                          p = !0;
+                        }
+                        A[r] = (d && d[r]) || B.style(e, r);
+                      } else u = void 0;
+                    if (B.isEmptyObject(A))
+                      'inline' === ('none' === u ? _t(e.nodeName) : u) && (h.display = u);
+                    else
+                      for (r in (d
+                        ? 'hidden' in d && (p = d.hidden)
+                        : (d = m.access(e, 'fxshow', {})),
+                      o && (d.hidden = !p),
+                      p
+                        ? B(e).show()
+                        : c.done(function () {
+                            B(e).hide();
+                          }),
+                      c.done(function () {
+                        for (var t in (m.remove(e, 'fxshow'), A)) B.style(e, t, A[t]);
+                      }),
+                      A))
+                        (a = ie(p ? d[r] : 0, r, c)),
+                          r in d ||
+                            ((d[r] = a.start),
+                            p &&
+                              ((a.end = a.start),
+                              (a.start = 'width' === r || 'height' === r ? 1 : 0)));
+                  },
+                ],
+                prefilter: function (t, e) {
+                  e ? F.prefilters.unshift(t) : F.prefilters.push(t);
+                },
+              })),
+                (B.speed = function (t, e, n) {
+                  var r =
+                    t && 'object' == typeof t
+                      ? B.extend({}, t)
+                      : {
+                          complete: n || (!n && e) || (B.isFunction(t) && t),
+                          duration: t,
+                          easing: (n && e) || (e && !B.isFunction(e) && e),
+                        };
+                  return (
+                    (r.duration = B.fx.off
+                      ? 0
+                      : 'number' == typeof r.duration
+                        ? r.duration
+                        : r.duration in B.fx.speeds
+                          ? B.fx.speeds[r.duration]
+                          : B.fx.speeds._default),
+                    (null != r.queue && !0 !== r.queue) || (r.queue = 'fx'),
+                    (r.old = r.complete),
+                    (r.complete = function () {
+                      B.isFunction(r.old) && r.old.call(this), r.queue && B.dequeue(this, r.queue);
+                    }),
+                    r
+                  );
+                }),
+                B.fn.extend({
+                  fadeTo: function (t, e, n, r) {
+                    return this.filter(v)
+                      .css('opacity', 0)
+                      .show()
+                      .end()
+                      .animate({ opacity: e }, t, n, r);
+                  },
+                  animate: function (e, t, n, r) {
+                    function i() {
+                      var t = F(this, B.extend({}, e), a);
+                      (o || m.get(this, 'finish')) && t.stop(!0);
+                    }
+                    var o = B.isEmptyObject(e),
+                      a = B.speed(t, n, r);
+                    return (
+                      (i.finish = i), o || !1 === a.queue ? this.each(i) : this.queue(a.queue, i)
+                    );
+                  },
+                  stop: function (i, t, o) {
+                    function a(t) {
+                      var e = t.stop;
+                      delete t.stop, e(o);
+                    }
+                    return (
+                      'string' != typeof i && ((o = t), (t = i), (i = void 0)),
+                      t && !1 !== i && this.queue(i || 'fx', []),
+                      this.each(function () {
+                        var t = !0,
+                          e = null != i && i + 'queueHooks',
+                          n = B.timers,
+                          r = m.get(this);
+                        if (e) r[e] && r[e].stop && a(r[e]);
+                        else for (e in r) r[e] && r[e].stop && ee.test(e) && a(r[e]);
+                        for (e = n.length; e--; )
+                          n[e].elem !== this ||
+                            (null != i && n[e].queue !== i) ||
+                            (n[e].anim.stop(o), (t = !1), n.splice(e, 1));
+                        (!t && o) || B.dequeue(this, i);
+                      })
+                    );
+                  },
+                  finish: function (a) {
+                    return (
+                      !1 !== a && (a = a || 'fx'),
+                      this.each(function () {
+                        var t,
+                          e = m.get(this),
+                          n = e[a + 'queue'],
+                          r = e[a + 'queueHooks'],
+                          i = B.timers,
+                          o = n ? n.length : 0;
+                        for (
+                          e.finish = !0,
+                            B.queue(this, a, []),
+                            r && r.stop && r.stop.call(this, !0),
+                            t = i.length;
+                          t--;
+
+                        )
+                          i[t].elem === this &&
+                            i[t].queue === a &&
+                            (i[t].anim.stop(!0), i.splice(t, 1));
+                        for (t = 0; t < o; t++) n[t] && n[t].finish && n[t].finish.call(this);
+                        delete e.finish;
+                      })
+                    );
+                  },
+                }),
+                B.each(['toggle', 'show', 'hide'], function (t, r) {
+                  var i = B.fn[r];
+                  B.fn[r] = function (t, e, n) {
+                    return null == t || 'boolean' == typeof t
+                      ? i.apply(this, arguments)
+                      : this.animate(re(r, !0), t, e, n);
+                  };
+                }),
+                B.each(
+                  {
+                    slideDown: re('show'),
+                    slideUp: re('hide'),
+                    slideToggle: re('toggle'),
+                    fadeIn: { opacity: 'show' },
+                    fadeOut: { opacity: 'hide' },
+                    fadeToggle: { opacity: 'toggle' },
+                  },
+                  function (t, r) {
+                    B.fn[t] = function (t, e, n) {
+                      return this.animate(r, t, e, n);
+                    };
+                  },
+                ),
+                (B.timers = []),
+                (B.fx.tick = function () {
+                  var t,
+                    e = 0,
+                    n = B.timers;
+                  for (S = B.now(); e < n.length; e++)
+                    (t = n[e])() || n[e] !== t || n.splice(e--, 1);
+                  n.length || B.fx.stop(), (S = void 0);
+                }),
+                (B.fx.timer = function (t) {
+                  B.timers.push(t), t() ? B.fx.start() : B.timers.pop();
+                }),
+                (B.fx.interval = 13),
+                (B.fx.start = function () {
+                  $t = $t || w.setInterval(B.fx.tick, B.fx.interval);
+                }),
+                (B.fx.stop = function () {
+                  w.clearInterval($t), ($t = null);
+                }),
+                (B.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
+                (B.fn.delay = function (r, t) {
+                  return (
+                    (r = (B.fx && B.fx.speeds[r]) || r),
+                    this.queue((t = t || 'fx'), function (t, e) {
+                      var n = w.setTimeout(t, r);
+                      e.stop = function () {
+                        w.clearTimeout(n);
+                      };
+                    })
+                  );
+                }),
+                (k = E.createElement('input')),
+                (e = E.createElement('select')),
+                (t = e.appendChild(E.createElement('option'))),
+                (k.type = 'checkbox'),
+                (f.checkOn = '' !== k.value),
+                (f.optSelected = t.selected),
+                (e.disabled = !0),
+                (f.optDisabled = !t.disabled),
+                ((k = E.createElement('input')).value = 't'),
+                (k.type = 'radio'),
+                (f.radioValue = 't' === k.value);
+              var oe,
+                Q = B.expr.attrHandle,
+                ae =
+                  (B.fn.extend({
+                    attr: function (t, e) {
+                      return A(this, B.attr, t, e, 1 < arguments.length);
+                    },
+                    removeAttr: function (t) {
+                      return this.each(function () {
+                        B.removeAttr(this, t);
+                      });
+                    },
+                  }),
+                  B.extend({
+                    attr: function (t, e, n) {
+                      var r,
+                        i,
+                        o = t.nodeType;
+                      if (3 !== o && 8 !== o && 2 !== o)
+                        return void 0 === t.getAttribute
+                          ? B.prop(t, e, n)
+                          : ((1 === o && B.isXMLDoc(t)) ||
+                              ((e = e.toLowerCase()),
+                              (i = B.attrHooks[e] || (B.expr.match.bool.test(e) ? oe : void 0))),
+                            void 0 !== n
+                              ? null === n
+                                ? void B.removeAttr(t, e)
+                                : i && 'set' in i && void 0 !== (r = i.set(t, n, e))
+                                  ? r
+                                  : (t.setAttribute(e, n + ''), n)
+                              : !(i && 'get' in i && null !== (r = i.get(t, e))) &&
+                                  null == (r = B.find.attr(t, e))
+                                ? void 0
+                                : r);
+                    },
+                    attrHooks: {
+                      type: {
+                        set: function (t, e) {
+                          var n;
+                          if (!f.radioValue && 'radio' === e && B.nodeName(t, 'input'))
+                            return (n = t.value), t.setAttribute('type', e), n && (t.value = n), e;
+                        },
+                      },
+                    },
+                    removeAttr: function (t, e) {
+                      var n,
+                        r,
+                        i = 0,
+                        o = e && e.match(C);
+                      if (o && 1 === t.nodeType)
+                        for (; (n = o[i++]); )
+                          (r = B.propFix[n] || n),
+                            B.expr.match.bool.test(n) && (t[r] = !1),
+                            t.removeAttribute(n);
+                    },
+                  }),
+                  (oe = {
+                    set: function (t, e, n) {
+                      return !1 === e ? B.removeAttr(t, n) : t.setAttribute(n, n), n;
+                    },
+                  }),
+                  B.each(B.expr.match.bool.source.match(/\w+/g), function (t, e) {
+                    var o = Q[e] || B.find.attr;
+                    Q[e] = function (t, e, n) {
+                      var r, i;
+                      return (
+                        n ||
+                          ((i = Q[e]),
+                          (Q[e] = r),
+                          (r = null != o(t, e, n) ? e.toLowerCase() : null),
+                          (Q[e] = i)),
+                        r
+                      );
+                    };
+                  }),
+                  /^(?:input|select|textarea|button)$/i),
+                se = /^(?:a|area)$/i,
+                le =
+                  (B.fn.extend({
+                    prop: function (t, e) {
+                      return A(this, B.prop, t, e, 1 < arguments.length);
+                    },
+                    removeProp: function (t) {
+                      return this.each(function () {
+                        delete this[B.propFix[t] || t];
+                      });
+                    },
+                  }),
+                  B.extend({
+                    prop: function (t, e, n) {
+                      var r,
+                        i,
+                        o = t.nodeType;
+                      if (3 !== o && 8 !== o && 2 !== o)
+                        return (
+                          (1 === o && B.isXMLDoc(t)) ||
+                            ((e = B.propFix[e] || e), (i = B.propHooks[e])),
+                          void 0 !== n
+                            ? i && 'set' in i && void 0 !== (r = i.set(t, n, e))
+                              ? r
+                              : (t[e] = n)
+                            : i && 'get' in i && null !== (r = i.get(t, e))
+                              ? r
+                              : t[e]
+                        );
+                    },
+                    propHooks: {
+                      tabIndex: {
+                        get: function (t) {
+                          var e = B.find.attr(t, 'tabindex');
+                          return e
+                            ? parseInt(e, 10)
+                            : ae.test(t.nodeName) || (se.test(t.nodeName) && t.href)
+                              ? 0
+                              : -1;
+                        },
+                      },
+                    },
+                    propFix: { for: 'htmlFor', class: 'className' },
+                  }),
+                  f.optSelected ||
+                    (B.propHooks.selected = {
+                      get: function (t) {
+                        t = t.parentNode;
+                        return t && t.parentNode && t.parentNode.selectedIndex, null;
+                      },
+                      set: function (t) {
+                        t = t.parentNode;
+                        t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
+                      },
+                    }),
+                  B.each(
+                    [
+                      'tabIndex',
+                      'readOnly',
+                      'maxLength',
+                      'cellSpacing',
+                      'cellPadding',
+                      'rowSpan',
+                      'colSpan',
+                      'useMap',
+                      'frameBorder',
+                      'contentEditable',
+                    ],
+                    function () {
+                      B.propFix[this.toLowerCase()] = this;
+                    },
+                  ),
+                  /[\t\r\n\f]/g);
+              function _(t) {
+                return (t.getAttribute && t.getAttribute('class')) || '';
+              }
+              B.fn.extend({
+                addClass: function (e) {
+                  var t,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s = 0;
+                  if (B.isFunction(e))
+                    return this.each(function (t) {
+                      B(this).addClass(e.call(this, t, _(this)));
+                    });
+                  if ('string' == typeof e && e)
+                    for (t = e.match(C) || []; (n = this[s++]); )
+                      if (
+                        ((a = _(n)), (r = 1 === n.nodeType && (' ' + a + ' ').replace(le, ' ')))
+                      ) {
+                        for (o = 0; (i = t[o++]); ) r.indexOf(' ' + i + ' ') < 0 && (r += i + ' ');
+                        a !== (a = B.trim(r)) && n.setAttribute('class', a);
+                      }
+                  return this;
+                },
+                removeClass: function (e) {
+                  var t,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s = 0;
+                  if (B.isFunction(e))
+                    return this.each(function (t) {
+                      B(this).removeClass(e.call(this, t, _(this)));
+                    });
+                  if (!arguments.length) return this.attr('class', '');
+                  if ('string' == typeof e && e)
+                    for (t = e.match(C) || []; (n = this[s++]); )
+                      if (
+                        ((a = _(n)), (r = 1 === n.nodeType && (' ' + a + ' ').replace(le, ' ')))
+                      ) {
+                        for (o = 0; (i = t[o++]); )
+                          for (; -1 < r.indexOf(' ' + i + ' '); ) r = r.replace(' ' + i + ' ', ' ');
+                        a !== (a = B.trim(r)) && n.setAttribute('class', a);
+                      }
+                  return this;
+                },
+                toggleClass: function (i, e) {
+                  var o = typeof i;
+                  return 'boolean' == typeof e && 'string' == o
+                    ? e
+                      ? this.addClass(i)
+                      : this.removeClass(i)
+                    : B.isFunction(i)
+                      ? this.each(function (t) {
+                          B(this).toggleClass(i.call(this, t, _(this), e), e);
+                        })
+                      : this.each(function () {
+                          var t, e, n, r;
+                          if ('string' == o)
+                            for (e = 0, n = B(this), r = i.match(C) || []; (t = r[e++]); )
+                              n.hasClass(t) ? n.removeClass(t) : n.addClass(t);
+                          else
+                            (void 0 !== i && 'boolean' != o) ||
+                              ((t = _(this)) && m.set(this, '__className__', t),
+                              this.setAttribute &&
+                                this.setAttribute(
+                                  'class',
+                                  (!t && !1 !== i && m.get(this, '__className__')) || '',
+                                ));
+                        });
+                },
+                hasClass: function (t) {
+                  for (var e, n = 0, r = ' ' + t + ' '; (e = this[n++]); )
+                    if (1 === e.nodeType && -1 < (' ' + _(e) + ' ').replace(le, ' ').indexOf(r))
+                      return !0;
+                  return !1;
+                },
+              });
+              var ue = /\r/g,
+                ce = /[\x20\t\r\n\f]+/g,
+                Ae =
+                  (B.fn.extend({
+                    val: function (e) {
+                      var n,
+                        t,
+                        r,
+                        i = this[0];
+                      return arguments.length
+                        ? ((r = B.isFunction(e)),
+                          this.each(function (t) {
+                            1 === this.nodeType &&
+                              (null == (t = r ? e.call(this, t, B(this).val()) : e)
+                                ? (t = '')
+                                : 'number' == typeof t
+                                  ? (t += '')
+                                  : B.isArray(t) &&
+                                    (t = B.map(t, function (t) {
+                                      return null == t ? '' : t + '';
+                                    })),
+                              ((n =
+                                B.valHooks[this.type] || B.valHooks[this.nodeName.toLowerCase()]) &&
+                                'set' in n &&
+                                void 0 !== n.set(this, t, 'value')) ||
+                                (this.value = t));
+                          }))
+                        : i
+                          ? (n = B.valHooks[i.type] || B.valHooks[i.nodeName.toLowerCase()]) &&
+                            'get' in n &&
+                            void 0 !== (t = n.get(i, 'value'))
+                            ? t
+                            : 'string' == typeof (t = i.value)
+                              ? t.replace(ue, '')
+                              : null == t
+                                ? ''
+                                : t
+                          : void 0;
+                    },
+                  }),
+                  B.extend({
+                    valHooks: {
+                      option: {
+                        get: function (t) {
+                          var e = B.find.attr(t, 'value');
+                          return null != e ? e : B.trim(B.text(t)).replace(ce, ' ');
+                        },
+                      },
+                      select: {
+                        get: function (t) {
+                          for (
+                            var e,
+                              n = t.options,
+                              r = t.selectedIndex,
+                              i = 'select-one' === t.type || r < 0,
+                              o = i ? null : [],
+                              a = i ? r + 1 : n.length,
+                              s = r < 0 ? a : i ? r : 0;
+                            s < a;
+                            s++
+                          )
+                            if (
+                              ((e = n[s]).selected || s === r) &&
+                              (f.optDisabled ? !e.disabled : null === e.getAttribute('disabled')) &&
+                              (!e.parentNode.disabled || !B.nodeName(e.parentNode, 'optgroup'))
+                            ) {
+                              if (((e = B(e).val()), i)) return e;
+                              o.push(e);
+                            }
+                          return o;
+                        },
+                        set: function (t, e) {
+                          for (var n, r, i = t.options, o = B.makeArray(e), a = i.length; a--; )
+                            ((r = i[a]).selected = -1 < B.inArray(B.valHooks.option.get(r), o)) &&
+                              (n = !0);
+                          return n || (t.selectedIndex = -1), o;
+                        },
+                      },
+                    },
+                  }),
+                  B.each(['radio', 'checkbox'], function () {
+                    (B.valHooks[this] = {
+                      set: function (t, e) {
+                        if (B.isArray(e)) return (t.checked = -1 < B.inArray(B(t).val(), e));
+                      },
+                    }),
+                      f.checkOn ||
+                        (B.valHooks[this].get = function (t) {
+                          return null === t.getAttribute('value') ? 'on' : t.value;
+                        });
+                  }),
+                  /^(?:focusinfocus|focusoutblur)$/),
+                T =
+                  (B.extend(B.event, {
+                    trigger: function (t, e, n, r) {
+                      var i,
+                        o,
+                        a,
+                        s,
+                        l,
+                        u,
+                        c = [n || E],
+                        A = d.call(t, 'type') ? t.type : t,
+                        h = d.call(t, 'namespace') ? t.namespace.split('.') : [],
+                        p = (o = n = n || E);
+                      if (
+                        3 !== n.nodeType &&
+                        8 !== n.nodeType &&
+                        !Ae.test(A + B.event.triggered) &&
+                        (-1 < A.indexOf('.') && ((A = (h = A.split('.')).shift()), h.sort()),
+                        (s = A.indexOf(':') < 0 && 'on' + A),
+                        ((t = t[B.expando]
+                          ? t
+                          : new B.Event(A, 'object' == typeof t && t)).isTrigger = r ? 2 : 3),
+                        (t.namespace = h.join('.')),
+                        (t.rnamespace = t.namespace
+                          ? new RegExp('(^|\\.)' + h.join('\\.(?:.*\\.|)') + '(\\.|$)')
+                          : null),
+                        (t.result = void 0),
+                        t.target || (t.target = n),
+                        (e = null == e ? [t] : B.makeArray(e, [t])),
+                        (u = B.event.special[A] || {}),
+                        r || !u.trigger || !1 !== u.trigger.apply(n, e))
+                      ) {
+                        if (!r && !u.noBubble && !B.isWindow(n)) {
+                          for (
+                            a = u.delegateType || A, Ae.test(a + A) || (p = p.parentNode);
+                            p;
+                            p = p.parentNode
+                          )
+                            c.push(p), (o = p);
+                          o === (n.ownerDocument || E) &&
+                            c.push(o.defaultView || o.parentWindow || w);
+                        }
+                        for (i = 0; (p = c[i++]) && !t.isPropagationStopped(); )
+                          (t.type = 1 < i ? a : u.bindType || A),
+                            (l = (m.get(p, 'events') || {})[t.type] && m.get(p, 'handle')) &&
+                              l.apply(p, e),
+                            (l = s && p[s]) &&
+                              l.apply &&
+                              g(p) &&
+                              ((t.result = l.apply(p, e)), !1 === t.result && t.preventDefault());
+                        return (
+                          (t.type = A),
+                          r ||
+                            t.isDefaultPrevented() ||
+                            (u._default && !1 !== u._default.apply(c.pop(), e)) ||
+                            !g(n) ||
+                            (s &&
+                              B.isFunction(n[A]) &&
+                              !B.isWindow(n) &&
+                              ((o = n[s]) && (n[s] = null),
+                              n[(B.event.triggered = A)](),
+                              (B.event.triggered = void 0),
+                              o && (n[s] = o))),
+                          t.result
+                        );
+                      }
+                    },
+                    simulate: function (t, e, n) {
+                      n = B.extend(new B.Event(), n, { type: t, isSimulated: !0 });
+                      B.event.trigger(n, null, e);
+                    },
+                  }),
+                  B.fn.extend({
+                    trigger: function (t, e) {
+                      return this.each(function () {
+                        B.event.trigger(t, e, this);
+                      });
+                    },
+                    triggerHandler: function (t, e) {
+                      var n = this[0];
+                      if (n) return B.event.trigger(t, e, n, !0);
+                    },
+                  }),
+                  B.each(
+                    'blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu'.split(
+                      ' ',
+                    ),
+                    function (t, n) {
+                      B.fn[n] = function (t, e) {
+                        return 0 < arguments.length ? this.on(n, null, t, e) : this.trigger(n);
+                      };
+                    },
+                  ),
+                  B.fn.extend({
+                    hover: function (t, e) {
+                      return this.mouseenter(t).mouseleave(e || t);
+                    },
+                  }),
+                  (f.focusin = 'onfocusin' in w),
+                  f.focusin ||
+                    B.each({ focus: 'focusin', blur: 'focusout' }, function (n, r) {
+                      function i(t) {
+                        B.event.simulate(r, t.target, B.event.fix(t));
+                      }
+                      B.event.special[r] = {
+                        setup: function () {
+                          var t = this.ownerDocument || this,
+                            e = m.access(t, r);
+                          e || t.addEventListener(n, i, !0), m.access(t, r, (e || 0) + 1);
+                        },
+                        teardown: function () {
+                          var t = this.ownerDocument || this,
+                            e = m.access(t, r) - 1;
+                          e ? m.access(t, r, e) : (t.removeEventListener(n, i, !0), m.remove(t, r));
+                        },
+                      };
+                    }),
+                  w.location),
+                he = B.now(),
+                pe = /\?/,
+                de =
+                  ((B.parseJSON = function (t) {
+                    return JSON.parse(t + '');
+                  }),
+                  (B.parseXML = function (t) {
+                    var e;
+                    if (!t || 'string' != typeof t) return null;
+                    try {
+                      e = new w.DOMParser().parseFromString(t, 'text/xml');
+                    } catch (t) {
+                      e = void 0;
+                    }
+                    return (
+                      (e && !e.getElementsByTagName('parsererror').length) ||
+                        B.error('Invalid XML: ' + t),
+                      e
+                    );
+                  }),
+                  /#.*$/),
+                fe = /([?&])_=[^&]*/,
+                ge = /^(.*?):[ \t]*([^\r\n]*)$/gm,
+                me = /^(?:GET|HEAD)$/,
+                ve = /^\/\//,
+                be = {},
+                ye = {},
+                we = '*/'.concat('*'),
+                Ee = E.createElement('a');
+              function Be(o) {
+                return function (t, e) {
+                  'string' != typeof t && ((e = t), (t = '*'));
+                  var n,
+                    r = 0,
+                    i = t.toLowerCase().match(C) || [];
+                  if (B.isFunction(e))
+                    for (; (n = i[r++]); )
+                      '+' === n[0]
+                        ? ((n = n.slice(1) || '*'), (o[n] = o[n] || []).unshift(e))
+                        : (o[n] = o[n] || []).push(e);
+                };
+              }
+              function Ce(e, r, i, o) {
+                var a = {},
+                  s = e === ye;
+                function l(t) {
+                  var n;
+                  return (
+                    (a[t] = !0),
+                    B.each(e[t] || [], function (t, e) {
+                      e = e(r, i, o);
+                      return 'string' != typeof e || s || a[e]
+                        ? s
+                          ? !(n = e)
+                          : void 0
+                        : (r.dataTypes.unshift(e), l(e), !1);
+                    }),
+                    n
+                  );
+                }
+                return l(r.dataTypes[0]) || (!a['*'] && l('*'));
+              }
+              function xe(t, e) {
+                var n,
+                  r,
+                  i = B.ajaxSettings.flatOptions || {};
+                for (n in e) void 0 !== e[n] && ((i[n] ? t : (r = r || {}))[n] = e[n]);
+                return r && B.extend(!0, t, r), t;
+              }
+              (Ee.href = T.href),
+                B.extend({
+                  active: 0,
+                  lastModified: {},
+                  etag: {},
+                  ajaxSettings: {
+                    url: T.href,
+                    type: 'GET',
+                    isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
+                      T.protocol,
+                    ),
+                    global: !0,
+                    processData: !0,
+                    async: !0,
+                    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
+                    accepts: {
+                      '*': we,
+                      text: 'text/plain',
+                      html: 'text/html',
+                      xml: 'application/xml, text/xml',
+                      json: 'application/json, text/javascript',
+                    },
+                    contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ },
+                    responseFields: {
+                      xml: 'responseXML',
+                      text: 'responseText',
+                      json: 'responseJSON',
+                    },
+                    converters: {
+                      '* text': String,
+                      'text html': !0,
+                      'text json': B.parseJSON,
+                      'text xml': B.parseXML,
+                    },
+                    flatOptions: { url: !0, context: !0 },
+                  },
+                  ajaxSetup: function (t, e) {
+                    return e ? xe(xe(t, B.ajaxSettings), e) : xe(B.ajaxSettings, t);
+                  },
+                  ajaxPrefilter: Be(be),
+                  ajaxTransport: Be(ye),
+                  ajax: function (t, e) {
+                    'object' == typeof t && ((e = t), (t = void 0));
+                    var l,
+                      u,
+                      c,
+                      n,
+                      A,
+                      h,
+                      r,
+                      p = B.ajaxSetup({}, (e = e || {})),
+                      d = p.context || p,
+                      f = p.context && (d.nodeType || d.jquery) ? B(d) : B.event,
+                      g = B.Deferred(),
+                      m = B.Callbacks('once memory'),
+                      v = p.statusCode || {},
+                      i = {},
+                      o = {},
+                      b = 0,
+                      a = 'canceled',
+                      y = {
+                        readyState: 0,
+                        getResponseHeader: function (t) {
+                          var e;
+                          if (2 === b) {
+                            if (!n) for (n = {}; (e = ge.exec(c)); ) n[e[1].toLowerCase()] = e[2];
+                            e = n[t.toLowerCase()];
+                          }
+                          return null == e ? null : e;
+                        },
+                        getAllResponseHeaders: function () {
+                          return 2 === b ? c : null;
+                        },
+                        setRequestHeader: function (t, e) {
+                          var n = t.toLowerCase();
+                          return b || ((t = o[n] = o[n] || t), (i[t] = e)), this;
+                        },
+                        overrideMimeType: function (t) {
+                          return b || (p.mimeType = t), this;
+                        },
+                        statusCode: function (t) {
+                          if (t)
+                            if (b < 2) for (var e in t) v[e] = [v[e], t[e]];
+                            else y.always(t[y.status]);
+                          return this;
+                        },
+                        abort: function (t) {
+                          t = t || a;
+                          return l && l.abort(t), s(0, t), this;
+                        },
+                      };
+                    if (
+                      ((g.promise(y).complete = m.add),
+                      (y.success = y.done),
+                      (y.error = y.fail),
+                      (p.url = ((t || p.url || T.href) + '')
+                        .replace(de, '')
+                        .replace(ve, T.protocol + '//')),
+                      (p.type = e.method || e.type || p.method || p.type),
+                      (p.dataTypes = B.trim(p.dataType || '*')
+                        .toLowerCase()
+                        .match(C) || ['']),
+                      null == p.crossDomain)
+                    ) {
+                      t = E.createElement('a');
+                      try {
+                        (t.href = p.url),
+                          (t.href = t.href),
+                          (p.crossDomain =
+                            Ee.protocol + '//' + Ee.host != t.protocol + '//' + t.host);
+                      } catch (t) {
+                        p.crossDomain = !0;
+                      }
+                    }
+                    if (
+                      (p.data &&
+                        p.processData &&
+                        'string' != typeof p.data &&
+                        (p.data = B.param(p.data, p.traditional)),
+                      Ce(be, p, e, y),
+                      2 !== b)
+                    ) {
+                      for (r in ((h = B.event && p.global) &&
+                        0 == B.active++ &&
+                        B.event.trigger('ajaxStart'),
+                      (p.type = p.type.toUpperCase()),
+                      (p.hasContent = !me.test(p.type)),
+                      (u = p.url),
+                      p.hasContent ||
+                        (p.data &&
+                          ((u = p.url += (pe.test(u) ? '&' : '?') + p.data), delete p.data),
+                        !1 === p.cache &&
+                          (p.url = fe.test(u)
+                            ? u.replace(fe, '$1_=' + he++)
+                            : u + (pe.test(u) ? '&' : '?') + '_=' + he++)),
+                      p.ifModified &&
+                        (B.lastModified[u] &&
+                          y.setRequestHeader('If-Modified-Since', B.lastModified[u]),
+                        B.etag[u] && y.setRequestHeader('If-None-Match', B.etag[u])),
+                      ((p.data && p.hasContent && !1 !== p.contentType) || e.contentType) &&
+                        y.setRequestHeader('Content-Type', p.contentType),
+                      y.setRequestHeader(
+                        'Accept',
+                        p.dataTypes[0] && p.accepts[p.dataTypes[0]]
+                          ? p.accepts[p.dataTypes[0]] +
+                              ('*' !== p.dataTypes[0] ? ', ' + we + '; q=0.01' : '')
+                          : p.accepts['*'],
+                      ),
+                      p.headers))
+                        y.setRequestHeader(r, p.headers[r]);
+                      if (p.beforeSend && (!1 === p.beforeSend.call(d, y, p) || 2 === b))
+                        return y.abort();
+                      for (r in ((a = 'abort'), { success: 1, error: 1, complete: 1 })) y[r](p[r]);
+                      if ((l = Ce(ye, p, e, y))) {
+                        if (((y.readyState = 1), h && f.trigger('ajaxSend', [y, p]), 2 === b))
+                          return y;
+                        p.async &&
+                          0 < p.timeout &&
+                          (A = w.setTimeout(function () {
+                            y.abort('timeout');
+                          }, p.timeout));
+                        try {
+                          (b = 1), l.send(i, s);
+                        } catch (t) {
+                          if (!(b < 2)) throw t;
+                          s(-1, t);
+                        }
+                      } else s(-1, 'No Transport');
+                    }
+                    return y;
+                    function s(t, e, n, r) {
+                      var i,
+                        o,
+                        a,
+                        s = e;
+                      2 !== b &&
+                        ((b = 2),
+                        A && w.clearTimeout(A),
+                        (l = void 0),
+                        (c = r || ''),
+                        (y.readyState = 0 < t ? 4 : 0),
+                        (r = (200 <= t && t < 300) || 304 === t),
+                        n &&
+                          (a = (function (t, e, n) {
+                            for (var r, i, o, a, s = t.contents, l = t.dataTypes; '*' === l[0]; )
+                              l.shift(),
+                                void 0 === r &&
+                                  (r = t.mimeType || e.getResponseHeader('Content-Type'));
+                            if (r)
+                              for (i in s)
+                                if (s[i] && s[i].test(r)) {
+                                  l.unshift(i);
+                                  break;
+                                }
+                            if (l[0] in n) o = l[0];
+                            else {
+                              for (i in n) {
+                                if (!l[0] || t.converters[i + ' ' + l[0]]) {
+                                  o = i;
+                                  break;
+                                }
+                                a = a || i;
+                              }
+                              o = o || a;
+                            }
+                            if (o) return o !== l[0] && l.unshift(o), n[o];
+                          })(p, y, n)),
+                        (a = (function (t, e, n, r) {
+                          var i,
+                            o,
+                            a,
+                            s,
+                            l,
+                            u = {},
+                            c = t.dataTypes.slice();
+                          if (c[1]) for (a in t.converters) u[a.toLowerCase()] = t.converters[a];
+                          for (o = c.shift(); o; )
+                            if (
+                              (t.responseFields[o] && (n[t.responseFields[o]] = e),
+                              !l && r && t.dataFilter && (e = t.dataFilter(e, t.dataType)),
+                              (l = o),
+                              (o = c.shift()))
+                            )
+                              if ('*' === o) o = l;
+                              else if ('*' !== l && l !== o) {
+                                if (!(a = u[l + ' ' + o] || u['* ' + o]))
+                                  for (i in u)
+                                    if (
+                                      (s = i.split(' '))[1] === o &&
+                                      (a = u[l + ' ' + s[0]] || u['* ' + s[0]])
+                                    ) {
+                                      !0 === a
+                                        ? (a = u[i])
+                                        : !0 !== u[i] && ((o = s[0]), c.unshift(s[1]));
+                                      break;
+                                    }
+                                if (!0 !== a)
+                                  if (a && t.throws) e = a(e);
+                                  else
+                                    try {
+                                      e = a(e);
+                                    } catch (t) {
+                                      return {
+                                        state: 'parsererror',
+                                        error: a ? t : 'No conversion from ' + l + ' to ' + o,
+                                      };
+                                    }
+                              }
+                          return { state: 'success', data: e };
+                        })(p, a, y, r)),
+                        r
+                          ? (p.ifModified &&
+                              ((n = y.getResponseHeader('Last-Modified')) &&
+                                (B.lastModified[u] = n),
+                              (n = y.getResponseHeader('etag')) && (B.etag[u] = n)),
+                            204 === t || 'HEAD' === p.type
+                              ? (s = 'nocontent')
+                              : 304 === t
+                                ? (s = 'notmodified')
+                                : ((s = a.state), (i = a.data), (r = !(o = a.error))))
+                          : ((o = s), (!t && s) || ((s = 'error'), t < 0 && (t = 0))),
+                        (y.status = t),
+                        (y.statusText = (e || s) + ''),
+                        r ? g.resolveWith(d, [i, s, y]) : g.rejectWith(d, [y, s, o]),
+                        y.statusCode(v),
+                        (v = void 0),
+                        h && f.trigger(r ? 'ajaxSuccess' : 'ajaxError', [y, p, r ? i : o]),
+                        m.fireWith(d, [y, s]),
+                        h &&
+                          (f.trigger('ajaxComplete', [y, p]),
+                          --B.active || B.event.trigger('ajaxStop')));
+                    }
+                  },
+                  getJSON: function (t, e, n) {
+                    return B.get(t, e, n, 'json');
+                  },
+                  getScript: function (t, e) {
+                    return B.get(t, void 0, e, 'script');
+                  },
+                }),
+                B.each(['get', 'post'], function (t, i) {
+                  B[i] = function (t, e, n, r) {
+                    return (
+                      B.isFunction(e) && ((r = r || n), (n = e), (e = void 0)),
+                      B.ajax(
+                        B.extend(
+                          { url: t, type: i, dataType: r, data: e, success: n },
+                          B.isPlainObject(t) && t,
+                        ),
+                      )
+                    );
+                  };
+                }),
+                (B._evalUrl = function (t) {
+                  return B.ajax({
+                    url: t,
+                    type: 'GET',
+                    dataType: 'script',
+                    async: !1,
+                    global: !1,
+                    throws: !0,
+                  });
+                }),
+                B.fn.extend({
+                  wrapAll: function (e) {
+                    var t;
+                    return B.isFunction(e)
+                      ? this.each(function (t) {
+                          B(this).wrapAll(e.call(this, t));
+                        })
+                      : (this[0] &&
+                          ((t = B(e, this[0].ownerDocument).eq(0).clone(!0)),
+                          this[0].parentNode && t.insertBefore(this[0]),
+                          t
+                            .map(function () {
+                              for (var t = this; t.firstElementChild; ) t = t.firstElementChild;
+                              return t;
+                            })
+                            .append(this)),
+                        this);
+                  },
+                  wrapInner: function (n) {
+                    return B.isFunction(n)
+                      ? this.each(function (t) {
+                          B(this).wrapInner(n.call(this, t));
+                        })
+                      : this.each(function () {
+                          var t = B(this),
+                            e = t.contents();
+                          e.length ? e.wrapAll(n) : t.append(n);
+                        });
+                  },
+                  wrap: function (e) {
+                    var n = B.isFunction(e);
+                    return this.each(function (t) {
+                      B(this).wrapAll(n ? e.call(this, t) : e);
+                    });
+                  },
+                  unwrap: function () {
+                    return this.parent()
+                      .each(function () {
+                        B.nodeName(this, 'body') || B(this).replaceWith(this.childNodes);
+                      })
+                      .end();
+                  },
+                }),
+                (B.expr.filters.hidden = function (t) {
+                  return !B.expr.filters.visible(t);
+                }),
+                (B.expr.filters.visible = function (t) {
+                  return 0 < t.offsetWidth || 0 < t.offsetHeight || 0 < t.getClientRects().length;
+                });
+              var Ie = /%20/g,
+                Me = /\[\]$/,
+                De = /\r?\n/g,
+                Se = /^(?:submit|button|image|reset|file)$/i,
+                ke = /^(?:input|select|textarea|keygen)/i;
+              (B.param = function (t, e) {
+                function n(t, e) {
+                  (e = B.isFunction(e) ? e() : null == e ? '' : e),
+                    (i[i.length] = encodeURIComponent(t) + '=' + encodeURIComponent(e));
+                }
+                var r,
+                  i = [];
+                if (
+                  (void 0 === e && (e = B.ajaxSettings && B.ajaxSettings.traditional),
+                  B.isArray(t) || (t.jquery && !B.isPlainObject(t)))
+                )
+                  B.each(t, function () {
+                    n(this.name, this.value);
+                  });
+                else
+                  for (r in t)
+                    !(function n(r, t, i, o) {
+                      if (B.isArray(t))
+                        B.each(t, function (t, e) {
+                          i || Me.test(r)
+                            ? o(r, e)
+                            : n(
+                                r + '[' + ('object' == typeof e && null != e ? t : '') + ']',
+                                e,
+                                i,
+                                o,
+                              );
+                        });
+                      else if (i || 'object' !== B.type(t)) o(r, t);
+                      else for (var e in t) n(r + '[' + e + ']', t[e], i, o);
+                    })(r, t[r], e, n);
+                return i.join('&').replace(Ie, '+');
+              }),
+                B.fn.extend({
+                  serialize: function () {
+                    return B.param(this.serializeArray());
+                  },
+                  serializeArray: function () {
+                    return this.map(function () {
+                      var t = B.prop(this, 'elements');
+                      return t ? B.makeArray(t) : this;
+                    })
+                      .filter(function () {
+                        var t = this.type;
+                        return (
+                          this.name &&
+                          !B(this).is(':disabled') &&
+                          ke.test(this.nodeName) &&
+                          !Se.test(t) &&
+                          (this.checked || !lt.test(t))
+                        );
+                      })
+                      .map(function (t, e) {
+                        var n = B(this).val();
+                        return null == n
+                          ? null
+                          : B.isArray(n)
+                            ? B.map(n, function (t) {
+                                return { name: e.name, value: t.replace(De, '\r\n') };
+                              })
+                            : { name: e.name, value: n.replace(De, '\r\n') };
+                      })
+                      .get();
+                  },
+                }),
+                (B.ajaxSettings.xhr = function () {
+                  try {
+                    return new w.XMLHttpRequest();
+                  } catch (t) {}
+                });
+              var Fe = { 0: 200, 1223: 204 },
+                R = B.ajaxSettings.xhr(),
+                Qe =
+                  ((f.cors = !!R && 'withCredentials' in R),
+                  (f.ajax = R = !!R),
+                  B.ajaxTransport(function (i) {
+                    var o, a;
+                    if (f.cors || (R && !i.crossDomain))
+                      return {
+                        send: function (t, e) {
+                          var n,
+                            r = i.xhr();
+                          if ((r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields))
+                            for (n in i.xhrFields) r[n] = i.xhrFields[n];
+                          for (n in (i.mimeType &&
+                            r.overrideMimeType &&
+                            r.overrideMimeType(i.mimeType),
+                          i.crossDomain ||
+                            t['X-Requested-With'] ||
+                            (t['X-Requested-With'] = 'XMLHttpRequest'),
+                          t))
+                            r.setRequestHeader(n, t[n]);
+                          (o = function (t) {
+                            return function () {
+                              o &&
+                                ((o =
+                                  a =
+                                  r.onload =
+                                  r.onerror =
+                                  r.onabort =
+                                  r.onreadystatechange =
+                                    null),
+                                'abort' === t
+                                  ? r.abort()
+                                  : 'error' === t
+                                    ? 'number' != typeof r.status
+                                      ? e(0, 'error')
+                                      : e(r.status, r.statusText)
+                                    : e(
+                                        Fe[r.status] || r.status,
+                                        r.statusText,
+                                        'text' !== (r.responseType || 'text') ||
+                                          'string' != typeof r.responseText
+                                          ? { binary: r.response }
+                                          : { text: r.responseText },
+                                        r.getAllResponseHeaders(),
+                                      ));
+                            };
+                          }),
+                            (r.onload = o()),
+                            (a = r.onerror = o('error')),
+                            void 0 !== r.onabort
+                              ? (r.onabort = a)
+                              : (r.onreadystatechange = function () {
+                                  4 === r.readyState &&
+                                    w.setTimeout(function () {
+                                      o && a();
+                                    });
+                                }),
+                            (o = o('abort'));
+                          try {
+                            r.send((i.hasContent && i.data) || null);
+                          } catch (t) {
+                            if (o) throw t;
+                          }
+                        },
+                        abort: function () {
+                          o && o();
+                        },
+                      };
+                  }),
+                  B.ajaxSetup({
+                    accepts: {
+                      script:
+                        'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript',
+                    },
+                    contents: { script: /\b(?:java|ecma)script\b/ },
+                    converters: {
+                      'text script': function (t) {
+                        return B.globalEval(t), t;
+                      },
+                    },
+                  }),
+                  B.ajaxPrefilter('script', function (t) {
+                    void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = 'GET');
+                  }),
+                  B.ajaxTransport('script', function (n) {
+                    var r, i;
+                    if (n.crossDomain)
+                      return {
+                        send: function (t, e) {
+                          (r = B('<script>')
+                            .prop({ charset: n.scriptCharset, src: n.url })
+                            .on(
+                              'load error',
+                              (i = function (t) {
+                                r.remove(),
+                                  (i = null),
+                                  t && e('error' === t.type ? 404 : 200, t.type);
+                              }),
+                            )),
+                            E.head.appendChild(r[0]);
+                        },
+                        abort: function () {
+                          i && i();
+                        },
+                      };
+                  }),
+                  []),
+                _e = /(=)\?(?=&|$)|\?\?/,
+                Te =
+                  (B.ajaxSetup({
+                    jsonp: 'callback',
+                    jsonpCallback: function () {
+                      var t = Qe.pop() || B.expando + '_' + he++;
+                      return (this[t] = !0), t;
+                    },
+                  }),
+                  B.ajaxPrefilter('json jsonp', function (t, e, n) {
+                    var r,
+                      i,
+                      o,
+                      a =
+                        !1 !== t.jsonp &&
+                        (_e.test(t.url)
+                          ? 'url'
+                          : 'string' == typeof t.data &&
+                            0 ===
+                              (t.contentType || '').indexOf('application/x-www-form-urlencoded') &&
+                            _e.test(t.data) &&
+                            'data');
+                    if (a || 'jsonp' === t.dataTypes[0])
+                      return (
+                        (r = t.jsonpCallback =
+                          B.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback),
+                        a
+                          ? (t[a] = t[a].replace(_e, '$1' + r))
+                          : !1 !== t.jsonp &&
+                            (t.url += (pe.test(t.url) ? '&' : '?') + t.jsonp + '=' + r),
+                        (t.converters['script json'] = function () {
+                          return o || B.error(r + ' was not called'), o[0];
+                        }),
+                        (t.dataTypes[0] = 'json'),
+                        (i = w[r]),
+                        (w[r] = function () {
+                          o = arguments;
+                        }),
+                        n.always(function () {
+                          void 0 === i ? B(w).removeProp(r) : (w[r] = i),
+                            t[r] && ((t.jsonpCallback = e.jsonpCallback), Qe.push(r)),
+                            o && B.isFunction(i) && i(o[0]),
+                            (o = i = void 0);
+                        }),
+                        'script'
+                      );
+                  }),
+                  (B.parseHTML = function (t, e, n) {
+                    if (!t || 'string' != typeof t) return null;
+                    'boolean' == typeof e && ((n = e), (e = !1)), (e = e || E);
+                    var r = W.exec(t),
+                      n = !n && [];
+                    return r
+                      ? [e.createElement(r[1])]
+                      : ((r = pt([t], e, n)),
+                        n && n.length && B(n).remove(),
+                        B.merge([], r.childNodes));
+                  }),
+                  B.fn.load);
+              function Re(t) {
+                return B.isWindow(t) ? t : 9 === t.nodeType && t.defaultView;
+              }
+              (B.fn.load = function (t, e, n) {
+                if ('string' != typeof t && Te) return Te.apply(this, arguments);
+                var r,
+                  i,
+                  o,
+                  a = this,
+                  s = t.indexOf(' ');
+                return (
+                  -1 < s && ((r = B.trim(t.slice(s))), (t = t.slice(0, s))),
+                  B.isFunction(e)
+                    ? ((n = e), (e = void 0))
+                    : e && 'object' == typeof e && (i = 'POST'),
+                  0 < a.length &&
+                    B.ajax({ url: t, type: i || 'GET', dataType: 'html', data: e })
+                      .done(function (t) {
+                        (o = arguments), a.html(r ? B('<div>').append(B.parseHTML(t)).find(r) : t);
+                      })
+                      .always(
+                        n &&
+                          function (t, e) {
+                            a.each(function () {
+                              n.apply(this, o || [t.responseText, e, t]);
+                            });
+                          },
+                      ),
+                  this
+                );
+              }),
+                B.each(
+                  ['ajaxStart', 'ajaxStop', 'ajaxComplete', 'ajaxError', 'ajaxSuccess', 'ajaxSend'],
+                  function (t, e) {
+                    B.fn[e] = function (t) {
+                      return this.on(e, t);
+                    };
+                  },
+                ),
+                (B.expr.filters.animated = function (e) {
+                  return B.grep(B.timers, function (t) {
+                    return e === t.elem;
+                  }).length;
+                }),
+                (B.offset = {
+                  setOffset: function (t, e, n) {
+                    var r,
+                      i,
+                      o,
+                      a,
+                      s = B.css(t, 'position'),
+                      l = B(t),
+                      u = {};
+                    'static' === s && (t.style.position = 'relative'),
+                      (o = l.offset()),
+                      (r = B.css(t, 'top')),
+                      (a = B.css(t, 'left')),
+                      (s =
+                        ('absolute' === s || 'fixed' === s) && -1 < (r + a).indexOf('auto')
+                          ? ((i = (s = l.position()).top), s.left)
+                          : ((i = parseFloat(r) || 0), parseFloat(a) || 0)),
+                      null != (e = B.isFunction(e) ? e.call(t, n, B.extend({}, o)) : e).top &&
+                        (u.top = e.top - o.top + i),
+                      null != e.left && (u.left = e.left - o.left + s),
+                      'using' in e ? e.using.call(t, u) : l.css(u);
+                  },
+                }),
+                B.fn.extend({
+                  offset: function (e) {
+                    if (arguments.length)
+                      return void 0 === e
+                        ? this
+                        : this.each(function (t) {
+                            B.offset.setOffset(this, e, t);
+                          });
+                    var t,
+                      n = this[0],
+                      r = { top: 0, left: 0 },
+                      i = n && n.ownerDocument;
+                    return i
+                      ? ((t = i.documentElement),
+                        B.contains(t, n)
+                          ? ((r = n.getBoundingClientRect()),
+                            (n = Re(i)),
+                            {
+                              top: r.top + n.pageYOffset - t.clientTop,
+                              left: r.left + n.pageXOffset - t.clientLeft,
+                            })
+                          : r)
+                      : void 0;
+                  },
+                  position: function () {
+                    var t, e, n, r;
+                    if (this[0])
+                      return (
+                        (n = this[0]),
+                        (r = { top: 0, left: 0 }),
+                        'fixed' === B.css(n, 'position')
+                          ? (e = n.getBoundingClientRect())
+                          : ((t = this.offsetParent()),
+                            (e = this.offset()),
+                            ((r = B.nodeName(t[0], 'html') ? r : t.offset()).top += B.css(
+                              t[0],
+                              'borderTopWidth',
+                              !0,
+                            )),
+                            (r.left += B.css(t[0], 'borderLeftWidth', !0))),
+                        {
+                          top: e.top - r.top - B.css(n, 'marginTop', !0),
+                          left: e.left - r.left - B.css(n, 'marginLeft', !0),
+                        }
+                      );
+                  },
+                  offsetParent: function () {
+                    return this.map(function () {
+                      for (var t = this.offsetParent; t && 'static' === B.css(t, 'position'); )
+                        t = t.offsetParent;
+                      return t || I;
+                    });
+                  },
+                }),
+                B.each({ scrollLeft: 'pageXOffset', scrollTop: 'pageYOffset' }, function (e, i) {
+                  var o = 'pageYOffset' === i;
+                  B.fn[e] = function (t) {
+                    return A(
+                      this,
+                      function (t, e, n) {
+                        var r = Re(t);
+                        if (void 0 === n) return r ? r[i] : t[e];
+                        r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : (t[e] = n);
+                      },
+                      e,
+                      t,
+                      arguments.length,
+                    );
+                  };
+                }),
+                B.each(['top', 'left'], function (t, n) {
+                  B.cssHooks[n] = Gt(f.pixelPosition, function (t, e) {
+                    if (e) return (e = M(t, n)), Yt.test(e) ? B(t).position()[n] + 'px' : e;
+                  });
+                }),
+                B.each({ Height: 'height', Width: 'width' }, function (o, a) {
+                  B.each({ padding: 'inner' + o, content: a, '': 'outer' + o }, function (r, t) {
+                    B.fn[t] = function (t, e) {
+                      var n = arguments.length && (r || 'boolean' != typeof t),
+                        i = r || (!0 === t || !0 === e ? 'margin' : 'border');
+                      return A(
+                        this,
+                        function (t, e, n) {
+                          var r;
+                          return B.isWindow(t)
+                            ? t.document.documentElement['client' + o]
+                            : 9 === t.nodeType
+                              ? ((r = t.documentElement),
+                                Math.max(
+                                  t.body['scroll' + o],
+                                  r['scroll' + o],
+                                  t.body['offset' + o],
+                                  r['offset' + o],
+                                  r['client' + o],
+                                ))
+                              : void 0 === n
+                                ? B.css(t, e, i)
+                                : B.style(t, e, n, i);
+                        },
+                        a,
+                        n ? t : void 0,
+                        n,
+                        null,
+                      );
+                    };
+                  });
+                }),
+                B.fn.extend({
+                  bind: function (t, e, n) {
+                    return this.on(t, null, e, n);
+                  },
+                  unbind: function (t, e) {
+                    return this.off(t, null, e);
+                  },
+                  delegate: function (t, e, n, r) {
+                    return this.on(e, t, n, r);
+                  },
+                  undelegate: function (t, e, n) {
+                    return 1 === arguments.length ? this.off(t, '**') : this.off(e, t || '**', n);
+                  },
+                  size: function () {
+                    return this.length;
+                  },
+                }),
+                (B.fn.andSelf = B.fn.addBack);
+              var Ue = w.jQuery,
+                Ne = w.$;
+              return (
+                (B.noConflict = function (t) {
+                  return w.$ === B && (w.$ = Ne), t && w.jQuery === B && (w.jQuery = Ue), B;
+                }),
+                U || (w.jQuery = w.$ = B),
+                B
+              );
+            }),
+            'object' == typeof e && 'object' == typeof e.exports
+              ? (e.exports = r.document
+                  ? i(r, !0)
+                  : function (t) {
+                      if (t.document) return i(t);
+                      throw new Error('jQuery requires a window with a document');
+                    })
+              : i(r);
+        },
+        {},
+      ],
+      2: [
+        function (t, e, n) {
+          'use strict';
+          var u = t('d3'),
+            c = t('./FeatureFactory'),
+            A = t('./NonOverlappingLayout'),
+            h = t('./ViewerHelper'),
+            p = t('./Constants');
+          e.exports = function (n, t, e, r) {
+            function i(t) {
+              t.each(function (t) {
+                (o = u.select(this)),
+                  (o = o.selectAll('.up_pftv_feature').data(t))
+                    .enter()
+                    .append('path')
+                    .attr('name', function (t, e) {
+                      return (
+                        (t.internalId = void 0 === t.internalId ? n + '_' + e : t.internalId),
+                        t.internalId
+                      );
+                    })
+                    .attr('class', function (t) {
+                      return 'up_pftv_feature up_pftv_' + t.type.toLowerCase();
+                    })
+                    .filter(function (t) {
+                      return t.color || p.getTrackInfo(t.type).color;
+                    })
+                    .style('fill', function (t) {
+                      return (
+                        t.color ||
+                        (p.getTrackInfo(t.type).color ? p.getTrackInfo(t.type).color : 'black')
+                      );
+                    })
+                    .style('stroke', function (t) {
+                      return (
+                        t.color ||
+                        (p.getTrackInfo(t.type).color ? p.getTrackInfo(t.type).color : 'black')
+                      );
+                    }),
+                  o
+                    .attr('d', function (t) {
+                      return c.getFeature(
+                        t.type,
+                        r.xScale(2) - r.xScale(1),
+                        a.layout.getFeatureHeight(),
+                        t.end ? t.end - t.begin + 1 : 1,
+                      );
+                    })
+                    .attr('transform', function (t) {
+                      return 'translate(' + r.xScale(t.begin) + ',' + a.layout.getYPos(t) + ')';
+                    }),
+                  h.addEventsClassAndTitle(n, o, r, e),
+                  o.exit().remove();
+              });
+            }
+            var o,
+              a = this,
+              s = ((a.height = 40), r.width),
+              l =
+                ((a.layout = new A(t, a.height)),
+                a.layout.calculate(),
+                h
+                  .createSVG(e, s, a.height, r)
+                  .append('g')
+                  .classed('up_pftv_category-viewer-group', !0)
+                  .datum(t)
+                  .call(i));
+            return (
+              (this.update = function () {
+                l.call(i), h.updateHighlight(r);
+              }),
+              (this.updateData = function (t) {
+                (this.layout = new A(t, this.height)),
+                  this.layout.calculate(),
+                  l.datum(t),
+                  this.update();
+              }),
+              this
+            );
+          };
+        },
+        {
+          './Constants': 5,
+          './FeatureFactory': 10,
+          './NonOverlappingLayout': 13,
+          './ViewerHelper': 20,
+          d3: 33,
+        },
+      ],
+      3: [
+        function (t, e, n) {
+          'use strict';
+          function o(t, e, n, r, i) {
+            var o = this,
+              t =
+                ((o.name = t),
+                (o.tracks = []),
+                (o.data = e),
+                (o.viewerType = n.visualizationType),
+                (o.fv = r),
+                (o.categoryViewer = void 0),
+                (o.categoryContainer = i.append('div').attr('class', 'up_pftv_category')),
+                o.categoryContainer
+                  .append('div')
+                  .style('display', 'table-caption')
+                  .append('div')
+                  .style('display', 'table')
+                  .style('width', '100%'));
+            (o.header = t
+              .append('a')
+              .attr('class', 'up_pftv_category-name up_pftv_arrow-right')
+              .attr('title', o.name)
+              .text(n.label)
+              .on('click', function () {
+                o.toggle(), o.propagateSelection();
+              })),
+              (o.viewerContainer = t.append('div').attr('class', 'up_pftv_category-viewer')),
+              (o.tracksContainer = o.categoryContainer
+                .append('div')
+                .style('display', 'table-row')
+                .append('div')
+                .attr('class', 'up_pftv_category-tracks')
+                .style('display', 'none'));
+          }
+          function r(t, i, e) {
+            l.each(t[e].variants, function (e) {
+              var t,
+                n,
+                r = l.find(i.variants, function (t) {
+                  return (
+                    t.begin === e.begin &&
+                    t.end === e.end &&
+                    t.wildType === e.wildType &&
+                    t.alternativeSequence === e.alternativeSequence
+                  );
+                });
+              r
+                ? ((t = e),
+                  (r = r).sourceType || t.sourceType
+                    ? r.sourceType
+                      ? t.sourceType || (n = r.sourceType)
+                      : (n = t.sourceType)
+                    : (n = void 0),
+                  s.extend(!0, r, t),
+                  (r.sourceType = n))
+                : i.variants.push(e);
+            });
+          }
+          function i(t) {
+            return new c(t.name, t.data, t.viewerContainer, t.fv);
+          }
+          var a = t('d3'),
+            s = t('jquery'),
+            l = t('underscore'),
+            u = t('./TrackFactory'),
+            c = (t('./FeatureFactory'), t('./NonOverlappingLayout'), t('./BasicViewer')),
+            A = (t('./ViewerHelper'), t('./Constants')),
+            h = (t('./Evidence'), t('./VariantCategoryViewer'));
+          (o.prototype.reset = function () {
+            l.each(this.tracks, function (t) {
+              t.reset && t.reset();
+            });
+          }),
+            (o.prototype.repaint = function (n) {
+              var t = this,
+                e =
+                  (t.viewerType === A.getVisualizationTypes().basic
+                    ? (t.data = l.union(t.data, n))
+                    : l.each(t.data, function (t, e) {
+                        0 !== n[e].variants.length && 0 !== t.variants.length
+                          ? r(n, t, e)
+                          : 0 !== n[e].variants.length && (t.variants = n[e].variants);
+                      }),
+                  a.select('.up_pftv_category_' + t.name)),
+                e =
+                  (e.select('.up_pftv_category-viewer-group').selectAll('*').remove(),
+                  t.categoryViewer.updateData(t.data),
+                  e.select('.up_pftv_category-tracks'));
+              e.selectAll('*').remove(), e.html(''), (t.tracks = []), t.buildTracks();
+            }),
+            (o.prototype.addTrack = function (t) {
+              this.tracks.push(t);
+            }),
+            (o.prototype.buildTracks = function () {
+              var n = this,
+                r = l.groupBy(n.data, function (t) {
+                  if (t.type) return t.type;
+                }),
+                i = this;
+              l.each(r, function (t, e) {
+                i.addTrack(u.createTrack(r[e], n.viewerType, n));
+              });
+            }),
+            (o.prototype.toggle = function () {
+              var t = this;
+              'none' === t.tracksContainer.style('display')
+                ? (t.tracksContainer.style('display', 'block'),
+                  t.viewerContainer
+                    .select('.up_pftv_category-viewer-group')
+                    .style('display', 'none'),
+                  t.header.attr('class', 'up_pftv_category-name up_pftv_arrow-down'))
+                : (t.tracksContainer.style('display', 'none'),
+                  t.viewerContainer
+                    .select('.up_pftv_category-viewer-group')
+                    .style('display', 'block'),
+                  t.header.attr('class', 'up_pftv_category-name up_pftv_arrow-right'));
+            }),
+            (o.prototype.propagateSelection = function () {
+              this.fv.selectedFeature &&
+                this.fv.globalContainer
+                  .selectAll('svg path[name=' + this.fv.selectedFeature.internalId + ']')
+                  .classed('up_pftv_activeFeature', !0);
+            }),
+            (o.prototype.setDisabled = function () {
+              this.categoryContainer.attr('class', 'up_pftv_category up_pftv_category-disabled'),
+                this.viewerContainer.style('display', 'none'),
+                this.header.on('click', function () {});
+            }),
+            (o.prototype.update = function () {
+              this.categoryViewer.update(),
+                l.each(this.tracks, function (t) {
+                  t.update();
+                });
+            });
+          (o.basic = function () {
+            this.categoryViewer = new i(this);
+          }),
+            (o.variant = function () {
+              this.categoryViewer = new h(this);
+            }),
+            (e.exports = {
+              createCategory: function (t, e, n, r, i) {
+                return (
+                  'function' != typeof o[n.visualizationType] &&
+                    console.log(
+                      'WARNING: Category viewer type ' + n.visualizationType + " doesn't exist",
+                    ),
+                  (o[n.visualizationType].prototype = new o(t, e, n, r, i)),
+                  (t = new o[n.visualizationType]()),
+                  0 < e.length ? t.buildTracks() : t.setDisabled(),
+                  t
+                );
+              },
+            });
+        },
+        {
+          './BasicViewer': 2,
+          './Constants': 5,
+          './Evidence': 9,
+          './FeatureFactory': 10,
+          './NonOverlappingLayout': 13,
+          './TrackFactory': 15,
+          './VariantCategoryViewer': 16,
+          './ViewerHelper': 20,
+          d3: 33,
+          jquery: 1,
+          underscore: 70,
+        },
+      ],
+      4: [
+        function (t, e, n) {
+          'use strict';
+          function r(t, e) {
+            var r,
+              i,
+              o,
+              n = e
+                .append('div')
+                .attr('class', 'up_pftv_popupDialog-container')
+                .style('left', a.mouse(e.node())[0] + 10 + 'px')
+                .style('top', a.mouse(e.node())[1] + 5 + 'px')
+                .on('mousedown', function () {
+                  t.overCatFilterDialog = !0;
+                })
+                .on('mouseup', function () {
+                  t.overCatFilterDialog = !1;
+                });
+            return (
+              n
+                .append('span')
+                .text('x')
+                .attr('class', 'up_pftv_tooltip-close')
+                .on('click', function () {
+                  (t.overCatFilterDialog = !1),
+                    n.transition(20).style('opacity', 0).style('display', 'none');
+                }),
+              (r = t),
+              (i = n),
+              (o = 0),
+              s.each(l.getCategoryNamesInOrder(), function (t) {
+                var e = t.name,
+                  n = s.find(r.data, function (t) {
+                    return t[0] === e;
+                  });
+                n &&
+                  0 !== n[1].length &&
+                  ((n = i.append('div'))
+                    .append('input')
+                    .attr('type', 'checkbox')
+                    .property('checked', !0)
+                    .attr('index', o)
+                    .on('click', function () {
+                      var t = a.select(this),
+                        e = +t.attr('index'),
+                        n = r.globalContainer.selectAll('.up_pftv_category');
+                      t.property('checked')
+                        ? (a.select(n[0][e]).style('display', 'block'),
+                          i.selectAll('input:disabled').attr('disabled', null))
+                        : (a.select(n[0][e]).style('display', 'none'),
+                          1 === (t = i.selectAll('input:checked'))[0].length &&
+                            t.attr('disabled', !0));
+                    }),
+                  n.append('label').text(t.label),
+                  o++);
+              }),
+              n
+            );
+          }
+          var a = t('d3'),
+            s = t('underscore'),
+            l = (t('./ViewerHelper'), t('./Constants'));
+          e.exports = {
+            displayDialog: function (t, e) {
+              t.categoryFilterDialog || (t.categoryFilterDialog = r(t, e)),
+                t.categoryFilterDialog.transition(20).style('opacity', 1).style('display', 'block');
+            },
+            closeDialog: function (t) {
+              t.categoryFilterDialog &&
+                t.categoryFilterDialog.transition(20).style('opacity', 0).style('display', 'none');
+            },
+          };
+        },
+        { './Constants': 5, './ViewerHelper': 20, d3: 33, underscore: 70 },
+      ],
+      5: [
+        function (t, e, n) {
+          'use strict';
+          var r,
+            i = t('underscore'),
+            o = t('./config.json'),
+            a = { basic: 'basic', variant: 'variant' },
+            s = 'uniprot',
+            l = [
+              {
+                url: 'https://www.ebi.ac.uk/proteins/api/features/',
+                source: s,
+                category: 'FEATURES',
+              },
+              {
+                url: 'https://www.ebi.ac.uk/proteins/api/proteomics/',
+                source: s,
+                category: 'PROTEOMICS',
+              },
+              {
+                url: 'https://www.ebi.ac.uk/proteins/api/variation/',
+                source: s,
+                category: 'VARIATION',
+              },
+              {
+                url: 'https://www.ebi.ac.uk/proteins/api/antigen/',
+                source: s,
+                category: 'ANTIGEN',
+              },
+            ],
+            u = l.slice(0),
+            c = o.categories.slice(0),
+            A = o.trackNames,
+            h = [
+              { text: 'JSON', type: 'json', all: !0 },
+              { text: 'XML', type: 'xml', all: !1 },
+              { text: 'GFF', type: 'gff', all: !1 },
+            ],
+            p = [],
+            d = {
+              getBlastURL: function () {
+                return 'http://www.uniprot.org/blast/?about=';
+              },
+              getNoBlastTypes: function () {
+                return ['helix', 'strand', 'turn', 'disulfid', 'crosslnk', 'variant'];
+              },
+              getVisualizationTypes: function () {
+                return a;
+              },
+              getDownloadFormats: function () {
+                return h;
+              },
+              getDataSources: function () {
+                return u;
+              },
+              getUniProtDataSources: function () {
+                return l;
+              },
+              getExternalDataSource: function () {
+                return r;
+              },
+              getUniProtSource: function () {
+                return s;
+              },
+              addSource: function (t) {
+                u.push(t), (r = t);
+              },
+              initSources: function () {
+                (u = l.slice(0)), (c = o.categories.slice(0)), (p = []), (r = void 0);
+              },
+              addConsequenceType: function (t) {
+                p.push(t);
+              },
+              getConsequenceTypes: function () {
+                return i.uniq(p);
+              },
+              clearDataSources: function () {
+                u = [];
+              },
+              getCategoryNamesInOrder: function () {
+                return c;
+              },
+              setCategoryNamesInOrder: function (t) {
+                c = t;
+              },
+              setOrderForCategoryNames: function (t) {
+                var e = [];
+                i.each(t, function (n) {
+                  var r = 0,
+                    t = i.find(c, function (t, e) {
+                      return (r = e), t.name.toUpperCase() === n.toUpperCase();
+                    });
+                  t && (e.push(t), c.splice(r, 1));
+                }),
+                  (c = e.concat(c));
+              },
+              convertNameToLabel: function (t) {
+                t = t.replace(/_/g, ' ');
+                return (t = t.charAt(0).toUpperCase() + t.slice(1).toLowerCase());
+              },
+              getCategoryInfo: function (e) {
+                var t = i.find(c, function (t) {
+                  return t.name === e;
+                });
+                return (
+                  t || {
+                    name: e,
+                    label: d.convertNameToLabel(e),
+                    visualizationType: d.getVisualizationTypes().basic,
+                  }
+                );
+              },
+              addCategories: function (t) {
+                var n = 0;
+                i.each(t, function (e) {
+                  var t = i.find(c, function (t) {
+                    return t.name === e.name;
+                  });
+                  t
+                    ? ((t.label = e.label), (t.visualizationType = e.visualizationType))
+                    : (c.splice(n, 0, e), n++);
+                });
+              },
+              getTrackNames: function () {
+                return A;
+              },
+              setTrackNames: function (t) {
+                A = t;
+              },
+              addTrackTypes: function (t) {
+                i.each(t, function (t, e) {
+                  (e = e.toLowerCase()), (A[e] = t);
+                });
+              },
+              getTrackInfo: function (t) {
+                t = t.toLowerCase();
+                return this.getTrackNames()[t]
+                  ? this.getTrackNames()[t]
+                  : { label: d.convertNameToLabel(t), tooltip: '' };
+              },
+            };
+          e.exports = d;
+        },
+        { './config.json': 21, underscore: 70 },
+      ],
+      6: [
+        function (t, e, n) {
+          'use strict';
+          function u(t) {
+            return (
+              c.each(t, function (t) {
+                var e;
+                t.evidences &&
+                  ((e = {}),
+                  c.each(t.evidences, function (t) {
+                    e[t.code] ? e[t.code].push(t.source) : (e[t.code] = [t.source]);
+                  }),
+                  (t.evidences = e));
+              }),
+              t
+            );
+          }
+          function a(t, e) {
+            var n = {};
+            return (
+              t && t !== A.getUniProtSource()
+                ? ((n.begin = e.begin),
+                  delete e.begin,
+                  (n.end = e.end),
+                  delete e.end,
+                  (n.wildType = e.wildType),
+                  delete e.wildType,
+                  (n.alternativeSequence = e.alternativeSequence),
+                  delete e.alternativeSequence,
+                  (n.sourceType = e.sourceType),
+                  delete e.sourceType,
+                  (n.type = e.type),
+                  delete e.type,
+                  (n.externalData = {}),
+                  (n.externalData[t] = e))
+                : (n = e),
+              n
+            );
+          }
+          var i = t('jquery'),
+            c = t('underscore'),
+            A = (t('./Evidence'), t('./Constants')),
+            h = {
+              get: function (t) {
+                return 0 == t.indexOf('data:')
+                  ? i.Deferred().resolve(JSON.parse(decodeURI(t).replace(/[^,]*,/, '')))
+                  : i.getJSON(t);
+              },
+              post: function (t, e, n, r) {
+                t = { url: t, data: e };
+                return (
+                  void 0 !== n && (t.contentType = n),
+                  i.post(t).then(function (t) {
+                    return void 0 === r ? i.Deferred().resolve(t) : r(t);
+                  })
+                );
+              },
+              groupFeaturesByCategory: function (t, e, n, r) {
+                t = u(t);
+                var i,
+                  o = c.groupBy(t, function (t) {
+                    return t.category;
+                  }),
+                  a =
+                    (n && n !== A.getUniProtSource() && !0 === r
+                      ? ((i = o.VARIATION), delete o.VARIATION)
+                      : delete o.VARIANTS,
+                    []),
+                  s = A.getCategoryNamesInOrder(),
+                  s = c.pluck(s, 'name'),
+                  l = [];
+                return (
+                  c.each(o, function (t, e) {
+                    c.contains(s, e) ||
+                      l.push({
+                        name: e,
+                        label: A.convertNameToLabel(e),
+                        visualizationType: A.getVisualizationTypes().basic,
+                      });
+                  }),
+                  0 !== l.length &&
+                    (A.addCategories(l),
+                    (s = A.getCategoryNamesInOrder()),
+                    (s = c.pluck(s, 'name'))),
+                  c.each(s, function (t) {
+                    o[t] && a.push([t, o[t]]);
+                  }),
+                  i && ((t = h.processVariants(i, e, n, !0)), a.push(t[0])),
+                  a
+                );
+              },
+              processProteomics: function (t) {
+                return (
+                  (t = u(t)),
+                  [
+                    [
+                      'PROTEOMICS',
+                      c.map(t, function (t) {
+                        return t.unique ? (t.type = 'unique') : (t.type = 'non_unique'), t;
+                      }),
+                    ],
+                  ]
+                );
+              },
+              processUngroupedFeatures: function (t) {
+                return [[(t = u(t))[0].type, t]];
+              },
+              processVariants: function (t, e, n, r) {
+                t.forEach(function (e) {
+                  e.predictions &&
+                    e.predictions.forEach(function (t) {
+                      'PolyPhen' == t.predAlgorithmNameType
+                        ? ((e.polyphenPrediction = t.predictionValType),
+                          (e.polyphenScore = t.score))
+                        : 'SIFT' == t.predAlgorithmNameType &&
+                          ((e.siftPrediction = t.predictionValType), (e.siftScore = t.score));
+                    }),
+                    void 0 === e.alternativeSequence &&
+                      ((e.alternativeSequence = '*'),
+                      console.warn(
+                        'Variant alternative sequence changed to * as no alternative sequence provided by the API',
+                        e,
+                      ));
+                }),
+                  n &&
+                    n !== A.getUniProtSource() &&
+                    c.each(t, function (t) {
+                      delete t.category;
+                    }),
+                  r || (t = u(t));
+                var i = [],
+                  o =
+                    (i.push({ type: 'VARIANT', normal: 'del', pos: 0, variants: [] }), e.split(''));
+                return (
+                  c.each(o, function (t, e) {
+                    i.push({ type: 'VARIANT', normal: o[e], pos: e + 1, variants: [] });
+                  }),
+                  i.push({ type: 'VARIANT', normal: 'del', pos: o.length + 1, variants: [] }),
+                  c.each(t, function (t) {
+                    (t.begin = +t.begin),
+                      (t.end = t.end ? +t.end : t.begin),
+                      (t.wildType = t.wildType || e.substring(t.begin, t.end + 1)),
+                      (t.sourceType = t.sourceType && t.sourceType.toLowerCase()),
+                      1 <= t.begin && t.begin <= o.length
+                        ? i[t.begin].variants.push(a(n, t))
+                        : o.length + 1 === t.begin && i[t.begin - 1].variants.push(a(n, t)),
+                      t.consequence && A.addConsequenceType(t.consequence);
+                  }),
+                  [['VARIATION', i]]
+                );
+              },
+            };
+          e.exports = h;
+        },
+        { './Constants': 5, './Evidence': 9, jquery: 1, underscore: 70 },
+      ],
+      7: [
+        function (t, e, n) {
+          'use strict';
+          function l(t, e, n) {
+            return (
+              e.source + '_' + t + (e.category ? '_' + e.category.toLowerCase() : '') + '.' + n
+            );
+          }
+          var u = t('jquery'),
+            r = t('underscore'),
+            c = t('./Constants'),
+            A = t('jszip'),
+            h = t('file-saver');
+          e.exports = {
+            get: function (i, o, t) {
+              var a = new A(),
+                s = [];
+              r.each(c.getDataSources(), function () {
+                var t = u.Deferred();
+                s.push(t);
+              }),
+                r.each(c.getDataSources(), function (e, t) {
+                  var n = e.source === c.getUniProtSource() ? '' : '.' + o,
+                    r = u
+                      .ajax({
+                        accepts: {
+                          gff: 'text/x-gff',
+                          json: 'application/json',
+                          xml: 'application/xml',
+                        },
+                        converters: {
+                          'text gff': function (t) {
+                            return t;
+                          },
+                          'text json': function (t) {
+                            return t;
+                          },
+                          'text xml': function (t) {
+                            return t;
+                          },
+                        },
+                        dataType: o,
+                        url: e.url + i + n,
+                      })
+                      .done(function (t) {
+                        -1 !== r.getResponseHeader('Content-type').indexOf(o)
+                          ? a.file(l(i, e, o), t)
+                          : a.file(
+                              l(i, e, o),
+                              'Unable to retrieve the data in the requiredformat ' + o + '.',
+                            );
+                      })
+                      .fail(function (t) {
+                        a.file(
+                          l(i, e, o),
+                          'Unable to retrieve the data at this time. Please try again later.',
+                        );
+                      })
+                      .always(function () {
+                        s[t].resolve();
+                      });
+                }),
+                u.when.apply(null, s).always(function () {
+                  t
+                    ? a.generateAsync({ type: 'base64' }).then(
+                        function (t) {
+                          window.location = 'data:application/zip;base64,' + t;
+                        },
+                        function (t) {
+                          console.log('Error: ', t);
+                        },
+                      )
+                    : a.generateAsync({ type: 'blob' }).then(function (t) {
+                        h.saveAs(t, 'protVistaData.zip');
+                      });
+                });
+            },
+          };
+        },
+        { './Constants': 5, 'file-saver': 36, jquery: 1, jszip: 41, underscore: 70 },
+      ],
+      8: [
+        function (t, e, n) {
+          'use strict';
+          function r(t, e) {
+            var n,
+              r,
+              i,
+              o,
+              a = e
+                .append('div')
+                .attr('class', 'up_pftv_popupDialog-container')
+                .style('left', s.mouse(e.node())[0] + 10 + 'px')
+                .style('top', s.mouse(e.node())[1] + 5 + 'px')
+                .on('mousedown', function () {
+                  t.overDownloadDialog = !0;
+                })
+                .on('mouseup', function () {
+                  t.overDownloadDialog = !1;
+                });
+            return (
+              a
+                .append('span')
+                .text('x')
+                .attr('class', 'up_pftv_tooltip-close')
+                .on('click', function () {
+                  (t.overDownloadDialog = !1),
+                    a.transition(20).style('opacity', 0).style('display', 'none');
+                }),
+              (n = t),
+              (r = a),
+              (i =
+                0 === navigator.vendor.indexOf('Apple') && /\sSafari\//.test(navigator.userAgent)),
+              (o = !0),
+              (e =
+                void 0 === u.getExternalDataSource()
+                  ? u.getDownloadFormats()
+                  : l.filter(u.getDownloadFormats(), function (t) {
+                      return t.all;
+                    })),
+              l.each(e, function (t) {
+                var e = r.append('div');
+                e
+                  .append('input')
+                  .attr('type', 'radio')
+                  .attr('name', 'upfv_radio_format')
+                  .attr('value', t.type)
+                  .property('checked', o),
+                  e.append('label').text(t.text),
+                  (o = !1);
+              }),
+              i &&
+                ((e = r.append('div').classed('up_pftv_message_wrapper', !0))
+                  .append('span')
+                  .attr('class', 'up_pftv_icon up_pftv_warning'),
+                e.append('span').text('  Please add the extension .zip to the downloaded file.')),
+              r
+                .append('div')
+                .style('text-align', 'right')
+                .append('button')
+                .text('Download')
+                .on('click', function () {
+                  var t = r.selectAll('input').filter(function () {
+                    return s.select(this).property('checked');
+                  });
+                  c.get(n.uniprotacc, t.attr('value'), i);
+                }),
+              a
+            );
+          }
+          var s = t('d3'),
+            l = t('underscore'),
+            u = (t('./ViewerHelper'), t('./Constants')),
+            c = t('./DownloadDataLoader');
+          e.exports = {
+            displayDialog: function (t, e) {
+              t.downloadDialog || (t.downloadDialog = r(t, e)),
+                t.downloadDialog.transition(20).style('opacity', 1).style('display', 'block');
+            },
+            closeDialog: function (t) {
+              t.downloadDialog &&
+                t.downloadDialog.transition(20).style('opacity', 0).style('display', 'none');
+            },
+          };
+        },
+        {
+          './Constants': 5,
+          './DownloadDataLoader': 7,
+          './ViewerHelper': 20,
+          d3: 33,
+          underscore: 70,
+        },
+      ],
+      9: [
+        function (t, e, n) {
+          'use strict';
+          var r = t('underscore'),
+            i = {
+              manual: [
+                'ECO:0000269',
+                'ECO:0000303',
+                'ECO:0000305',
+                'ECO:0000250',
+                'ECO:0000255',
+                'ECO:0000244',
+                'ECO:0000312',
+              ],
+              automatic: ['ECO:0000256', 'ECO:0000213', 'ECO:0000313', 'ECO:0000259'],
+              acronym: {
+                'ECO:0000269': 'EXP',
+                'ECO:0000303': 'NAS',
+                'ECO:0000305': 'IC',
+                'ECO:0000250': 'ISS',
+                'ECO:0000255': 'ISM',
+                'ECO:0000244': 'MIXM',
+                'ECO:0000312': 'MI',
+                'ECO:0000256': 'AA',
+                'ECO:0000213': 'MIXA',
+                'ECO:0000313': 'AI',
+                'ECO:0000259': 'AA',
+              },
+              text: {
+                'ECO:0000269': 'Manual assertion based on experiment',
+                'ECO:0000303': 'Manual assertion based on opinion',
+                'ECO:0000305': 'Manual assertion inferred by curator',
+                'ECO:0000250': 'Manual assertion inferred from sequence similarity',
+                'ECO:0000255': 'Manual assertion according to rules',
+                'ECO:0000244':
+                  'Manual assertion inferred from combination of experimental and computational evidence',
+                'ECO:0000312': 'Manual assertion inferred from database entries',
+                'ECO:0000256': 'Automatic assertion according to rules',
+                'ECO:0000259': 'Automatic assertion inferred from signature match',
+                'ECO:0000213':
+                  'Automatic assertion inferred from combination of experimental and computational evidence',
+                'ECO:0000313': 'Automatic assertion inferred from database entries',
+              },
+              isLSS: function (t) {
+                return r.some(t, function (t) {
+                  return r.contains(i.automatic, t.code);
+                });
+              },
+              variantSourceType: { uniprot: 'uniprot', lss: 'large_scale_study', mixed: 'mixed' },
+              existAssociation: function (t) {
+                return (
+                  !!t &&
+                  0 !== t.length &&
+                  !!((t[0].moreInfo && 0 !== t[0].moreInfo.length) || t[0].name || t[0].description)
+                );
+              },
+            };
+          e.exports = i;
+        },
+        { underscore: 70 },
+      ],
+      10: [
+        function (t, e, n) {
+          'use strict';
+          t('d3'), t('underscore');
+          function o() {
+            return this;
+          }
+          function a(t, e) {
+            return (
+              'M' +
+              (t + l) +
+              ',' +
+              t +
+              'L' +
+              (e / 2 + l) +
+              ',' +
+              t +
+              'M' +
+              (-t + l) +
+              ',' +
+              t +
+              'L' +
+              (-e / 2 + l) +
+              ',' +
+              t
+            );
+          }
+          function r(t, e, n) {
+            for (var r = 'M ', i = 0; i < t; i++)
+              r +=
+                5 * Math.cos((2 * Math.PI * i) / t) +
+                l +
+                ',' +
+                (5 * Math.sin((2 * Math.PI * i) / t) + 5) +
+                ' ';
+            return 1 !== n
+              ? r + ' ' + (5 * Math.cos(0) + l) + ',' + (5 * Math.sin(0) + 5) + ' ' + a(5, e) + 'Z'
+              : r + 'Z';
+          }
+          var s = 0,
+            l = 0,
+            u = {
+              chain: 'rectangle',
+              transit: 'rectangle',
+              init_met: 'arrow',
+              propep: 'rectangle',
+              peptide: 'rectangle',
+              signal: 'rectangle',
+              helix: 'rectangle',
+              strand: 'rectangle',
+              turn: 'rectangle',
+              region: 'rectangle',
+              coiled: 'rectangle',
+              motif: 'rectangle',
+              repeat: 'rectangle',
+              ca_bind: 'rectangle',
+              dna_bind: 'rectangle',
+              domain: 'rectangle',
+              zn_fing: 'rectangle',
+              np_bind: 'rectangle',
+              metal: 'diamond',
+              site: 'chevron',
+              binding: 'catFace',
+              act_site: 'circle',
+              mod_res: 'triangle',
+              lipid: 'wave',
+              carbohyd: 'hexagon',
+              disulfid: 'bridge',
+              crosslnk: 'bridge',
+              compbias: 'rectangle',
+              conflict: 'rectangle',
+              non_cons: 'doubleBar',
+              non_ter: 'doubleBar',
+              unsure: 'rectangle',
+              non_std: 'pentagon',
+              mutagen: 'rectangle',
+              topo_dom: 'rectangle',
+              transmem: 'rectangle',
+              intramem: 'rectangle',
+              var_seq: 'variant',
+              variant: 'variant',
+              missense: 'variant',
+              ms_del: 'variant',
+              insdel: 'variant',
+              stop_lost: 'variant',
+              stop_gained: 'variant',
+              init_codon: 'variant',
+              unique: 'rectangle',
+              non_unique: 'rectangle',
+            },
+            t = {
+              getFeature: function (t, e, n, r) {
+                var t = u[t.toLowerCase()],
+                  i = e * r;
+                return (
+                  (l = 1 === r ? 0 : i / r / 2),
+                  (s = e / 2),
+                  (o[(t = 'function' != typeof o[t] ? 'rectangle' : t)].prototype = new o()),
+                  o[t](i, n, r)
+                );
+              },
+              isContinuous: function (t) {
+                return 'disulfid' !== (t = t.toLowerCase()) && 'crosslnk' !== t;
+              },
+            };
+          (o.rectangle = function (t, e) {
+            return (
+              'M' + -s + ',0L' + (t - s) + ',0L' + (t - s) + ',' + e + 'L' + -s + ',' + e + 'Z'
+            );
+          }),
+            (o.bridge = function (t, e, n) {
+              return 1 !== n
+                ? 'M' +
+                    -s +
+                    ',' +
+                    e +
+                    'L' +
+                    -s +
+                    ',0L' +
+                    (t - s) +
+                    ',0L' +
+                    (t - s) +
+                    ',' +
+                    e +
+                    'L' +
+                    (t - s) +
+                    ',2L' +
+                    -s +
+                    ',2Z'
+                : 'M' +
+                    -s +
+                    ',' +
+                    e +
+                    'L' +
+                    -s +
+                    ',' +
+                    e / 2 +
+                    'L0,' +
+                    e / 2 +
+                    'L0,0L0,' +
+                    e / 2 +
+                    'L' +
+                    (t - s) +
+                    ',' +
+                    e / 2 +
+                    'L' +
+                    (t - s) +
+                    ',' +
+                    e +
+                    'Z';
+            }),
+            (o.diamond = function (t, e, n) {
+              var r = 'M' + l + ',0L' + (5 + l) + ',5L' + l + ',10L' + (-5 + l) + ',5';
+              return 1 !== n ? r + 'L' + l + ',0Z' + a(5, t) : r + 'Z';
+            }),
+            (o.chevron = function (t, e, n) {
+              var r =
+                'M' +
+                l +
+                ',5L' +
+                (5 + l) +
+                ',0L' +
+                (5 + l) +
+                ',5L' +
+                l +
+                ',10L' +
+                (-5 + l) +
+                ',5L' +
+                (-5 + l) +
+                ',0';
+              return 1 !== n ? r + 'L' + l + ',5' + a(5, t) + 'Z' : r + 'Z';
+            }),
+            (o.catFace = function (t, e, n) {
+              var r =
+                'M' +
+                (-5 + l) +
+                ',0L' +
+                (-5 + l) +
+                ',6L' +
+                (-2 + l) +
+                ',10L' +
+                (2 + l) +
+                ',10L' +
+                (5 + l) +
+                ',6L' +
+                (5 + l) +
+                ',0L' +
+                (2 + l) +
+                ',4L' +
+                (-2 + l) +
+                ',4';
+              return 1 !== n ? r + 'M' + (-5 + l) + ',0' + a(5, t) + 'Z' : r + 'Z';
+            }),
+            (o.triangle = function (t, e, n) {
+              var r = 'M' + l + ',0L' + (5 + l) + ',10L' + (-5 + l) + ',10';
+              return 1 !== n ? r + 'L' + l + ',0' + a(5, t) + 'Z' : r + 'Z';
+            }),
+            (o.wave = function (t, e, n) {
+              var r = 'M' + (-5 + l) + ',5A2.5,5 0 1,1 ' + l + ',5A2.5,5 0 1,0 ' + (5 + l) + ',5';
+              return 1 !== n ? r + a(5, t) + 'Z' : r + 'Z';
+            });
+          (o.hexagon = function (t, e, n) {
+            return r(6, t, n);
+          }),
+            (o.pentagon = function (t, e, n) {
+              return r(5, t, n);
+            }),
+            (o.circle = function (t, e, n) {
+              var r = Math.sqrt(10 / Math.PI),
+                r =
+                  'M' +
+                  l +
+                  ',0A' +
+                  r +
+                  ',' +
+                  r +
+                  ' 0 1,1 ' +
+                  l +
+                  ',10A' +
+                  r +
+                  ',' +
+                  r +
+                  ' 0 1,1 ' +
+                  l +
+                  ',0';
+              return 1 !== n ? r + a(5, t) + 'Z' : r + 'Z';
+            }),
+            (o.arrow = function (t, e, n) {
+              e =
+                'M' +
+                l +
+                ',0L' +
+                (-1 + l) +
+                ',0L' +
+                (-5 + l) +
+                ',4L' +
+                (-1 + l) +
+                ',' +
+                e +
+                'L' +
+                l +
+                ',' +
+                e +
+                'L' +
+                (4 + l) +
+                ',4';
+              return 1 !== n ? e + 'L' + l + ',0' + a(5, t) + 'Z' : e + 'Z';
+            }),
+            (o.doubleBar = function (t, e, n) {
+              var r = 'M' + l + ',0L' + (-5 + l) + ',10L' + l + ',10L' + (5 + l) + ',0';
+              return 1 !== n ? r + 'L' + l + ',0' + a(5, t) + 'Z' : r + 'Z';
+            }),
+            (o.variant = function () {}),
+            (e.exports = t);
+        },
+        { d3: 33, underscore: 70 },
+      ],
+      11: [
+        function (t, e, n) {
+          function i(t) {
+            t.xScale.domain([1, t.maxZoomSize]),
+              m.centerToHighlightedSelection(t),
+              x(t),
+              C(t),
+              B(t),
+              I(t, 'up_pftv_icon-zoom-in', 'up_pftv_icon-zoom-out', 'Zoom out to overview');
+          }
+          function o(t) {
+            t.xScale.domain([1, t.maxPos]),
+              M(t),
+              I(t, 'up_pftv_icon-zoom-out', 'up_pftv_icon-zoom-in', 'Zoom in to sequence view');
+          }
+          function c(t) {
+            t.overFeature ||
+              t.overTooltip ||
+              t.globalContainer
+                .selectAll('.up_pftv_tooltip-container')
+                .transition(20)
+                .style('opacity', 0)
+                .style('display', 'none')
+                .remove(),
+              t.overCatFilterDialog || v.closeDialog(t),
+              t.overDownloadDialog || b.closeDialog(t),
+              t.overHighlightRegionDialog || y.closeDialog(t);
+          }
+          function A(e, t, n) {
+            var r = n.append('div').attr('class', 'up_pftv_buttons');
+            r
+              .append('a')
+              .attr('class', 'up_pftv_icon-button up_pftv_icon-download')
+              .attr('title', 'Download data')
+              .attr('href', '#')
+              .on('click', function () {
+                b.displayDialog(e, r);
+              }),
+              r
+                .append('a')
+                .attr('class', 'up_pftv_icon-button up_pftv_icon-location')
+                .attr('title', 'Highlight region')
+                .attr('href', '#')
+                .on('click', function () {
+                  y.displayDialog(e, r);
+                }),
+              r
+                .append('a')
+                .attr('class', 'up_pftv_icon-button up_pftv_icon-reset')
+                .attr('title', 'Reset')
+                .attr('href', '#')
+                .on('click', function () {
+                  var t;
+                  (t = e).xScale.domain([1, t.maxPos]),
+                    m.deselectFeature(t),
+                    m.resetHighlight(t),
+                    M(t),
+                    I(
+                      t,
+                      'up_pftv_icon-zoom-out',
+                      'up_pftv_icon-zoom-in',
+                      'Zoom in to sequence view',
+                    ),
+                    d.each(t.categories, function (t) {
+                      t.reset();
+                    });
+                }),
+              r
+                .append('a')
+                .attr('class', 'up_pftv_icon-button up_pftv_icon-zoom-in')
+                .attr('title', 'Zoom in to sequence view')
+                .attr('href', '#')
+                .on('click', function () {
+                  (f.select(this).classed('up_pftv_icon-zoom-in') ? i : o)(e);
+                });
+          }
+          function h(n, t, e) {
+            function r(t) {
+              t.each(function (t) {
+                (o = f.select(this)),
+                  (o = o.selectAll('.up_pftv_amino_acid_selector').data(t)).enter().append('path'),
+                  o
+                    .attr('d', function (t) {
+                      return m.highlightPath(t.feature, n, 30);
+                    })
+                    .attr('transform', function (t) {
+                      return 'translate(' + n.xScale(t.feature.begin) + ',0)';
+                    })
+                    .classed('up_pftv_amino_acid_selector', !0),
+                  o.exit().remove();
+              });
+            }
+            function i(t) {
+              t.each(function (t) {
+                (a = f.select(this)),
+                  (a = a.selectAll('.up_pftv_amino-acid').data(t))
+                    .enter()
+                    .append('text')
+                    .style('text-anchor', 'middle')
+                    .attr('y', 15)
+                    .text(function (t) {
+                      return t.toUpperCase();
+                    })
+                    .attr('title', function (t, e) {
+                      return e + 1;
+                    })
+                    .attr('class', 'up_pftv_amino-acid'),
+                  a.attr('x', function (t, e) {
+                    return n.xScale(e + 1);
+                  }),
+                  a.exit().remove();
+              });
+            }
+            var o,
+              a,
+              s = {};
+            n.width;
+            var l = (t = t
+                .append('div')
+                .attr('class', 'up_pftv_aaviewer')
+                .append('svg')
+                .attr('width', '100%')
+                .attr('height', 30))
+                .append('g')
+                .attr('clip-path', 'url(#aaSelectorViewClip)')
+                .style('opacity', 1),
+              u =
+                (l.datum([{ feature: { begin: -10, end: -10 } }]).call(r),
+                f.svg.axis().scale(n.xScale)),
+              c = t
+                .append('g')
+                .attr('class', 'x axis')
+                .attr('transform', 'translate(0, -7)')
+                .call(u),
+              A = t
+                .append('g')
+                .attr('class', 'up_pftv_aa-text')
+                .attr('clip-path', 'url(#aaViewClip)')
+                .attr('transform', 'translate(0,6)')
+                .style('opacity', 0);
+            return (
+              A.datum(e.split('')).call(i),
+              (s.update = function () {
+                c.call(u),
+                  l.call(r),
+                  70 < n.xScale.domain()[1] - n.xScale.domain()[0]
+                    ? A.transition(50).style('opacity', 0)
+                    : (A.call(i), A.transition(50).style('opacity', 1));
+              }),
+              (s.updateFeatureHighlightSelector = function (t, e) {
+                l.datum([{ feature: { begin: t, end: e, type: 'continuous' } }]).call(r);
+              }),
+              s
+            );
+          }
+          function a(r, t, i, o, a) {
+            a.initLayout(r),
+              d.each(t, function (n, t) {
+                var e;
+                d.contains(r.exclusions, n.category)
+                  ? o[t].resolve()
+                  : ((e = n.url),
+                    (e =
+                      null == n.payload
+                        ? (0 != e.indexOf('data:') && (e += r.uniprotacc),
+                          (e = !0 === n.useExtension ? e + '.json' : e),
+                          u.get(e))
+                        : u.post(n.url, n.payload, n.contentType, n.unpack)),
+                    i.push(e),
+                    e
+                      .done(function (t) {
+                        t instanceof Array && (t = t[0]),
+                          a.sequence || a.loadZoom(t),
+                          !a.accession && t.accession && (a.accession = t.accession);
+                        var e = t.features;
+                        0 < e.length && d.has(e[0], 'category')
+                          ? ((e = u.groupFeaturesByCategory(
+                              e,
+                              t.sequence,
+                              n.source,
+                              !d.contains(r.exclusions, 'VARIATION'),
+                            )),
+                            (e = d.filter(e, function (t) {
+                              return !d.contains(r.exclusions, t[0]);
+                            })))
+                          : 0 < e.length && 'VARIANT' === e[0].type
+                            ? (e = d.contains(r.exclusions, 'VARIATION')
+                                ? []
+                                : u.processVariants(e, t.sequence, n.source))
+                            : 0 < e.length && 'PROTEOMICS' === e[0].type
+                              ? (e = d.contains(r.exclusions, 'PROTEOMICS')
+                                  ? []
+                                  : u.processProteomics(e))
+                              : 0 < e.length && (e = u.processUngroupedFeatures(e)),
+                          0 <= e.length &&
+                            (a.drawCategories(e, a),
+                            (a.data = a.data.concat(e)),
+                            a.dispatcher.ready());
+                      })
+                      .fail(function (t) {
+                        console.log(t);
+                      })
+                      .always(function () {
+                        o[t].resolve();
+                      }));
+              });
+          }
+          function r(t) {
+            if (t.fixedWidth) return t.fixedWidth;
+            0 === D && (D = 198);
+            var e = (t = E(t.parentElement)).children('.up_pftv_container');
+            return 0 < e.length ? e.width() - D : t.width() - D;
+          }
+          function p(t, e) {
+            return e ? [t.padding.left, t.width - t.padding.right] : [0, t.width];
+          }
+          function s(i) {
+            var o = this;
+            (o.dispatcher = f.dispatch(
+              'featureSelected',
+              'featureDeselected',
+              'ready',
+              'noDataAvailable',
+              'noDataRetrieved',
+              'notFound',
+              'notConfigRetrieved',
+              'regionHighlighted',
+              'variantDataUpdated',
+            )),
+              (o.parentElement = i.el),
+              (o.minWidth = i.minWidth || 0),
+              (o.width = r(o)),
+              (o.maxZoomSize = 30),
+              (o.selectedFeature = void 0),
+              (o.selectedFeatureElement = void 0),
+              (o.sequence = ''),
+              (o.categories = []),
+              (o.filterCategories = []),
+              (o.padding = { top: 2, right: 10, bottom: 2, left: 10 }),
+              (o.data = []),
+              (o.uniprotacc = i.uniprotacc),
+              (o.overwritePredictions = i.overwritePredictions),
+              (o.defaultSource = void 0 === i.defaultSources || i.defaultSources),
+              (o.variantFilterDefaultBehavior =
+                void 0 === i.variantFilterDefaultBehavior || i.variantFilterDefaultBehavior),
+              (o.load = function () {
+                (t = i),
+                  l.initSources(),
+                  !1 === t.defaultSources && l.clearDataSources(),
+                  t.customDataSource && l.addSource(t.customDataSource),
+                  t.customDataSources &&
+                    d.each(t.customDataSources, function (t) {
+                      l.addSource(t);
+                    });
+                var t,
+                  e = l.getDataSources(),
+                  r = [],
+                  n = [];
+                d.each(e, function () {
+                  var t = E.Deferred();
+                  n.push(t);
+                }),
+                  i.categoryOrder && l.setOrderForCategoryNames(i.categoryOrder),
+                  i.customConfig
+                    ? u
+                        .get(i.customConfig)
+                        .done(function (t) {
+                          l.setCategoryNamesInOrder(t.categories),
+                            l.setTrackNames(t.trackNames),
+                            a(i, e, r, n, o);
+                        })
+                        .fail(function (t) {
+                          f
+                            .select(i.el)
+                            .text(
+                              'The configuration file provided by external sources could not be retrieved',
+                            ),
+                            o.dispatcher.notConfigRetrieved({ config: i.customConfig }),
+                            console.log(t);
+                        })
+                    : a(i, e, r, n, o),
+                  E.when.apply(null, n).done(function () {
+                    var t,
+                      e,
+                      n = d.filter(r, function (t) {
+                        return 'rejected' === t.state();
+                      });
+                    return (
+                      n.length === r.length || 0 === o.data.length
+                        ? (f.select(i.el).selectAll('*').remove(),
+                          f.select(i.el).html(''),
+                          n.length === r.length
+                            ? (f
+                                .select(i.el)
+                                .text(
+                                  'Sorry, data could not be retrieved at this time, please try again later.',
+                                ),
+                              o.dispatcher.noDataRetrieved())
+                            : 0 === o.data.length &&
+                              (f
+                                .select(i.el)
+                                .text('There are no features available for this protein.'),
+                              o.dispatcher.noDataAvailable()))
+                        : i.selectedFeature && o.selectFeature(i.selectedFeature),
+                      (n = i),
+                      (t = o),
+                      ((e = document.createElement('iframe')).class = 'pv-resize-listener'),
+                      (e.style.cssText =
+                        'height: 0; background-color: transparent; margin: 0; padding: 0; overflow: hidden; border-width: 0; position: absolute; width: 100%;'),
+                      (e.onload = function () {
+                        e.contentWindow.addEventListener('resize', function () {
+                          t.resize();
+                        });
+                      }),
+                      E(n.el).children('.up_pftv_container').append(e),
+                      t.resize(),
+                      o
+                    );
+                  });
+              }),
+              o.load();
+          }
+          var d = t('underscore'),
+            f = t('d3'),
+            l = t('./Constants'),
+            u = t('./DataLoader'),
+            g = t('./CategoryFactory'),
+            m = t('./ViewerHelper'),
+            v = (t('./FeatureFactory'), t('./CategoryFilterDialog')),
+            b = t('./DownloadDialog'),
+            y = t('./HighlightRegionDialog'),
+            w = t('./TooltipFactory'),
+            E = t('jquery'),
+            B = function (t) {
+              t.zoom.x(t.xScale);
+              var e = t.maxPos - 1,
+                e = (t.xScale.domain()[1] - t.xScale.domain()[0]) / e,
+                n = e * Math.floor(t.sequence.length / t.maxZoomSize);
+              t.zoom.scaleExtent([e, n]);
+            },
+            C = function (t) {
+              t.viewport.extent(t.xScale.domain()),
+                t.globalContainer.select('.up_pftv_viewport').call(t.viewport),
+                t.viewport.updateTrapezoid();
+            },
+            x = function (t) {
+              t.aaViewer.update(),
+                t.aaViewer2.update(),
+                d.each(t.categories, function (t) {
+                  t.update();
+                });
+            },
+            I = function (t, e, n, r) {
+              try {
+                var i = t.globalContainer.select('.' + e);
+                i.classed(e, !1), i.classed(n, !0), i.attr('title', r);
+              } catch (t) {
+                console.log('updateZoomButton error: ' + t);
+              }
+            },
+            M = function (t) {
+              x(t), C(t), B(t);
+            },
+            D = 0;
+          (s.prototype.getCategoryTitle = function (e) {
+            var t = d.find(this.data, function (t) {
+              return d.find(t[1], function (t) {
+                return t.type === e;
+              });
+            });
+            return t ? t[0] : void 0;
+          }),
+            (s.prototype.updateFeatureHighlightSelector = function (t, e) {
+              this.aaViewer.updateFeatureHighlightSelector(t, e),
+                this.aaViewer2.updateFeatureHighlightSelector(t, e);
+            }),
+            (s.prototype.getDispatcher = function () {
+              return this.dispatcher;
+            }),
+            (s.prototype.deselectFeature = function () {
+              m.deselectFeature(this);
+            }),
+            (s.prototype.resetHighlight = function () {
+              m.resetHighlight(this);
+            }),
+            (s.prototype.selectFeature = function (t) {
+              var n,
+                e,
+                r,
+                i,
+                o,
+                a,
+                s,
+                l = this,
+                u =
+                  ((t.type = t.type.toUpperCase()),
+                  (t.alternativeSequence =
+                    t.alternativeSequence && t.alternativeSequence.toUpperCase()),
+                  l.getCategoryTitle(t.type)),
+                c = d.find(l.categories, function (t) {
+                  return t.name === u;
+                }),
+                A =
+                  ((n = t),
+                  d.find(l.data, function (t) {
+                    return (e = d.find(t[1], function (t) {
+                      var e = t.end || t.begin;
+                      return t.variants && 'VARIANT' === t.type && t.type === n.type
+                        ? (r = d.find(t.variants, function (t) {
+                            var e = t.end || t.begin;
+                            return (
+                              +t.begin == +n.begin &&
+                              +e == +n.end &&
+                              t.alternativeSequence === n.alternativeSequence
+                            );
+                          }))
+                        : 'CONFLICT' === t.type || 'MUTAGEN' === t.type
+                          ? +t.begin == +n.begin &&
+                            +e == +n.end &&
+                            t.alternativeSequence === n.alternativeSequence &&
+                            t.type === n.type
+                          : t.type === n.type && +t.begin == +n.begin && +e == +n.end;
+                    }));
+                  }),
+                  r || e);
+              {
+                if (A)
+                  return (
+                    (s = l.globalContainer.select('[name="' + A.internalId + '"]')),
+                    c && A && s && !s.classed('up_pftv_variant_hidden')
+                      ? ((i =
+                          'none' === c.viewerContainer.style('display')
+                            ? c.tracksContainer
+                            : c.viewerContainer),
+                        s.classed('up_pftv_variant') &&
+                          l.globalContainer
+                            .select('.up_pftv_category-name[title="' + u + '"]')
+                            .classed('up_pftv_arrow-right') &&
+                          c.toggle(),
+                        (c = s.node().getBoundingClientRect()),
+                        (o = i.node().getBoundingClientRect()),
+                        ((a = { x: c.x - o.x, y: c.y - o.y + c.height }).x = isNaN(a.x)
+                          ? c.left - o.left
+                          : a.x),
+                        (a.y = isNaN(a.y) ? c.top - o.top + c.height : a.y),
+                        !l.selectedFeature || l.selectedFeature.internalId !== A.internalId
+                          ? m.selectFeature(A, s.node(), l)
+                          : l.dispatcher.featureSelected({
+                              feature: l.selectedFeature,
+                              color: s.style('fill'),
+                            }),
+                        w.createTooltip(l, u, A, i, a),
+                        A)
+                      : void l.dispatcher.notFound(t)
+                  );
+                l.dispatcher.notFound(t);
+              }
+            }),
+            (s.prototype.highlightRegion = function (t, e, n) {
+              var r = this;
+              (t = t < 1 ? 1 : t),
+                (e = e ? (e > r.sequence.length ? r.sequence.length : e) : t),
+                1 <= t &&
+                  t <= e &&
+                  e <= r.sequence.length &&
+                  (r.deselectFeature(),
+                  (r.highlight = { begin: t, end: e, type: 'continuous' }),
+                  n &&
+                    (r.xScale(r.xScale.domain()[0]) > r.xScale(t) ||
+                      r.xScale(e) > r.xScale(r.xScale.domain()[1])) &&
+                    o(r),
+                  m.updateHighlight(r),
+                  r.dispatcher.regionHighlighted({ begin: t, end: e }));
+            }),
+            (s.prototype.initLayout = function (t, e) {
+              var n = this,
+                t =
+                  ((n.globalContainer = f.select(t.el).text('')),
+                  n.globalContainer
+                    .append('div')
+                    .attr('class', 'up_pftv_container')
+                    .on('mousedown', function () {
+                      c(n);
+                    }));
+              (n.header = t.append('div')),
+                (n.container = t.append('div').attr('class', 'up_pftv_category-container')),
+                (n.ontheFlyContainer = n.container
+                  .append('div')
+                  .classed('up_pftv_category_on_the_fly', !0)),
+                d.each(l.getCategoryNamesInOrder(), function (t) {
+                  n.container.append('div').classed('up_pftv_category_' + t.name, !0);
+                }),
+                (n.footer = t.append('div').attr('class', 'bottom-aa-container'));
+            }),
+            (s.prototype.loadZoom = function (t) {
+              var n,
+                e,
+                r,
+                i,
+                o,
+                a,
+                s,
+                l,
+                u = this;
+              (u.sequence = t.sequence),
+                (u.accession = t.accession),
+                (u.maxPos = t.sequence.length),
+                (u.xScale = f.scale
+                  .linear()
+                  .domain([1, t.sequence.length + 1])
+                  .range(p(u, !0))),
+                (u.viewport =
+                  ((e = (n = u).header),
+                  (r = f.scale.linear().domain([1, n.maxPos]).range(p(n, !0))),
+                  (e = e
+                    .append('div')
+                    .attr('class', 'up_pftv_navruler')
+                    .append('svg')
+                    .attr('id', 'up_pftv_svg-navruler')
+                    .attr('width', '100%')
+                    .attr('height', 50)),
+                  (i = f.svg
+                    .axis()
+                    .scale(f.scale.linear().domain(n.xScale.domain()).range(p(n, !0)))
+                    .orient('bottom')),
+                  (o = e.append('g').attr('class', 'x axis')).call(i),
+                  ((a = f.svg
+                    .brush()
+                    .x(r)
+                    .on('brush', function () {
+                      var t = f.event.target.extent();
+                      t[1] - t[0] < n.maxZoomSize &&
+                        (f.event.target.extent([t[0], t[0] + n.maxZoomSize]),
+                        f.event.target(f.select(this))),
+                        n.xScale.domain(a.empty() ? r.domain() : a.extent()),
+                        x(n),
+                        a.updateTrapezoid();
+                    })).xAxis = o),
+                  (a.navXAxis = i),
+                  a.on('brushstart', function () {
+                    c(n);
+                  }),
+                  a.on('brushend', function () {
+                    B(n),
+                      +n.globalContainer.select('.up_pftv_navruler .extent').attr('width') >=
+                        n.width - n.padding.left - n.padding.right &&
+                        I(
+                          n,
+                          'up_pftv_icon-zoom-out',
+                          'up_pftv_icon-zoom-in',
+                          'Zoom in to sequence view',
+                        );
+                  }),
+                  (o = f.svg
+                    .arc()
+                    .outerRadius(10)
+                    .startAngle(0)
+                    .endAngle(function (t, e) {
+                      return e ? -Math.PI : Math.PI;
+                    })),
+                  e
+                    .append('g')
+                    .attr('class', 'up_pftv_viewport')
+                    .call(a)
+                    .selectAll('rect')
+                    .attr('height', 40),
+                  (a.trapezoid = e
+                    .append('g')
+                    .selectAll('path')
+                    .data([0])
+                    .enter()
+                    .append('path')
+                    .classed('up_pftv_trapezoid', !0)),
+                  (a.domainStartLabel = e
+                    .append('text')
+                    .attr('class', 'domain-label')
+                    .attr('x', 0)
+                    .attr('y', 40)),
+                  (a.domainEndLabel = e
+                    .append('text')
+                    .attr('class', 'domain-label')
+                    .attr('x', n.width)
+                    .attr('y', 40)
+                    .attr('text-anchor', 'end')),
+                  e
+                    .selectAll('.resize')
+                    .append('path')
+                    .attr('transform', 'translate(0,15)')
+                    .attr('class', 'handle')
+                    .attr('d', o),
+                  (a.updateTrapezoid = function () {
+                    var t = n.globalContainer.select('.up_pftv_navruler .extent').attr('x'),
+                      e = +t + +n.globalContainer.select('.up_pftv_navruler .extent').attr('width'),
+                      t =
+                        'M0,50L0,50L' +
+                        t +
+                        ',28L' +
+                        t +
+                        ',40L' +
+                        e +
+                        ',40L' +
+                        e +
+                        ',28L' +
+                        n.width +
+                        ',48L' +
+                        n.width +
+                        ',50Z';
+                    this.trapezoid.attr('d', t),
+                      this.domainStartLabel.text(Math.round(n.xScale.domain()[0])),
+                      this.domainEndLabel.text(
+                        Math.min(Math.round(n.xScale.domain()[1]), n.maxPos),
+                      );
+                  }),
+                  (a.clearTrapezoid = function () {
+                    this.trapezoid.attr('d', 'M0,0');
+                  }),
+                  a)),
+                (u.header = u.header
+                  .append('div')
+                  .style('display', 'table')
+                  .style('width', '100%')
+                  .append('div')
+                  .style('display', 'table-row')),
+                A(u, 0, u.header),
+                (u.aaViewer = h(u, u.header, t.sequence)),
+                (u.zoom =
+                  ((s = u),
+                  (l = f.behavior
+                    .zoom()
+                    .x(s.xScale)
+                    .on('zoom', function () {
+                      var t;
+                      s.xScale.domain()[0] < 1
+                        ? ((t = l.translate()[0] - s.xScale(1) + s.xScale.range()[0]),
+                          l.translate([t, 0]))
+                        : s.xScale.domain()[1] > s.maxPos &&
+                          ((t = l.translate()[0] - s.xScale(s.maxPos) + s.xScale.range()[1]),
+                          l.translate([t, 0])),
+                        x(s),
+                        C(s);
+                    })))),
+                u.footer
+                  .append('div')
+                  .attr('class', 'up_pftv_credit_container')
+                  .append('a')
+                  .attr('title', 'Help page')
+                  .attr('href', 'http://ebi-uniprot.github.io/ProtVista/')
+                  .attr('target', '_blank')
+                  .attr('class', 'up_pftv_credit')
+                  .text('ProtVista'),
+                (u.aaViewer2 = h(u, u.footer, t.sequence)),
+                C(u),
+                B(u);
+            }),
+            (s.prototype.drawCategories = function (t, r) {
+              d.each(t, function (e) {
+                var t,
+                  n = d.find(r.categories, function (t) {
+                    return t.name === e[0];
+                  });
+                n
+                  ? n.repaint(e[1])
+                  : ((n = l.getCategoryInfo(e[0])),
+                    (t = r.container.select('.up_pftv_category_' + e[0]))[0][0] ||
+                      (t = r.ontheFlyContainer
+                        .append('div')
+                        .classed('up_pftv_category_' + e[0], !0)),
+                    (n = g.createCategory(e[0], e[1], n, r, t)),
+                    r.categories.push(n));
+              });
+            }),
+            (s.prototype.zoomIn = function () {
+              i(this);
+            }),
+            (s.prototype.resize = function () {
+              var t = this,
+                e = t.width;
+              (t.width = Math.max(r(t), t.minWidth)),
+                t.width <= t.minWidth ||
+                  e === t.width ||
+                  (t.xScale.range(p(t, !0)),
+                  t.viewport.x().range(p(t, !0)),
+                  t.viewport.domainEndLabel.attr('x', t.width),
+                  t.viewport.xAxis.selectAll('*').remove(),
+                  t.viewport.navXAxis.scale().range(p(t, !0)),
+                  t.viewport.xAxis.call(t.viewport.navXAxis),
+                  x(t),
+                  B(t),
+                  C(t));
+            }),
+            (e.exports = s);
+        },
+        {
+          './CategoryFactory': 3,
+          './CategoryFilterDialog': 4,
+          './Constants': 5,
+          './DataLoader': 6,
+          './DownloadDialog': 8,
+          './FeatureFactory': 10,
+          './HighlightRegionDialog': 12,
+          './TooltipFactory': 14,
+          './ViewerHelper': 20,
+          d3: 33,
+          jquery: 1,
+          underscore: 70,
+        },
+      ],
+      12: [
+        function (t, e, n) {
+          'use strict';
+          function s(t) {
+            t.select('#up_pftv_highlight_start').property('value', ''),
+              t.select('#up_pftv_highlight_end').property('value', ''),
+              t.select('.up_pftv_popupDialog-warning').text('');
+          }
+          function r(t, e) {
+            var n,
+              r,
+              i,
+              o,
+              a = e
+                .append('div')
+                .attr('class', 'up_pftv_popupDialog-container')
+                .style('left', l.mouse(e.node())[0] + 10 + 'px')
+                .style('top', l.mouse(e.node())[1] + 5 + 'px')
+                .on('mousedown', function () {
+                  t.overHighlightRegionDialog = !0;
+                })
+                .on('mouseup', function () {
+                  t.overHighlightRegionDialog = !1;
+                });
+            return (
+              a
+                .append('span')
+                .text('x')
+                .attr('class', 'up_pftv_tooltip-close')
+                .on('click', function () {
+                  (t.overHighlightRegionDialog = !1),
+                    a.transition(20).style('opacity', 0).style('display', 'none');
+                }),
+              (n = t),
+              (i = 'Invalid sequence positions.'),
+              (o = (r = a).append('div').style('display', 'table').append('table')),
+              u(o, 'Begin: ', 'up_pftv_highlight_start', 'e.g., 1'),
+              u(o, 'End: ', 'up_pftv_highlight_end', 'e.g., ' + n.sequence.length),
+              o
+                .append('tr')
+                .append('td')
+                .attr('colspan', '2')
+                .classed('up_pftv_popupDialog-warning', !0),
+              o
+                .append('tr')
+                .append('td')
+                .attr('colspan', '2')
+                .style('text-align', 'right')
+                .append('button')
+                .text('Apply')
+                .on('click', function () {
+                  var t = r.select('#up_pftv_highlight_start').property('value'),
+                    e = r.select('#up_pftv_highlight_end').property('value');
+                  0 === t.length
+                    ? o.select('.up_pftv_popupDialog-warning').text(i)
+                    : ((t = +t),
+                      (e = 0 === e.length ? t : +e),
+                      !isNaN(t) && !isNaN(e) && !(t < 1 || e > n.sequence.length) && t <= e
+                        ? (n.highlightRegion(t, e), c.closeDialog(n))
+                        : o.select('.up_pftv_popupDialog-warning').text(i));
+                }),
+              s(a),
+              a
+            );
+          }
+          var l = t('d3'),
+            u =
+              (t('underscore'),
+              t('./ViewerHelper'),
+              function (t, e, n, r) {
+                t = t.append('tr');
+                t.append('td').append('label').text(e),
+                  t
+                    .append('td')
+                    .append('input')
+                    .attr('id', n)
+                    .attr('type', 'text')
+                    .attr('placeholder', r);
+              }),
+            c = {
+              displayDialog: function (t, e) {
+                t.highlightRegionDialog
+                  ? s(t.highlightRegionDialog)
+                  : (t.highlightRegionDialog = r(t, e)),
+                  t.highlightRegionDialog
+                    .transition(20)
+                    .style('opacity', 1)
+                    .style('display', 'block');
+              },
+              closeDialog: function (t) {
+                t.highlightRegionDialog &&
+                  t.highlightRegionDialog
+                    .transition(20)
+                    .style('opacity', 0)
+                    .style('display', 'none');
+              },
+            };
+          e.exports = c;
+        },
+        { './ViewerHelper': 20, d3: 33, underscore: 70 },
+      ],
+      13: [
+        function (t, e, n) {
+          'use strict';
+          function r() {
+            var i = this;
+            (i.rowFeatures = []),
+              (i.featureOverlap = function (t, e, n, r) {
+                (t = Number(t.begin) >= Number(e.begin) && Number(t.begin) <= Number(r)),
+                  (e = Number(n) >= Number(e.begin) && Number(n) <= Number(r));
+                return t || e;
+              }),
+              (i.dOverlap = function (t, e, n, r) {
+                (e = Number(e.begin) >= Number(t.begin) && Number(e.begin) <= Number(n)),
+                  (t = Number(r) >= Number(t.begin) && Number(r) <= Number(n));
+                return e || t;
+              }),
+              (i.containsOverlap = function (r) {
+                return a.some(i.rowFeatures, function (t) {
+                  var e = r.end || r.begin,
+                    n = t.end || t.begin;
+                  return i.featureOverlap(r, t, e, n) || i.dOverlap(r, t, e, n);
+                });
+              }),
+              (i.addFeature = function (t) {
+                i.rowFeatures.push(t);
+              });
+          }
+          function i(t, e) {
+            var n = this;
+            (n.padding = 1),
+              (n.minHeight = 15),
+              (n.rowHeight = 0),
+              (n.rows = []),
+              (n.totalHeight = e),
+              (n.calculate = function () {
+                n.rowHeight =
+                  (n.totalHeight / n.rows.length < n.minHeight
+                    ? n.totalHeight / n.rows.length
+                    : n.minHeight) -
+                  2 * n.padding;
+              }),
+              a.each(t, function (e) {
+                var t;
+                a.some(n.rows, function (t) {
+                  if (!t.containsOverlap(e)) return t.addFeature(e), !0;
+                }) || ((t = new r()).addFeature(e), n.rows.push(t));
+              });
+          }
+          var a = t('underscore');
+          (i.prototype.getYPos = function (n) {
+            var r,
+              i = this,
+              o =
+                i.totalHeight / i.rows.length > i.minHeight
+                  ? (i.totalHeight - i.rows.length * i.minHeight) / 2
+                  : 0;
+            return (
+              a.each(i.rows, function (t, e) {
+                a.each(t.rowFeatures, function (t) {
+                  t === n && (r = e * (i.rowHeight + 2 * i.padding) + o);
+                });
+              }),
+              r
+            );
+          }),
+            (i.prototype.getRows = function () {
+              return this.rows;
+            }),
+            (i.prototype.getFeatureHeight = function () {
+              return this.rowHeight;
+            }),
+            (e.exports = i);
+        },
+        { underscore: 70 },
+      ],
+      14: [
+        function (t, e, n) {
+          'use strict';
+          function a(t, e, n, r, i) {
+            var o,
+              a,
+              s,
+              l,
+              u = this,
+              n =
+                ((u.data = n),
+                (u.sequence = t.sequence),
+                (u.accession = t.accession),
+                (u.tooltipViewer = void 0),
+                (n = r),
+                t.globalContainer.select('.up_pftv_tooltip-container').remove(),
+                (o = n.append('div').attr('class', 'up_pftv_tooltip-container'))
+                  .append('span')
+                  .text('x')
+                  .attr('class', 'up_pftv_tooltip-close')
+                  .on('click', function () {
+                    o.transition(20).style('opacity', 0).style('display', 'none'), o.remove();
+                  }),
+                o),
+              i =
+                ((i
+                  ? n.style('left', i.x + 10 + 'px').style('top', i.y + 'px')
+                  : n
+                      .style('left', c.mouse(r.node())[0] + 10 + 'px')
+                      .style('top', c.mouse(r.node())[1] + 'px')
+                )
+                  .transition(200)
+                  .style('opacity', 1)
+                  .style('display', 'block'),
+                t.globalContainer.select('.up_pftv_tooltip-container table').remove(),
+                (u.table = t.globalContainer.select('.up_pftv_tooltip-container').append('table')),
+                u.table
+                  .on('mousedown', function () {
+                    t.overTooltip = !0;
+                  })
+                  .on('mouseup', function () {
+                    t.overTooltip = !1;
+                  }),
+                u.table.append('tr')),
+              n =
+                u.data.type +
+                ' ' +
+                u.data.begin +
+                (u.data.end && u.data.end !== u.data.begin ? '-' + u.data.end : '');
+            i.append('th').attr('colspan', 2).text(n),
+              (r = u.data.externalData ? A.keys(u.data.externalData).join(', ') : void 0) ||
+              void 0 !== u.data.sourceType
+                ? ((i = u.table.append('tr')).append('td').text('Source'),
+                  (n = ''),
+                  (s = a = !1),
+                  (n =
+                    u.data.sourceType === h.variantSourceType.mixed
+                      ? r
+                        ? 'UniProt, large scale studies and custom data (' + r + ')'
+                        : 'UniProt and large scale studies'
+                      : u.data.sourceType === h.variantSourceType.uniprot
+                        ? ((a = !0), r ? 'UniProt and custom data (' + r + ')' : 'UniProt')
+                        : u.data.sourceType === h.variantSourceType.lss
+                          ? ((s = !0),
+                            r
+                              ? 'Large scale studies and custom data (' + r + ')'
+                              : 'Large scale studies')
+                          : 'Custom data (' + r + ')'),
+                  i.append('td').text(n),
+                  (l = u.data).description &&
+                    ((r = l.description.split(/\[LSS_|\[SWP]: /g)),
+                    (r = A.groupBy(r, function (t) {
+                      return 0 === t.length ? 'NOTHING' : -1 !== t.indexOf(']: ') ? 'LSS' : 'UP';
+                    })),
+                    (l.up_description = r.UP ? r.UP.join('; ') : void 0),
+                    (l.lss_description = r.LSS ? r.LSS.join('; ').replace(/]: /g, ': ') : void 0)),
+                  h.existAssociation(l.association) &&
+                    A.each(l.association, function (t) {
+                      var e;
+                      t.description &&
+                        -1 !== (e = t.description.indexOf('Ftid: ')) &&
+                        ((l.ftId = t.description.substr(e + 6, 10)),
+                        (t.description = (
+                          t.description.slice(0, e) + t.description.slice(e + 16)
+                        ).trim()));
+                    }),
+                  a
+                    ? (d(u, u.data.ftId), g(u, u.data.up_description, 'up_description'))
+                    : s && g(u, u.data.lss_description, 'lss_description'))
+                : (d(u, u.data.ftId), g(u, u.data.description, 'description'));
+          }
+          function r(t) {
+            t.addEvidences(t.data.evidences), w(t, t.data.xrefs), t.addBlast();
+          }
+          function i(t) {
+            var e;
+            t.data.matchScore &&
+              ((e = t.table.append('tr')).append('td').text('Alignment score'),
+              e.append('td').text(function () {
+                return t.data.matchScore + '%';
+              })),
+              t.addEvidences(t.data.evidences),
+              w(t, t.data.xrefs),
+              t.addBlast();
+          }
+          function o(e, t, n) {
+            var r;
+            e.data[n] &&
+              ((r = e.table.append('tr')).append('td').text(t),
+              r.append('td').text(function () {
+                var t = e.data.end || e.data.begin;
+                return e.sequence.substring(+e.data.begin - 1, +t) + ' > ' + e.data[n];
+              })),
+              e.addEvidences(e.data.evidences),
+              w(e, e.data.xrefs),
+              e.addBlast();
+          }
+          function l(t) {
+            var e = t.table.append('tr'),
+              t =
+                (e.append('td').text('Variant'),
+                ('del' === t.data.wildType
+                  ? t.sequence.substring(+t.data.begin, +t.data.end + 1)
+                  : t.data.wildType) +
+                  ' > ' +
+                  t.data.alternativeSequence);
+            e.append('td').text(t);
+          }
+          function u(t, e, n, r, i, o, a) {
+            var s = i && 0 !== A.keys(i).length;
+            (o = o || []),
+              (e.ftId || r || s || b(e) || 0 !== o.length || e.consequence) &&
+                (t.table
+                  .append('tr')
+                  .classed('up_pftv_section', !0)
+                  .append('td')
+                  .attr('colspan', 2)
+                  .text(a),
+                d(t, n),
+                g(t, r),
+                f(t, e.consequence),
+                v(t, e),
+                t.addEvidences(i),
+                w(t, o));
+          }
+          function s(n) {
+            var r, i, e, o, t, a, s;
+            n.data.sourceType === h.variantSourceType.mixed
+              ? ((r = {}),
+                (i = {}),
+                A.each(n.data.evidences, function (t, e) {
+                  A.contains(h.manual, e)
+                    ? (r[e] = n.data.evidences[e])
+                    : (i[e] = n.data.evidences[e]);
+                }),
+                (e = []),
+                (o = []),
+                A.each(n.data.xrefs, function (t) {
+                  (!0 === t.reviewed ? e : o).push(t);
+                }),
+                l(n),
+                (a = r),
+                (s = e),
+                ((t = n).data.ftId ||
+                  t.data.up_description ||
+                  0 !== a.length ||
+                  t.data.association) &&
+                  (t.table
+                    .append('tr')
+                    .classed('up_pftv_section', !0)
+                    .append('td')
+                    .attr('colspan', 2)
+                    .text('UniProt'),
+                  d(t, t.data.ftId),
+                  g(t, t.data.up_description, 'up_description'),
+                  t.addEvidences(a),
+                  w(t, s),
+                  y(t)),
+                u(n, n.data, void 0, n.data.lss_description, i, o, 'Large Scale Studies'))
+              : (l(n), v(n, n.data), n.addEvidences(n.data.evidences), w(n, n.data.xrefs), y(n)),
+              A.each(n.data.externalData, function (t, e) {
+                u(n, t, t.ftId, t.description, t.evidences, t.xrefs, e);
+              });
+          }
+          var c = t('d3'),
+            A = t('underscore'),
+            h = t('./Evidence'),
+            p = t('./Constants'),
+            d = function (t, e) {
+              e &&
+                ((t = t.table.append('tr')).append('td').text('Feature ID'),
+                t.append('td').text(e));
+            },
+            f = function (t, e) {
+              e &&
+                ((t = t.table.append('tr')).append('td').text('Consequence'),
+                t.append('td').text(e));
+            },
+            g = function (t, e) {
+              e &&
+                ((t = t.table.append('tr')).append('td').text('Description'),
+                t.append('td').text(e));
+            },
+            m = function (t, e, r) {
+              e ||
+                (e = t.table.append('tr').attr('class', 'up_pftv_evidence-source'))
+                  .append('td')
+                  .text('');
+              var i = e.append('td').text(r.index + ' ');
+              A.each(r.elem, function (t, e) {
+                var n = !0 === r.alternative ? t.alternativeUrl : t.url;
+                i
+                  .append('span')
+                  .append('a')
+                  .attr('href', n)
+                  .attr('target', '_blank')
+                  .text(function () {
+                    return r.textAttr ? t[r.textAttr] : t.id;
+                  }),
+                  e !== r.elem.length - 1 && i.append('span').text(' | ');
+              });
+            },
+            v =
+              ((a.prototype.addEvidences = function (t) {
+                var r = this;
+                A.each(t, function (t, e) {
+                  t = A.filter(t, function (t) {
+                    return void 0 !== t;
+                  });
+                  var n = r.table.append('tr').attr('class', 'up_pftv_evidence-col'),
+                    e =
+                      (n.append('td').text('Evidence'),
+                      (function (e, t, n) {
+                        var r,
+                          i = h.acronym[t],
+                          o = A.where(n, { name: 'PubMed' }).length;
+                        o += A.where(n, { name: 'Citation' }).length;
+                        return (
+                          ('EXP' === i || 'NAS' === i
+                            ? (o += A.filter(n, function (t) {
+                                return (
+                                  !(!t.id || 0 !== t.id.indexOf('ref.')) &&
+                                  ((t.name = 'Citation'),
+                                  (t.url =
+                                    'http://www.uniprot.org/uniprot/' +
+                                    e.accession +
+                                    '#ref' +
+                                    t.id.slice(4)),
+                                  !0)
+                                );
+                              }).length) + (1 < o ? ' Publications' : ' Publication')
+                            : 'IC' === i
+                              ? 0 === o
+                                ? 'Curated'
+                                : o + (1 < o ? ' Publications' : ' Publication')
+                              : 'ISS' === i
+                                ? 'By similarity'
+                                : 'ISM' === i
+                                  ? n && 0 !== n.length
+                                    ? n[0].name + ' annotation'
+                                    : 'Sequence Analysis'
+                                  : 'MIXM' === i || 'MIXA' === i
+                                    ? 'Combined sources'
+                                    : 'MI' === i || 'AI' === i
+                                      ? 'Imported'
+                                      : 'AA' === i
+                                        ? ((o =
+                                            !!n &&
+                                            A.find(n, function (t) {
+                                              return t.url && -1 !== t.url.indexOf('unirule');
+                                            })),
+                                          (i =
+                                            !!n &&
+                                            A.find(n, function (t) {
+                                              return t.url && -1 !== t.url.indexOf('SAAS');
+                                            })),
+                                          (r =
+                                            !!n &&
+                                            A.find(n, function (t) {
+                                              return 'Pfam' === t.name;
+                                            })),
+                                          o
+                                            ? 'UniRule annotation'
+                                            : i
+                                              ? 'SAAS annotation'
+                                              : r
+                                                ? 'InterPro annotation'
+                                                : n
+                                                  ? n[0].name + ' annotation'
+                                                  : 'Automatic annotation')
+                                        : t) + (h.text[t] ? ' (' + h.text[t] + ')' : '')
+                        );
+                      })(r, e, t)),
+                    n = (n.append('td').text(e), A.groupBy(t, 'name'));
+                  delete n[void 0],
+                    A.each(n, function (t, e) {
+                      m(r, void 0, { elem: t, index: e }),
+                        'PubMed' === e &&
+                          m(r, void 0, { elem: t, index: 'EuropePMC', alternative: !0 });
+                    });
+                });
+              }),
+              (a.prototype.addBlast = function () {
+                var t,
+                  e,
+                  n = this,
+                  r = n.data.end || n.data.begin,
+                  i = n.data.type.toLowerCase();
+                3 <= r - n.data.begin &&
+                  !A.contains(p.getNoBlastTypes(), i) &&
+                  ((t = n.table.append('tr')).append('td').text('Tools'),
+                  (e = p.getBlastURL() + n.accession + '[' + n.data.begin),
+                  (e = (e += '-') + r + ']&key=' + p.getTrackInfo(i).label),
+                  n.data.ftId && (e += '&id=' + n.data.ftId),
+                  t
+                    .append('td')
+                    .append('span')
+                    .append('a')
+                    .attr('href', e)
+                    .attr('target', '_blank')
+                    .text('BLAST'));
+              }),
+              function (t, e) {
+                var n, r;
+                e.frequency &&
+                  0 !== e.frequency &&
+                  ((n = t.table.append('tr'))
+                    .append('td')
+                    .append('span')
+                    .append('a')
+                    .attr(
+                      'href',
+                      'http://www.ncbi.nlm.nih.gov/projects/SNP/docs/rs_attributes.html#gmaf',
+                    )
+                    .attr('target', '_blank')
+                    .text('Frequency (MAF)'),
+                  n.append('td').text(e.frequency)),
+                  e.polyphenPrediction &&
+                    'del' !== e.polyphenPrediction &&
+                    !1 !== e.polyphenInUse &&
+                    ((n = t.table.append('tr'))
+                      .append('td')
+                      .append('span')
+                      .append('a')
+                      .attr('href', 'http://genetics.bwh.harvard.edu/pph2/dokuwiki/about')
+                      .attr('target', '_blank')
+                      .text('Polyphen'),
+                    (r = e.polyphenPrediction + ', score ' + e.polyphenScore),
+                    n.append('td').text(r)),
+                  e.siftPrediction &&
+                    'del' !== e.siftPrediction &&
+                    !1 !== e.siftInUse &&
+                    ((n = t.table.append('tr'))
+                      .append('td')
+                      .append('span')
+                      .append('a')
+                      .attr('href', 'http://sift.jcvi.org/')
+                      .attr('target', '_blank')
+                      .text('SIFT'),
+                    (r = e.siftPrediction + ', score ' + e.siftScore),
+                    n.append('td').text(r));
+              }),
+            b = function (t) {
+              var e = !1;
+              return (
+                t.frequency && 0 !== t.frequency && (e = !0),
+                t.polyphenPrediction &&
+                  'del' !== t.polyphenPrediction &&
+                  'unknown' !== t.polyphenPrediction &&
+                  !1 !== t.polyphenInUse &&
+                  (e = !0),
+                (e =
+                  t.siftPrediction &&
+                  'del' !== t.siftPrediction &&
+                  'unknown' !== t.siftPrediction &&
+                  !1 !== t.siftInUse
+                    ? !0
+                    : e)
+              );
+            },
+            y = function (i) {
+              h.existAssociation(i.data.association) &&
+                (i.table
+                  .append('tr')
+                  .append('td')
+                  .attr('colspan', 2)
+                  .classed('up_pftv_subsection', !0)
+                  .text('Disease Association'),
+                A.each(i.data.association, function (t) {
+                  var e;
+                  t.name &&
+                    ((e = i.table.append('tr')).append('td').text('Disease'),
+                    e
+                      .append('td')
+                      .append('span')
+                      .append('a')
+                      .attr('href', 'http://www.uniprot.org/diseases/?query=' + t.name)
+                      .attr('target', '_blank')
+                      .text(t.name)),
+                    t.description &&
+                      ((e = i.table.append('tr')).append('td').text('Description'),
+                      e.append('td').text(t.description)),
+                    t.xrefs &&
+                      ((e = A.groupBy(t.xrefs, 'name')),
+                      A.each(e, function (n, t) {
+                        var e = i.table.append('tr'),
+                          r = (e.append('td'), e.append('td').text(t + ' '));
+                        A.each(n, function (t, e) {
+                          r
+                            .append('span')
+                            .append('a')
+                            .attr('href', t.url)
+                            .attr('target', '_blank')
+                            .text(t.id),
+                            e + 1 !== n.length && r.append('span').text(' | ');
+                        });
+                      }));
+                }));
+            },
+            w = function (n, t) {
+              var r, i;
+              t &&
+                0 !== t.length &&
+                ((r = n.table.append('tr').attr('class', 'up_pftv_evidence-source'))
+                  .append('td')
+                  .text('Cross-references'),
+                delete (t = A.groupBy(t, 'id'))[void 0],
+                (i = !0),
+                A.each(t, function (t, e) {
+                  i
+                    ? (m(n, r, { elem: t, index: e, textAttr: 'name' }), (i = !1))
+                    : m(n, void 0, { elem: t, index: e, textAttr: 'name' });
+                }));
+            };
+          (a.basic = function () {
+            this.tooltipViewer = new r(this);
+          }),
+            (a.antigen = function () {
+              this.tooltipViewer = new i(this);
+            }),
+            (a.mutagen = function () {
+              this.tooltipViewer = new o(this, 'Mutation', 'alternativeSequence');
+            }),
+            (a.conflict = function () {
+              this.tooltipViewer = new o(this, 'Conflict', 'alternativeSequence');
+            }),
+            (a.missense = function () {
+              this.tooltipViewer = new s(this);
+            }),
+            (a.ms_del = function () {
+              this.tooltipViewer = new s(this);
+            }),
+            (a.insdel = function () {
+              this.tooltipViewer = new s(this);
+            }),
+            (a.stop_lost = function () {
+              this.tooltipViewer = new s(this);
+            }),
+            (a.stop_gained = function () {
+              this.tooltipViewer = new s(this);
+            }),
+            (a.init_codon = function () {
+              this.tooltipViewer = new s(this);
+            }),
+            (a.variant = function () {
+              this.tooltipViewer = new s(this);
+            }),
+            (e.exports = {
+              createTooltip: function (t, e, n, r, i) {
+                var o = n.type.toLowerCase(),
+                  t =
+                    'function' != typeof a[o]
+                      ? ((a.basic.prototype = new a(t, 0, n, r, i)), new a.basic())
+                      : ((a[o].prototype = new a(t, 0, n, r, i)), new a[o]());
+                return t;
+              },
+            });
+        },
+        { './Constants': 5, './Evidence': 9, d3: 33, underscore: 70 },
+      ],
+      15: [
+        function (t, e, n) {
+          'use strict';
+          t('d3'), t('underscore'), t('./FeatureFactory'), t('./NonOverlappingLayout');
+          function r(t, e) {
+            var n = this;
+            (n.data = t),
+              (n.type = t[0].type),
+              (n.label = t[0].type),
+              (n.category = e),
+              (n.id = n.type + '_track'),
+              (t = e.tracksContainer
+                .append('div')
+                .style('display', 'table')
+                .style('width', '100%')
+                .append('div')
+                .style('display', 'table-row')),
+              (n.titleContainer = t.append('div').style('display', 'table-cell')),
+              (n.trackContainer = t.append('div').attr('class', 'up_pftv_track'));
+          }
+          function i(t) {
+            return new a(t.category.name, t.data, t.trackContainer, t.category.fv);
+          }
+          function o(t) {
+            return new s(
+              t.category.name,
+              t.data,
+              t.trackContainer,
+              t.category.fv,
+              t.category,
+              t.variantHeight,
+              t.titleContainer,
+            );
+          }
+          var a = t('./BasicViewer'),
+            s = t('./VariantViewer'),
+            l = t('./Constants');
+          r.prototype.update = function () {
+            this.trackViewer.update();
+          };
+          (r.basic = function () {
+            var t = l.getTrackInfo(this.type.toLowerCase());
+            this.titleContainer
+              .attr('class', 'up_pftv_track-header')
+              .attr('title', t.label.toUpperCase() + '\n' + t.tooltip)
+              .text(t.label),
+              (this.trackViewer = new i(this));
+          }),
+            (r.variant = function () {
+              (this.variantHeight = 430),
+                this.titleContainer
+                  .attr('class', 'up_pftv_track-header')
+                  .attr('style', 'height:' + this.variantHeight + 'px'),
+                (this.trackViewer = new o(this)),
+                (this.reset = function () {
+                  this.trackViewer.reset();
+                });
+            }),
+            (e.exports = {
+              createTrack: function (t, e, n) {
+                return (
+                  'function' != typeof r[e] &&
+                    console.log('WARNING: Track viewer type ' + e + " doesn't exist"),
+                  (r[e].prototype = new r(t, n)),
+                  new r[e]()
+                );
+              },
+            });
+        },
+        {
+          './BasicViewer': 2,
+          './Constants': 5,
+          './FeatureFactory': 10,
+          './NonOverlappingLayout': 13,
+          './VariantViewer': 19,
+          d3: 33,
+          underscore: 70,
+        },
+      ],
+      16: [
+        function (t, e, n) {
+          'use strict';
+          var a = t('d3'),
+            s = t('underscore'),
+            l = t('./ViewerHelper');
+          e.exports = function (e) {
+            var n = this,
+              t = ((n.features = e.data), e.viewerContainer),
+              r = e.fv.xScale,
+              i = e.fv.width,
+              o =
+                (e.fv.zoom,
+                (n.varChart = l.createSVG(t, i, 40, e.fv, 'up_pftv_variation-chart')),
+                (n.variationCountArray = s.map(n.features, function (t) {
+                  return t.variants.length;
+                })),
+                (n.yScale = a.scale.linear().range([40, 0])),
+                (this.updateYScaleDomain = function () {
+                  (n = this).yScale.domain([0, a.max(n.variationCountArray)]);
+                }),
+                this.updateYScaleDomain(),
+                a.svg
+                  .line()
+                  .x(function (t, e) {
+                    return r(e);
+                  })
+                  .y(function (t) {
+                    return n.yScale(t);
+                  })
+                  .interpolate('linear'));
+            return (
+              (this.init = function () {
+                var t = this;
+                t.updateYScaleDomain(),
+                  t.varChart
+                    .append('path')
+                    .data(t.features)
+                    .attr('class', 'up_pftv_block-area')
+                    .attr('d', o(t.variationCountArray))
+                    .on('click', function () {
+                      e.toggle();
+                    })
+                    .append('title')
+                    .text('Number of variants per position'),
+                  t.varChart
+                    .append('path')
+                    .data(t.features)
+                    .attr('class', 'up_pftv_line')
+                    .attr('d', o(t.variationCountArray))
+                    .on('click', function () {
+                      e.toggle();
+                    })
+                    .append('title')
+                    .text('Number of variants per position');
+              }),
+              this.init(),
+              (this.update = function () {
+                var t = this;
+                t.varChart
+                  .selectAll('.up_pftv_block-area')
+                  .data(t.features)
+                  .attr('class', 'up_pftv_block-area')
+                  .attr('d', o(t.variationCountArray)),
+                  t.varChart
+                    .selectAll('.up_pftv_line')
+                    .data(t.features)
+                    .attr('class', 'up_pftv_line')
+                    .attr('d', o(t.variationCountArray));
+              }),
+              (this.updateData = function (t) {
+                var e = this;
+                (e.features = t),
+                  (e.variationCountArray = s.map(e.features, function (t) {
+                    return t.variants.length;
+                  })),
+                  e.varChart.selectAll('.up_pftv_block-area').remove(),
+                  e.varChart.selectAll('.up_pftv_line').remove(),
+                  this.init();
+              }),
+              this
+            );
+          };
+        },
+        { './ViewerHelper': 20, d3: 33, underscore: 70 },
+      ],
+      17: [
+        function (t, e, n) {
+          'use strict';
+          t('d3');
+          function r(t) {
+            return t.colorRange
+              ? 'background:' + (t.on ? 'linear-gradient(' + t.colorRange + ');' : '#ffffff')
+              : 'background-color:' + (t.on ? t.color : '#ffffff');
+          }
+          var c = t('underscore'),
+            A = t('jquery'),
+            i = t('./Evidence'),
+            o = t('./Constants'),
+            a = t('./VariantLegendDialog'),
+            h = !1,
+            p = {
+              label: 'Disease (reviewed)',
+              on: !0,
+              properties: {
+                association: function (t) {
+                  return c.some(t.association, function (t) {
+                    return !0 === t.disease;
+                  });
+                },
+              },
+              color: a.UPDiseaseColor,
+            },
+            d = {
+              label: ['Predicted deleterious', 'Predicted benign'],
+              on: !0,
+              properties: {
+                alternativeSequence: /[^*]/,
+                sourceType: [i.variantSourceType.lss, null],
+                externalData: function (t) {
+                  return (
+                    !!t.sourceType ||
+                    c.some(t.externalData, function (t) {
+                      return (
+                        (t.polyphenPrediction && 'del' !== t.polyphenPrediction) ||
+                        (t.siftPrediction && 'del' !== t.siftPrediction)
+                      );
+                    })
+                  );
+                },
+              },
+              colorRange: [a.deleteriousColor, a.benignColor],
+            },
+            f = {
+              label: 'Non-disease (reviewed)',
+              on: !0,
+              properties: {
+                association: function (t) {
+                  return (
+                    c.every(t.association, function (t) {
+                      return !0 !== t.disease;
+                    }) || !t.association
+                  );
+                },
+                sourceType: [i.variantSourceType.uniprot, i.variantSourceType.mixed],
+              },
+              color: a.UPNonDiseaseColor,
+            },
+            g = {
+              label: 'Init, stop loss or gain',
+              on: !0,
+              properties: { alternativeSequence: '*' },
+              color: a.othersColor,
+            },
+            m = {
+              label: 'Unknown',
+              on: !0,
+              properties: {
+                type: function (t) {
+                  return (
+                    void 0 === t.siftPrediction &&
+                    void 0 === t.polyphenPrediction &&
+                    void 0 === t.association
+                  );
+                },
+                alternativeSequence: /[^*]/,
+                sourceType: i.variantSourceType.lss,
+              },
+              color: a.unknownColor,
+            },
+            v = { label: 'Filter consequence', cases: [] },
+            b = {
+              label: 'UniProt reviewed',
+              on: !0,
+              properties: { sourceType: [i.variantSourceType.uniprot, i.variantSourceType.mixed] },
+              color: 'grey',
+            },
+            y = {
+              label: 'Large scale studies',
+              on: !0,
+              properties: { sourceType: [i.variantSourceType.lss, i.variantSourceType.mixed] },
+              color: 'grey',
+            },
+            w = { label: 'Filter data source', cases: [] },
+            E = [];
+          e.exports = function (s, l, t) {
+            (e = s),
+              h ||
+                (!0 === e.defaultSource
+                  ? (v.cases.push(p),
+                    v.cases.push(d),
+                    v.cases.push(f),
+                    v.cases.push(g),
+                    v.cases.push(m),
+                    E.push(v),
+                    w.cases.push(b),
+                    w.cases.push(y))
+                  : (v.cases.push(d), E.push(v)),
+                E.push(w),
+                (h = !0)),
+              c.each(o.getConsequenceTypes(), function (n, t) {
+                c.find(E[0].cases, function (t) {
+                  return t.label === n;
+                }) ||
+                  E[0].cases.push({
+                    label: n,
+                    on: !0,
+                    properties: {
+                      consequence: function (t) {
+                        var e = c.keys(t.externalData);
+                        return 0 < e.length && t.externalData[e[0]].consequence === n;
+                      },
+                    },
+                    color: a.consequenceColors[t % a.consequenceColors.length],
+                  });
+              }),
+              c.each(o.getDataSources(), function (e) {
+                e.source === o.getUniProtSource() ||
+                  c.find(E[1].cases, function (t) {
+                    return t.label === e.source;
+                  }) ||
+                  E[1].cases.push({
+                    label: e.source,
+                    on: !0,
+                    properties: {
+                      externalData: function (t, e) {
+                        var n = t.externalData && 0 !== c.keys(t.externalData).length;
+                        return e ? n && t.externalData[e] : n;
+                      },
+                    },
+                    color: 'grey',
+                  });
+              });
+            var e,
+              u = this;
+            return (
+              (u.variantViewer = t),
+              (u.filters = A.extend(!0, [], E)),
+              l
+                .append('div')
+                .attr('class', 'up_pftv_buttons')
+                .append('span')
+                .style('visibility', 'hidden')
+                .classed('up_pftv_inner-icon-container', !0)
+                .append('a')
+                .attr('class', 'up_pftv_icon-button up_pftv_icon-reset')
+                .attr('title', 'Reset all filters')
+                .attr('href', '#')
+                .on('click', function () {
+                  u.reset(), u.variantViewer.updateData(u.variantViewer.features);
+                }),
+              c.each(u.filters, function (o, t) {
+                var e = l.append('h4').text(o.label);
+                0 === t && e.classed('up_pftv_keepWithPrevious', !0);
+                var n = l
+                    .append('ul')
+                    .attr('class', 'up_pftv_dialog-container')
+                    .selectAll('li')
+                    .data(o.cases)
+                    .enter()
+                    .append('li')
+                    .append('a')
+                    .on('click', function (t) {
+                      if (!0 === t.on)
+                        s.variantFilterDefaultBehavior
+                          ? ((n = t),
+                            c.each(o.cases, function (t) {
+                              t.on = n.label === t.label;
+                            }))
+                          : (t.on = !1),
+                          l.select('.up_pftv_inner-icon-container').style('visibility', 'visible');
+                      else {
+                        t.on = !0;
+                        var t = u.filters,
+                          e = l;
+                        if (
+                          c.every(t, function (t) {
+                            return c.every(t.cases, function (t) {
+                              return t.on === true;
+                            });
+                          }) === true
+                        )
+                          e.select('.up_pftv_inner-icon-container').style('visibility', 'hidden');
+                      }
+                      a(),
+                        (r = u.filters),
+                        (t = u.variantViewer.features),
+                        (i = []),
+                        c.each(t, function (t) {
+                          var e = c.filter(t.variants, function (n) {
+                              return c.every(r, function (t) {
+                                var e = c.filter(t.cases, 'on');
+                                return (
+                                  e.length === t.cases.length ||
+                                  c.some(e, function (t) {
+                                    return c.every(c.keys(t.properties), function (e) {
+                                      return t.properties[e] instanceof Array
+                                        ? c.some(t.properties[e], function (t) {
+                                            return n[e] == t;
+                                          })
+                                        : 'string' == typeof t.properties[e]
+                                          ? t.properties[e] === n[e]
+                                          : t.properties[e] instanceof RegExp
+                                            ? t.properties[e].test(n[e])
+                                            : t.properties[e] instanceof Function
+                                              ? t.properties[e](n, t.label)
+                                              : n[e] === t.properties[e];
+                                    });
+                                  })
+                                );
+                              });
+                            }),
+                            t = A.extend(!0, {}, t);
+                          (t.variants = e), i.push(t);
+                        });
+                      var n,
+                        r,
+                        i,
+                        e = i;
+                      u.variantViewer.updateData(e);
+                    }),
+                  a =
+                    (n
+                      .append('div')
+                      .attr('class', function (t) {
+                        return t.label instanceof Array
+                          ? 'up_pftv_legend up_pftv_legend_double'
+                          : 'up_pftv_legend';
+                      })
+                      .attr('style', r),
+                    n
+                      .append('span')
+                      .attr('class', 'up_pftv_legend_text')
+                      .html(function (t) {
+                        return t.label instanceof Array ? t.label.join('<br/>') : t.label;
+                      }),
+                    function () {
+                      n.select('div').attr('style', r);
+                    });
+              }),
+              (u.reset = function () {
+                c.each(u.filters, function (t) {
+                  c.each(t.cases, function (t) {
+                    t.on = !0;
+                  });
+                }),
+                  l.select('.up_pftv_inner-icon-container').style('visibility', 'hidden'),
+                  l.selectAll('.up_pftv_legend').attr('style', r);
+              }),
+              u
+            );
+          };
+        },
+        {
+          './Constants': 5,
+          './Evidence': 9,
+          './VariantLegendDialog': 18,
+          d3: 33,
+          jquery: 1,
+          underscore: 70,
+        },
+      ],
+      18: [
+        function (t, e, n) {
+          'use strict';
+          var r = t('d3'),
+            t =
+              (t('underscore'),
+              {
+                UPDiseaseColor: '#990000',
+                deleteriousColor: '#002594',
+                benignColor: '#8FE3FF',
+                UPNonDiseaseColor: '#99cc00',
+                othersColor: '#FFCC00',
+                unknownColor: '#808080',
+                consequenceColors: [
+                  '#66c2a5',
+                  '#8da0cb',
+                  '#e78ac3',
+                  '#e5c494',
+                  '#fc8d62',
+                  '#ffd92f',
+                  '#a6d854',
+                  '#b3b3b3',
+                ],
+                getPredictionColor: r.scale.linear().domain([0, 1]).range(['#002594', '#8FE3FF']),
+                createLegendDialog: function (t, e) {
+                  var n;
+                  return (
+                    (this.dialog = t.append('div').attr('class', 'up_pftv_dialog-container')),
+                    i((n = this), n.UPDiseaseColor, 'Disease (UniProt)'),
+                    i(n, n.getPredictionColor(0), 'Deleterious (Large scale studies)'),
+                    n.dialog
+                      .append('div')
+                      .selectAll('div')
+                      .data([0.2, 0.4, 0.6, 0.8])
+                      .enter()
+                      .append('div')
+                      .classed('up_pftv_legend', !0)
+                      .append('span')
+                      .classed('up_pftv_legendRect', !0)
+                      .style('background-color', function (t) {
+                        return n.getPredictionColor(t);
+                      }),
+                    i(n, n.getPredictionColor(1), 'Benign (Large scale studies)'),
+                    i(n, n.UPNonDiseaseColor, 'Non-disease (UniProt)'),
+                    i(n, n.othersColor, 'Init codon, stop lost & gained'),
+                    i(n, n.unknownColor, 'Unknown'),
+                    this.dialog
+                  );
+                },
+              });
+          function i(t, e, n) {
+            (t = t.dialog.append('div').classed('up_pftv_legend', !0))
+              .append('span')
+              .classed('up_pftv_legendRect', !0)
+              .style('background-color', e),
+              t.append('span').classed('up_pftv_legendTitle', !0).text(n);
+          }
+          e.exports = t;
+        },
+        { d3: 33, underscore: 70 },
+      ],
+      19: [
+        function (t, e, n) {
+          'use strict';
+          function o(t, e, n, r) {
+            var i = !1,
+              o = void 0 !== r && 'unknown' !== r ? void 0 !== n : !1;
+            return (i = void 0 !== e ? void 0 !== t : i) && o
+              ? (t + (1 - n)) / 2
+              : i && !o
+                ? t
+                : !i && o
+                  ? 1 - n
+                  : 'unknown' === r
+                    ? 1
+                    : void 0;
+          }
+          var m = t('d3'),
+            v = t('underscore'),
+            b = t('./ViewerHelper'),
+            y = t('./VariantLegendDialog'),
+            w = t('./VariantFilterDialog'),
+            a = t('./Evidence'),
+            E = t('./Constants'),
+            B = [
+              'G',
+              'A',
+              'V',
+              'L',
+              'I',
+              'S',
+              'T',
+              'C',
+              'M',
+              'D',
+              'N',
+              'E',
+              'Q',
+              'R',
+              'K',
+              'H',
+              'F',
+              'Y',
+              'W',
+              'P',
+              'd',
+              '*',
+            ],
+            C = function (t, e) {
+              if ('*' === t.alternativeSequence || t.begin > e.maxPos) return y.othersColor;
+              if (
+                t.sourceType === a.variantSourceType.uniprot ||
+                t.sourceType === a.variantSourceType.mixed
+              )
+                return a.existAssociation(t.association) ? y.UPDiseaseColor : y.UPNonDiseaseColor;
+              if (t.sourceType === a.variantSourceType.lss && a.existAssociation(t.association))
+                return y.UPDiseaseColor;
+              var n = {},
+                r =
+                  (t.externalData &&
+                    ((i = v.keys(t.externalData)),
+                    (n = t.externalData[i[0]]),
+                    (i = o(n.siftScore, n.siftPrediction, n.polyphenScore, n.polyphenPrediction)),
+                    (n.siftInUse = !1),
+                    (n.polyphenInUse = !1)),
+                  o(t.siftScore, t.siftPrediction, t.polyphenScore, t.polyphenPrediction));
+              if (t.sourceType === a.variantSourceType.lss && void 0 === r) return y.unknownColor;
+              var i;
+              if (!0 === e.overwritePredictions) {
+                if (void 0 !== i)
+                  return (
+                    (t.siftInUse = !1),
+                    (t.polyphenInUse = !1),
+                    (n.siftInUse = !0),
+                    (n.polyphenInUse = !0),
+                    y.getPredictionColor(i)
+                  );
+                if (void 0 !== r) return y.getPredictionColor(r);
+              } else {
+                if (void 0 !== r) return y.getPredictionColor(r);
+                if (void 0 !== i)
+                  return (
+                    (t.siftInUse = !1),
+                    (t.polyphenInUse = !1),
+                    (n.siftInUse = !0),
+                    (n.polyphenInUse = !0),
+                    y.getPredictionColor(i)
+                  );
+              }
+              return t.externalData
+                ? n.consequence && -1 !== (e = E.getConsequenceTypes().indexOf(n.consequence))
+                  ? y.consequenceColors[e % y.consequenceColors.length]
+                  : 'black'
+                : y.othersColor;
+            },
+            x = function (t) {
+              return t.width - 20;
+            },
+            I = function (t) {
+              return t.width - 18;
+            };
+          e.exports = function (l, t, u, c, e, n, r) {
+            var i,
+              o,
+              A,
+              h = this,
+              a =
+                ((h.height = n),
+                (h.width = c.width),
+                (h.showManual = !0),
+                (h.showAutomatic = !0),
+                (h.xScale = c.xScale),
+                (h.margin = { top: 20, bottom: 10 }),
+                (h.features = t),
+                (h.filter = new w(c, r, h)),
+                (h.yScale = m.scale
+                  .ordinal()
+                  .domain(B)
+                  .rangePoints([0, h.height - h.margin.top - h.margin.bottom])),
+                (h.svg = b.createSVG(u, h.width, h.height, c, 'up_pftv_variants-svg')),
+                (i = m.scale.ordinal()),
+                (o = m.scale.linear()),
+                (A = m.scale.pow().exponent(0.001).domain([0, 1]).range([5, 10])),
+                (s.xScale = function (t) {
+                  return arguments.length ? ((i = t), s) : i;
+                }),
+                (s.yScale = function (t) {
+                  return arguments.length ? ((o = t), s) : o;
+                }),
+                s.xScale(h.xScale).yScale(h.yScale));
+            function s(t) {
+              var s;
+              t.each(function (t) {
+                s = m.select(this);
+                var e,
+                  n,
+                  r,
+                  i,
+                  o,
+                  a,
+                  t = v.filter(t, function (t) {
+                    return 0 !== t.variants.length;
+                  });
+                (s = s.selectAll('.up_pftv_var-series').data(t, function (t) {
+                  return t.pos;
+                }))
+                  .enter()
+                  .append('g')
+                  .transition()
+                  .duration(250)
+                  .attr('class', 'up_pftv_var-series'),
+                  (e = h),
+                  (r = A),
+                  (i = c),
+                  (t = u),
+                  (o = l),
+                  (n = (n = s).selectAll('circle').data(function (t) {
+                    return t.variants;
+                  })),
+                  (a = n
+                    .enter()
+                    .append('circle')
+                    .attr('r', function (t) {
+                      return r(0);
+                    })),
+                  n
+                    .attr('class', function (t) {
+                      return t === i.selectedFeature
+                        ? 'up_pftv_variant up_pftv_activeFeature'
+                        : 'up_pftv_variant';
+                    })
+                    .attr('cx', function (t) {
+                      return e.xScale(Math.min(t.begin, i.sequence.length));
+                    })
+                    .attr('cy', function (t) {
+                      return e.yScale(t.alternativeSequence.charAt(0));
+                    })
+                    .attr('name', function (t) {
+                      var e = '*' === t.alternativeSequence ? 'STOP' : t.alternativeSequence;
+                      return (t.internalId = 'var_' + t.wildType + t.begin + e), t.internalId;
+                    })
+                    .attr('fill', function (t) {
+                      return C(t, i);
+                    })
+                    .attr('stroke', function (t) {
+                      var e;
+                      return t.externalData
+                        ? ((e = v.keys(t.externalData)),
+                          (t = t.externalData[e[0]]).consequence &&
+                          -1 !== (e = E.getConsequenceTypes().indexOf(t.consequence))
+                            ? y.consequenceColors[e % y.consequenceColors.length]
+                            : 'black')
+                        : 'none';
+                    }),
+                  b.addEventsClassAndTitle(o, a, i, t),
+                  n.exit().remove(),
+                  s.exit().transition().duration(250).remove();
+              });
+            }
+            (n = c),
+              (r = t),
+              (t = a),
+              (d = (p = h).svg.append('g').attr('transform', 'translate(0,' + p.margin.top + ')')),
+              (f = d.append('g').attr('clip-path', 'url(#plotAreaClip)')),
+              d
+                .append('clipPath')
+                .attr('id', 'plotAreaClip')
+                .append('rect')
+                .attr({ width: x(p), height: p.height })
+                .attr('transform', 'translate(10, -10)'),
+              (f = f.datum(r).call(t)),
+              (r = m.svg.axis().scale(p.yScale).tickSize(-p.width).orient('left')),
+              (t = m.svg.axis().scale(p.yScale).orient('right')),
+              d
+                .append('g')
+                .attr('transform', 'translate(12 ,0)')
+                .attr('class', 'variation-y axis left')
+                .call(r),
+              d
+                .append('g')
+                .attr('transform', 'translate(' + I(p) + ', 0)')
+                .attr('class', 'variation-y axis right')
+                .call(t),
+              n.globalContainer.selectAll('g.variation-y g.tick').attr('class', function (t) {
+                return 'tick up_pftv_aa_' + ('*' === t ? 'loss' : 'del' === t ? 'deletion' : t);
+              });
+            var p,
+              d,
+              f,
+              g = f;
+            return (
+              (this.update = function () {
+                var t;
+                (h.width = c.width),
+                  (t = h).svg.select('#plotAreaClip rect').attr('width', function () {
+                    return x(t);
+                  }),
+                  t.svg.selectAll('.variation-y.axis.left line').attr('x2', I(t)),
+                  t.svg
+                    .selectAll('.variation-y.axis.right')
+                    .attr('transform', 'translate(' + I(t) + ', 0)'),
+                  g.call(a),
+                  (c.selectedFeature || c.highlight) && b.updateHighlight(c);
+              }),
+              (this.updateData = function (t) {
+                g.datum(t),
+                  e.categoryViewer.updateData(t),
+                  this.update(),
+                  c.dispatcher.variantDataUpdated();
+              }),
+              (this.reset = function () {
+                this.filter.reset(), this.updateData(this.features);
+              }),
+              this
+            );
+          };
+        },
+        {
+          './Constants': 5,
+          './Evidence': 9,
+          './VariantFilterDialog': 17,
+          './VariantLegendDialog': 18,
+          './ViewerHelper': 20,
+          d3: 33,
+          underscore: 70,
+        },
+      ],
+      20: [
+        function (t, e, n) {
+          'use strict';
+          var o,
+            a,
+            s = t('d3'),
+            l = t('./TooltipFactory'),
+            u = t('./FeatureFactory'),
+            c =
+              ((o = { x: -1, y: -1 }),
+              (a = { x: -2, y: -2 }),
+              {
+                createSVG: function (t, e, n, r, i) {
+                  t = t
+                    .append('svg')
+                    .attr('width', '100%')
+                    .attr('height', n)
+                    .on('mousedown', function () {
+                      (o = { x: s.event.pageX, y: s.event.pageY }), (a = { x: -2, y: -2 });
+                    })
+                    .on('mouseup', function () {
+                      (a = { x: s.event.pageX, y: s.event.pageY }),
+                        o.x !== a.x ||
+                          o.y !== a.y ||
+                          r.overFeature ||
+                          (r.selectedFeature
+                            ? c.selectFeature(r.selectedFeature, r.selectedFeatureElement, r)
+                            : r.highlight && c.resetHighlight(r)),
+                        (o = { x: -1, y: -1 });
+                    })
+                    .call(r.zoom);
+                  return (
+                    i && t.attr('class', i),
+                    t
+                      .append('g')
+                      .append('path')
+                      .classed('up_pftv_highlight', !0)
+                      .attr('d', 'M-1,-1')
+                      .attr('transform', 'translate(-1,-1)')
+                      .attr('height', n),
+                    t
+                  );
+                },
+              });
+          (c.highlightPath = function (t, e, n) {
+            var e = e.xScale(2) - e.xScale(1),
+              r = e / 2,
+              i = e * (t.end ? t.end - t.begin + 1 : 1),
+              t = t.type
+                ? u.isContinuous(t.type)
+                  ? 'M' +
+                    -r +
+                    ',0L' +
+                    (i - r) +
+                    ',0L' +
+                    (i - r) +
+                    ',' +
+                    n +
+                    'L' +
+                    -r +
+                    ',' +
+                    n +
+                    'Z'
+                  : 'M' +
+                    -r +
+                    ',0L' +
+                    (i - r) +
+                    ',0L' +
+                    (i - r) +
+                    ',' +
+                    n +
+                    'L' +
+                    (i - r - e) +
+                    ',' +
+                    n +
+                    'L' +
+                    (i - r - e) +
+                    ',0L' +
+                    (e - r) +
+                    ',0L' +
+                    (e - r) +
+                    ',' +
+                    n +
+                    'L' +
+                    -r +
+                    ',' +
+                    n +
+                    'Z'
+                : 'M-1,-1';
+            return t;
+          }),
+            (c.updateFeatureHighlightSelector = function (t) {
+              t.selectedFeature
+                ? t.updateFeatureHighlightSelector(t.selectedFeature.begin, t.selectedFeature.end)
+                : t.highlight
+                  ? t.updateFeatureHighlightSelector(t.highlight.begin, t.highlight.end)
+                  : t.updateFeatureHighlightSelector(-10, -10);
+            }),
+            (c.updateHighlight = function (e) {
+              var n;
+              if (e.selectedFeature) n = e.selectedFeature;
+              else {
+                if (!e.highlight) return;
+                n = e.highlight;
+              }
+              var t = e.xScale(n.begin);
+              e.globalContainer
+                .selectAll('.up_pftv_highlight')
+                .attr('d', function () {
+                  var t = s.select(this).attr('height');
+                  return c.highlightPath(n, e, t);
+                })
+                .attr('transform', 'translate(' + t + ',0)'),
+                this.updateFeatureHighlightSelector(e);
+            }),
+            (c.resetHighlight = function (t) {
+              (t.highlight = void 0),
+                t.globalContainer
+                  .selectAll('.up_pftv_highlight')
+                  .attr('d', 'M-1,-1')
+                  .attr('transform', 'translate(-1,-1)'),
+                this.updateFeatureHighlightSelector(t);
+            }),
+            (c.deselectFeature = function (t) {
+              this.selectFeature(t.selectedFeature, t.selectedFeatureElement, t);
+            }),
+            (c.selectFeature = function (t, e, n) {
+              var r, i;
+              t &&
+                e &&
+                ((n.highlight = void 0),
+                (r = s.select(e)),
+                (i = { feature: n.selectedFeature, elem: n.selectedFeatureElement }),
+                t === n.selectedFeature
+                  ? ((n.selectedFeature = void 0),
+                    (n.selectedFeatureElement = void 0),
+                    this.resetHighlight(n))
+                  : ((n.selectedFeature = t),
+                    (n.selectedFeatureElement = e),
+                    this.updateHighlight(n)),
+                (e = r.classed('up_pftv_activeFeature')),
+                n.globalContainer
+                  .selectAll('svg path.up_pftv_activeFeature')
+                  .classed('up_pftv_activeFeature', !1),
+                r.classed('up_pftv_activeFeature', !e),
+                i.feature &&
+                  n.dispatcher.featureDeselected({
+                    feature: i.feature,
+                    color: s.select(i.elem).style('fill'),
+                  }),
+                t !== i.feature &&
+                  (i.elem && s.select(i.elem).classed('up_pftv_activeFeature', !1),
+                  n.dispatcher.featureSelected({
+                    feature: n.selectedFeature,
+                    color: r.style('fill'),
+                  })));
+            }),
+            (c.centerToHighlightedSelection = function (t) {
+              var e, n;
+              t.selectedFeature ? (n = t.selectedFeature) : t.highlight && (n = t.highlight),
+                n &&
+                  ((e = (e = t.xScale.domain())[e.length - 1]),
+                  (n =
+                    (n = +n.begin + (n.end ? Math.floor((+n.end - +n.begin) / 2) : 0)) - e / 2 < 1
+                      ? 1
+                      : n - e / 2) +
+                    e >
+                    t.sequence.length && (n = t.sequence.length - e),
+                  t.xScale.domain([n, n + e]));
+            }),
+            (c.addEventsClassAndTitle = function (n, t, r, i) {
+              t.classed('up_pftv_activeFeature', function (t) {
+                return t === r.selectedFeature;
+              })
+                .on('click', function (t) {
+                  var e = s.select(this);
+                  e.classed('up_pftv_variant_hidden') ||
+                    (e.classed('up_pftv_activeFeature')
+                      ? r.globalContainer
+                          .selectAll('.up_pftv_tooltip-container')
+                          .transition(20)
+                          .style('opacity', 0)
+                          .style('display', 'none')
+                          .remove()
+                      : l.createTooltip(r, n, t, i),
+                    c.selectFeature(t, this, r));
+                })
+                .on('mouseover', function (t) {
+                  (r.overFeature = !0),
+                    s.select(this).classed('up_pftv_variant') &&
+                      ((t =
+                        '*' === (t = t.alternativeSequence.charAt(0))
+                          ? 'loss'
+                          : 'del' === t
+                            ? 'deletion'
+                            : t),
+                      r.globalContainer
+                        .selectAll('g.up_pftv_aa_' + t + ' line')
+                        .style('opacity', 1));
+                })
+                .on('mouseout', function (t) {
+                  (r.overFeature = !1),
+                    s.select(this).classed('up_pftv_variant') &&
+                      ((t =
+                        '*' === (t = t.alternativeSequence.charAt(0))
+                          ? 'loss'
+                          : 'del' === t
+                            ? 'deletion'
+                            : t),
+                      r.globalContainer
+                        .selectAll('g.up_pftv_aa_' + t + ' line')
+                        .style('opacity', 0.4));
+                });
+            }),
+            (e.exports = c);
+        },
+        { './FeatureFactory': 10, './TooltipFactory': 14, d3: 33 },
+      ],
+      21: [
+        function (t, e, n) {
+          e.exports = {
+            categories: [
+              { name: 'DOMAINS_AND_SITES', label: 'Domains & sites', visualizationType: 'basic' },
+              {
+                name: 'MOLECULE_PROCESSING',
+                label: 'Molecule processing',
+                visualizationType: 'basic',
+              },
+              { name: 'PTM', label: 'PTM', visualizationType: 'basic' },
+              {
+                name: 'SEQUENCE_INFORMATION',
+                label: 'Sequence information',
+                visualizationType: 'basic',
+              },
+              { name: 'STRUCTURAL', label: 'Structural features', visualizationType: 'basic' },
+              { name: 'TOPOLOGY', label: 'Topology', visualizationType: 'basic' },
+              { name: 'MUTAGENESIS', label: 'Mutagenesis', visualizationType: 'basic' },
+              { name: 'PROTEOMICS', label: 'Proteomics', visualizationType: 'basic' },
+              { name: 'ANTIGEN', label: 'Antigenic sequences', visualizationType: 'basic' },
+              { name: 'VARIATION', label: 'Variants', visualizationType: 'variant' },
+            ],
+            trackNames: {
+              chain: {
+                label: 'Chain',
+                tooltip:
+                  '(aka mature region). This describes the extent of a polypeptide chain in the mature protein following processing',
+              },
+              transit: {
+                label: 'Transit peptide',
+                tooltip: 'This describes the extent of a transit peptide',
+              },
+              init_met: {
+                label: 'Initiator methionine',
+                tooltip:
+                  'This indicates that the initiator methionine is cleaved from the mature protein',
+              },
+              propep: {
+                label: 'Propeptide',
+                tooltip: 'Part of a protein that is cleaved during maturation or activation',
+              },
+              peptide: {
+                label: 'Peptide',
+                tooltip: 'The position and length of an active peptide in the mature protein',
+              },
+              signal: { label: 'Signal peptide', tooltip: 'N-terminal signal peptide' },
+              helix: {
+                label: 'Helix',
+                tooltip: 'The positions of experimentally determined helical regions',
+              },
+              strand: {
+                label: 'Beta strand',
+                tooltip: 'The positions of experimentally determined beta strands',
+              },
+              turn: {
+                label: 'Turn',
+                tooltip: 'The positions of experimentally determined hydrogen-bonded turns',
+              },
+              disulfid: {
+                label: 'Disulfide bond',
+                tooltip: 'The positions of cysteine residues participating in disulphide bonds',
+              },
+              crosslnk: {
+                label: 'Cross-link',
+                tooltip:
+                  'Covalent linkages of various types formed between two proteins or between two parts of the same protein',
+              },
+              region: {
+                label: 'Region',
+                tooltip:
+                  'Regions in multifunctional enzymes or fusion proteins, or characteristics of a region, e.g., protein-protein interactions mediation',
+              },
+              coiled: {
+                label: 'Coiled coil',
+                tooltip:
+                  'Coiled coils are built by two or more alpha-helices that wind around each other to form a supercoil',
+              },
+              motif: {
+                label: 'Motif',
+                tooltip: 'Short conserved sequence motif of biological significance',
+              },
+              repeat: {
+                label: 'Repeat',
+                tooltip: 'Repeated sequence motifs or repeated domains within the protein',
+              },
+              ca_bind: {
+                label: 'Calcium binding',
+                tooltip: 'Calcium-binding regions, such as the EF-hand motif',
+              },
+              dna_bind: {
+                label: 'DNA binding',
+                tooltip:
+                  'DNA-binding domains such as AP2/ERF domain, the ETS domain, the Fork-Head domain, the HMG box and the Myb domain',
+              },
+              domain: {
+                label: 'Domain',
+                tooltip:
+                  'Specific combination of secondary structures organized into a characteristic three-dimensional structure or fold',
+              },
+              zn_fing: {
+                label: 'Zinc finger',
+                tooltip:
+                  'Small, functional, independently folded domain that coordinates one or more zinc ions',
+              },
+              np_bind: {
+                label: 'Nucleotide binding',
+                tooltip:
+                  '(aka flavin-binding). Region in the protein which binds nucleotide phosphates',
+              },
+              metal: { label: 'Metal binding', tooltip: 'Binding site for a metal ion' },
+              site: {
+                label: 'Site',
+                tooltip: 'Any interesting single amino acid site on the sequence',
+              },
+              binding: {
+                label: 'Binding site',
+                tooltip: 'Binding site for any chemical group (co-enzyme, prosthetic group, etc.)',
+              },
+              act_site: {
+                label: 'Active site',
+                tooltip: 'Amino acid(s) directly involved in the activity of an enzyme',
+              },
+              mod_res: {
+                label: 'Modified residue',
+                tooltip:
+                  'Modified residues such as phosphorylation, acetylation, acylation, methylation',
+              },
+              lipid: { label: 'Lipidation', tooltip: 'Covalently attached lipid group(s)' },
+              carbohyd: { label: 'Glycosylation', tooltip: 'Covalently attached glycan group(s)' },
+              compbias: {
+                label: 'Compositional bias',
+                tooltip:
+                  'Position of regions of compositional bias within the protein and the particular amino acids that are over-represented within those regions',
+              },
+              conflict: {
+                label: 'Sequence conflict',
+                tooltip: 'Sequence discrepancies of unknown origin',
+              },
+              non_cons: {
+                label: 'Non-adjacent residues',
+                tooltip:
+                  'Indicates that two residues in a sequence are not consecutive and that there is an undetermined number of unsequenced residues between them',
+              },
+              non_ter: {
+                label: 'Non-terminal residue',
+                tooltip:
+                  'The sequence is incomplete. The residue is not the terminal residue of the complete protein',
+              },
+              unsure: {
+                label: 'Sequence uncertainty',
+                tooltip:
+                  'Regions of a sequence for which the authors are unsure about the sequence assignment',
+              },
+              non_std: {
+                label: 'Non-standard residue',
+                tooltip: 'Non-standard amino acids (selenocysteine and pyrrolysine)',
+              },
+              mutagen: {
+                label: 'Mutagenesis',
+                tooltip: 'Site which has been experimentally altered by mutagenesis',
+              },
+              topo_dom: {
+                label: 'Topological domain',
+                tooltip: 'Location of non-membrane regions of membrane-spanning proteins',
+              },
+              transmem: { label: 'Transmembrane', tooltip: 'Extent of a membrane-spanning region' },
+              intramem: {
+                label: 'Intramembrane',
+                tooltip: 'Extent of a region located in a membrane without crossing it',
+              },
+              variant: {
+                label: 'Natural variant',
+                tooltip:
+                  'Natural variant of the protein, including polymorphisms, variations between strains, isolates or cultivars, disease-associated mutations and RNA editing events',
+              },
+              unique: { label: 'Unique peptide', tooltip: '' },
+              non_unique: { label: 'Non-unique peptide', tooltip: '' },
+              antigen: { label: 'Antibody binding sequences', tooltip: '' },
+            },
+          };
+        },
+        {},
+      ],
+      22: [
+        function (t, e, n) {
+          'use strict';
+          (n.byteLength = function (t) {
+            var t = c(t),
+              e = t[0],
+              t = t[1];
+            return (3 * (e + t)) / 4 - t;
+          }),
+            (n.toByteArray = function (t) {
+              var e,
+                n,
+                r = c(t),
+                i = r[0],
+                r = r[1],
+                o = new u(
+                  (function (t, e) {
+                    return (3 * (t + e)) / 4 - e;
+                  })(i, r),
+                ),
+                a = 0,
+                s = 0 < r ? i - 4 : i;
+              for (n = 0; n < s; n += 4)
+                (e =
+                  (l[t.charCodeAt(n)] << 18) |
+                  (l[t.charCodeAt(n + 1)] << 12) |
+                  (l[t.charCodeAt(n + 2)] << 6) |
+                  l[t.charCodeAt(n + 3)]),
+                  (o[a++] = (e >> 16) & 255),
+                  (o[a++] = (e >> 8) & 255),
+                  (o[a++] = 255 & e);
+              2 === r &&
+                ((e = (l[t.charCodeAt(n)] << 2) | (l[t.charCodeAt(n + 1)] >> 4)),
+                (o[a++] = 255 & e));
+              1 === r &&
+                ((e =
+                  (l[t.charCodeAt(n)] << 10) |
+                  (l[t.charCodeAt(n + 1)] << 4) |
+                  (l[t.charCodeAt(n + 2)] >> 2)),
+                (o[a++] = (e >> 8) & 255),
+                (o[a++] = 255 & e));
+              return o;
+            }),
+            (n.fromByteArray = function (t) {
+              for (var e, n = t.length, r = n % 3, i = [], o = 0, a = n - r; o < a; o += 16383)
+                i.push(
+                  (function (t, e, n) {
+                    for (var r, i = [], o = e; o < n; o += 3)
+                      (r =
+                        ((t[o] << 16) & 16711680) + ((t[o + 1] << 8) & 65280) + (255 & t[o + 2])),
+                        i.push(
+                          (function (t) {
+                            return (
+                              s[(t >> 18) & 63] + s[(t >> 12) & 63] + s[(t >> 6) & 63] + s[63 & t]
+                            );
+                          })(r),
+                        );
+                    return i.join('');
+                  })(t, o, a < o + 16383 ? a : o + 16383),
+                );
+              1 == r
+                ? ((e = t[n - 1]), i.push(s[e >> 2] + s[(e << 4) & 63] + '=='))
+                : 2 == r &&
+                  ((e = (t[n - 2] << 8) + t[n - 1]),
+                  i.push(s[e >> 10] + s[(e >> 4) & 63] + s[(e << 2) & 63] + '='));
+              return i.join('');
+            });
+          for (
+            var s = [],
+              l = [],
+              u = 'undefined' != typeof Uint8Array ? Uint8Array : Array,
+              r = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
+              i = 0,
+              o = r.length;
+            i < o;
+            ++i
+          )
+            (s[i] = r[i]), (l[r.charCodeAt(i)] = i);
+          function c(t) {
+            var e = t.length;
+            if (0 < e % 4) throw new Error('Invalid string. Length must be a multiple of 4');
+            (t = t.indexOf('=')), (e = (t = -1 === t ? e : t) === e ? 0 : 4 - (t % 4));
+            return [t, e];
+          }
+          (l['-'.charCodeAt(0)] = 62), (l['_'.charCodeAt(0)] = 63);
+        },
+        {},
+      ],
+      23: [function (t, e, n) {}, {}],
+      24: [
+        function (t, e, n) {
+          'use strict';
+          function a(t, e) {
+            var n = document.head || document.getElementsByTagName('head')[0],
+              r = i[i.length - 1];
+            if ((((e = e || {}).insertAt = e.insertAt || 'bottom'), 'top' === e.insertAt))
+              r
+                ? r.nextSibling
+                  ? n.insertBefore(t, r.nextSibling)
+                  : n.appendChild(t)
+                : n.insertBefore(t, n.firstChild),
+                i.push(t);
+            else {
+              if ('bottom' !== e.insertAt)
+                throw new Error(
+                  "Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.",
+                );
+              n.appendChild(t);
+            }
+          }
+          var i = [];
+          e.exports = {
+            createLink: function (t, e) {
+              var n,
+                r,
+                i = document.head || document.getElementsByTagName('head')[0],
+                o = document.createElement('link');
+              for (n in ((o.href = t), (o.rel = 'stylesheet'), e))
+                e.hasOwnProperty(n) && ((r = e[n]), o.setAttribute('data-' + n, r));
+              i.appendChild(o);
+            },
+            createStyle: function (t, e, n) {
+              n = n || {};
+              var r,
+                i,
+                o = document.createElement('style');
+              for (r in ((o.type = 'text/css'), e))
+                e.hasOwnProperty(r) && ((i = e[r]), o.setAttribute('data-' + r, i));
+              o.sheet
+                ? ((o.innerHTML = t), (o.sheet.cssText = t), a(o, { insertAt: n.insertAt }))
+                : o.styleSheet
+                  ? (a(o, { insertAt: n.insertAt }), (o.styleSheet.cssText = t))
+                  : (o.appendChild(document.createTextNode(t)), a(o, { insertAt: n.insertAt }));
+            },
+          };
+        },
+        {},
+      ],
+      25: [
+        function (t, e, n) {
+          e.exports = {
+            bitwise: !0,
+            camelcase: !0,
+            curly: !0,
+            eqeqeq: !0,
+            es3: !0,
+            forin: !0,
+            immed: !0,
+            indent: 4,
+            latedef: !0,
+            newcap: !0,
+            noarg: !0,
+            noempty: !0,
+            nonew: !0,
+            plusplus: !0,
+            quotmark: !0,
+            undef: !0,
+            unused: !0,
+            strict: !0,
+            trailing: !0,
+            asi: !1,
+            boss: !1,
+            debug: !1,
+            eqnull: !1,
+            esnext: !1,
+            evil: !1,
+            expr: !1,
+            funcscope: !1,
+            globalstrict: !0,
+            iterator: !1,
+            lastsemic: !1,
+            laxbreak: !1,
+            laxcomma: !1,
+            loopfunc: !1,
+            moz: !1,
+            multistr: !1,
+            proto: !1,
+            scripturl: !1,
+            smarttabs: !1,
+            shadow: !1,
+            sub: !0,
+            supernew: !1,
+            validthis: !1,
+            browser: !0,
+            globals: {
+              __dirname: !0,
+              process: !0,
+              exports: !0,
+              module: !0,
+              console: !0,
+              define: !0,
+              require: !0,
+              JSON: !0,
+            },
+          };
+        },
+        {},
+      ],
+      26: [
+        function (_, t, T) {
+          !function (t) {
+            !function () {
+              'use strict';
+              var C = _('base64-js'),
+                o = _('ieee754'),
+                t =
+                  'function' == typeof Symbol && 'function' == typeof Symbol.for
+                    ? Symbol.for('nodejs.util.inspect.custom')
+                    : null,
+                e =
+                  ((T.Buffer = A),
+                  (T.SlowBuffer = function (t) {
+                    +t != t && (t = 0);
+                    return A.alloc(+t);
+                  }),
+                  (T.INSPECT_MAX_BYTES = 50),
+                  2147483647);
+              function s(t) {
+                if (e < t)
+                  throw new RangeError('The value "' + t + '" is invalid for option "size"');
+                t = new Uint8Array(t);
+                return Object.setPrototypeOf(t, A.prototype), t;
+              }
+              function A(t, e, n) {
+                if ('number' != typeof t) return r(t, e, n);
+                if ('string' == typeof e)
+                  throw new TypeError(
+                    'The "string" argument must be of type string. Received type number',
+                  );
+                return a(t);
+              }
+              function r(t, e, n) {
+                if ('string' == typeof t) {
+                  var r = t,
+                    i = e;
+                  if (!A.isEncoding((i = 'string' == typeof i && '' !== i ? i : 'utf8')))
+                    throw new TypeError('Unknown encoding: ' + i);
+                  var o = 0 | h(r, i),
+                    a = s(o);
+                  return (a = (r = a.write(r, i)) !== o ? a.slice(0, r) : a);
+                }
+                if (ArrayBuffer.isView(t))
+                  return k((i = t), Uint8Array)
+                    ? u((o = new Uint8Array(i)).buffer, o.byteOffset, o.byteLength)
+                    : l(i);
+                if (null != t) {
+                  if (k(t, ArrayBuffer) || (t && k(t.buffer, ArrayBuffer))) return u(t, e, n);
+                  if (
+                    'undefined' != typeof SharedArrayBuffer &&
+                    (k(t, SharedArrayBuffer) || (t && k(t.buffer, SharedArrayBuffer)))
+                  )
+                    return u(t, e, n);
+                  if ('number' == typeof t)
+                    throw new TypeError(
+                      'The "value" argument must not be of type number. Received type number',
+                    );
+                  r = t.valueOf && t.valueOf();
+                  if (null != r && r !== t) return A.from(r, e, n);
+                  a = (function (t) {
+                    {
+                      var e, n;
+                      if (A.isBuffer(t))
+                        return (
+                          (e = 0 | c(t.length)), 0 !== (n = s(e)).length && t.copy(n, 0, 0, e), n
+                        );
+                    }
+                    if (void 0 !== t.length)
+                      return 'number' != typeof t.length || F(t.length) ? s(0) : l(t);
+                    if ('Buffer' === t.type && Array.isArray(t.data)) return l(t.data);
+                  })(t);
+                  if (a) return a;
+                  if (
+                    'undefined' != typeof Symbol &&
+                    null != Symbol.toPrimitive &&
+                    'function' == typeof t[Symbol.toPrimitive]
+                  )
+                    return A.from(t[Symbol.toPrimitive]('string'), e, n);
+                }
+                throw new TypeError(
+                  'The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' +
+                    typeof t,
+                );
+              }
+              function i(t) {
+                if ('number' != typeof t)
+                  throw new TypeError('"size" argument must be of type number');
+                if (t < 0)
+                  throw new RangeError('The value "' + t + '" is invalid for option "size"');
+              }
+              function a(t) {
+                return i(t), s(t < 0 ? 0 : 0 | c(t));
+              }
+              function l(t) {
+                for (var e = t.length < 0 ? 0 : 0 | c(t.length), n = s(e), r = 0; r < e; r += 1)
+                  n[r] = 255 & t[r];
+                return n;
+              }
+              function u(t, e, n) {
+                if (e < 0 || t.byteLength < e)
+                  throw new RangeError('"offset" is outside of buffer bounds');
+                if (t.byteLength < e + (n || 0))
+                  throw new RangeError('"length" is outside of buffer bounds');
+                t =
+                  void 0 === e && void 0 === n
+                    ? new Uint8Array(t)
+                    : void 0 === n
+                      ? new Uint8Array(t, e)
+                      : new Uint8Array(t, e, n);
+                return Object.setPrototypeOf(t, A.prototype), t;
+              }
+              function c(t) {
+                if (e <= t)
+                  throw new RangeError(
+                    'Attempt to allocate Buffer larger than maximum size: 0x' +
+                      e.toString(16) +
+                      ' bytes',
+                  );
+                return 0 | t;
+              }
+              function h(t, e) {
+                if (A.isBuffer(t)) return t.length;
+                if (ArrayBuffer.isView(t) || k(t, ArrayBuffer)) return t.byteLength;
+                if ('string' != typeof t)
+                  throw new TypeError(
+                    'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' +
+                      typeof t,
+                  );
+                var n = t.length,
+                  r = 2 < arguments.length && !0 === arguments[2];
+                if (!r && 0 === n) return 0;
+                for (var i = !1; ; )
+                  switch (e) {
+                    case 'ascii':
+                    case 'latin1':
+                    case 'binary':
+                      return n;
+                    case 'utf8':
+                    case 'utf-8':
+                      return M(t).length;
+                    case 'ucs2':
+                    case 'ucs-2':
+                    case 'utf16le':
+                    case 'utf-16le':
+                      return 2 * n;
+                    case 'hex':
+                      return n >>> 1;
+                    case 'base64':
+                      return D(t).length;
+                    default:
+                      if (i) return r ? -1 : M(t).length;
+                      (e = ('' + e).toLowerCase()), (i = !0);
+                  }
+              }
+              function n(t, e, n) {
+                var r,
+                  i = !1;
+                if ((e = void 0 === e || e < 0 ? 0 : e) > this.length) return '';
+                if ((n = void 0 === n || n > this.length ? this.length : n) <= 0) return '';
+                if ((n >>>= 0) <= (e >>>= 0)) return '';
+                for (t = t || 'utf8'; ; )
+                  switch (t) {
+                    case 'hex':
+                      var o = this,
+                        a = e,
+                        s = n,
+                        l = o.length;
+                      (!s || s < 0 || l < s) && (s = l);
+                      for (var u = '', c = (a = !a || a < 0 ? 0 : a); c < s; ++c) u += Q[o[c]];
+                      return u;
+                    case 'utf8':
+                    case 'utf-8':
+                      return x(this, e, n);
+                    case 'ascii':
+                      var A = this,
+                        l = e,
+                        h = n,
+                        p = '';
+                      h = Math.min(A.length, h);
+                      for (var d = l; d < h; ++d) p += String.fromCharCode(127 & A[d]);
+                      return p;
+                    case 'latin1':
+                    case 'binary':
+                      var f = this,
+                        a = e,
+                        g = n,
+                        m = '';
+                      g = Math.min(f.length, g);
+                      for (var v = a; v < g; ++v) m += String.fromCharCode(f[v]);
+                      return m;
+                    case 'base64':
+                      return (
+                        (b = this),
+                        (r = n),
+                        0 === (y = e) && r === b.length
+                          ? C.fromByteArray(b)
+                          : C.fromByteArray(b.slice(y, r))
+                      );
+                    case 'ucs2':
+                    case 'ucs-2':
+                    case 'utf16le':
+                    case 'utf-16le':
+                      for (
+                        var b = e, y = n, w = this.slice(b, y), E = '', B = 0;
+                        B < w.length - 1;
+                        B += 2
+                      )
+                        E += String.fromCharCode(w[B] + 256 * w[B + 1]);
+                      return E;
+                    default:
+                      if (i) throw new TypeError('Unknown encoding: ' + t);
+                      (t = (t + '').toLowerCase()), (i = !0);
+                  }
+              }
+              function p(t, e, n) {
+                var r = t[e];
+                (t[e] = t[n]), (t[n] = r);
+              }
+              function d(t, e, n, r, i) {
+                if (0 === t.length) return -1;
+                if (
+                  ('string' == typeof n
+                    ? ((r = n), (n = 0))
+                    : 2147483647 < n
+                      ? (n = 2147483647)
+                      : n < -2147483648 && (n = -2147483648),
+                  (n = (n = F((n = +n)) ? (i ? 0 : t.length - 1) : n) < 0 ? t.length + n : n) >=
+                    t.length)
+                ) {
+                  if (i) return -1;
+                  n = t.length - 1;
+                } else if (n < 0) {
+                  if (!i) return -1;
+                  n = 0;
+                }
+                if (('string' == typeof e && (e = A.from(e, r)), A.isBuffer(e)))
+                  return 0 === e.length ? -1 : f(t, e, n, r, i);
+                if ('number' == typeof e)
+                  return (
+                    (e &= 255),
+                    'function' == typeof Uint8Array.prototype.indexOf
+                      ? (i ? Uint8Array.prototype.indexOf : Uint8Array.prototype.lastIndexOf).call(
+                          t,
+                          e,
+                          n,
+                        )
+                      : f(t, [e], n, r, i)
+                  );
+                throw new TypeError('val must be string, number or Buffer');
+              }
+              function f(t, e, n, r, i) {
+                var o = 1,
+                  a = t.length,
+                  s = e.length;
+                if (
+                  void 0 !== r &&
+                  ('ucs2' === (r = String(r).toLowerCase()) ||
+                    'ucs-2' === r ||
+                    'utf16le' === r ||
+                    'utf-16le' === r)
+                ) {
+                  if (t.length < 2 || e.length < 2) return -1;
+                  (a /= o = 2), (s /= 2), (n /= 2);
+                }
+                function l(t, e) {
+                  return 1 === o ? t[e] : t.readUInt16BE(e * o);
+                }
+                if (i)
+                  for (var u = -1, c = n; c < a; c++)
+                    if (l(t, c) === l(e, -1 === u ? 0 : c - u)) {
+                      if (c - (u = -1 === u ? c : u) + 1 === s) return u * o;
+                    } else -1 !== u && (c -= c - u), (u = -1);
+                else
+                  for (c = n = a < n + s ? a - s : n; 0 <= c; c--) {
+                    for (var A = !0, h = 0; h < s; h++)
+                      if (l(t, c + h) !== l(e, h)) {
+                        A = !1;
+                        break;
+                      }
+                    if (A) return c;
+                  }
+                return -1;
+              }
+              function g(t, e, n, r) {
+                return S(
+                  (function (t) {
+                    for (var e = [], n = 0; n < t.length; ++n) e.push(255 & t.charCodeAt(n));
+                    return e;
+                  })(e),
+                  t,
+                  n,
+                  r,
+                );
+              }
+              function m(t, e, n, r) {
+                return S(
+                  (function (t, e) {
+                    for (var n, r, i = [], o = 0; o < t.length && !((e -= 2) < 0); ++o)
+                      (r = t.charCodeAt(o)), (n = r >> 8), (r = r % 256), i.push(r), i.push(n);
+                    return i;
+                  })(e, t.length - n),
+                  t,
+                  n,
+                  r,
+                );
+              }
+              function x(t, e, n) {
+                n = Math.min(t.length, n);
+                for (var r = [], i = e; i < n; ) {
+                  var o,
+                    a,
+                    s,
+                    l,
+                    u = t[i],
+                    c = null,
+                    A = 239 < u ? 4 : 223 < u ? 3 : 191 < u ? 2 : 1;
+                  if (i + A <= n)
+                    switch (A) {
+                      case 1:
+                        u < 128 && (c = u);
+                        break;
+                      case 2:
+                        128 == (192 & (o = t[i + 1])) &&
+                          127 < (l = ((31 & u) << 6) | (63 & o)) &&
+                          (c = l);
+                        break;
+                      case 3:
+                        (o = t[i + 1]),
+                          (a = t[i + 2]),
+                          128 == (192 & o) &&
+                            128 == (192 & a) &&
+                            2047 < (l = ((15 & u) << 12) | ((63 & o) << 6) | (63 & a)) &&
+                            (l < 55296 || 57343 < l) &&
+                            (c = l);
+                        break;
+                      case 4:
+                        (o = t[i + 1]),
+                          (a = t[i + 2]),
+                          (s = t[i + 3]),
+                          128 == (192 & o) &&
+                            128 == (192 & a) &&
+                            128 == (192 & s) &&
+                            65535 <
+                              (l =
+                                ((15 & u) << 18) | ((63 & o) << 12) | ((63 & a) << 6) | (63 & s)) &&
+                            l < 1114112 &&
+                            (c = l);
+                    }
+                  null === c
+                    ? ((c = 65533), (A = 1))
+                    : 65535 < c &&
+                      ((c -= 65536), r.push(((c >>> 10) & 1023) | 55296), (c = 56320 | (1023 & c))),
+                    r.push(c),
+                    (i += A);
+                }
+                var h = r,
+                  p = h.length;
+                if (p <= v) return String.fromCharCode.apply(String, h);
+                for (var d = '', f = 0; f < p; )
+                  d += String.fromCharCode.apply(String, h.slice(f, (f += v)));
+                return d;
+              }
+              (T.kMaxLength = e),
+                (A.TYPED_ARRAY_SUPPORT = (function () {
+                  try {
+                    var t = new Uint8Array(1),
+                      e = {
+                        foo: function () {
+                          return 42;
+                        },
+                      };
+                    return (
+                      Object.setPrototypeOf(e, Uint8Array.prototype),
+                      Object.setPrototypeOf(t, e),
+                      42 === t.foo()
+                    );
+                  } catch (t) {
+                    return !1;
+                  }
+                })()) ||
+                  'undefined' == typeof console ||
+                  'function' != typeof console.error ||
+                  console.error(
+                    'This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.',
+                  ),
+                Object.defineProperty(A.prototype, 'parent', {
+                  enumerable: !0,
+                  get: function () {
+                    if (A.isBuffer(this)) return this.buffer;
+                  },
+                }),
+                Object.defineProperty(A.prototype, 'offset', {
+                  enumerable: !0,
+                  get: function () {
+                    if (A.isBuffer(this)) return this.byteOffset;
+                  },
+                }),
+                (A.poolSize = 8192),
+                (A.from = r),
+                Object.setPrototypeOf(A.prototype, Uint8Array.prototype),
+                Object.setPrototypeOf(A, Uint8Array),
+                (A.alloc = function (t, e, n) {
+                  return (
+                    (e = e),
+                    (n = n),
+                    i((t = t)),
+                    !(t <= 0) && void 0 !== e
+                      ? 'string' == typeof n
+                        ? s(t).fill(e, n)
+                        : s(t).fill(e)
+                      : s(t)
+                  );
+                }),
+                (A.allocUnsafe = a),
+                (A.allocUnsafeSlow = a),
+                (A.isBuffer = function (t) {
+                  return null != t && !0 === t._isBuffer && t !== A.prototype;
+                }),
+                (A.compare = function (t, e) {
+                  if (
+                    (k(t, Uint8Array) && (t = A.from(t, t.offset, t.byteLength)),
+                    k(e, Uint8Array) && (e = A.from(e, e.offset, e.byteLength)),
+                    !A.isBuffer(t) || !A.isBuffer(e))
+                  )
+                    throw new TypeError(
+                      'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array',
+                    );
+                  if (t === e) return 0;
+                  for (var n = t.length, r = e.length, i = 0, o = Math.min(n, r); i < o; ++i)
+                    if (t[i] !== e[i]) {
+                      (n = t[i]), (r = e[i]);
+                      break;
+                    }
+                  return n < r ? -1 : r < n ? 1 : 0;
+                }),
+                (A.isEncoding = function (t) {
+                  switch (String(t).toLowerCase()) {
+                    case 'hex':
+                    case 'utf8':
+                    case 'utf-8':
+                    case 'ascii':
+                    case 'latin1':
+                    case 'binary':
+                    case 'base64':
+                    case 'ucs2':
+                    case 'ucs-2':
+                    case 'utf16le':
+                    case 'utf-16le':
+                      return !0;
+                    default:
+                      return !1;
+                  }
+                }),
+                (A.concat = function (t, e) {
+                  if (!Array.isArray(t))
+                    throw new TypeError('"list" argument must be an Array of Buffers');
+                  if (0 === t.length) return A.alloc(0);
+                  if (void 0 === e) for (i = e = 0; i < t.length; ++i) e += t[i].length;
+                  for (var n = A.allocUnsafe(e), r = 0, i = 0; i < t.length; ++i) {
+                    var o = t[i];
+                    if (k(o, Uint8Array))
+                      r + o.length > n.length
+                        ? A.from(o).copy(n, r)
+                        : Uint8Array.prototype.set.call(n, o, r);
+                    else {
+                      if (!A.isBuffer(o))
+                        throw new TypeError('"list" argument must be an Array of Buffers');
+                      o.copy(n, r);
+                    }
+                    r += o.length;
+                  }
+                  return n;
+                }),
+                (A.byteLength = h),
+                (A.prototype._isBuffer = !0),
+                (A.prototype.swap16 = function () {
+                  var t = this.length;
+                  if (t % 2 != 0) throw new RangeError('Buffer size must be a multiple of 16-bits');
+                  for (var e = 0; e < t; e += 2) p(this, e, e + 1);
+                  return this;
+                }),
+                (A.prototype.swap32 = function () {
+                  var t = this.length;
+                  if (t % 4 != 0) throw new RangeError('Buffer size must be a multiple of 32-bits');
+                  for (var e = 0; e < t; e += 4) p(this, e, e + 3), p(this, e + 1, e + 2);
+                  return this;
+                }),
+                (A.prototype.swap64 = function () {
+                  var t = this.length;
+                  if (t % 8 != 0) throw new RangeError('Buffer size must be a multiple of 64-bits');
+                  for (var e = 0; e < t; e += 8)
+                    p(this, e, e + 7),
+                      p(this, e + 1, e + 6),
+                      p(this, e + 2, e + 5),
+                      p(this, e + 3, e + 4);
+                  return this;
+                }),
+                (A.prototype.toLocaleString = A.prototype.toString =
+                  function () {
+                    var t = this.length;
+                    return 0 === t
+                      ? ''
+                      : 0 === arguments.length
+                        ? x(this, 0, t)
+                        : n.apply(this, arguments);
+                  }),
+                (A.prototype.equals = function (t) {
+                  if (A.isBuffer(t)) return this === t || 0 === A.compare(this, t);
+                  throw new TypeError('Argument must be a Buffer');
+                }),
+                (A.prototype.inspect = function () {
+                  var t = '',
+                    e = T.INSPECT_MAX_BYTES,
+                    t = this.toString('hex', 0, e)
+                      .replace(/(.{2})/g, '$1 ')
+                      .trim();
+                  return this.length > e && (t += ' ... '), '<Buffer ' + t + '>';
+                }),
+                t && (A.prototype[t] = A.prototype.inspect),
+                (A.prototype.compare = function (t, e, n, r, i) {
+                  if ((k(t, Uint8Array) && (t = A.from(t, t.offset, t.byteLength)), !A.isBuffer(t)))
+                    throw new TypeError(
+                      'The "target" argument must be one of type Buffer or Uint8Array. Received type ' +
+                        typeof t,
+                    );
+                  if (
+                    (void 0 === n && (n = t ? t.length : 0),
+                    void 0 === r && (r = 0),
+                    void 0 === i && (i = this.length),
+                    (e = void 0 === e ? 0 : e) < 0 || n > t.length || r < 0 || i > this.length)
+                  )
+                    throw new RangeError('out of range index');
+                  if (i <= r && n <= e) return 0;
+                  if (i <= r) return -1;
+                  if (n <= e) return 1;
+                  if (this === t) return 0;
+                  for (
+                    var o = (i >>>= 0) - (r >>>= 0),
+                      a = (n >>>= 0) - (e >>>= 0),
+                      s = Math.min(o, a),
+                      l = this.slice(r, i),
+                      u = t.slice(e, n),
+                      c = 0;
+                    c < s;
+                    ++c
+                  )
+                    if (l[c] !== u[c]) {
+                      (o = l[c]), (a = u[c]);
+                      break;
+                    }
+                  return o < a ? -1 : a < o ? 1 : 0;
+                }),
+                (A.prototype.includes = function (t, e, n) {
+                  return -1 !== this.indexOf(t, e, n);
+                }),
+                (A.prototype.indexOf = function (t, e, n) {
+                  return d(this, t, e, n, !0);
+                }),
+                (A.prototype.lastIndexOf = function (t, e, n) {
+                  return d(this, t, e, n, !1);
+                }),
+                (A.prototype.write = function (t, e, n, r) {
+                  if (void 0 === e) (r = 'utf8'), (n = this.length), (e = 0);
+                  else if (void 0 === n && 'string' == typeof e)
+                    (r = e), (n = this.length), (e = 0);
+                  else {
+                    if (!isFinite(e))
+                      throw new Error(
+                        'Buffer.write(string, encoding, offset[, length]) is no longer supported',
+                      );
+                    (e >>>= 0),
+                      isFinite(n)
+                        ? ((n >>>= 0), void 0 === r && (r = 'utf8'))
+                        : ((r = n), (n = void 0));
+                  }
+                  var i = this.length - e;
+                  if (
+                    ((void 0 === n || i < n) && (n = i),
+                    (0 < t.length && (n < 0 || e < 0)) || e > this.length)
+                  )
+                    throw new RangeError('Attempt to write outside buffer bounds');
+                  r = r || 'utf8';
+                  for (var o, a, s, l = !1; ; )
+                    switch (r) {
+                      case 'hex':
+                        var u = this,
+                          c = t,
+                          A = e,
+                          h = n,
+                          p = ((A = Number(A) || 0), u.length - A);
+                        (!h || p < (h = Number(h))) && (h = p),
+                          (p = c.length) / 2 < h && (h = p / 2);
+                        for (var d = 0; d < h; ++d) {
+                          var f = parseInt(c.substr(2 * d, 2), 16);
+                          if (F(f)) return d;
+                          u[A + d] = f;
+                        }
+                        return d;
+                      case 'utf8':
+                      case 'utf-8':
+                        return (p = e), (s = n), S(M(t, (a = this).length - p), a, p, s);
+                      case 'ascii':
+                      case 'latin1':
+                      case 'binary':
+                        return g(this, t, e, n);
+                      case 'base64':
+                        return (a = this), (s = e), (o = n), S(D(t), a, s, o);
+                      case 'ucs2':
+                      case 'ucs-2':
+                      case 'utf16le':
+                      case 'utf-16le':
+                        return m(this, t, e, n);
+                      default:
+                        if (l) throw new TypeError('Unknown encoding: ' + r);
+                        (r = ('' + r).toLowerCase()), (l = !0);
+                    }
+                }),
+                (A.prototype.toJSON = function () {
+                  return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) };
+                });
+              var v = 4096;
+              function b(t, e, n) {
+                if (t % 1 != 0 || t < 0) throw new RangeError('offset is not uint');
+                if (n < t + e) throw new RangeError('Trying to access beyond buffer length');
+              }
+              function y(t, e, n, r, i, o) {
+                if (!A.isBuffer(t))
+                  throw new TypeError('"buffer" argument must be a Buffer instance');
+                if (i < e || e < o) throw new RangeError('"value" argument is out of bounds');
+                if (n + r > t.length) throw new RangeError('Index out of range');
+              }
+              function w(t, e, n, r) {
+                if (n + r > t.length) throw new RangeError('Index out of range');
+                if (n < 0) throw new RangeError('Index out of range');
+              }
+              function E(t, e, n, r, i) {
+                return (e = +e), (n >>>= 0), i || w(t, 0, n, 4), o.write(t, e, n, r, 23, 4), n + 4;
+              }
+              function B(t, e, n, r, i) {
+                return (e = +e), (n >>>= 0), i || w(t, 0, n, 8), o.write(t, e, n, r, 52, 8), n + 8;
+              }
+              (A.prototype.slice = function (t, e) {
+                var n = this.length,
+                  n =
+                    ((t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : n < t && (t = n),
+                    (e = void 0 === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : n < e && (e = n),
+                    e < t && (e = t),
+                    this.subarray(t, e));
+                return Object.setPrototypeOf(n, A.prototype), n;
+              }),
+                (A.prototype.readUintLE = A.prototype.readUIntLE =
+                  function (t, e, n) {
+                    (t >>>= 0), (e >>>= 0), n || b(t, e, this.length);
+                    for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256); )
+                      r += this[t + o] * i;
+                    return r;
+                  }),
+                (A.prototype.readUintBE = A.prototype.readUIntBE =
+                  function (t, e, n) {
+                    (t >>>= 0), (e >>>= 0), n || b(t, e, this.length);
+                    for (var r = this[t + --e], i = 1; 0 < e && (i *= 256); )
+                      r += this[t + --e] * i;
+                    return r;
+                  }),
+                (A.prototype.readUint8 = A.prototype.readUInt8 =
+                  function (t, e) {
+                    return (t >>>= 0), e || b(t, 1, this.length), this[t];
+                  }),
+                (A.prototype.readUint16LE = A.prototype.readUInt16LE =
+                  function (t, e) {
+                    return (t >>>= 0), e || b(t, 2, this.length), this[t] | (this[t + 1] << 8);
+                  }),
+                (A.prototype.readUint16BE = A.prototype.readUInt16BE =
+                  function (t, e) {
+                    return (t >>>= 0), e || b(t, 2, this.length), (this[t] << 8) | this[t + 1];
+                  }),
+                (A.prototype.readUint32LE = A.prototype.readUInt32LE =
+                  function (t, e) {
+                    return (
+                      (t >>>= 0),
+                      e || b(t, 4, this.length),
+                      (this[t] | (this[t + 1] << 8) | (this[t + 2] << 16)) + 16777216 * this[t + 3]
+                    );
+                  }),
+                (A.prototype.readUint32BE = A.prototype.readUInt32BE =
+                  function (t, e) {
+                    return (
+                      (t >>>= 0),
+                      e || b(t, 4, this.length),
+                      16777216 * this[t] + ((this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3])
+                    );
+                  }),
+                (A.prototype.readIntLE = function (t, e, n) {
+                  (t >>>= 0), (e >>>= 0), n || b(t, e, this.length);
+                  for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256); ) r += this[t + o] * i;
+                  return (i *= 128) <= r && (r -= Math.pow(2, 8 * e)), r;
+                }),
+                (A.prototype.readIntBE = function (t, e, n) {
+                  (t >>>= 0), (e >>>= 0), n || b(t, e, this.length);
+                  for (var r = e, i = 1, o = this[t + --r]; 0 < r && (i *= 256); )
+                    o += this[t + --r] * i;
+                  return (i *= 128) <= o && (o -= Math.pow(2, 8 * e)), o;
+                }),
+                (A.prototype.readInt8 = function (t, e) {
+                  return (
+                    (t >>>= 0),
+                    e || b(t, 1, this.length),
+                    128 & this[t] ? -1 * (255 - this[t] + 1) : this[t]
+                  );
+                }),
+                (A.prototype.readInt16LE = function (t, e) {
+                  (t >>>= 0), e || b(t, 2, this.length);
+                  e = this[t] | (this[t + 1] << 8);
+                  return 32768 & e ? 4294901760 | e : e;
+                }),
+                (A.prototype.readInt16BE = function (t, e) {
+                  (t >>>= 0), e || b(t, 2, this.length);
+                  e = this[t + 1] | (this[t] << 8);
+                  return 32768 & e ? 4294901760 | e : e;
+                }),
+                (A.prototype.readInt32LE = function (t, e) {
+                  return (
+                    (t >>>= 0),
+                    e || b(t, 4, this.length),
+                    this[t] | (this[t + 1] << 8) | (this[t + 2] << 16) | (this[t + 3] << 24)
+                  );
+                }),
+                (A.prototype.readInt32BE = function (t, e) {
+                  return (
+                    (t >>>= 0),
+                    e || b(t, 4, this.length),
+                    (this[t] << 24) | (this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3]
+                  );
+                }),
+                (A.prototype.readFloatLE = function (t, e) {
+                  return (t >>>= 0), e || b(t, 4, this.length), o.read(this, t, !0, 23, 4);
+                }),
+                (A.prototype.readFloatBE = function (t, e) {
+                  return (t >>>= 0), e || b(t, 4, this.length), o.read(this, t, !1, 23, 4);
+                }),
+                (A.prototype.readDoubleLE = function (t, e) {
+                  return (t >>>= 0), e || b(t, 8, this.length), o.read(this, t, !0, 52, 8);
+                }),
+                (A.prototype.readDoubleBE = function (t, e) {
+                  return (t >>>= 0), e || b(t, 8, this.length), o.read(this, t, !1, 52, 8);
+                }),
+                (A.prototype.writeUintLE = A.prototype.writeUIntLE =
+                  function (t, e, n, r) {
+                    (t = +t),
+                      (e >>>= 0),
+                      (n >>>= 0),
+                      r || y(this, t, e, n, Math.pow(2, 8 * n) - 1, 0);
+                    var i = 1,
+                      o = 0;
+                    for (this[e] = 255 & t; ++o < n && (i *= 256); ) this[e + o] = (t / i) & 255;
+                    return e + n;
+                  }),
+                (A.prototype.writeUintBE = A.prototype.writeUIntBE =
+                  function (t, e, n, r) {
+                    (t = +t),
+                      (e >>>= 0),
+                      (n >>>= 0),
+                      r || y(this, t, e, n, Math.pow(2, 8 * n) - 1, 0);
+                    var i = n - 1,
+                      o = 1;
+                    for (this[e + i] = 255 & t; 0 <= --i && (o *= 256); )
+                      this[e + i] = (t / o) & 255;
+                    return e + n;
+                  }),
+                (A.prototype.writeUint8 = A.prototype.writeUInt8 =
+                  function (t, e, n) {
+                    return (
+                      (t = +t),
+                      (e >>>= 0),
+                      n || y(this, t, e, 1, 255, 0),
+                      (this[e] = 255 & t),
+                      e + 1
+                    );
+                  }),
+                (A.prototype.writeUint16LE = A.prototype.writeUInt16LE =
+                  function (t, e, n) {
+                    return (
+                      (t = +t),
+                      (e >>>= 0),
+                      n || y(this, t, e, 2, 65535, 0),
+                      (this[e] = 255 & t),
+                      (this[e + 1] = t >>> 8),
+                      e + 2
+                    );
+                  }),
+                (A.prototype.writeUint16BE = A.prototype.writeUInt16BE =
+                  function (t, e, n) {
+                    return (
+                      (t = +t),
+                      (e >>>= 0),
+                      n || y(this, t, e, 2, 65535, 0),
+                      (this[e] = t >>> 8),
+                      (this[e + 1] = 255 & t),
+                      e + 2
+                    );
+                  }),
+                (A.prototype.writeUint32LE = A.prototype.writeUInt32LE =
+                  function (t, e, n) {
+                    return (
+                      (t = +t),
+                      (e >>>= 0),
+                      n || y(this, t, e, 4, 4294967295, 0),
+                      (this[e + 3] = t >>> 24),
+                      (this[e + 2] = t >>> 16),
+                      (this[e + 1] = t >>> 8),
+                      (this[e] = 255 & t),
+                      e + 4
+                    );
+                  }),
+                (A.prototype.writeUint32BE = A.prototype.writeUInt32BE =
+                  function (t, e, n) {
+                    return (
+                      (t = +t),
+                      (e >>>= 0),
+                      n || y(this, t, e, 4, 4294967295, 0),
+                      (this[e] = t >>> 24),
+                      (this[e + 1] = t >>> 16),
+                      (this[e + 2] = t >>> 8),
+                      (this[e + 3] = 255 & t),
+                      e + 4
+                    );
+                  }),
+                (A.prototype.writeIntLE = function (t, e, n, r) {
+                  (t = +t), (e >>>= 0), r || y(this, t, e, n, (r = Math.pow(2, 8 * n - 1)) - 1, -r);
+                  var i = 0,
+                    o = 1,
+                    a = 0;
+                  for (this[e] = 255 & t; ++i < n && (o *= 256); )
+                    t < 0 && 0 === a && 0 !== this[e + i - 1] && (a = 1),
+                      (this[e + i] = (((t / o) >> 0) - a) & 255);
+                  return e + n;
+                }),
+                (A.prototype.writeIntBE = function (t, e, n, r) {
+                  (t = +t), (e >>>= 0), r || y(this, t, e, n, (r = Math.pow(2, 8 * n - 1)) - 1, -r);
+                  var i = n - 1,
+                    o = 1,
+                    a = 0;
+                  for (this[e + i] = 255 & t; 0 <= --i && (o *= 256); )
+                    t < 0 && 0 === a && 0 !== this[e + i + 1] && (a = 1),
+                      (this[e + i] = (((t / o) >> 0) - a) & 255);
+                  return e + n;
+                }),
+                (A.prototype.writeInt8 = function (t, e, n) {
+                  return (
+                    (t = +t),
+                    (e >>>= 0),
+                    n || y(this, t, e, 1, 127, -128),
+                    (this[e] = 255 & (t = t < 0 ? 255 + t + 1 : t)),
+                    e + 1
+                  );
+                }),
+                (A.prototype.writeInt16LE = function (t, e, n) {
+                  return (
+                    (t = +t),
+                    (e >>>= 0),
+                    n || y(this, t, e, 2, 32767, -32768),
+                    (this[e] = 255 & t),
+                    (this[e + 1] = t >>> 8),
+                    e + 2
+                  );
+                }),
+                (A.prototype.writeInt16BE = function (t, e, n) {
+                  return (
+                    (t = +t),
+                    (e >>>= 0),
+                    n || y(this, t, e, 2, 32767, -32768),
+                    (this[e] = t >>> 8),
+                    (this[e + 1] = 255 & t),
+                    e + 2
+                  );
+                }),
+                (A.prototype.writeInt32LE = function (t, e, n) {
+                  return (
+                    (t = +t),
+                    (e >>>= 0),
+                    n || y(this, t, e, 4, 2147483647, -2147483648),
+                    (this[e] = 255 & t),
+                    (this[e + 1] = t >>> 8),
+                    (this[e + 2] = t >>> 16),
+                    (this[e + 3] = t >>> 24),
+                    e + 4
+                  );
+                }),
+                (A.prototype.writeInt32BE = function (t, e, n) {
+                  return (
+                    (t = +t),
+                    (e >>>= 0),
+                    n || y(this, t, e, 4, 2147483647, -2147483648),
+                    (this[e] = (t = t < 0 ? 4294967295 + t + 1 : t) >>> 24),
+                    (this[e + 1] = t >>> 16),
+                    (this[e + 2] = t >>> 8),
+                    (this[e + 3] = 255 & t),
+                    e + 4
+                  );
+                }),
+                (A.prototype.writeFloatLE = function (t, e, n) {
+                  return E(this, t, e, !0, n);
+                }),
+                (A.prototype.writeFloatBE = function (t, e, n) {
+                  return E(this, t, e, !1, n);
+                }),
+                (A.prototype.writeDoubleLE = function (t, e, n) {
+                  return B(this, t, e, !0, n);
+                }),
+                (A.prototype.writeDoubleBE = function (t, e, n) {
+                  return B(this, t, e, !1, n);
+                }),
+                (A.prototype.copy = function (t, e, n, r) {
+                  if (!A.isBuffer(t)) throw new TypeError('argument should be a Buffer');
+                  if (
+                    ((n = n || 0),
+                    r || 0 === r || (r = this.length),
+                    e >= t.length && (e = t.length),
+                    (r = 0 < r && r < n ? n : r) === n)
+                  )
+                    return 0;
+                  if (0 === t.length || 0 === this.length) return 0;
+                  if ((e = e || 0) < 0) throw new RangeError('targetStart out of bounds');
+                  if (n < 0 || n >= this.length) throw new RangeError('Index out of range');
+                  if (r < 0) throw new RangeError('sourceEnd out of bounds');
+                  r > this.length && (r = this.length);
+                  var i = (r = t.length - e < r - n ? t.length - e + n : r) - n;
+                  return (
+                    this === t && 'function' == typeof Uint8Array.prototype.copyWithin
+                      ? this.copyWithin(e, n, r)
+                      : Uint8Array.prototype.set.call(t, this.subarray(n, r), e),
+                    i
+                  );
+                }),
+                (A.prototype.fill = function (t, e, n, r) {
+                  if ('string' == typeof t) {
+                    if (
+                      ('string' == typeof e
+                        ? ((r = e), (e = 0), (n = this.length))
+                        : 'string' == typeof n && ((r = n), (n = this.length)),
+                      void 0 !== r && 'string' != typeof r)
+                    )
+                      throw new TypeError('encoding must be a string');
+                    if ('string' == typeof r && !A.isEncoding(r))
+                      throw new TypeError('Unknown encoding: ' + r);
+                    var i;
+                    1 === t.length &&
+                      ((i = t.charCodeAt(0)),
+                      (('utf8' === r && i < 128) || 'latin1' === r) && (t = i));
+                  } else
+                    'number' == typeof t ? (t &= 255) : 'boolean' == typeof t && (t = Number(t));
+                  if (e < 0 || this.length < e || this.length < n)
+                    throw new RangeError('Out of range index');
+                  var o;
+                  if (!(n <= e))
+                    if (
+                      ((e >>>= 0),
+                      (n = void 0 === n ? this.length : n >>> 0),
+                      'number' == typeof (t = t || 0))
+                    )
+                      for (o = e; o < n; ++o) this[o] = t;
+                    else {
+                      var a = A.isBuffer(t) ? t : A.from(t, r),
+                        s = a.length;
+                      if (0 === s)
+                        throw new TypeError(
+                          'The value "' + t + '" is invalid for argument "value"',
+                        );
+                      for (o = 0; o < n - e; ++o) this[o + e] = a[o % s];
+                    }
+                  return this;
+                });
+              var I = /[^+/0-9A-Za-z-_]/g;
+              function M(t, e) {
+                e = e || 1 / 0;
+                for (var n, r = t.length, i = null, o = [], a = 0; a < r; ++a) {
+                  if (55295 < (n = t.charCodeAt(a)) && n < 57344) {
+                    if (!i) {
+                      if (56319 < n) {
+                        -1 < (e -= 3) && o.push(239, 191, 189);
+                        continue;
+                      }
+                      if (a + 1 === r) {
+                        -1 < (e -= 3) && o.push(239, 191, 189);
+                        continue;
+                      }
+                      i = n;
+                      continue;
+                    }
+                    if (n < 56320) {
+                      -1 < (e -= 3) && o.push(239, 191, 189), (i = n);
+                      continue;
+                    }
+                    n = 65536 + (((i - 55296) << 10) | (n - 56320));
+                  } else i && -1 < (e -= 3) && o.push(239, 191, 189);
+                  if (((i = null), n < 128)) {
+                    if (--e < 0) break;
+                    o.push(n);
+                  } else if (n < 2048) {
+                    if ((e -= 2) < 0) break;
+                    o.push((n >> 6) | 192, (63 & n) | 128);
+                  } else if (n < 65536) {
+                    if ((e -= 3) < 0) break;
+                    o.push((n >> 12) | 224, ((n >> 6) & 63) | 128, (63 & n) | 128);
+                  } else {
+                    if (!(n < 1114112)) throw new Error('Invalid code point');
+                    if ((e -= 4) < 0) break;
+                    o.push(
+                      (n >> 18) | 240,
+                      ((n >> 12) & 63) | 128,
+                      ((n >> 6) & 63) | 128,
+                      (63 & n) | 128,
+                    );
+                  }
+                }
+                return o;
+              }
+              function D(t) {
+                return C.toByteArray(
+                  (function (t) {
+                    if ((t = (t = t.split('=')[0]).trim().replace(I, '')).length < 2) return '';
+                    for (; t.length % 4 != 0; ) t += '=';
+                    return t;
+                  })(t),
+                );
+              }
+              function S(t, e, n, r) {
+                for (var i = 0; i < r && !(i + n >= e.length || i >= t.length); ++i)
+                  e[i + n] = t[i];
+                return i;
+              }
+              function k(t, e) {
+                return (
+                  t instanceof e ||
+                  (null != t &&
+                    null != t.constructor &&
+                    null != t.constructor.name &&
+                    t.constructor.name === e.name)
+                );
+              }
+              function F(t) {
+                return t != t;
+              }
+              var Q = (function () {
+                for (var t = '0123456789abcdef', e = new Array(256), n = 0; n < 16; ++n)
+                  for (var r = 16 * n, i = 0; i < 16; ++i) e[r + i] = t[n] + t[i];
+                return e;
+              })();
+            }.call(this);
+          }.call(this, _('buffer').Buffer);
+        },
+        { 'base64-js': 22, buffer: 26, ieee754: 37 },
+      ],
+      27: [
+        function (t, e, n) {
+          e.exports = {
+            100: 'Continue',
+            101: 'Switching Protocols',
+            102: 'Processing',
+            200: 'OK',
+            201: 'Created',
+            202: 'Accepted',
+            203: 'Non-Authoritative Information',
+            204: 'No Content',
+            205: 'Reset Content',
+            206: 'Partial Content',
+            207: 'Multi-Status',
+            208: 'Already Reported',
+            226: 'IM Used',
+            300: 'Multiple Choices',
+            301: 'Moved Permanently',
+            302: 'Found',
+            303: 'See Other',
+            304: 'Not Modified',
+            305: 'Use Proxy',
+            307: 'Temporary Redirect',
+            308: 'Permanent Redirect',
+            400: 'Bad Request',
+            401: 'Unauthorized',
+            402: 'Payment Required',
+            403: 'Forbidden',
+            404: 'Not Found',
+            405: 'Method Not Allowed',
+            406: 'Not Acceptable',
+            407: 'Proxy Authentication Required',
+            408: 'Request Timeout',
+            409: 'Conflict',
+            410: 'Gone',
+            411: 'Length Required',
+            412: 'Precondition Failed',
+            413: 'Payload Too Large',
+            414: 'URI Too Long',
+            415: 'Unsupported Media Type',
+            416: 'Range Not Satisfiable',
+            417: 'Expectation Failed',
+            418: "I'm a teapot",
+            421: 'Misdirected Request',
+            422: 'Unprocessable Entity',
+            423: 'Locked',
+            424: 'Failed Dependency',
+            425: 'Unordered Collection',
+            426: 'Upgrade Required',
+            428: 'Precondition Required',
+            429: 'Too Many Requests',
+            431: 'Request Header Fields Too Large',
+            451: 'Unavailable For Legal Reasons',
+            500: 'Internal Server Error',
+            501: 'Not Implemented',
+            502: 'Bad Gateway',
+            503: 'Service Unavailable',
+            504: 'Gateway Timeout',
+            505: 'HTTP Version Not Supported',
+            506: 'Variant Also Negotiates',
+            507: 'Insufficient Storage',
+            508: 'Loop Detected',
+            509: 'Bandwidth Limit Exceeded',
+            510: 'Not Extended',
+            511: 'Network Authentication Required',
+          };
+        },
+        {},
+      ],
+      28: [
+        function (t, e, n) {
+          var o = t('./helpers');
+          function a(t, e, n, r, i, o) {
+            return (1 - e / n) * r + (e / n) * Math.round((1 - t) * i + t * o);
+          }
+          var s = { unitInput: !1, unitOutput: !1, roundOutput: !0 };
+          function r(t, e, n, r) {
+            s.unitInput && ((t = o.convertFromUnit(t)), (e = o.convertFromUnit(e))),
+              (t = o.restrictColor(t));
+            var i = (e = o.restrictColor(e)).a + t.a - e.a * t.a,
+              r = r(t, e, n),
+              r = o.restrictColor({
+                r: a(t.a, e.a, i, t.r, e.r, r.r),
+                g: a(t.a, e.a, i, t.g, e.g, r.g),
+                b: a(t.a, e.a, i, t.b, e.b, r.b),
+                a: i,
+              });
+            return (r = s.unitOutput
+              ? o.convertToUnit(r)
+              : s.roundOutput
+                ? o.roundChannels(r)
+                : o.roundChannelsForSanity(r));
+          }
+          var i = t('./separable'),
+            l = t('./non-separable');
+          e.exports = {
+            options: s,
+            normal: function (t, e) {
+              return r(t, e, 'normal', i);
+            },
+            multiply: function (t, e) {
+              return r(t, e, 'multiply', i);
+            },
+            screen: function (t, e) {
+              return r(t, e, 'screen', i);
+            },
+            overlay: function (t, e) {
+              return r(t, e, 'overlay', i);
+            },
+            darken: function (t, e) {
+              return r(t, e, 'darken', i);
+            },
+            lighten: function (t, e) {
+              return r(t, e, 'lighten', i);
+            },
+            colorDodge: function (t, e) {
+              return r(t, e, 'colorDodge', i);
+            },
+            colorBurn: function (t, e) {
+              return r(t, e, 'colorBurn', i);
+            },
+            hardLight: function (t, e) {
+              return r(t, e, 'hardLight', i);
+            },
+            softLight: function (t, e) {
+              return r(t, e, 'softLight', i);
+            },
+            difference: function (t, e) {
+              return r(t, e, 'difference', i);
+            },
+            exclusion: function (t, e) {
+              return r(t, e, 'exclusion', i);
+            },
+            hue: function (t, e) {
+              return r(t, e, 'hue', l);
+            },
+            saturation: function (t, e) {
+              return r(t, e, 'saturation', l);
+            },
+            color: function (t, e) {
+              return r(t, e, 'color', l);
+            },
+            luminosity: function (t, e) {
+              return r(t, e, 'luminosity', l);
+            },
+          };
+        },
+        { './helpers': 29, './non-separable': 30, './separable': 31 },
+      ],
+      29: [
+        function (t, e, n) {
+          function r(t, e, n) {
+            return Math.min(Math.max(t, e), n);
+          }
+          e.exports = {
+            restrictColor: function (t) {
+              return { r: r(t.r, 0, 255), g: r(t.g, 0, 255), b: r(t.b, 0, 255), a: r(t.a, 0, 1) };
+            },
+            convertFromUnit: function (t) {
+              return { r: 255 * t.r, g: 255 * t.g, b: 255 * t.b, a: t.a };
+            },
+            convertToUnit: function (t) {
+              return { r: t.r / 255, g: t.g / 255, b: t.b / 255, a: t.a };
+            },
+            roundChannels: function (t, e) {
+              null == e && (e = 0);
+              e = Math.pow(10, e);
+              return {
+                r: Math.round(t.r * e) / e,
+                g: Math.round(t.g * e) / e,
+                b: Math.round(t.b * e) / e,
+                a: t.a,
+              };
+            },
+            roundChannelsForSanity: function (t) {
+              return this.roundChannels(t, 9);
+            },
+          };
+        },
+        {},
+      ],
+      30: [
+        function (t, e, n) {
+          var r = t('./helpers'),
+            i = {
+              lum: function (t) {
+                return 0.3 * t.r + 0.59 * t.g + 0.11 * t.b;
+              },
+              clipColor: function (t) {
+                var e = this.lum(t),
+                  n = Math.min(t.r, t.g, t.b),
+                  r = Math.max(t.r, t.g, t.b),
+                  t = { r: t.r, g: t.g, b: t.b };
+                return (
+                  n < 0 &&
+                    ((t.r = e + ((t.r - e) * e) / (e - n)),
+                    (t.g = e + ((t.g - e) * e) / (e - n)),
+                    (t.b = e + ((t.b - e) * e) / (e - n))),
+                  1 < r &&
+                    ((t.r = e + ((t.r - e) * (1 - e)) / (r - e)),
+                    (t.g = e + ((t.g - e) * (1 - e)) / (r - e)),
+                    (t.b = e + ((t.b - e) * (1 - e)) / (r - e))),
+                  t
+                );
+              },
+              setLum: function (t, e) {
+                e -= this.lum(t);
+                return this.clipColor({ r: t.r + e, g: t.g + e, b: t.b + e });
+              },
+              sat: function (t) {
+                return Math.max(t.r, t.g, t.b) - Math.min(t.r, t.g, t.b);
+              },
+              setSat: function (n, t) {
+                var e = Object.keys(n).sort(function (t, e) {
+                    return n[t] - n[e];
+                  }),
+                  r = e[0],
+                  i = e[1],
+                  e = e[2],
+                  o = { r: n.r, g: n.g, b: n.b };
+                return (
+                  o[e] > o[r]
+                    ? ((o[i] = ((o[i] - o[r]) * t) / (o[e] - o[r])), (o[e] = t))
+                    : (o[i] = o[e] = 0),
+                  (o[r] = 0),
+                  o
+                );
+              },
+            },
+            o = {
+              hue: function (t, e) {
+                return i.setLum(i.setSat(e, i.sat(t)), i.lum(t));
+              },
+              saturation: function (t, e) {
+                return i.setLum(i.setSat(t, i.sat(e)), i.lum(t));
+              },
+              color: function (t, e) {
+                return i.setLum(e, i.lum(t));
+              },
+              luminosity: function (t, e) {
+                return i.setLum(t, i.lum(e));
+              },
+            };
+          e.exports = function (t, e, n) {
+            return r.convertFromUnit(o[n](r.convertToUnit(t), r.convertToUnit(e)));
+          };
+        },
+        { './helpers': 29 },
+      ],
+      31: [
+        function (t, e, n) {
+          var r = {
+            normal: function (t, e) {
+              return e;
+            },
+            multiply: function (t, e) {
+              return t * e;
+            },
+            screen: function (t, e) {
+              return t + e - t * e;
+            },
+            overlay: function (t, e) {
+              return this.hardLight(e, t);
+            },
+            darken: function (t, e) {
+              return Math.min(t, e);
+            },
+            lighten: function (t, e) {
+              return Math.min(Math.max(t, e), 1);
+            },
+            colorDodge: function (t, e) {
+              return 0 === t ? 0 : 1 === e ? 1 : Math.min(1, t / (1 - e));
+            },
+            colorBurn: function (t, e) {
+              return 1 === t ? 1 : 0 === e ? 0 : 1 - Math.min(1, (1 - t) / e);
+            },
+            hardLight: function (t, e) {
+              return e <= 0.5 ? this.multiply(t, 2 * e) : this.screen(t, 2 * e - 1);
+            },
+            softLight: function (t, e) {
+              return e <= 0.5
+                ? t - (1 - 2 * e) * t * (1 - t)
+                : t + (2 * e - 1) * ((t <= 0.25 ? ((16 * t - 12) * t + 4) * t : Math.sqrt(t)) - t);
+            },
+            difference: function (t, e) {
+              return Math.abs(t - e);
+            },
+            exclusion: function (t, e) {
+              return t + e - 2 * t * e;
+            },
+          };
+          e.exports = function (t, e, n) {
+            return {
+              r: 255 * r[n](t.r / 255, e.r / 255),
+              g: 255 * r[n](t.g / 255, e.g / 255),
+              b: 255 * r[n](t.b / 255, e.b / 255),
+            };
+          };
+        },
+        {},
+      ],
+      32: [
+        function (t, e, n) {
+          function r(t) {
+            return Object.prototype.toString.call(t);
+          }
+          (n.isArray = function (t) {
+            return Array.isArray ? Array.isArray(t) : '[object Array]' === r(t);
+          }),
+            (n.isBoolean = function (t) {
+              return 'boolean' == typeof t;
+            }),
+            (n.isNull = function (t) {
+              return null === t;
+            }),
+            (n.isNullOrUndefined = function (t) {
+              return null == t;
+            }),
+            (n.isNumber = function (t) {
+              return 'number' == typeof t;
+            }),
+            (n.isString = function (t) {
+              return 'string' == typeof t;
+            }),
+            (n.isSymbol = function (t) {
+              return 'symbol' == typeof t;
+            }),
+            (n.isUndefined = function (t) {
+              return void 0 === t;
+            }),
+            (n.isRegExp = function (t) {
+              return '[object RegExp]' === r(t);
+            }),
+            (n.isObject = function (t) {
+              return 'object' == typeof t && null !== t;
+            }),
+            (n.isDate = function (t) {
+              return '[object Date]' === r(t);
+            }),
+            (n.isError = function (t) {
+              return '[object Error]' === r(t) || t instanceof Error;
+            }),
+            (n.isFunction = function (t) {
+              return 'function' == typeof t;
+            }),
+            (n.isPrimitive = function (t) {
+              return (
+                null === t ||
+                'boolean' == typeof t ||
+                'number' == typeof t ||
+                'string' == typeof t ||
+                'symbol' == typeof t ||
+                void 0 === t
+              );
+            }),
+            (n.isBuffer = t('buffer').Buffer.isBuffer);
+        },
+        { buffer: 26 },
+      ],
+      33: [
+        function (t, $s, e) {
+          !(function () {
+            var _ = { version: '3.5.17' },
+              S = [].slice,
+              h = function (t) {
+                return S.call(t);
+              },
+              T = this.document;
+            function P(t) {
+              return t && (t.ownerDocument || t.document || t).documentElement;
+            }
+            function L(t) {
+              return (
+                t &&
+                ((t.ownerDocument && t.ownerDocument.defaultView) ||
+                  (t.document && t) ||
+                  t.defaultView)
+              );
+            }
+            if (T)
+              try {
+                h(T.documentElement.childNodes)[0].nodeType;
+              } catch (t) {
+                h = function (t) {
+                  for (var e = t.length, n = new Array(e); e--; ) n[e] = t[e];
+                  return n;
+                };
+              }
+            if (
+              (Date.now ||
+                (Date.now = function () {
+                  return +new Date();
+                }),
+              T)
+            )
+              try {
+                T.createElement('DIV').style.setProperty('opacity', 0, '');
+              } catch (t) {
+                var e = this.Element.prototype,
+                  Y = e.setAttribute,
+                  O = e.setAttributeNS,
+                  n = this.CSSStyleDeclaration.prototype,
+                  G = n.setProperty;
+                (e.setAttribute = function (t, e) {
+                  Y.call(this, t, e + '');
+                }),
+                  (e.setAttributeNS = function (t, e, n) {
+                    O.call(this, t, e, n + '');
+                  }),
+                  (n.setProperty = function (t, e, n) {
+                    G.call(this, t, e + '', n);
+                  });
+              }
+            function z(t, e) {
+              return t < e ? -1 : e < t ? 1 : e <= t ? 0 : NaN;
+            }
+            function H(t) {
+              return null === t ? NaN : +t;
+            }
+            function j(t) {
+              return !isNaN(t);
+            }
+            function t(o) {
+              return {
+                left: function (t, e, n, r) {
+                  for (
+                    arguments.length < 3 && (n = 0), arguments.length < 4 && (r = t.length);
+                    n < r;
+
+                  ) {
+                    var i = (n + r) >>> 1;
+                    o(t[i], e) < 0 ? (n = 1 + i) : (r = i);
+                  }
+                  return n;
+                },
+                right: function (t, e, n, r) {
+                  for (
+                    arguments.length < 3 && (n = 0), arguments.length < 4 && (r = t.length);
+                    n < r;
+
+                  ) {
+                    var i = (n + r) >>> 1;
+                    0 < o(t[i], e) ? (r = i) : (n = 1 + i);
+                  }
+                  return n;
+                },
+              };
+            }
+            (_.ascending = z),
+              (_.descending = function (t, e) {
+                return e < t ? -1 : t < e ? 1 : t <= e ? 0 : NaN;
+              }),
+              (_.min = function (t, e) {
+                var n,
+                  r,
+                  i = -1,
+                  o = t.length;
+                if (1 === arguments.length) {
+                  for (; ++i < o; )
+                    if (null != (r = t[i]) && r <= r) {
+                      n = r;
+                      break;
+                    }
+                  for (; ++i < o; ) null != (r = t[i]) && r < n && (n = r);
+                } else {
+                  for (; ++i < o; )
+                    if (null != (r = e.call(t, t[i], i)) && r <= r) {
+                      n = r;
+                      break;
+                    }
+                  for (; ++i < o; ) null != (r = e.call(t, t[i], i)) && r < n && (n = r);
+                }
+                return n;
+              }),
+              (_.max = function (t, e) {
+                var n,
+                  r,
+                  i = -1,
+                  o = t.length;
+                if (1 === arguments.length) {
+                  for (; ++i < o; )
+                    if (null != (r = t[i]) && r <= r) {
+                      n = r;
+                      break;
+                    }
+                  for (; ++i < o; ) null != (r = t[i]) && n < r && (n = r);
+                } else {
+                  for (; ++i < o; )
+                    if (null != (r = e.call(t, t[i], i)) && r <= r) {
+                      n = r;
+                      break;
+                    }
+                  for (; ++i < o; ) null != (r = e.call(t, t[i], i)) && n < r && (n = r);
+                }
+                return n;
+              }),
+              (_.extent = function (t, e) {
+                var n,
+                  r,
+                  i,
+                  o = -1,
+                  a = t.length;
+                if (1 === arguments.length) {
+                  for (; ++o < a; )
+                    if (null != (r = t[o]) && r <= r) {
+                      n = i = r;
+                      break;
+                    }
+                  for (; ++o < a; ) null != (r = t[o]) && (r < n && (n = r), i < r && (i = r));
+                } else {
+                  for (; ++o < a; )
+                    if (null != (r = e.call(t, t[o], o)) && r <= r) {
+                      n = i = r;
+                      break;
+                    }
+                  for (; ++o < a; )
+                    null != (r = e.call(t, t[o], o)) && (r < n && (n = r), i < r && (i = r));
+                }
+                return [n, i];
+              }),
+              (_.sum = function (t, e) {
+                var n,
+                  r = 0,
+                  i = t.length,
+                  o = -1;
+                if (1 === arguments.length) for (; ++o < i; ) j((n = +t[o])) && (r += n);
+                else for (; ++o < i; ) j((n = +e.call(t, t[o], o))) && (r += n);
+                return r;
+              }),
+              (_.mean = function (t, e) {
+                var n,
+                  r = 0,
+                  i = t.length,
+                  o = -1,
+                  a = i;
+                if (1 === arguments.length) for (; ++o < i; ) j((n = H(t[o]))) ? (r += n) : --a;
+                else for (; ++o < i; ) j((n = H(e.call(t, t[o], o)))) ? (r += n) : --a;
+                if (a) return r / a;
+              }),
+              (_.quantile = function (t, e) {
+                var e = (t.length - 1) * e + 1,
+                  n = Math.floor(e),
+                  r = +t[n - 1],
+                  e = e - n;
+                return e ? r + e * (t[n] - r) : r;
+              }),
+              (_.median = function (t, e) {
+                var n,
+                  r = [],
+                  i = t.length,
+                  o = -1;
+                if (1 === arguments.length) for (; ++o < i; ) j((n = H(t[o]))) && r.push(n);
+                else for (; ++o < i; ) j((n = H(e.call(t, t[o], o)))) && r.push(n);
+                if (r.length) return _.quantile(r.sort(z), 0.5);
+              }),
+              (_.variance = function (t, e) {
+                var n,
+                  r,
+                  i = t.length,
+                  o = 0,
+                  a = 0,
+                  s = -1,
+                  l = 0;
+                if (1 === arguments.length)
+                  for (; ++s < i; ) j((n = H(t[s]))) && (a += (r = n - o) * (n - (o += r / ++l)));
+                else
+                  for (; ++s < i; )
+                    j((n = H(e.call(t, t[s], s)))) && (a += (r = n - o) * (n - (o += r / ++l)));
+                if (1 < l) return a / (l - 1);
+              }),
+              (_.deviation = function () {
+                var t = _.variance.apply(this, arguments);
+                return t && Math.sqrt(t);
+              });
+            e = t(z);
+            function V(t) {
+              return t.length;
+            }
+            (_.bisectLeft = e.left),
+              (_.bisect = _.bisectRight = e.right),
+              (_.bisector = function (n) {
+                return t(
+                  1 === n.length
+                    ? function (t, e) {
+                        return z(n(t), e);
+                      }
+                    : n,
+                );
+              }),
+              (_.shuffle = function (t, e, n) {
+                (o = arguments.length) < 3 && ((n = t.length), o < 2 && (e = 0));
+                for (var r, i, o = n - e; o; )
+                  (i = (Math.random() * o--) | 0),
+                    (r = t[o + e]),
+                    (t[o + e] = t[i + e]),
+                    (t[i + e] = r);
+                return t;
+              }),
+              (_.permute = function (t, e) {
+                for (var n = e.length, r = new Array(n); n--; ) r[n] = t[e[n]];
+                return r;
+              }),
+              (_.pairs = function (t) {
+                for (var e = 0, n = t.length - 1, r = t[0], i = new Array(n < 0 ? 0 : n); e < n; )
+                  i[e] = [r, (r = t[++e])];
+                return i;
+              }),
+              (_.transpose = function (t) {
+                if (!(i = t.length)) return [];
+                for (var e = -1, n = _.min(t, V), r = new Array(n); ++e < n; )
+                  for (var i, o = -1, a = (r[e] = new Array(i)); ++o < i; ) a[o] = t[o][e];
+                return r;
+              }),
+              (_.zip = function () {
+                return _.transpose(arguments);
+              }),
+              (_.keys = function (t) {
+                var e,
+                  n = [];
+                for (e in t) n.push(e);
+                return n;
+              }),
+              (_.values = function (t) {
+                var e,
+                  n = [];
+                for (e in t) n.push(t[e]);
+                return n;
+              }),
+              (_.entries = function (t) {
+                var e,
+                  n = [];
+                for (e in t) n.push({ key: e, value: t[e] });
+                return n;
+              }),
+              (_.merge = function (t) {
+                for (var e, n, r, i = t.length, o = -1, a = 0; ++o < i; ) a += t[o].length;
+                for (n = new Array(a); 0 <= --i; )
+                  for (e = (r = t[i]).length; 0 <= --e; ) n[--a] = r[e];
+                return n;
+              });
+            var F = Math.abs;
+            function q(t, e) {
+              for (var n in e)
+                Object.defineProperty(t.prototype, n, { value: e[n], enumerable: !1 });
+            }
+            function W() {
+              this._ = Object.create(null);
+            }
+            (_.range = function (t, e, n) {
+              if (
+                (arguments.length < 3 && ((n = 1), arguments.length < 2 && ((e = t), (t = 0))),
+                (e - t) / n == 1 / 0)
+              )
+                throw new Error('infinite range');
+              var r,
+                i = [],
+                o = (function (t) {
+                  var e = 1;
+                  for (; (t * e) % 1; ) e *= 10;
+                  return e;
+                })(F(n)),
+                a = -1;
+              if (((t *= o), (e *= o), (n *= o) < 0)) for (; (r = t + n * ++a) > e; ) i.push(r / o);
+              else for (; (r = t + n * ++a) < e; ) i.push(r / o);
+              return i;
+            }),
+              (_.map = function (t, e) {
+                var n = new W();
+                if (t instanceof W)
+                  t.forEach(function (t, e) {
+                    n.set(t, e);
+                  });
+                else if (Array.isArray(t)) {
+                  var r,
+                    i = -1,
+                    o = t.length;
+                  if (1 === arguments.length) for (; ++i < o; ) n.set(i, t[i]);
+                  else for (; ++i < o; ) n.set(e.call(t, (r = t[i]), i), r);
+                } else for (var a in t) n.set(a, t[a]);
+                return n;
+              });
+            var J = '__proto__',
+              K = '\0';
+            function Z(t) {
+              return (t += '') === J || t[0] === K ? K + t : t;
+            }
+            function X(t) {
+              return (t += '')[0] === K ? t.slice(1) : t;
+            }
+            function $(t) {
+              return Z(t) in this._;
+            }
+            function tt(t) {
+              return (t = Z(t)) in this._ && delete this._[t];
+            }
+            function et() {
+              var t,
+                e = [];
+              for (t in this._) e.push(X(t));
+              return e;
+            }
+            function nt() {
+              var t,
+                e = 0;
+              for (t in this._) ++e;
+              return e;
+            }
+            function rt() {
+              for (var t in this._) return !1;
+              return !0;
+            }
+            function it() {
+              this._ = Object.create(null);
+            }
+            function k(t) {
+              return t;
+            }
+            function ot(t, e) {
+              if (e in t) return e;
+              e = e.charAt(0).toUpperCase() + e.slice(1);
+              for (var n = 0, r = at.length; n < r; ++n) {
+                var i = at[n] + e;
+                if (i in t) return i;
+              }
+            }
+            q(W, {
+              has: $,
+              get: function (t) {
+                return this._[Z(t)];
+              },
+              set: function (t, e) {
+                return (this._[Z(t)] = e);
+              },
+              remove: tt,
+              keys: et,
+              values: function () {
+                var t,
+                  e = [];
+                for (t in this._) e.push(this._[t]);
+                return e;
+              },
+              entries: function () {
+                var t,
+                  e = [];
+                for (t in this._) e.push({ key: X(t), value: this._[t] });
+                return e;
+              },
+              size: nt,
+              empty: rt,
+              forEach: function (t) {
+                for (var e in this._) t.call(this, X(e), this._[e]);
+              },
+            }),
+              (_.nest = function () {
+                var A,
+                  h,
+                  p = {},
+                  d = [],
+                  e = [];
+                function f(n, t, r) {
+                  if (r >= d.length) return h ? h.call(p, t) : A ? t.sort(A) : t;
+                  for (var e, i, o, a, s = -1, l = t.length, u = d[r++], c = new W(); ++s < l; )
+                    (a = c.get((e = u((i = t[s]))))) ? a.push(i) : c.set(e, [i]);
+                  return (
+                    (o = n
+                      ? ((i = n()),
+                        function (t, e) {
+                          i.set(t, f(n, e, r));
+                        })
+                      : ((i = {}),
+                        function (t, e) {
+                          i[t] = f(n, e, r);
+                        })),
+                    c.forEach(o),
+                    i
+                  );
+                }
+                return (
+                  (p.map = function (t, e) {
+                    return f(e, t, 0);
+                  }),
+                  (p.entries = function (t) {
+                    return (function n(t, r) {
+                      if (r >= d.length) return t;
+                      var i = [],
+                        o = e[r++];
+                      return (
+                        t.forEach(function (t, e) {
+                          i.push({ key: t, values: n(e, r) });
+                        }),
+                        o
+                          ? i.sort(function (t, e) {
+                              return o(t.key, e.key);
+                            })
+                          : i
+                      );
+                    })(f(_.map, t, 0), 0);
+                  }),
+                  (p.key = function (t) {
+                    return d.push(t), p;
+                  }),
+                  (p.sortKeys = function (t) {
+                    return (e[d.length - 1] = t), p;
+                  }),
+                  (p.sortValues = function (t) {
+                    return (A = t), p;
+                  }),
+                  (p.rollup = function (t) {
+                    return (h = t), p;
+                  }),
+                  p
+                );
+              }),
+              (_.set = function (t) {
+                var e = new it();
+                if (t) for (var n = 0, r = t.length; n < r; ++n) e.add(t[n]);
+                return e;
+              }),
+              q(it, {
+                has: $,
+                add: function (t) {
+                  return (this._[Z((t += ''))] = !0), t;
+                },
+                remove: tt,
+                values: et,
+                size: nt,
+                empty: rt,
+                forEach: function (t) {
+                  for (var e in this._) t.call(this, X(e));
+                },
+              }),
+              (_.behavior = {}),
+              (_.rebind = function (t, e) {
+                for (var n, r = 1, i = arguments.length; ++r < i; )
+                  t[(n = arguments[r])] = (function (e, n, r) {
+                    return function () {
+                      var t = r.apply(n, arguments);
+                      return t === n ? e : t;
+                    };
+                  })(t, e, e[n]);
+                return t;
+              });
+            var at = ['webkit', 'ms', 'moz', 'Moz', 'o', 'O'];
+            function l() {}
+            function st() {}
+            function lt(i) {
+              var o = [],
+                r = new W();
+              function t() {
+                for (var t, e = o, n = -1, r = e.length; ++n < r; )
+                  (t = e[n].on) && t.apply(this, arguments);
+                return i;
+              }
+              return (
+                (t.on = function (t, e) {
+                  var n = r.get(t);
+                  return arguments.length < 2
+                    ? n && n.on
+                    : (n &&
+                        ((n.on = null),
+                        (o = o.slice(0, (n = o.indexOf(n))).concat(o.slice(n + 1))),
+                        r.remove(t)),
+                      e && o.push(r.set(t, { on: e })),
+                      i);
+                }),
+                t
+              );
+            }
+            function ut() {
+              _.event.preventDefault();
+            }
+            function ct() {
+              for (var t, e = _.event; (t = e.sourceEvent); ) e = t;
+              return e;
+            }
+            function At(i) {
+              for (var o = new st(), t = 0, e = arguments.length; ++t < e; )
+                o[arguments[t]] = lt(o);
+              return (
+                (o.of = function (n, r) {
+                  return function (t) {
+                    try {
+                      var e = (t.sourceEvent = _.event);
+                      (t.target = i), (_.event = t), o[t.type].apply(n, r);
+                    } finally {
+                      _.event = e;
+                    }
+                  };
+                }),
+                o
+              );
+            }
+            (_.dispatch = function () {
+              for (var t = new st(), e = -1, n = arguments.length; ++e < n; )
+                t[arguments[e]] = lt(t);
+              return t;
+            }),
+              (st.prototype.on = function (t, e) {
+                var n = t.indexOf('.'),
+                  r = '';
+                if ((0 <= n && ((r = t.slice(n + 1)), (t = t.slice(0, n))), t))
+                  return arguments.length < 2 ? this[t].on(r) : this[t].on(r, e);
+                if (2 === arguments.length) {
+                  if (null == e) for (t in this) this.hasOwnProperty(t) && this[t].on(r, null);
+                  return this;
+                }
+              }),
+              (_.event = null),
+              (_.requote = function (t) {
+                return t.replace(ht, '\\$&');
+              });
+            var ht = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,
+              pt = {}.__proto__
+                ? function (t, e) {
+                    t.__proto__ = e;
+                  }
+                : function (t, e) {
+                    for (var n in e) t[n] = e[n];
+                  };
+            function dt(t) {
+              return pt(t, r), t;
+            }
+            var ft = function (t, e) {
+                return e.querySelector(t);
+              },
+              gt = function (t, e) {
+                return e.querySelectorAll(t);
+              },
+              mt = function (t, e) {
+                var n = t.matches || t[ot(t, 'matchesSelector')];
+                return (mt = function (t, e) {
+                  return n.call(t, e);
+                })(t, e);
+              },
+              r =
+                ('function' == typeof Sizzle &&
+                  ((ft = function (t, e) {
+                    return Sizzle(t, e)[0] || null;
+                  }),
+                  (mt = (gt = Sizzle).matchesSelector)),
+                (_.selection = function () {
+                  return _.select(T.documentElement);
+                }),
+                (_.selection.prototype = []));
+            function vt(t) {
+              return 'function' == typeof t
+                ? t
+                : function () {
+                    return ft(t, this);
+                  };
+            }
+            function bt(t) {
+              return 'function' == typeof t
+                ? t
+                : function () {
+                    return gt(t, this);
+                  };
+            }
+            (r.select = function (t) {
+              var e,
+                n,
+                r,
+                i,
+                o = [];
+              t = vt(t);
+              for (var a = -1, s = this.length; ++a < s; ) {
+                o.push((e = [])), (e.parentNode = (r = this[a]).parentNode);
+                for (var l = -1, u = r.length; ++l < u; )
+                  (i = r[l])
+                    ? (e.push((n = t.call(i, i.__data__, l, a))),
+                      n && '__data__' in i && (n.__data__ = i.__data__))
+                    : e.push(null);
+              }
+              return dt(o);
+            }),
+              (r.selectAll = function (t) {
+                var e,
+                  n,
+                  r = [];
+                t = bt(t);
+                for (var i = -1, o = this.length; ++i < o; )
+                  for (var a = this[i], s = -1, l = a.length; ++s < l; )
+                    (n = a[s]) &&
+                      (r.push((e = h(t.call(n, n.__data__, s, i)))), (e.parentNode = n));
+                return dt(r);
+              });
+            var yt = 'http://www.w3.org/1999/xhtml',
+              wt = {
+                svg: 'http://www.w3.org/2000/svg',
+                xhtml: yt,
+                xlink: 'http://www.w3.org/1999/xlink',
+                xml: 'http://www.w3.org/XML/1998/namespace',
+                xmlns: 'http://www.w3.org/2000/xmlns/',
+              };
+            function Et(e, n) {
+              return (
+                (e = _.ns.qualify(e)),
+                null == n
+                  ? e.local
+                    ? function () {
+                        this.removeAttributeNS(e.space, e.local);
+                      }
+                    : function () {
+                        this.removeAttribute(e);
+                      }
+                  : 'function' == typeof n
+                    ? e.local
+                      ? function () {
+                          var t = n.apply(this, arguments);
+                          null == t
+                            ? this.removeAttributeNS(e.space, e.local)
+                            : this.setAttributeNS(e.space, e.local, t);
+                        }
+                      : function () {
+                          var t = n.apply(this, arguments);
+                          null == t ? this.removeAttribute(e) : this.setAttribute(e, t);
+                        }
+                    : e.local
+                      ? function () {
+                          this.setAttributeNS(e.space, e.local, n);
+                        }
+                      : function () {
+                          this.setAttribute(e, n);
+                        }
+              );
+            }
+            function Bt(t) {
+              return t.trim().replace(/\s+/g, ' ');
+            }
+            function Ct(t) {
+              return new RegExp('(?:^|\\s+)' + _.requote(t) + '(?:\\s+|$)', 'g');
+            }
+            function xt(t) {
+              return (t + '').trim().split(/^|\s+/);
+            }
+            function It(n, r) {
+              var i = (n = xt(n).map(Mt)).length;
+              return 'function' == typeof r
+                ? function () {
+                    for (var t = -1, e = r.apply(this, arguments); ++t < i; ) n[t](this, e);
+                  }
+                : function () {
+                    for (var t = -1; ++t < i; ) n[t](this, r);
+                  };
+            }
+            function Mt(r) {
+              var i = Ct(r);
+              return function (t, e) {
+                if ((n = t.classList)) return e ? n.add(r) : n.remove(r);
+                var n = t.getAttribute('class') || '';
+                e
+                  ? ((i.lastIndex = 0), i.test(n) || t.setAttribute('class', Bt(n + ' ' + r)))
+                  : t.setAttribute('class', Bt(n.replace(i, ' ')));
+              };
+            }
+            function Dt(e, n, r) {
+              return null == n
+                ? function () {
+                    this.style.removeProperty(e);
+                  }
+                : 'function' == typeof n
+                  ? function () {
+                      var t = n.apply(this, arguments);
+                      null == t ? this.style.removeProperty(e) : this.style.setProperty(e, t, r);
+                    }
+                  : function () {
+                      this.style.setProperty(e, n, r);
+                    };
+            }
+            function St(e, n) {
+              return null == n
+                ? function () {
+                    delete this[e];
+                  }
+                : 'function' == typeof n
+                  ? function () {
+                      var t = n.apply(this, arguments);
+                      null == t ? delete this[e] : (this[e] = t);
+                    }
+                  : function () {
+                      this[e] = n;
+                    };
+            }
+            function kt(n) {
+              return 'function' == typeof n
+                ? n
+                : (n = _.ns.qualify(n)).local
+                  ? function () {
+                      return this.ownerDocument.createElementNS(n.space, n.local);
+                    }
+                  : function () {
+                      var t = this.ownerDocument,
+                        e = this.namespaceURI;
+                      return e === yt && t.documentElement.namespaceURI === yt
+                        ? t.createElement(n)
+                        : t.createElementNS(e, n);
+                    };
+            }
+            function Ft() {
+              var t = this.parentNode;
+              t && t.removeChild(this);
+            }
+            function Qt(t) {
+              return { __data__: t };
+            }
+            function _t(t) {
+              return function () {
+                return mt(this, t);
+              };
+            }
+            function Tt(t, e) {
+              for (var n = 0, r = t.length; n < r; n++)
+                for (var i, o = t[n], a = 0, s = o.length; a < s; a++) (i = o[a]) && e(i, a, n);
+              return t;
+            }
+            function Rt(t) {
+              return pt(t, Ut), t;
+            }
+            (_.ns = {
+              prefix: wt,
+              qualify: function (t) {
+                var e = t.indexOf(':'),
+                  n = t;
+                return (
+                  0 <= e && 'xmlns' !== (n = t.slice(0, e)) && (t = t.slice(e + 1)),
+                  wt.hasOwnProperty(n) ? { space: wt[n], local: t } : t
+                );
+              },
+            }),
+              (r.attr = function (t, e) {
+                if (arguments.length < 2) {
+                  var n;
+                  if ('string' == typeof t)
+                    return (
+                      (n = this.node()),
+                      (t = _.ns.qualify(t)).local
+                        ? n.getAttributeNS(t.space, t.local)
+                        : n.getAttribute(t)
+                    );
+                  for (e in t) this.each(Et(e, t[e]));
+                  return this;
+                }
+                return this.each(Et(t, e));
+              }),
+              (r.classed = function (t, e) {
+                if (arguments.length < 2) {
+                  if ('string' == typeof t) {
+                    var n = this.node(),
+                      r = (t = xt(t)).length,
+                      i = -1;
+                    if ((e = n.classList)) {
+                      for (; ++i < r; ) if (!e.contains(t[i])) return !1;
+                    } else
+                      for (e = n.getAttribute('class'); ++i < r; ) if (!Ct(t[i]).test(e)) return !1;
+                    return !0;
+                  }
+                  for (e in t) this.each(It(e, t[e]));
+                  return this;
+                }
+                return this.each(It(t, e));
+              }),
+              (r.style = function (t, e, n) {
+                var r = arguments.length;
+                if (r < 3) {
+                  if ('string' != typeof t) {
+                    for (n in (r < 2 && (e = ''), t)) this.each(Dt(n, t[n], e));
+                    return this;
+                  }
+                  if (r < 2)
+                    return L((r = this.node()))
+                      .getComputedStyle(r, null)
+                      .getPropertyValue(t);
+                  n = '';
+                }
+                return this.each(Dt(t, e, n));
+              }),
+              (r.property = function (t, e) {
+                if (arguments.length < 2) {
+                  if ('string' == typeof t) return this.node()[t];
+                  for (e in t) this.each(St(e, t[e]));
+                  return this;
+                }
+                return this.each(St(t, e));
+              }),
+              (r.text = function (e) {
+                return arguments.length
+                  ? this.each(
+                      'function' == typeof e
+                        ? function () {
+                            var t = e.apply(this, arguments);
+                            this.textContent = null == t ? '' : t;
+                          }
+                        : null == e
+                          ? function () {
+                              this.textContent = '';
+                            }
+                          : function () {
+                              this.textContent = e;
+                            },
+                    )
+                  : this.node().textContent;
+              }),
+              (r.html = function (e) {
+                return arguments.length
+                  ? this.each(
+                      'function' == typeof e
+                        ? function () {
+                            var t = e.apply(this, arguments);
+                            this.innerHTML = null == t ? '' : t;
+                          }
+                        : null == e
+                          ? function () {
+                              this.innerHTML = '';
+                            }
+                          : function () {
+                              this.innerHTML = e;
+                            },
+                    )
+                  : this.node().innerHTML;
+              }),
+              (r.append = function (t) {
+                return (
+                  (t = kt(t)),
+                  this.select(function () {
+                    return this.appendChild(t.apply(this, arguments));
+                  })
+                );
+              }),
+              (r.insert = function (t, e) {
+                return (
+                  (t = kt(t)),
+                  (e = vt(e)),
+                  this.select(function () {
+                    return this.insertBefore(
+                      t.apply(this, arguments),
+                      e.apply(this, arguments) || null,
+                    );
+                  })
+                );
+              }),
+              (r.remove = function () {
+                return this.each(Ft);
+              }),
+              (r.data = function (t, d) {
+                var e,
+                  n,
+                  r = -1,
+                  i = this.length;
+                if (!arguments.length) {
+                  for (t = new Array((i = (e = this[0]).length)); ++r < i; )
+                    (n = e[r]) && (t[r] = n.__data__);
+                  return t;
+                }
+                function o(t, e) {
+                  var n,
+                    r,
+                    i = t.length,
+                    o = e.length,
+                    a = Math.min(i, o),
+                    s = new Array(o),
+                    l = new Array(o),
+                    u = new Array(i);
+                  if (d) {
+                    for (var c, A = new W(), h = new Array(i), p = -1; ++p < i; )
+                      (n = t[p]) &&
+                        (A.has((c = d.call(n, n.__data__, p))) ? (u[p] = n) : A.set(c, n),
+                        (h[p] = c));
+                    for (p = -1; ++p < o; )
+                      (n = A.get((c = d.call(e, (r = e[p]), p))))
+                        ? !0 !== n && ((s[p] = n).__data__ = r)
+                        : (l[p] = Qt(r)),
+                        A.set(c, !0);
+                    for (p = -1; ++p < i; ) p in h && !0 !== A.get(h[p]) && (u[p] = t[p]);
+                  } else {
+                    for (p = -1; ++p < a; )
+                      (n = t[p]), (r = e[p]), n ? ((n.__data__ = r), (s[p] = n)) : (l[p] = Qt(r));
+                    for (; p < o; ++p) l[p] = Qt(e[p]);
+                    for (; p < i; ++p) u[p] = t[p];
+                  }
+                  (l.update = s),
+                    (l.parentNode = s.parentNode = u.parentNode = t.parentNode),
+                    f.push(l),
+                    g.push(s),
+                    m.push(u);
+                }
+                var f = Rt([]),
+                  g = dt([]),
+                  m = dt([]);
+                if ('function' == typeof t)
+                  for (; ++r < i; ) o((e = this[r]), t.call(e, e.parentNode.__data__, r));
+                else for (; ++r < i; ) o((e = this[r]), t);
+                return (
+                  (g.enter = function () {
+                    return f;
+                  }),
+                  (g.exit = function () {
+                    return m;
+                  }),
+                  g
+                );
+              }),
+              (r.datum = function (t) {
+                return arguments.length ? this.property('__data__', t) : this.property('__data__');
+              }),
+              (r.filter = function (t) {
+                var e,
+                  n,
+                  r,
+                  i = [];
+                'function' != typeof t && (t = _t(t));
+                for (var o = 0, a = this.length; o < a; o++) {
+                  i.push((e = [])), (e.parentNode = (n = this[o]).parentNode);
+                  for (var s = 0, l = n.length; s < l; s++)
+                    (r = n[s]) && t.call(r, r.__data__, s, o) && e.push(r);
+                }
+                return dt(i);
+              }),
+              (r.order = function () {
+                for (var t = -1, e = this.length; ++t < e; )
+                  for (var n, r = this[t], i = r.length - 1, o = r[i]; 0 <= --i; )
+                    (n = r[i]) &&
+                      (o && o !== n.nextSibling && o.parentNode.insertBefore(n, o), (o = n));
+                return this;
+              }),
+              (r.sort = function (t) {
+                t = function (n) {
+                  arguments.length || (n = z);
+                  return function (t, e) {
+                    return t && e ? n(t.__data__, e.__data__) : !t - !e;
+                  };
+                }.apply(this, arguments);
+                for (var e = -1, n = this.length; ++e < n; ) this[e].sort(t);
+                return this.order();
+              }),
+              (r.each = function (r) {
+                return Tt(this, function (t, e, n) {
+                  r.call(t, t.__data__, e, n);
+                });
+              }),
+              (r.call = function (t) {
+                var e = h(arguments);
+                return t.apply((e[0] = this), e), this;
+              }),
+              (r.empty = function () {
+                return !this.node();
+              }),
+              (r.node = function () {
+                for (var t = 0, e = this.length; t < e; t++)
+                  for (var n = this[t], r = 0, i = n.length; r < i; r++) {
+                    var o = n[r];
+                    if (o) return o;
+                  }
+                return null;
+              }),
+              (r.size = function () {
+                var t = 0;
+                return (
+                  Tt(this, function () {
+                    ++t;
+                  }),
+                  t
+                );
+              });
+            var Ut = [];
+            function Nt(i, e, n) {
+              var r = '__on' + i,
+                t = i.indexOf('.'),
+                o = Lt,
+                a = (0 < t && (i = i.slice(0, t)), Pt.get(i));
+              function s() {
+                var t = this[r];
+                t && (this.removeEventListener(i, t, t.$), delete this[r]);
+              }
+              return (
+                a && ((i = a), (o = Yt)),
+                t
+                  ? e
+                    ? function () {
+                        var t = o(e, h(arguments));
+                        s.call(this), this.addEventListener(i, (this[r] = t), (t.$ = n)), (t._ = e);
+                      }
+                    : s
+                  : e
+                    ? l
+                    : function () {
+                        var t,
+                          e,
+                          n,
+                          r = new RegExp('^__on([^.]+)' + _.requote(i) + '$');
+                        for (e in this)
+                          (t = e.match(r)) &&
+                            ((n = this[e]), this.removeEventListener(t[1], n, n.$), delete this[e]);
+                      }
+              );
+            }
+            (_.selection.enter = Rt),
+              ((_.selection.enter.prototype = Ut).append = r.append),
+              (Ut.empty = r.empty),
+              (Ut.node = r.node),
+              (Ut.call = r.call),
+              (Ut.size = r.size),
+              (Ut.select = function (t) {
+                for (var e, n, r, i, o, a = [], s = -1, l = this.length; ++s < l; ) {
+                  (r = (i = this[s]).update), a.push((e = [])), (e.parentNode = i.parentNode);
+                  for (var u = -1, c = i.length; ++u < c; )
+                    (o = i[u])
+                      ? (e.push((r[u] = n = t.call(i.parentNode, o.__data__, u, s))),
+                        (n.__data__ = o.__data__))
+                      : e.push(null);
+                }
+                return dt(a);
+              }),
+              (Ut.insert = function (t, e) {
+                var a, s, l;
+                return (
+                  arguments.length < 2 &&
+                    ((a = this),
+                    (e = function (t, e, n) {
+                      var r,
+                        i = a[n].update,
+                        o = i.length;
+                      for (
+                        n != l && ((l = n), (s = 0)), s <= e && (s = e + 1);
+                        !(r = i[s]) && ++s < o;
+
+                      );
+                      return r;
+                    })),
+                  r.insert.call(this, t, e)
+                );
+              }),
+              (_.select = function (t) {
+                var e;
+                return (
+                  'string' == typeof t
+                    ? ((e = [ft(t, T)]).parentNode = T.documentElement)
+                    : ((e = [t]).parentNode = P(t)),
+                  dt([e])
+                );
+              }),
+              (_.selectAll = function (t) {
+                var e;
+                return (
+                  'string' == typeof t
+                    ? ((e = h(gt(t, T))).parentNode = T.documentElement)
+                    : ((e = h(t)).parentNode = null),
+                  dt([e])
+                );
+              }),
+              (r.on = function (t, e, n) {
+                var r = arguments.length;
+                if (r < 3) {
+                  if ('string' != typeof t) {
+                    for (n in (r < 2 && (e = !1), t)) this.each(Nt(n, t[n], e));
+                    return this;
+                  }
+                  if (r < 2) return (r = this.node()['__on' + t]) && r._;
+                  n = !1;
+                }
+                return this.each(Nt(t, e, n));
+              });
+            var Pt = _.map({ mouseenter: 'mouseover', mouseleave: 'mouseout' });
+            function Lt(n, r) {
+              return function (t) {
+                var e = _.event;
+                (_.event = t), (r[0] = this.__data__);
+                try {
+                  n.apply(this, r);
+                } finally {
+                  _.event = e;
+                }
+              };
+            }
+            function Yt(t, e) {
+              var n = Lt(t, e);
+              return function (t) {
+                var e = t.relatedTarget;
+                (e && (e === this || 8 & e.compareDocumentPosition(this))) || n.call(this, t);
+              };
+            }
+            T &&
+              Pt.forEach(function (t) {
+                'on' + t in T && Pt.remove(t);
+              });
+            var Ot,
+              Gt = 0;
+            function zt(t) {
+              var n,
+                r,
+                i = '.dragsuppress-' + ++Gt,
+                o = 'click' + i,
+                a = _.select(L(t))
+                  .on('touchmove' + i, ut)
+                  .on('dragstart' + i, ut)
+                  .on('selectstart' + i, ut);
+              return (
+                (Ot = null == Ot ? !('onselectstart' in t) && ot(t.style, 'userSelect') : Ot) &&
+                  ((n = P(t).style), (r = n[Ot]), (n[Ot] = 'none')),
+                function (t) {
+                  var e;
+                  a.on(i, null),
+                    Ot && (n[Ot] = r),
+                    t &&
+                      ((e = function () {
+                        a.on(o, null);
+                      }),
+                      a.on(
+                        o,
+                        function () {
+                          ut(), e();
+                        },
+                        !0,
+                      ),
+                      setTimeout(e, 0));
+                }
+              );
+            }
+            _.mouse = function (t) {
+              return jt(t, ct());
+            };
+            var Ht = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
+            function jt(t, e) {
+              e.changedTouches && (e = e.changedTouches[0]);
+              var n,
+                r = t.ownerSVGElement || t;
+              if (r.createSVGPoint)
+                return (
+                  (n = r.createSVGPoint()),
+                  Ht < 0 &&
+                    ((i = L(t)).scrollX || i.scrollY) &&
+                    ((i = (r = _.select('body').append('svg').style(
+                      {
+                        position: 'absolute',
+                        top: 0,
+                        left: 0,
+                        margin: 0,
+                        padding: 0,
+                        border: 'none',
+                      },
+                      'important',
+                    ))[0][0].getScreenCTM()),
+                    (Ht = !(i.f || i.e)),
+                    r.remove()),
+                  Ht ? ((n.x = e.pageX), (n.y = e.pageY)) : ((n.x = e.clientX), (n.y = e.clientY)),
+                  [(n = n.matrixTransform(t.getScreenCTM().inverse())).x, n.y]
+                );
+              var i = t.getBoundingClientRect();
+              return [e.clientX - i.left - t.clientLeft, e.clientY - i.top - t.clientTop];
+            }
+            function Vt() {
+              return _.event.changedTouches[0].identifier;
+            }
+            (_.touch = function (t, e, n) {
+              if ((arguments.length < 3 && ((n = e), (e = ct().changedTouches)), e))
+                for (var r, i = 0, o = e.length; i < o; ++i)
+                  if ((r = e[i]).identifier === n) return jt(t, r);
+            }),
+              (_.behavior.drag = function () {
+                var f = At(n, 'drag', 'dragstart', 'dragend'),
+                  g = null,
+                  t = r(l, _.mouse, L, 'mousemove', 'mouseup'),
+                  e = r(Vt, _.touch, k, 'touchmove', 'touchend');
+                function n() {
+                  this.on('mousedown.drag', t).on('touchstart.drag', e);
+                }
+                function r(c, A, h, p, d) {
+                  return function () {
+                    var r,
+                      t = _.event.target.correspondingElement || _.event.target,
+                      i = this.parentNode,
+                      o = f.of(this, arguments),
+                      a = 0,
+                      s = c(),
+                      e = '.drag' + (null == s ? '' : '-' + s),
+                      n = _.select(h(t))
+                        .on(p + e, function () {
+                          var t,
+                            e,
+                            n = A(i, s);
+                          n &&
+                            ((t = n[0] - u[0]),
+                            (e = n[1] - u[1]),
+                            (a |= t | e),
+                            o({
+                              type: 'drag',
+                              x: (u = n)[0] + r[0],
+                              y: n[1] + r[1],
+                              dx: t,
+                              dy: e,
+                            }));
+                        })
+                        .on(d + e, function () {
+                          A(i, s) &&
+                            (n.on(p + e, null).on(d + e, null), l(a), o({ type: 'dragend' }));
+                        }),
+                      l = zt(t),
+                      u = A(i, s);
+                    (r = g ? [(r = g.apply(this, arguments)).x - u[0], r.y - u[1]] : [0, 0]),
+                      o({ type: 'dragstart' });
+                  };
+                }
+                return (
+                  (n.origin = function (t) {
+                    return arguments.length ? ((g = t), n) : g;
+                  }),
+                  _.rebind(n, f, 'on')
+                );
+              }),
+              (_.touches = function (n, t) {
+                return (t = arguments.length < 2 ? ct().touches : t)
+                  ? h(t).map(function (t) {
+                      var e = jt(n, t);
+                      return (e.identifier = t.identifier), e;
+                    })
+                  : [];
+              });
+            var Q = 1e-6,
+              qt = Q * Q,
+              R = Math.PI,
+              x = 2 * R,
+              Wt = x - Q,
+              U = R / 2,
+              C = R / 180,
+              I = 180 / R;
+            function Jt(t) {
+              return 0 < t ? 1 : t < 0 ? -1 : 0;
+            }
+            function Kt(t, e, n) {
+              return (e[0] - t[0]) * (n[1] - t[1]) - (e[1] - t[1]) * (n[0] - t[0]);
+            }
+            function Zt(t) {
+              return 1 < t ? 0 : t < -1 ? R : Math.acos(t);
+            }
+            function Xt(t) {
+              return 1 < t ? U : t < -1 ? -U : Math.asin(t);
+            }
+            function $t(t) {
+              return ((t = Math.exp(t)) + 1 / t) / 2;
+            }
+            function te(t) {
+              return (t = Math.sin(t / 2)) * t;
+            }
+            var ee,
+              ne,
+              re = Math.SQRT2,
+              ie =
+                ((_.interpolateZoom = function (t, e) {
+                  var r,
+                    i,
+                    o,
+                    a = t[0],
+                    s = t[1],
+                    l = t[2],
+                    t = e[0],
+                    n = e[1],
+                    e = e[2],
+                    u = t - a,
+                    c = n - s,
+                    t = u * u + c * c;
+                  return (
+                    ((e =
+                      t < qt
+                        ? ((o = Math.log(e / l) / re),
+                          function (t) {
+                            return [a + t * u, s + t * c, l * Math.exp(re * t * o)];
+                          })
+                        : ((r = Math.sqrt(t)),
+                          (n = (e * e - l * l + 4 * t) / (2 * l * 2 * r)),
+                          (t = (e * e - l * l - 4 * t) / (2 * e * 2 * r)),
+                          (i = Math.log(Math.sqrt(n * n + 1) - n)),
+                          (o = (Math.log(Math.sqrt(t * t + 1) - t) - i) / re),
+                          function (t) {
+                            var t = t * o,
+                              e = $t(i),
+                              n =
+                                (l / (2 * r)) *
+                                (e * ((n = re * t + i), ((n = Math.exp(2 * n)) - 1) / (n + 1)) -
+                                  ((n = i), ((n = Math.exp(i)) - 1 / n) / 2));
+                            return [a + n * u, s + n * c, (l * e) / $t(re * t + i)];
+                          })).duration = 1e3 * o),
+                    e
+                  );
+                }),
+                (_.behavior.zoom = function () {
+                  var e,
+                    s,
+                    n,
+                    r,
+                    v,
+                    i,
+                    o,
+                    a,
+                    l,
+                    b = { x: 0, y: 0, k: 1 },
+                    u = [960, 500],
+                    c = ie,
+                    A = 250,
+                    h = 0,
+                    y = 'mousedown.zoom',
+                    p = 'mousemove.zoom',
+                    d = 'mouseup.zoom',
+                    w = 'touchstart.zoom',
+                    E = At(f, 'zoomstart', 'zoom', 'zoomend');
+                  function f(t) {
+                    t.on(y, k)
+                      .on(ne + '.zoom', m)
+                      .on('dblclick.zoom', Q)
+                      .on(w, F);
+                  }
+                  function B(t) {
+                    return [(t[0] - b.x) / b.k, (t[1] - b.y) / b.k];
+                  }
+                  function C(t) {
+                    b.k = Math.max(c[0], Math.min(c[1], t));
+                  }
+                  function x(t, e) {
+                    var n;
+                    (e = [(n = e)[0] * b.k + b.x, n[1] * b.k + b.y]),
+                      (b.x += t[0] - e[0]),
+                      (b.y += t[1] - e[1]);
+                  }
+                  function I(t, e, n, r) {
+                    (t.__chart__ = { x: b.x, y: b.y, k: b.k }),
+                      C(Math.pow(2, r)),
+                      x((s = e), n),
+                      (t = _.select(t)),
+                      (t = 0 < A ? t.transition().duration(A) : t).call(f.event);
+                  }
+                  function g() {
+                    o &&
+                      o.domain(
+                        i
+                          .range()
+                          .map(function (t) {
+                            return (t - b.x) / b.k;
+                          })
+                          .map(i.invert),
+                      ),
+                      l &&
+                        l.domain(
+                          a
+                            .range()
+                            .map(function (t) {
+                              return (t - b.y) / b.k;
+                            })
+                            .map(a.invert),
+                        );
+                  }
+                  function M(t) {
+                    h++ || t({ type: 'zoomstart' });
+                  }
+                  function D(t) {
+                    g(), t({ type: 'zoom', scale: b.k, translate: [b.x, b.y] });
+                  }
+                  function S(t) {
+                    --h || (t({ type: 'zoomend' }), (s = null));
+                  }
+                  function k() {
+                    var t = this,
+                      e = E.of(t, arguments),
+                      n = 0,
+                      r = _.select(L(t))
+                        .on(p, function () {
+                          (n = 1), x(_.mouse(t), i), D(e);
+                        })
+                        .on(d, function () {
+                          r.on(p, null).on(d, null), o(n), S(e);
+                        }),
+                      i = B(_.mouse(t)),
+                      o = zt(t);
+                    xs.call(t), M(e);
+                  }
+                  function F() {
+                    var l,
+                      u = this,
+                      c = E.of(u, arguments),
+                      A = {},
+                      h = 0,
+                      i = '.zoom-' + _.event.changedTouches[0].identifier,
+                      a = 'touchmove' + i,
+                      s = 'touchend' + i,
+                      p = [],
+                      o = _.select(u),
+                      d = zt(u);
+                    function f() {
+                      var t = _.touches(u);
+                      return (
+                        (l = b.k),
+                        t.forEach(function (t) {
+                          t.identifier in A && (A[t.identifier] = B(t));
+                        }),
+                        t
+                      );
+                    }
+                    function t() {
+                      for (
+                        var t = _.event.target,
+                          e = (_.select(t).on(a, g).on(s, m), p.push(t), _.event.changedTouches),
+                          n = 0,
+                          r = e.length;
+                        n < r;
+                        ++n
+                      )
+                        A[e[n].identifier] = null;
+                      var i,
+                        t = f(),
+                        o = Date.now();
+                      1 === t.length
+                        ? (o - v < 500 &&
+                            ((i = t[0]),
+                            I(u, i, A[i.identifier], Math.floor(Math.log(b.k) / Math.LN2) + 1),
+                            ut()),
+                          (v = o))
+                        : 1 < t.length &&
+                          ((i = t[0]),
+                          (o = t[1]),
+                          (t = i[0] - o[0]),
+                          (i = i[1] - o[1]),
+                          (h = t * t + i * i));
+                    }
+                    function g() {
+                      var t,
+                        e,
+                        n = _.touches(u);
+                      xs.call(u);
+                      for (var r, i, o, a = 0, s = n.length; a < s; ++a, e = null)
+                        if (((t = n[a]), (e = A[t.identifier]))) {
+                          if (o) break;
+                          (i = t), (o = e);
+                        }
+                      e &&
+                        ((r = (r = t[0] - i[0]) * r + (r = t[1] - i[1]) * r),
+                        (r = h && Math.sqrt(r / h)),
+                        (i = [(i[0] + t[0]) / 2, (i[1] + t[1]) / 2]),
+                        (o = [(o[0] + e[0]) / 2, (o[1] + e[1]) / 2]),
+                        C(r * l)),
+                        (v = null),
+                        x(i, o),
+                        D(c);
+                    }
+                    function m() {
+                      if (_.event.touches.length) {
+                        for (var t, e = _.event.changedTouches, n = 0, r = e.length; n < r; ++n)
+                          delete A[e[n].identifier];
+                        for (t in A) return void f();
+                      }
+                      _.selectAll(p).on(i, null), o.on(y, k).on(w, F), d(), S(c);
+                    }
+                    t(), M(c), o.on(y, null).on(w, t);
+                  }
+                  function m() {
+                    var t = E.of(this, arguments);
+                    r ? clearTimeout(r) : (xs.call(this), (e = B((s = n || _.mouse(this)))), M(t)),
+                      (r = setTimeout(function () {
+                        (r = null), S(t);
+                      }, 50)),
+                      ut(),
+                      C(Math.pow(2, 0.002 * ee()) * b.k),
+                      x(s, e),
+                      D(t);
+                  }
+                  function Q() {
+                    var t = _.mouse(this),
+                      e = Math.log(b.k) / Math.LN2;
+                    I(this, t, B(t), _.event.shiftKey ? Math.ceil(e) - 1 : Math.floor(e) + 1);
+                  }
+                  return (
+                    (ne =
+                      ne ||
+                      ('onwheel' in T
+                        ? ((ee = function () {
+                            return -_.event.deltaY * (_.event.deltaMode ? 120 : 1);
+                          }),
+                          'wheel')
+                        : 'onmousewheel' in T
+                          ? ((ee = function () {
+                              return _.event.wheelDelta;
+                            }),
+                            'mousewheel')
+                          : ((ee = function () {
+                              return -_.event.detail;
+                            }),
+                            'MozMousePixelScroll'))),
+                    (f.event = function (t) {
+                      t.each(function () {
+                        var a = E.of(this, arguments),
+                          e = b;
+                        Ds
+                          ? _.select(this)
+                              .transition()
+                              .each('start.zoom', function () {
+                                (b = this.__chart__ || { x: 0, y: 0, k: 1 }), M(a);
+                              })
+                              .tween('zoom:zoom', function () {
+                                var n = u[0],
+                                  t = u[1],
+                                  r = s ? s[0] : n / 2,
+                                  i = s ? s[1] : t / 2,
+                                  o = _.interpolateZoom(
+                                    [(r - b.x) / b.k, (i - b.y) / b.k, n / b.k],
+                                    [(r - e.x) / e.k, (i - e.y) / e.k, n / e.k],
+                                  );
+                                return function (t) {
+                                  var t = o(t),
+                                    e = n / t[2];
+                                  (this.__chart__ = b = { x: r - t[0] * e, y: i - t[1] * e, k: e }),
+                                    D(a);
+                                };
+                              })
+                              .each('interrupt.zoom', function () {
+                                S(a);
+                              })
+                              .each('end.zoom', function () {
+                                S(a);
+                              })
+                          : ((this.__chart__ = b), M(a), D(a), S(a));
+                      });
+                    }),
+                    (f.translate = function (t) {
+                      return arguments.length
+                        ? ((b = { x: +t[0], y: +t[1], k: b.k }), g(), f)
+                        : [b.x, b.y];
+                    }),
+                    (f.scale = function (t) {
+                      return arguments.length
+                        ? ((b = { x: b.x, y: b.y, k: null }), C(+t), g(), f)
+                        : b.k;
+                    }),
+                    (f.scaleExtent = function (t) {
+                      return arguments.length ? ((c = null == t ? ie : [+t[0], +t[1]]), f) : c;
+                    }),
+                    (f.center = function (t) {
+                      return arguments.length ? ((n = t && [+t[0], +t[1]]), f) : n;
+                    }),
+                    (f.size = function (t) {
+                      return arguments.length ? ((u = t && [+t[0], +t[1]]), f) : u;
+                    }),
+                    (f.duration = function (t) {
+                      return arguments.length ? ((A = +t), f) : A;
+                    }),
+                    (f.x = function (t) {
+                      return arguments.length
+                        ? ((i = (o = t).copy()), (b = { x: 0, y: 0, k: 1 }), f)
+                        : o;
+                    }),
+                    (f.y = function (t) {
+                      return arguments.length
+                        ? ((a = (l = t).copy()), (b = { x: 0, y: 0, k: 1 }), f)
+                        : l;
+                    }),
+                    _.rebind(f, E, 'on')
+                  );
+                }),
+                [0, 1 / 0]);
+            function oe() {}
+            function ae(t, e, n) {
+              return this instanceof ae
+                ? ((this.h = +t), (this.s = +e), void (this.l = +n))
+                : arguments.length < 2
+                  ? t instanceof ae
+                    ? new ae(t.h, t.s, t.l)
+                    : we('' + t, Ee, ae)
+                  : new ae(t, e, n);
+            }
+            (_.color = oe).prototype.toString = function () {
+              return this.rgb() + '';
+            };
+            n = (_.hsl = ae).prototype = new oe();
+            function se(t, e, n) {
+              var r, i;
+              function o(t) {
+                return Math.round(
+                  255 *
+                    (360 < (t = t) ? (t -= 360) : t < 0 && (t += 360),
+                    t < 60
+                      ? r + ((i - r) * t) / 60
+                      : t < 180
+                        ? i
+                        : t < 240
+                          ? r + ((i - r) * (240 - t)) / 60
+                          : r),
+                );
+              }
+              return (
+                (t = isNaN(t) ? 0 : (t %= 360) < 0 ? t + 360 : t),
+                (e = isNaN(e) || e < 0 ? 0 : 1 < e ? 1 : e),
+                (r =
+                  2 * (n = n < 0 ? 0 : 1 < n ? 1 : n) -
+                  (i = n <= 0.5 ? n * (1 + e) : n + e - n * e)),
+                new a(o(t + 120), o(t), o(t - 120))
+              );
+            }
+            function i(t, e, n) {
+              return this instanceof i
+                ? ((this.h = +t), (this.c = +e), void (this.l = +n))
+                : arguments.length < 2
+                  ? t instanceof i
+                    ? new i(t.h, t.c, t.l)
+                    : de((t instanceof o ? t : (t = Be((t = _.rgb(t)).r, t.g, t.b))).l, t.a, t.b)
+                  : new i(t, e, n);
+            }
+            (n.brighter = function (t) {
+              return (
+                (t = Math.pow(0.7, arguments.length ? t : 1)), new ae(this.h, this.s, this.l / t)
+              );
+            }),
+              (n.darker = function (t) {
+                return (
+                  (t = Math.pow(0.7, arguments.length ? t : 1)), new ae(this.h, this.s, t * this.l)
+                );
+              }),
+              (n.rgb = function () {
+                return se(this.h, this.s, this.l);
+              });
+            e = (_.hcl = i).prototype = new oe();
+            function le(t, e, n) {
+              return (
+                isNaN(t) && (t = 0),
+                isNaN(e) && (e = 0),
+                new o(n, Math.cos((t *= C)) * e, Math.sin(t) * e)
+              );
+            }
+            function o(t, e, n) {
+              return this instanceof o
+                ? ((this.l = +t), (this.a = +e), void (this.b = +n))
+                : arguments.length < 2
+                  ? t instanceof o
+                    ? new o(t.l, t.a, t.b)
+                    : t instanceof i
+                      ? le(t.h, t.c, t.l)
+                      : Be((t = a(t)).r, t.g, t.b)
+                  : new o(t, e, n);
+            }
+            (e.brighter = function (t) {
+              return new i(this.h, this.c, Math.min(100, this.l + ue * (arguments.length ? t : 1)));
+            }),
+              (e.darker = function (t) {
+                return new i(this.h, this.c, Math.max(0, this.l - ue * (arguments.length ? t : 1)));
+              }),
+              (e.rgb = function () {
+                return le(this.h, this.c, this.l).rgb();
+              }),
+              (_.lab = o);
+            var ue = 18,
+              ce = 0.95047,
+              Ae = 1,
+              he = 1.08883,
+              n = (o.prototype = new oe());
+            function pe(t, e, n) {
+              (t = (t + 16) / 116), (n = t - n / 200);
+              return new a(
+                me(
+                  3.2404542 * (e = fe(t + e / 500) * ce) -
+                    1.5371385 * (t = fe(t) * Ae) -
+                    0.4985314 * (n = fe(n) * he),
+                ),
+                me(-0.969266 * e + 1.8760108 * t + 0.041556 * n),
+                me(0.0556434 * e - 0.2040259 * t + 1.0572252 * n),
+              );
+            }
+            function de(t, e, n) {
+              return 0 < t
+                ? new i(Math.atan2(n, e) * I, Math.sqrt(e * e + n * n), t)
+                : new i(NaN, NaN, t);
+            }
+            function fe(t) {
+              return 0.206893034 < t ? t * t * t : (t - 4 / 29) / 7.787037;
+            }
+            function ge(t) {
+              return 0.008856 < t ? Math.pow(t, 1 / 3) : 7.787037 * t + 4 / 29;
+            }
+            function me(t) {
+              return Math.round(
+                255 * (t <= 0.00304 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055),
+              );
+            }
+            function a(t, e, n) {
+              return this instanceof a
+                ? ((this.r = ~~t), (this.g = ~~e), void (this.b = ~~n))
+                : arguments.length < 2
+                  ? t instanceof a
+                    ? new a(t.r, t.g, t.b)
+                    : we('' + t, a, se)
+                  : new a(t, e, n);
+            }
+            function ve(t) {
+              return new a(t >> 16, (t >> 8) & 255, 255 & t);
+            }
+            function be(t) {
+              return ve(t) + '';
+            }
+            (n.brighter = function (t) {
+              return new o(Math.min(100, this.l + ue * (arguments.length ? t : 1)), this.a, this.b);
+            }),
+              (n.darker = function (t) {
+                return new o(Math.max(0, this.l - ue * (arguments.length ? t : 1)), this.a, this.b);
+              }),
+              (n.rgb = function () {
+                return pe(this.l, this.a, this.b);
+              });
+            e = (_.rgb = a).prototype = new oe();
+            function ye(t) {
+              return t < 16 ? '0' + Math.max(0, t).toString(16) : Math.min(255, t).toString(16);
+            }
+            function we(t, e, n) {
+              var r,
+                i = 0,
+                o = 0,
+                a = 0,
+                s = /([a-z]+)\((.*)\)/.exec((t = t.toLowerCase()));
+              if (s)
+                switch (((r = s[2].split(',')), s[1])) {
+                  case 'hsl':
+                    return n(parseFloat(r[0]), parseFloat(r[1]) / 100, parseFloat(r[2]) / 100);
+                  case 'rgb':
+                    return e(xe(r[0]), xe(r[1]), xe(r[2]));
+                }
+              return (s = Ie.get(t))
+                ? e(s.r, s.g, s.b)
+                : (null == t ||
+                    '#' !== t.charAt(0) ||
+                    isNaN((s = parseInt(t.slice(1), 16))) ||
+                    (4 === t.length
+                      ? ((i = (3840 & s) >> 4),
+                        (i |= i >> 4),
+                        (o = 240 & s),
+                        (o |= o >> 4),
+                        (a = 15 & s),
+                        (a |= a << 4))
+                      : 7 === t.length &&
+                        ((i = (16711680 & s) >> 16), (o = (65280 & s) >> 8), (a = 255 & s))),
+                  e(i, o, a));
+            }
+            function Ee(t, e, n) {
+              var r,
+                i,
+                o = Math.min((t /= 255), (e /= 255), (n /= 255)),
+                a = Math.max(t, e, n),
+                s = a - o,
+                l = (a + o) / 2;
+              return (
+                s
+                  ? ((i = l < 0.5 ? s / (a + o) : s / (2 - a - o)),
+                    (r =
+                      t == a
+                        ? (e - n) / s + (e < n ? 6 : 0)
+                        : e == a
+                          ? (n - t) / s + 2
+                          : (t - e) / s + 4),
+                    (r *= 60))
+                  : ((r = NaN), (i = 0 < l && l < 1 ? 0 : r)),
+                new ae(r, i, l)
+              );
+            }
+            function Be(t, e, n) {
+              var r = ge(
+                  (0.4124564 * (t = Ce(t)) + 0.3575761 * (e = Ce(e)) + 0.1804375 * (n = Ce(n))) /
+                    ce,
+                ),
+                i = ge((0.2126729 * t + 0.7151522 * e + 0.072175 * n) / Ae);
+              return o(
+                116 * i - 16,
+                500 * (r - i),
+                200 * (i - ge((0.0193339 * t + 0.119192 * e + 0.9503041 * n) / he)),
+              );
+            }
+            function Ce(t) {
+              return (t /= 255) <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4);
+            }
+            function xe(t) {
+              var e = parseFloat(t);
+              return '%' === t.charAt(t.length - 1) ? Math.round(2.55 * e) : e;
+            }
+            (e.brighter = function (t) {
+              t = Math.pow(0.7, arguments.length ? t : 1);
+              var e = this.r,
+                n = this.g,
+                r = this.b;
+              return e || n || r
+                ? (e && e < 30 && (e = 30),
+                  n && n < 30 && (n = 30),
+                  r && r < 30 && (r = 30),
+                  new a(Math.min(255, e / t), Math.min(255, n / t), Math.min(255, r / t)))
+                : new a(30, 30, 30);
+            }),
+              (e.darker = function (t) {
+                return new a(
+                  (t = Math.pow(0.7, arguments.length ? t : 1)) * this.r,
+                  t * this.g,
+                  t * this.b,
+                );
+              }),
+              (e.hsl = function () {
+                return Ee(this.r, this.g, this.b);
+              }),
+              (e.toString = function () {
+                return '#' + ye(this.r) + ye(this.g) + ye(this.b);
+              });
+            var Ie = _.map({
+              aliceblue: 15792383,
+              antiquewhite: 16444375,
+              aqua: 65535,
+              aquamarine: 8388564,
+              azure: 15794175,
+              beige: 16119260,
+              bisque: 16770244,
+              black: 0,
+              blanchedalmond: 16772045,
+              blue: 255,
+              blueviolet: 9055202,
+              brown: 10824234,
+              burlywood: 14596231,
+              cadetblue: 6266528,
+              chartreuse: 8388352,
+              chocolate: 13789470,
+              coral: 16744272,
+              cornflowerblue: 6591981,
+              cornsilk: 16775388,
+              crimson: 14423100,
+              cyan: 65535,
+              darkblue: 139,
+              darkcyan: 35723,
+              darkgoldenrod: 12092939,
+              darkgray: 11119017,
+              darkgreen: 25600,
+              darkgrey: 11119017,
+              darkkhaki: 12433259,
+              darkmagenta: 9109643,
+              darkolivegreen: 5597999,
+              darkorange: 16747520,
+              darkorchid: 10040012,
+              darkred: 9109504,
+              darksalmon: 15308410,
+              darkseagreen: 9419919,
+              darkslateblue: 4734347,
+              darkslategray: 3100495,
+              darkslategrey: 3100495,
+              darkturquoise: 52945,
+              darkviolet: 9699539,
+              deeppink: 16716947,
+              deepskyblue: 49151,
+              dimgray: 6908265,
+              dimgrey: 6908265,
+              dodgerblue: 2003199,
+              firebrick: 11674146,
+              floralwhite: 16775920,
+              forestgreen: 2263842,
+              fuchsia: 16711935,
+              gainsboro: 14474460,
+              ghostwhite: 16316671,
+              gold: 16766720,
+              goldenrod: 14329120,
+              gray: 8421504,
+              green: 32768,
+              greenyellow: 11403055,
+              grey: 8421504,
+              honeydew: 15794160,
+              hotpink: 16738740,
+              indianred: 13458524,
+              indigo: 4915330,
+              ivory: 16777200,
+              khaki: 15787660,
+              lavender: 15132410,
+              lavenderblush: 16773365,
+              lawngreen: 8190976,
+              lemonchiffon: 16775885,
+              lightblue: 11393254,
+              lightcoral: 15761536,
+              lightcyan: 14745599,
+              lightgoldenrodyellow: 16448210,
+              lightgray: 13882323,
+              lightgreen: 9498256,
+              lightgrey: 13882323,
+              lightpink: 16758465,
+              lightsalmon: 16752762,
+              lightseagreen: 2142890,
+              lightskyblue: 8900346,
+              lightslategray: 7833753,
+              lightslategrey: 7833753,
+              lightsteelblue: 11584734,
+              lightyellow: 16777184,
+              lime: 65280,
+              limegreen: 3329330,
+              linen: 16445670,
+              magenta: 16711935,
+              maroon: 8388608,
+              mediumaquamarine: 6737322,
+              mediumblue: 205,
+              mediumorchid: 12211667,
+              mediumpurple: 9662683,
+              mediumseagreen: 3978097,
+              mediumslateblue: 8087790,
+              mediumspringgreen: 64154,
+              mediumturquoise: 4772300,
+              mediumvioletred: 13047173,
+              midnightblue: 1644912,
+              mintcream: 16121850,
+              mistyrose: 16770273,
+              moccasin: 16770229,
+              navajowhite: 16768685,
+              navy: 128,
+              oldlace: 16643558,
+              olive: 8421376,
+              olivedrab: 7048739,
+              orange: 16753920,
+              orangered: 16729344,
+              orchid: 14315734,
+              palegoldenrod: 15657130,
+              palegreen: 10025880,
+              paleturquoise: 11529966,
+              palevioletred: 14381203,
+              papayawhip: 16773077,
+              peachpuff: 16767673,
+              peru: 13468991,
+              pink: 16761035,
+              plum: 14524637,
+              powderblue: 11591910,
+              purple: 8388736,
+              rebeccapurple: 6697881,
+              red: 16711680,
+              rosybrown: 12357519,
+              royalblue: 4286945,
+              saddlebrown: 9127187,
+              salmon: 16416882,
+              sandybrown: 16032864,
+              seagreen: 3050327,
+              seashell: 16774638,
+              sienna: 10506797,
+              silver: 12632256,
+              skyblue: 8900331,
+              slateblue: 6970061,
+              slategray: 7372944,
+              slategrey: 7372944,
+              snow: 16775930,
+              springgreen: 65407,
+              steelblue: 4620980,
+              tan: 13808780,
+              teal: 32896,
+              thistle: 14204888,
+              tomato: 16737095,
+              turquoise: 4251856,
+              violet: 15631086,
+              wheat: 16113331,
+              white: 16777215,
+              whitesmoke: 16119285,
+              yellow: 16776960,
+              yellowgreen: 10145074,
+            });
+            function N(t) {
+              return 'function' == typeof t
+                ? t
+                : function () {
+                    return t;
+                  };
+            }
+            function Me(r) {
+              return function (t, e, n) {
+                return (
+                  2 === arguments.length && 'function' == typeof e && ((n = e), (e = null)),
+                  De(t, e, r, n)
+                );
+              };
+            }
+            function De(i, o, a, t) {
+              var n,
+                s = {},
+                l = _.dispatch('beforesend', 'progress', 'load', 'error'),
+                u = {},
+                c = new XMLHttpRequest(),
+                A = null;
+              function e() {
+                var t,
+                  e,
+                  n,
+                  r = c.status;
+                if (
+                  (!r &&
+                    ((n = (e = c).responseType) && 'text' !== n ? e.response : e.responseText)) ||
+                  (200 <= r && r < 300) ||
+                  304 === r
+                ) {
+                  try {
+                    t = a.call(s, c);
+                  } catch (t) {
+                    return void l.error.call(s, t);
+                  }
+                  l.load.call(s, t);
+                } else l.error.call(s, c);
+              }
+              return (
+                'onload' in
+                (c =
+                  !this.XDomainRequest || 'withCredentials' in c || !/^(http(s)?:)?\/\//.test(i)
+                    ? c
+                    : new XDomainRequest())
+                  ? (c.onload = c.onerror = e)
+                  : (c.onreadystatechange = function () {
+                      3 < c.readyState && e();
+                    }),
+                (c.onprogress = function (t) {
+                  var e = _.event;
+                  _.event = t;
+                  try {
+                    l.progress.call(s, c);
+                  } finally {
+                    _.event = e;
+                  }
+                }),
+                (s.header = function (t, e) {
+                  return (
+                    (t = (t + '').toLowerCase()),
+                    arguments.length < 2 ? u[t] : (null == e ? delete u[t] : (u[t] = e + ''), s)
+                  );
+                }),
+                (s.mimeType = function (t) {
+                  return arguments.length ? ((o = null == t ? null : t + ''), s) : o;
+                }),
+                (s.responseType = function (t) {
+                  return arguments.length ? ((A = t), s) : A;
+                }),
+                (s.response = function (t) {
+                  return (a = t), s;
+                }),
+                ['get', 'post'].forEach(function (t) {
+                  s[t] = function () {
+                    return s.send.apply(s, [t].concat(h(arguments)));
+                  };
+                }),
+                (s.send = function (t, e, n) {
+                  if (
+                    (2 === arguments.length && 'function' == typeof e && ((n = e), (e = null)),
+                    c.open(t, i, !0),
+                    null == o || 'accept' in u || (u.accept = o + ',*/*'),
+                    c.setRequestHeader)
+                  )
+                    for (var r in u) c.setRequestHeader(r, u[r]);
+                  return (
+                    null != o && c.overrideMimeType && c.overrideMimeType(o),
+                    null != A && (c.responseType = A),
+                    null != n &&
+                      s.on('error', n).on('load', function (t) {
+                        n(null, t);
+                      }),
+                    l.beforesend.call(s, c),
+                    c.send(null == e ? null : e),
+                    s
+                  );
+                }),
+                (s.abort = function () {
+                  return c.abort(), s;
+                }),
+                _.rebind(s, l, 'on'),
+                null == t
+                  ? s
+                  : s.get(
+                      1 === (n = t).length
+                        ? function (t, e) {
+                            n(null == t ? e : null);
+                          }
+                        : n,
+                    )
+              );
+            }
+            Ie.forEach(function (t, e) {
+              Ie.set(t, ve(e));
+            }),
+              (_.functor = N),
+              (_.xhr = Me(k)),
+              (_.dsv = function (i, o) {
+                var e = new RegExp('["' + i + '\n]'),
+                  h = i.charCodeAt(0);
+                function a(t, e, n) {
+                  arguments.length < 3 && ((n = e), (e = null));
+                  var r = De(t, o, null == e ? s : l(e), n);
+                  return (
+                    (r.row = function (t) {
+                      return arguments.length ? r.response(null == (e = t) ? s : l(t)) : e;
+                    }),
+                    r
+                  );
+                }
+                function s(t) {
+                  return a.parse(t.responseText);
+                }
+                function l(e) {
+                  return function (t) {
+                    return a.parse(t.responseText, e);
+                  };
+                }
+                function n(t) {
+                  return t.map(u).join(i);
+                }
+                function u(t) {
+                  return e.test(t) ? '"' + t.replace(/\"/g, '""') + '"' : t;
+                }
+                return (
+                  (a.parse = function (t, r) {
+                    var i;
+                    return a.parseRows(t, function (t, e) {
+                      if (i) return i(t, e - 1);
+                      var n = new Function(
+                        'd',
+                        'return {' +
+                          t
+                            .map(function (t, e) {
+                              return JSON.stringify(t) + ': d[' + e + ']';
+                            })
+                            .join(',') +
+                          '}',
+                      );
+                      i = r
+                        ? function (t, e) {
+                            return r(n(t), e);
+                          }
+                        : n;
+                    });
+                  }),
+                  (a.parseRows = function (i, t) {
+                    var e,
+                      o,
+                      a = {},
+                      s = {},
+                      n = [],
+                      l = i.length,
+                      u = 0,
+                      r = 0;
+                    function c() {
+                      if (l <= u) return s;
+                      if (o) return (o = !1), a;
+                      var t = u;
+                      if (34 === i.charCodeAt(t)) {
+                        for (var e = t; e++ < l; )
+                          if (34 === i.charCodeAt(e)) {
+                            if (34 !== i.charCodeAt(e + 1)) break;
+                            ++e;
+                          }
+                        return (
+                          (u = e + 2),
+                          13 === (n = i.charCodeAt(e + 1))
+                            ? ((o = !0), 10 === i.charCodeAt(e + 2) && ++u)
+                            : 10 === n && (o = !0),
+                          i.slice(t + 1, e).replace(/""/g, '"')
+                        );
+                      }
+                      for (; u < l; ) {
+                        var n,
+                          r = 1;
+                        if (10 === (n = i.charCodeAt(u++))) o = !0;
+                        else if (13 === n) (o = !0), 10 === i.charCodeAt(u) && (++u, ++r);
+                        else if (n !== h) continue;
+                        return i.slice(t, u - r);
+                      }
+                      return i.slice(t);
+                    }
+                    for (; (e = c()) !== s; ) {
+                      for (var A = []; e !== a && e !== s; ) A.push(e), (e = c());
+                      (t && null == (A = t(A, r++))) || n.push(A);
+                    }
+                    return n;
+                  }),
+                  (a.format = function (t) {
+                    if (Array.isArray(t[0])) return a.formatRows(t);
+                    var n = new it(),
+                      r = [];
+                    return (
+                      t.forEach(function (t) {
+                        for (var e in t) n.has(e) || r.push(n.add(e));
+                      }),
+                      [r.map(u).join(i)]
+                        .concat(
+                          t.map(function (e) {
+                            return r
+                              .map(function (t) {
+                                return u(e[t]);
+                              })
+                              .join(i);
+                          }),
+                        )
+                        .join('\n')
+                    );
+                  }),
+                  (a.formatRows = function (t) {
+                    return t.map(n).join('\n');
+                  }),
+                  a
+                );
+              }),
+              (_.csv = _.dsv(',', 'text/csv')),
+              (_.tsv = _.dsv('\t', 'text/tab-separated-values'));
+            var Se,
+              ke,
+              Fe,
+              Qe,
+              _e =
+                this[ot(this, 'requestAnimationFrame')] ||
+                function (t) {
+                  setTimeout(t, 17);
+                };
+            function Te(t, e, n) {
+              var r = arguments.length;
+              r < 2 && (e = 0);
+              r = { c: t, t: (n = r < 3 ? Date.now() : n) + e, n: null };
+              return (
+                ke ? (ke.n = r) : (Se = r),
+                (ke = r),
+                Fe || ((Qe = clearTimeout(Qe)), (Fe = 1), _e(Re)),
+                r
+              );
+            }
+            function Re() {
+              var t = Ue(),
+                t = Ne() - t;
+              24 < t
+                ? (isFinite(t) && (clearTimeout(Qe), (Qe = setTimeout(Re, t))), (Fe = 0))
+                : ((Fe = 1), _e(Re));
+            }
+            function Ue() {
+              for (var t = Date.now(), e = Se; e; )
+                t >= e.t && e.c(t - e.t) && (e.c = null), (e = e.n);
+              return t;
+            }
+            function Ne() {
+              for (var t, e = Se, n = 1 / 0; e; )
+                e = e.c ? (e.t < n && (n = e.t), (t = e).n) : t ? (t.n = e.n) : (Se = e.n);
+              return (ke = t), n;
+            }
+            function Pe(t, e) {
+              return e - (t ? Math.ceil(Math.log(t) / Math.LN10) : 1);
+            }
+            (_.timer = function () {
+              Te.apply(this, arguments);
+            }),
+              (_.timer.flush = function () {
+                Ue(), Ne();
+              }),
+              (_.round = function (t, e) {
+                return e ? Math.round(t * (e = Math.pow(10, e))) / e : Math.round(t);
+              });
+            var Le = [
+              'y',
+              'z',
+              'a',
+              'f',
+              'p',
+              'n',
+              'µ',
+              'm',
+              '',
+              'k',
+              'M',
+              'G',
+              'T',
+              'P',
+              'E',
+              'Z',
+              'Y',
+            ].map(function (t, e) {
+              var n = Math.pow(10, 3 * F(8 - e));
+              return {
+                scale:
+                  8 < e
+                    ? function (t) {
+                        return t / n;
+                      }
+                    : function (t) {
+                        return t * n;
+                      },
+                symbol: t,
+              };
+            });
+            _.formatPrefix = function (t, e) {
+              var n = 0;
+              return (
+                (t = +t) &&
+                  (t < 0 && (t *= -1),
+                  e && (t = _.round(t, Pe(t, e))),
+                  (n = 1 + Math.floor(1e-12 + Math.log(t) / Math.LN10)),
+                  (n = Math.max(-24, Math.min(24, 3 * Math.floor((n - 1) / 3))))),
+                Le[8 + n / 3]
+              );
+            };
+            var Ye = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,
+              Oe = _.map({
+                b: function (t) {
+                  return t.toString(2);
+                },
+                c: function (t) {
+                  return String.fromCharCode(t);
+                },
+                o: function (t) {
+                  return t.toString(8);
+                },
+                x: function (t) {
+                  return t.toString(16);
+                },
+                X: function (t) {
+                  return t.toString(16).toUpperCase();
+                },
+                g: function (t, e) {
+                  return t.toPrecision(e);
+                },
+                e: function (t, e) {
+                  return t.toExponential(e);
+                },
+                f: function (t, e) {
+                  return t.toFixed(e);
+                },
+                r: function (t, e) {
+                  return (t = _.round(t, Pe(t, e))).toFixed(
+                    Math.max(0, Math.min(20, Pe(t * (1 + 1e-15), e))),
+                  );
+                },
+              });
+            function Ge(t) {
+              return t + '';
+            }
+            var E = (_.time = {}),
+              B = Date;
+            function ze() {
+              this._ = new Date(
+                1 < arguments.length ? Date.UTC.apply(this, arguments) : arguments[0],
+              );
+            }
+            ze.prototype = {
+              getDate: function () {
+                return this._.getUTCDate();
+              },
+              getDay: function () {
+                return this._.getUTCDay();
+              },
+              getFullYear: function () {
+                return this._.getUTCFullYear();
+              },
+              getHours: function () {
+                return this._.getUTCHours();
+              },
+              getMilliseconds: function () {
+                return this._.getUTCMilliseconds();
+              },
+              getMinutes: function () {
+                return this._.getUTCMinutes();
+              },
+              getMonth: function () {
+                return this._.getUTCMonth();
+              },
+              getSeconds: function () {
+                return this._.getUTCSeconds();
+              },
+              getTime: function () {
+                return this._.getTime();
+              },
+              getTimezoneOffset: function () {
+                return 0;
+              },
+              valueOf: function () {
+                return this._.valueOf();
+              },
+              setDate: function () {
+                He.setUTCDate.apply(this._, arguments);
+              },
+              setDay: function () {
+                He.setUTCDay.apply(this._, arguments);
+              },
+              setFullYear: function () {
+                He.setUTCFullYear.apply(this._, arguments);
+              },
+              setHours: function () {
+                He.setUTCHours.apply(this._, arguments);
+              },
+              setMilliseconds: function () {
+                He.setUTCMilliseconds.apply(this._, arguments);
+              },
+              setMinutes: function () {
+                He.setUTCMinutes.apply(this._, arguments);
+              },
+              setMonth: function () {
+                He.setUTCMonth.apply(this._, arguments);
+              },
+              setSeconds: function () {
+                He.setUTCSeconds.apply(this._, arguments);
+              },
+              setTime: function () {
+                He.setTime.apply(this._, arguments);
+              },
+            };
+            var He = Date.prototype;
+            function je(r, o, a) {
+              function t(t) {
+                var e = r(t),
+                  n = i(e, 1);
+                return t - e < n - t ? e : n;
+              }
+              function s(t) {
+                return o((t = r(new B(t - 1))), 1), t;
+              }
+              function i(t, e) {
+                return o((t = new B(+t)), e), t;
+              }
+              function l(t, e, n) {
+                var r = s(t),
+                  i = [];
+                if (1 < n) for (; r < e; ) a(r) % n || i.push(new Date(+r)), o(r, 1);
+                else for (; r < e; ) i.push(new Date(+r)), o(r, 1);
+                return i;
+              }
+              ((r.floor = r).round = t), (r.ceil = s), (r.offset = i), (r.range = l);
+              var e = (r.utc = Ve(r));
+              return (
+                ((e.floor = e).round = Ve(t)),
+                (e.ceil = Ve(s)),
+                (e.offset = Ve(i)),
+                (e.range = function (t, e, n) {
+                  try {
+                    var r = new (B = ze)();
+                    return (r._ = t), l(r, e, n);
+                  } finally {
+                    B = Date;
+                  }
+                }),
+                r
+              );
+            }
+            function Ve(r) {
+              return function (t, e) {
+                try {
+                  var n = new (B = ze)();
+                  return (n._ = t), r(n, e)._;
+                } finally {
+                  B = Date;
+                }
+              };
+            }
+            function qe(t) {
+              var e = t.dateTime,
+                n = t.date,
+                r = t.time,
+                i = t.periods,
+                o = t.days,
+                a = t.shortDays,
+                s = t.months,
+                l = t.shortMonths;
+              function u(s) {
+                var l = s.length;
+                function t(t) {
+                  for (var e, n, r, i = [], o = -1, a = 0; ++o < l; )
+                    37 === s.charCodeAt(o) &&
+                      (i.push(s.slice(a, o)),
+                      null != (n = We[(e = s.charAt(++o))]) && (e = s.charAt(++o)),
+                      (r = y[e]) && (e = r(t, null == n ? ('e' === e ? ' ' : '0') : n)),
+                      i.push(e),
+                      (a = o + 1));
+                  return i.push(s.slice(a, o)), i.join('');
+                }
+                return (
+                  (t.parse = function (t) {
+                    var e = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null };
+                    if (c(e, s, t, 0) != t.length) return null;
+                    'p' in e && (e.H = (e.H % 12) + 12 * e.p);
+                    var t = null != e.Z && B !== ze,
+                      n = new (t ? ze : B)();
+                    return (
+                      'j' in e
+                        ? n.setFullYear(e.y, 0, e.j)
+                        : 'W' in e || 'U' in e
+                          ? ('w' in e || (e.w = 'W' in e ? 1 : 0),
+                            n.setFullYear(e.y, 0, 1),
+                            n.setFullYear(
+                              e.y,
+                              0,
+                              'W' in e
+                                ? ((e.w + 6) % 7) + 7 * e.W - ((n.getDay() + 5) % 7)
+                                : e.w + 7 * e.U - ((n.getDay() + 6) % 7),
+                            ))
+                          : n.setFullYear(e.y, e.m, e.d),
+                      n.setHours(e.H + ((e.Z / 100) | 0), e.M + (e.Z % 100), e.S, e.L),
+                      t ? n._ : n
+                    );
+                  }),
+                  (t.toString = function () {
+                    return s;
+                  }),
+                  t
+                );
+              }
+              function c(t, e, n, r) {
+                for (var i, o, a = 0, s = e.length, l = n.length; a < s; ) {
+                  if (l <= r) return -1;
+                  if (37 === (i = e.charCodeAt(a++))) {
+                    if (
+                      ((o = e.charAt(a++)),
+                      !(o = w[o in We ? e.charAt(a++) : o]) || (r = o(t, n, r)) < 0)
+                    )
+                      return -1;
+                  } else if (i != n.charCodeAt(r++)) return -1;
+                }
+                return r;
+              }
+              u.multi = (u.utc = function (t) {
+                var n = u(t);
+                function e(t) {
+                  try {
+                    var e = new (B = ze)();
+                    return (e._ = t), n(e);
+                  } finally {
+                    B = Date;
+                  }
+                }
+                return (
+                  (e.parse = function (t) {
+                    try {
+                      B = ze;
+                      var e = n.parse(t);
+                      return e && e._;
+                    } finally {
+                      B = Date;
+                    }
+                  }),
+                  (e.toString = n.toString),
+                  e
+                );
+              }).multi = dn;
+              var A = _.map(),
+                h = Ke(o),
+                p = Ze(o),
+                d = Ke(a),
+                f = Ze(a),
+                g = Ke(s),
+                m = Ze(s),
+                v = Ke(l),
+                b = Ze(l),
+                y =
+                  (i.forEach(function (t, e) {
+                    A.set(t.toLowerCase(), e);
+                  }),
+                  {
+                    a: function (t) {
+                      return a[t.getDay()];
+                    },
+                    A: function (t) {
+                      return o[t.getDay()];
+                    },
+                    b: function (t) {
+                      return l[t.getMonth()];
+                    },
+                    B: function (t) {
+                      return s[t.getMonth()];
+                    },
+                    c: u(e),
+                    d: function (t, e) {
+                      return M(t.getDate(), e, 2);
+                    },
+                    e: function (t, e) {
+                      return M(t.getDate(), e, 2);
+                    },
+                    H: function (t, e) {
+                      return M(t.getHours(), e, 2);
+                    },
+                    I: function (t, e) {
+                      return M(t.getHours() % 12 || 12, e, 2);
+                    },
+                    j: function (t, e) {
+                      return M(1 + E.dayOfYear(t), e, 3);
+                    },
+                    L: function (t, e) {
+                      return M(t.getMilliseconds(), e, 3);
+                    },
+                    m: function (t, e) {
+                      return M(t.getMonth() + 1, e, 2);
+                    },
+                    M: function (t, e) {
+                      return M(t.getMinutes(), e, 2);
+                    },
+                    p: function (t) {
+                      return i[+(12 <= t.getHours())];
+                    },
+                    S: function (t, e) {
+                      return M(t.getSeconds(), e, 2);
+                    },
+                    U: function (t, e) {
+                      return M(E.sundayOfYear(t), e, 2);
+                    },
+                    w: function (t) {
+                      return t.getDay();
+                    },
+                    W: function (t, e) {
+                      return M(E.mondayOfYear(t), e, 2);
+                    },
+                    x: u(n),
+                    X: u(r),
+                    y: function (t, e) {
+                      return M(t.getFullYear() % 100, e, 2);
+                    },
+                    Y: function (t, e) {
+                      return M(t.getFullYear() % 1e4, e, 4);
+                    },
+                    Z: hn,
+                    '%': function () {
+                      return '%';
+                    },
+                  }),
+                w = {
+                  a: function (t, e, n) {
+                    d.lastIndex = 0;
+                    e = d.exec(e.slice(n));
+                    return e ? ((t.w = f.get(e[0].toLowerCase())), n + e[0].length) : -1;
+                  },
+                  A: function (t, e, n) {
+                    h.lastIndex = 0;
+                    e = h.exec(e.slice(n));
+                    return e ? ((t.w = p.get(e[0].toLowerCase())), n + e[0].length) : -1;
+                  },
+                  b: function (t, e, n) {
+                    v.lastIndex = 0;
+                    e = v.exec(e.slice(n));
+                    return e ? ((t.m = b.get(e[0].toLowerCase())), n + e[0].length) : -1;
+                  },
+                  B: function (t, e, n) {
+                    g.lastIndex = 0;
+                    e = g.exec(e.slice(n));
+                    return e ? ((t.m = m.get(e[0].toLowerCase())), n + e[0].length) : -1;
+                  },
+                  c: function (t, e, n) {
+                    return c(t, y.c.toString(), e, n);
+                  },
+                  d: an,
+                  e: an,
+                  H: ln,
+                  I: ln,
+                  j: sn,
+                  L: An,
+                  m: on,
+                  M: un,
+                  p: function (t, e, n) {
+                    e = A.get(e.slice(n, (n += 2)).toLowerCase());
+                    return null == e ? -1 : ((t.p = e), n);
+                  },
+                  S: cn,
+                  U: $e,
+                  w: Xe,
+                  W: tn,
+                  x: function (t, e, n) {
+                    return c(t, y.x.toString(), e, n);
+                  },
+                  X: function (t, e, n) {
+                    return c(t, y.X.toString(), e, n);
+                  },
+                  y: nn,
+                  Y: en,
+                  Z: rn,
+                  '%': pn,
+                };
+              return u;
+            }
+            (E.year = je(
+              function (t) {
+                return (t = E.day(t)).setMonth(0, 1), t;
+              },
+              function (t, e) {
+                t.setFullYear(t.getFullYear() + e);
+              },
+              function (t) {
+                return t.getFullYear();
+              },
+            )),
+              (E.years = E.year.range),
+              (E.years.utc = E.year.utc.range),
+              (E.day = je(
+                function (t) {
+                  var e = new B(2e3, 0);
+                  return e.setFullYear(t.getFullYear(), t.getMonth(), t.getDate()), e;
+                },
+                function (t, e) {
+                  t.setDate(t.getDate() + e);
+                },
+                function (t) {
+                  return t.getDate() - 1;
+                },
+              )),
+              (E.days = E.day.range),
+              (E.days.utc = E.day.utc.range),
+              (E.dayOfYear = function (t) {
+                var e = E.year(t);
+                return Math.floor(
+                  (t - e - 6e4 * (t.getTimezoneOffset() - e.getTimezoneOffset())) / 864e5,
+                );
+              }),
+              [
+                'sunday',
+                'monday',
+                'tuesday',
+                'wednesday',
+                'thursday',
+                'friday',
+                'saturday',
+              ].forEach(function (t, n) {
+                n = 7 - n;
+                var e = (E[t] = je(
+                  function (t) {
+                    return (t = E.day(t)).setDate(t.getDate() - ((t.getDay() + n) % 7)), t;
+                  },
+                  function (t, e) {
+                    t.setDate(t.getDate() + 7 * Math.floor(e));
+                  },
+                  function (t) {
+                    var e = E.year(t).getDay();
+                    return Math.floor((E.dayOfYear(t) + ((e + n) % 7)) / 7) - (e !== n);
+                  },
+                ));
+                (E[t + 's'] = e.range),
+                  (E[t + 's'].utc = e.utc.range),
+                  (E[t + 'OfYear'] = function (t) {
+                    var e = E.year(t).getDay();
+                    return Math.floor((E.dayOfYear(t) + ((e + n) % 7)) / 7);
+                  });
+              }),
+              (E.week = E.sunday),
+              (E.weeks = E.sunday.range),
+              (E.weeks.utc = E.sunday.utc.range),
+              (E.weekOfYear = E.sundayOfYear);
+            var We = { '-': '', _: ' ', 0: '0' },
+              s = /^\s*\d+/,
+              Je = /^%/;
+            function M(t, e, n) {
+              var r = t < 0 ? '-' : '',
+                t = (r ? -t : t) + '',
+                i = t.length;
+              return r + (i < n ? new Array(n - i + 1).join(e) + t : t);
+            }
+            function Ke(t) {
+              return new RegExp('^(?:' + t.map(_.requote).join('|') + ')', 'i');
+            }
+            function Ze(t) {
+              for (var e = new W(), n = -1, r = t.length; ++n < r; ) e.set(t[n].toLowerCase(), n);
+              return e;
+            }
+            function Xe(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 1));
+              return e ? ((t.w = +e[0]), n + e[0].length) : -1;
+            }
+            function $e(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n));
+              return e ? ((t.U = +e[0]), n + e[0].length) : -1;
+            }
+            function tn(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n));
+              return e ? ((t.W = +e[0]), n + e[0].length) : -1;
+            }
+            function en(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 4));
+              return e ? ((t.y = +e[0]), n + e[0].length) : -1;
+            }
+            function nn(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 2));
+              return e ? ((t.y = (t = +e[0]) + (68 < t ? 1900 : 2e3)), n + e[0].length) : -1;
+            }
+            function rn(t, e, n) {
+              return /^[+-]\d{4}$/.test((e = e.slice(n, n + 5))) ? ((t.Z = -e), n + 5) : -1;
+            }
+            function on(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 2));
+              return e ? ((t.m = e[0] - 1), n + e[0].length) : -1;
+            }
+            function an(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 2));
+              return e ? ((t.d = +e[0]), n + e[0].length) : -1;
+            }
+            function sn(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 3));
+              return e ? ((t.j = +e[0]), n + e[0].length) : -1;
+            }
+            function ln(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 2));
+              return e ? ((t.H = +e[0]), n + e[0].length) : -1;
+            }
+            function un(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 2));
+              return e ? ((t.M = +e[0]), n + e[0].length) : -1;
+            }
+            function cn(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 2));
+              return e ? ((t.S = +e[0]), n + e[0].length) : -1;
+            }
+            function An(t, e, n) {
+              s.lastIndex = 0;
+              e = s.exec(e.slice(n, n + 3));
+              return e ? ((t.L = +e[0]), n + e[0].length) : -1;
+            }
+            function hn(t) {
+              var t = t.getTimezoneOffset(),
+                e = 0 < t ? '-' : '+',
+                n = (F(t) / 60) | 0,
+                t = F(t) % 60;
+              return e + M(n, '0', 2) + M(t, '0', 2);
+            }
+            function pn(t, e, n) {
+              Je.lastIndex = 0;
+              e = Je.exec(e.slice(n, n + 1));
+              return e ? n + e[0].length : -1;
+            }
+            function dn(r) {
+              for (var t = r.length, e = -1; ++e < t; ) r[e][0] = this(r[e][0]);
+              return function (t) {
+                for (var e = 0, n = r[e]; !n[1](t); ) n = r[++e];
+                return n[0](t);
+              };
+            }
+            _.locale = function (t) {
+              return {
+                numberFormat:
+                  ((w = t.decimal),
+                  (s = t.thousands),
+                  (l = t.grouping),
+                  (n = t.currency),
+                  (E =
+                    l && s
+                      ? function (t, e) {
+                          for (
+                            var n = t.length, r = [], i = 0, o = l[0], a = 0;
+                            0 < n &&
+                            0 < o &&
+                            (e < a + o + 1 && (o = Math.max(1, e - a)),
+                            r.push(t.substring((n -= o), n + o)),
+                            !((a += o + 1) > e));
+
+                          )
+                            o = l[(i = (i + 1) % l.length)];
+                          return r.reverse().join(s);
+                        }
+                      : k),
+                  function (t) {
+                    var t = Ye.exec(t),
+                      s = t[1] || ' ',
+                      l = t[2] || '>',
+                      u = t[3] || '-',
+                      e = t[4] || '',
+                      c = t[5],
+                      A = +t[6],
+                      h = t[7],
+                      p = t[8],
+                      d = t[9],
+                      f = 1,
+                      g = '',
+                      m = '',
+                      v = !1,
+                      b = !0,
+                      p = p && +p.substring(1);
+                    switch (((c || ('0' === s && '=' === l)) && ((c = s = '0'), (l = '=')), d)) {
+                      case 'n':
+                        (h = !0), (d = 'g');
+                        break;
+                      case '%':
+                        (f = 100), (m = '%'), (d = 'f');
+                        break;
+                      case 'p':
+                        (f = 100), (m = '%'), (d = 'r');
+                        break;
+                      case 'b':
+                      case 'o':
+                      case 'x':
+                      case 'X':
+                        '#' === e && (g = '0' + d.toLowerCase());
+                      case 'c':
+                        b = !1;
+                      case 'd':
+                        (v = !0), (p = 0);
+                        break;
+                      case 's':
+                        (f = -1), (d = 'r');
+                    }
+                    '$' === e && ((g = n[0]), (m = n[1])),
+                      'r' != d || p || (d = 'g'),
+                      null != p &&
+                        ('g' == d
+                          ? (p = Math.max(1, Math.min(21, p)))
+                          : ('e' != d && 'f' != d) || (p = Math.max(0, Math.min(20, p))));
+                    var d = Oe.get(d) || Ge,
+                      y = c && h;
+                    return function (t) {
+                      var e = m;
+                      if (v && t % 1) return '';
+                      var n,
+                        r,
+                        i = t < 0 || (0 === t && 1 / t < 0) ? ((t = -t), '-') : '-' === u ? '' : u,
+                        o =
+                          (f < 0
+                            ? ((t = (o = _.formatPrefix(t, p)).scale(t)), (e = o.symbol + m))
+                            : (t *= f),
+                          (t = d(t, p)).lastIndexOf('.')),
+                        o =
+                          ((r =
+                            o < 0
+                              ? (r = b ? t.lastIndexOf('e') : -1) < 0
+                                ? ((n = t), '')
+                                : ((n = t.substring(0, r)), t.substring(r))
+                              : ((n = t.substring(0, o)), w + t.substring(o + 1))),
+                          !c && h && (n = E(n, 1 / 0)),
+                          g.length + n.length + r.length + (y ? 0 : i.length)),
+                        a = o < A ? new Array((o = A - o + 1)).join(s) : '';
+                      return (
+                        y && (n = E(a + n, a.length ? A - r.length : 1 / 0)),
+                        (i += g),
+                        (t = n + r),
+                        ('<' === l
+                          ? i + t + a
+                          : '>' === l
+                            ? a + i + t
+                            : '^' === l
+                              ? a.substring(0, (o >>= 1)) + i + t + a.substring(o)
+                              : i + (y ? t : a + t)) + e
+                      );
+                    };
+                  }),
+                timeFormat: qe(t),
+              };
+              var w, s, l, n, E;
+            };
+            n = _.locale({
+              decimal: '.',
+              thousands: ',',
+              grouping: [3],
+              currency: ['$', ''],
+              dateTime: '%a %b %e %X %Y',
+              date: '%m/%d/%Y',
+              time: '%H:%M:%S',
+              periods: ['AM', 'PM'],
+              days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
+              shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+              months: [
+                'January',
+                'February',
+                'March',
+                'April',
+                'May',
+                'June',
+                'July',
+                'August',
+                'September',
+                'October',
+                'November',
+                'December',
+              ],
+              shortMonths: [
+                'Jan',
+                'Feb',
+                'Mar',
+                'Apr',
+                'May',
+                'Jun',
+                'Jul',
+                'Aug',
+                'Sep',
+                'Oct',
+                'Nov',
+                'Dec',
+              ],
+            });
+            function fn() {}
+            (_.format = n.numberFormat),
+              (_.geo = {}),
+              (fn.prototype = {
+                s: 0,
+                t: 0,
+                add: function (t) {
+                  mn(t, this.t, gn),
+                    mn(gn.s, this.s, this),
+                    this.s ? (this.t += gn.t) : (this.s = gn.t);
+                },
+                reset: function () {
+                  this.s = this.t = 0;
+                },
+                valueOf: function () {
+                  return this.s;
+                },
+              });
+            var gn = new fn();
+            function mn(t, e, n) {
+              var r = (n.s = t + e),
+                i = r - t;
+              n.t = t - (r - i) + (e - i);
+            }
+            function vn(t, e) {
+              t && yn.hasOwnProperty(t.type) && yn[t.type](t, e);
+            }
+            _.geo.stream = function (t, e) {
+              t && bn.hasOwnProperty(t.type) ? bn[t.type](t, e) : vn(t, e);
+            };
+            var bn = {
+                Feature: function (t, e) {
+                  vn(t.geometry, e);
+                },
+                FeatureCollection: function (t, e) {
+                  for (var n = t.features, r = -1, i = n.length; ++r < i; ) vn(n[r].geometry, e);
+                },
+              },
+              yn = {
+                Sphere: function (t, e) {
+                  e.sphere();
+                },
+                Point: function (t, e) {
+                  (t = t.coordinates), e.point(t[0], t[1], t[2]);
+                },
+                MultiPoint: function (t, e) {
+                  for (var n = t.coordinates, r = -1, i = n.length; ++r < i; )
+                    (t = n[r]), e.point(t[0], t[1], t[2]);
+                },
+                LineString: function (t, e) {
+                  wn(t.coordinates, e, 0);
+                },
+                MultiLineString: function (t, e) {
+                  for (var n = t.coordinates, r = -1, i = n.length; ++r < i; ) wn(n[r], e, 0);
+                },
+                Polygon: function (t, e) {
+                  En(t.coordinates, e);
+                },
+                MultiPolygon: function (t, e) {
+                  for (var n = t.coordinates, r = -1, i = n.length; ++r < i; ) En(n[r], e);
+                },
+                GeometryCollection: function (t, e) {
+                  for (var n = t.geometries, r = -1, i = n.length; ++r < i; ) vn(n[r], e);
+                },
+              };
+            function wn(t, e, n) {
+              var r,
+                i = -1,
+                o = t.length - n;
+              for (e.lineStart(); ++i < o; ) (r = t[i]), e.point(r[0], r[1], r[2]);
+              e.lineEnd();
+            }
+            function En(t, e) {
+              var n = -1,
+                r = t.length;
+              for (e.polygonStart(); ++n < r; ) wn(t[n], e, 1);
+              e.polygonEnd();
+            }
+            _.geo.area = function (t) {
+              return (Bn = 0), _.geo.stream(t, g), Bn;
+            };
+            var Bn,
+              u,
+              c,
+              A,
+              p,
+              Cn,
+              xn,
+              In,
+              Mn,
+              Dn,
+              Sn,
+              kn,
+              d,
+              Fn,
+              Qn,
+              _n,
+              Tn,
+              Rn,
+              Un,
+              Nn,
+              f,
+              Pn,
+              Ln,
+              Yn,
+              On = new fn(),
+              g = {
+                sphere: function () {
+                  Bn += 4 * R;
+                },
+                point: l,
+                lineStart: l,
+                lineEnd: l,
+                polygonStart: function () {
+                  On.reset(), (g.lineStart = Gn);
+                },
+                polygonEnd: function () {
+                  var t = 2 * On;
+                  (Bn += t < 0 ? 4 * R + t : t), (g.lineStart = g.lineEnd = g.point = l);
+                },
+              };
+            function Gn() {
+              var n, r, s, l, u;
+              function i(t, e) {
+                e = (e * C) / 2 + R / 4;
+                var n = (t *= C) - s,
+                  r = 0 <= n ? 1 : -1,
+                  n = r * n,
+                  i = Math.cos(e),
+                  e = Math.sin(e),
+                  o = u * e,
+                  a = l * i + o * Math.cos(n),
+                  o = o * r * Math.sin(n);
+                On.add(Math.atan2(o, a)), (s = t), (l = i), (u = e);
+              }
+              (g.point = function (t, e) {
+                (g.point = i),
+                  (s = (n = t) * C),
+                  (l = Math.cos((e = ((r = e) * C) / 2 + R / 4))),
+                  (u = Math.sin(e));
+              }),
+                (g.lineEnd = function () {
+                  i(n, r);
+                });
+            }
+            function zn(t) {
+              var e = t[0],
+                t = t[1],
+                n = Math.cos(t);
+              return [n * Math.cos(e), n * Math.sin(e), Math.sin(t)];
+            }
+            function Hn(t, e) {
+              return t[0] * e[0] + t[1] * e[1] + t[2] * e[2];
+            }
+            function jn(t, e) {
+              return [
+                t[1] * e[2] - t[2] * e[1],
+                t[2] * e[0] - t[0] * e[2],
+                t[0] * e[1] - t[1] * e[0],
+              ];
+            }
+            function Vn(t, e) {
+              (t[0] += e[0]), (t[1] += e[1]), (t[2] += e[2]);
+            }
+            function qn(t, e) {
+              return [t[0] * e, t[1] * e, t[2] * e];
+            }
+            function Wn(t) {
+              var e = Math.sqrt(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]);
+              (t[0] /= e), (t[1] /= e), (t[2] /= e);
+            }
+            function Jn(t) {
+              return [Math.atan2(t[1], t[0]), Xt(t[2])];
+            }
+            function Kn(t, e) {
+              return F(t[0] - e[0]) < Q && F(t[1] - e[1]) < Q;
+            }
+            function Zn(t, e) {
+              Sn.push((kn = [(u = t), (A = t)])), e < c && (c = e), p < e && (p = e);
+            }
+            function Xn(t, e) {
+              var n,
+                r,
+                i,
+                o,
+                a,
+                s = zn([t * C, e * C]);
+              Mn
+                ? ((n = jn(Mn, s)),
+                  Wn((n = jn([n[1], -n[0], 0], n))),
+                  (n = Jn(n)),
+                  (o = t - Cn),
+                  (i = n[0] * I * (r = 0 < o ? 1 : -1)),
+                  (o = 180 < F(o)) ^ (r * Cn < i && i < r * t)
+                    ? ((a = n[1] * I), p < a && (p = a))
+                    : o ^ (r * Cn < (i = ((i + 360) % 360) - 180) && i < r * t)
+                      ? (a = -n[1] * I) < c && (c = a)
+                      : (e < c && (c = e), p < e && (p = e)),
+                  o
+                    ? t < Cn
+                      ? m(u, t) > m(u, A) && (A = t)
+                      : m(t, A) > m(u, A) && (u = t)
+                    : u <= A
+                      ? (t < u && (u = t), A < t && (A = t))
+                      : Cn < t
+                        ? m(u, t) > m(u, A) && (A = t)
+                        : m(t, A) > m(u, A) && (u = t))
+                : Zn(t, e),
+                (Mn = s),
+                (Cn = t);
+            }
+            function $n() {
+              d.point = Xn;
+            }
+            function tr() {
+              (kn[0] = u), (kn[1] = A), (d.point = Zn), (Mn = null);
+            }
+            function er(t, e) {
+              var n;
+              Mn
+                ? (Dn += 180 < F((n = t - Cn)) ? n + (0 < n ? 360 : -360) : n)
+                : ((xn = t), (In = e)),
+                g.point(t, e),
+                Xn(t, e);
+            }
+            function nr() {
+              g.lineStart();
+            }
+            function rr() {
+              er(xn, In),
+                g.lineEnd(),
+                F(Dn) > Q && (u = -(A = 180)),
+                (kn[0] = u),
+                (kn[1] = A),
+                (Mn = null);
+            }
+            function m(t, e) {
+              return (e -= t) < 0 ? e + 360 : e;
+            }
+            function ir(t, e) {
+              return t[0] - e[0];
+            }
+            function or(t, e) {
+              return e[0] <= e[1] ? e[0] <= t && t <= e[1] : t < e[0] || e[1] < t;
+            }
+            (_.geo.bounds =
+              ((d = {
+                point: Zn,
+                lineStart: $n,
+                lineEnd: tr,
+                polygonStart: function () {
+                  (d.point = er), (d.lineStart = nr), (d.lineEnd = rr), (Dn = 0), g.polygonStart();
+                },
+                polygonEnd: function () {
+                  g.polygonEnd(),
+                    (d.point = Zn),
+                    (d.lineStart = $n),
+                    (d.lineEnd = tr),
+                    On < 0
+                      ? ((u = -(A = 180)), (c = -(p = 90)))
+                      : Q < Dn
+                        ? (p = 90)
+                        : Dn < -Q && (c = -90),
+                    (kn[0] = u),
+                    (kn[1] = A);
+                },
+              }),
+              function (t) {
+                if (((p = A = -(u = c = 1 / 0)), (Sn = []), _.geo.stream(t, d), (i = Sn.length))) {
+                  Sn.sort(ir);
+                  for (var e = 1, n = [(s = Sn[0])]; e < i; ++e)
+                    or((o = Sn[e])[0], s) || or(o[1], s)
+                      ? (m(s[0], o[1]) > m(s[0], s[1]) && (s[1] = o[1]),
+                        m(o[0], s[1]) > m(s[0], s[1]) && (s[0] = o[0]))
+                      : n.push((s = o));
+                  for (
+                    var r, i, o, a = -1 / 0, e = 0, s = n[(i = n.length - 1)];
+                    e <= i;
+                    s = o, ++e
+                  )
+                    (o = n[e]), (r = m(s[1], o[0])) > a && ((a = r), (u = o[0]), (A = s[1]));
+                }
+                return (
+                  (Sn = kn = null),
+                  u === 1 / 0 || c === 1 / 0
+                    ? [
+                        [NaN, NaN],
+                        [NaN, NaN],
+                      ]
+                    : [
+                        [u, c],
+                        [A, p],
+                      ]
+                );
+              })),
+              (_.geo.centroid = function (t) {
+                (Fn = Qn = _n = Tn = Rn = Un = Nn = f = Pn = Ln = Yn = 0), _.geo.stream(t, v);
+                var t = Pn,
+                  e = Ln,
+                  n = Yn,
+                  r = t * t + e * e + n * n;
+                return r < qt &&
+                  ((t = Un),
+                  (e = Nn),
+                  (n = f),
+                  Qn < Q && ((t = _n), (e = Tn), (n = Rn)),
+                  (r = t * t + e * e + n * n) < qt)
+                  ? [NaN, NaN]
+                  : [Math.atan2(e, t) * I, Xt(n / Math.sqrt(r)) * I];
+              });
+            var v = {
+              sphere: l,
+              point: ar,
+              lineStart: lr,
+              lineEnd: ur,
+              polygonStart: function () {
+                v.lineStart = cr;
+              },
+              polygonEnd: function () {
+                v.lineStart = lr;
+              },
+            };
+            function ar(t, e) {
+              t *= C;
+              var n = Math.cos((e *= C));
+              sr(n * Math.cos(t), n * Math.sin(t), Math.sin(e));
+            }
+            function sr(t, e, n) {
+              (_n += (t - _n) / ++Fn), (Tn += (e - Tn) / Fn), (Rn += (n - Rn) / Fn);
+            }
+            function lr() {
+              var i, o, a;
+              function r(t, e) {
+                t *= C;
+                var n = Math.cos((e *= C)),
+                  r = n * Math.cos(t),
+                  n = n * Math.sin(t),
+                  t = Math.sin(e),
+                  e = Math.atan2(
+                    Math.sqrt(
+                      (e = o * t - a * n) * e + (e = a * r - i * t) * e + (e = i * n - o * r) * e,
+                    ),
+                    i * r + o * n + a * t,
+                  );
+                (Qn += e),
+                  (Un += e * (i + (i = r))),
+                  (Nn += e * (o + (o = n))),
+                  (f += e * (a + (a = t))),
+                  sr(i, o, a);
+              }
+              v.point = function (t, e) {
+                t *= C;
+                var n = Math.cos((e *= C));
+                (i = n * Math.cos(t)),
+                  (o = n * Math.sin(t)),
+                  (a = Math.sin(e)),
+                  (v.point = r),
+                  sr(i, o, a);
+              };
+            }
+            function ur() {
+              v.point = ar;
+            }
+            function cr() {
+              var r, i, u, c, A;
+              function o(t, e) {
+                t *= C;
+                var n = Math.cos((e *= C)),
+                  r = n * Math.cos(t),
+                  n = n * Math.sin(t),
+                  t = Math.sin(e),
+                  e = c * t - A * n,
+                  i = A * r - u * t,
+                  o = u * n - c * r,
+                  a = Math.sqrt(e * e + i * i + o * o),
+                  s = u * r + c * n + A * t,
+                  l = a && -Zt(s) / a,
+                  a = Math.atan2(a, s);
+                (Pn += l * e),
+                  (Ln += l * i),
+                  (Yn += l * o),
+                  (Qn += a),
+                  (Un += a * (u + (u = r))),
+                  (Nn += a * (c + (c = n))),
+                  (f += a * (A + (A = t))),
+                  sr(u, c, A);
+              }
+              (v.point = function (t, e) {
+                (r = t), (i = e), (v.point = o), (t *= C);
+                var n = Math.cos((e *= C));
+                (u = n * Math.cos(t)), (c = n * Math.sin(t)), (A = Math.sin(e)), sr(u, c, A);
+              }),
+                (v.lineEnd = function () {
+                  o(r, i), (v.lineEnd = ur), (v.point = ar);
+                });
+            }
+            function Ar(n, r) {
+              function t(t, e) {
+                return (t = n(t, e)), r(t[0], t[1]);
+              }
+              return (
+                n.invert &&
+                  r.invert &&
+                  (t.invert = function (t, e) {
+                    return (t = r.invert(t, e)) && n.invert(t[0], t[1]);
+                  }),
+                t
+              );
+            }
+            function hr() {
+              return !0;
+            }
+            function pr(t, e, n, r, s) {
+              var l = [],
+                u = [];
+              if (
+                (t.forEach(function (t) {
+                  if (!((e = t.length - 1) <= 0)) {
+                    var e,
+                      n = t[0],
+                      r = t[e];
+                    if (Kn(n, r)) {
+                      s.lineStart();
+                      for (var i = 0; i < e; ++i) s.point((n = t[i])[0], n[1]);
+                      s.lineEnd();
+                    } else {
+                      var o = new fr(n, t, null, !0),
+                        a = new fr(n, null, o, !1);
+                      (o.o = a),
+                        l.push(o),
+                        u.push(a),
+                        (o = new fr(r, t, null, !1)),
+                        (a = new fr(r, null, o, !0)),
+                        (o.o = a),
+                        l.push(o),
+                        u.push(a);
+                    }
+                  }
+                }),
+                u.sort(e),
+                dr(l),
+                dr(u),
+                l.length)
+              ) {
+                for (var i = 0, o = n, a = u.length; i < a; ++i) u[i].e = o = !o;
+                for (var c, A = l[0]; ; ) {
+                  for (var h = A, p = !0; h.v; ) if ((h = h.n) === A) return;
+                  (d = h.z), s.lineStart();
+                  do {
+                    if (((h.v = h.o.v = !0), h.e)) {
+                      if (p) for (i = 0, a = d.length; i < a; ++i) s.point((c = d[i])[0], c[1]);
+                      else r(h.x, h.n.x, 1, s);
+                      h = h.n;
+                    } else {
+                      if (p)
+                        for (var d, i = (d = h.p.z).length - 1; 0 <= i; --i)
+                          s.point((c = d[i])[0], c[1]);
+                      else r(h.x, h.p.x, -1, s);
+                      h = h.p;
+                    }
+                  } while (((d = (h = h.o).z), (p = !p), !h.v));
+                  s.lineEnd();
+                }
+              }
+            }
+            function dr(t) {
+              if ((e = t.length)) {
+                for (var e, n, r = 0, i = t[0]; ++r < e; ) (i.n = n = t[r]), (n.p = i), (i = n);
+                (i.n = n = t[0]), (n.p = i);
+              }
+            }
+            function fr(t, e, n, r) {
+              (this.x = t),
+                (this.z = e),
+                (this.o = n),
+                (this.e = r),
+                (this.v = !1),
+                (this.n = this.p = null);
+            }
+            function gr(v, b, y, w) {
+              return function (r, a) {
+                var s,
+                  n = b(a),
+                  e = r.invert(w[0], w[1]),
+                  i = {
+                    point: o,
+                    lineStart: l,
+                    lineEnd: u,
+                    polygonStart: function () {
+                      (i.point = f), (i.lineStart = g), (i.lineEnd = m), (s = []), (c = []);
+                    },
+                    polygonEnd: function () {
+                      (i.point = o), (i.lineStart = l), (i.lineEnd = u), (s = _.merge(s));
+                      var t = (function (t, e) {
+                        var n = t[0],
+                          r = t[1],
+                          i = [Math.sin(n), -Math.cos(n), 0],
+                          o = 0,
+                          a = 0;
+                        On.reset();
+                        for (var s = 0, l = e.length; s < l; ++s) {
+                          var u = e[s],
+                            c = u.length;
+                          if (c)
+                            for (
+                              var A = u[0],
+                                h = A[0],
+                                p = A[1] / 2 + R / 4,
+                                d = Math.sin(p),
+                                f = Math.cos(p),
+                                g = 1;
+                              ;
+
+                            ) {
+                              var m = (t = u[(g = g === c ? 0 : g)])[0],
+                                v = t[1] / 2 + R / 4,
+                                b = Math.sin(v),
+                                v = Math.cos(v),
+                                y = m - h,
+                                w = 0 <= y ? 1 : -1,
+                                E = w * y,
+                                B = R < E,
+                                C = d * b;
+                              if (
+                                (On.add(Math.atan2(C * w * Math.sin(E), f * v + C * Math.cos(E))),
+                                (o += B ? y + w * x : y),
+                                B ^ (n <= h) ^ (n <= m) &&
+                                  (Wn((C = jn(zn(A), zn(t)))),
+                                  Wn((E = jn(i, C))),
+                                  ((w = (B ^ (0 <= y) ? -1 : 1) * Xt(E[2])) < r ||
+                                    (r === w && (C[0] || C[1]))) &&
+                                    (a += B ^ (0 <= y) ? 1 : -1)),
+                                !g++)
+                              )
+                                break;
+                              (h = m), (d = b), (f = v), (A = t);
+                            }
+                        }
+                        return (o < -Q || (o < Q && On < -Q)) ^ (1 & a);
+                      })(e, c);
+                      s.length
+                        ? (d || (a.polygonStart(), (d = !0)), pr(s, br, t, y, a))
+                        : t &&
+                          (d || (a.polygonStart(), (d = !0)),
+                          a.lineStart(),
+                          y(null, null, 1, a),
+                          a.lineEnd()),
+                        d && (a.polygonEnd(), (d = !1)),
+                        (s = c = null);
+                    },
+                    sphere: function () {
+                      a.polygonStart(),
+                        a.lineStart(),
+                        y(null, null, 1, a),
+                        a.lineEnd(),
+                        a.polygonEnd();
+                    },
+                  };
+                function o(t, e) {
+                  var n = r(t, e);
+                  v((t = n[0]), (e = n[1])) && a.point(t, e);
+                }
+                function t(t, e) {
+                  t = r(t, e);
+                  n.point(t[0], t[1]);
+                }
+                function l() {
+                  (i.point = t), n.lineStart();
+                }
+                function u() {
+                  (i.point = o), n.lineEnd();
+                }
+                var c,
+                  A,
+                  h = vr(),
+                  p = b(h),
+                  d = !1;
+                function f(t, e) {
+                  A.push([t, e]);
+                  t = r(t, e);
+                  p.point(t[0], t[1]);
+                }
+                function g() {
+                  p.lineStart(), (A = []);
+                }
+                function m() {
+                  f(A[0][0], A[0][1]), p.lineEnd();
+                  var t = p.clean(),
+                    e = h.buffer(),
+                    n = e.length;
+                  if ((A.pop(), c.push(A), (A = null), n))
+                    if (1 & t) {
+                      var r,
+                        i,
+                        o = -1;
+                      if (0 < (n = (r = e[0]).length - 1)) {
+                        for (d || (a.polygonStart(), (d = !0)), a.lineStart(); ++o < n; )
+                          a.point((i = r[o])[0], i[1]);
+                        a.lineEnd();
+                      }
+                    } else
+                      1 < n && 2 & t && e.push(e.pop().concat(e.shift())), s.push(e.filter(mr));
+                }
+                return i;
+              };
+            }
+            function mr(t) {
+              return 1 < t.length;
+            }
+            function vr() {
+              var n,
+                e = [];
+              return {
+                lineStart: function () {
+                  e.push((n = []));
+                },
+                point: function (t, e) {
+                  n.push([t, e]);
+                },
+                lineEnd: l,
+                buffer: function () {
+                  var t = e;
+                  return (e = []), (n = null), t;
+                },
+                rejoin: function () {
+                  1 < e.length && e.push(e.pop().concat(e.shift()));
+                },
+              };
+            }
+            function br(t, e) {
+              return (
+                ((t = t.x)[0] < 0 ? t[1] - U - Q : U - t[1]) -
+                ((e = e.x)[0] < 0 ? e[1] - U - Q : U - e[1])
+              );
+            }
+            var yr = gr(
+              hr,
+              function (u) {
+                var c,
+                  A = NaN,
+                  h = NaN,
+                  p = NaN;
+                return {
+                  lineStart: function () {
+                    u.lineStart(), (c = 1);
+                  },
+                  point: function (t, e) {
+                    var n,
+                      r,
+                      i,
+                      o,
+                      a,
+                      s = 0 < t ? R : -R,
+                      l = F(t - A);
+                    F(l - R) < Q
+                      ? (u.point(A, (h = 0 < (h + e) / 2 ? U : -U)),
+                        u.point(p, h),
+                        u.lineEnd(),
+                        u.lineStart(),
+                        u.point(s, h),
+                        u.point(t, h),
+                        (c = 0))
+                      : p !== s &&
+                        R <= l &&
+                        (F(A - p) < Q && (A -= p * Q),
+                        F(t - s) < Q && (t -= s * Q),
+                        (l = A),
+                        (n = h),
+                        (r = t),
+                        (i = e),
+                        (a = Math.sin(l - r)),
+                        (h =
+                          F(a) > Q
+                            ? Math.atan(
+                                (Math.sin(n) * (o = Math.cos(i)) * Math.sin(r) -
+                                  Math.sin(i) * (r = Math.cos(n)) * Math.sin(l)) /
+                                  (r * o * a),
+                              )
+                            : (n + i) / 2),
+                        u.point(p, h),
+                        u.lineEnd(),
+                        u.lineStart(),
+                        u.point(s, h),
+                        (c = 0)),
+                      u.point((A = t), (h = e)),
+                      (p = s);
+                  },
+                  lineEnd: function () {
+                    u.lineEnd(), (A = h = NaN);
+                  },
+                  clean: function () {
+                    return 2 - c;
+                  },
+                };
+              },
+              function (t, e, n, r) {
+                var i;
+                null == t
+                  ? ((i = n * U),
+                    r.point(-R, i),
+                    r.point(0, i),
+                    r.point(R, i),
+                    r.point(R, 0),
+                    r.point(R, -i),
+                    r.point(0, -i),
+                    r.point(-R, -i),
+                    r.point(-R, 0),
+                    r.point(-R, i))
+                  : F(t[0] - e[0]) > Q
+                    ? ((t = t[0] < e[0] ? R : -R),
+                      (i = (n * t) / 2),
+                      r.point(-t, i),
+                      r.point(0, i),
+                      r.point(t, i))
+                    : r.point(e[0], e[1]);
+              },
+              [-R, -R / 2],
+            );
+            function wr(i) {
+              var p = Math.cos(i),
+                A = 0 < p,
+                h = F(p) > Q;
+              return gr(
+                d,
+                function (o) {
+                  var a, s, l, u, c;
+                  return {
+                    lineStart: function () {
+                      (u = l = !1), (c = 1);
+                    },
+                    point: function (t, e) {
+                      var n,
+                        r = [t, e],
+                        i = d(t, e),
+                        t = A ? (i ? 0 : g(t, e)) : i ? g(t + (t < 0 ? R : -R), e) : 0;
+                      !a && (u = l = i) && o.lineStart(),
+                        i !== l &&
+                          ((n = f(a, r)),
+                          (Kn(a, n) || Kn(r, n)) &&
+                            ((r[0] += Q), (r[1] += Q), (i = d(r[0], r[1])))),
+                        i !== l
+                          ? ((c = 0),
+                            i
+                              ? (o.lineStart(), (n = f(r, a)), o.point(n[0], n[1]))
+                              : ((n = f(a, r)), o.point(n[0], n[1]), o.lineEnd()),
+                            (a = n))
+                          : h &&
+                            a &&
+                            A ^ i &&
+                            (t & s ||
+                              !(e = f(r, a, !0)) ||
+                              ((c = 0),
+                              A
+                                ? (o.lineStart(),
+                                  o.point(e[0][0], e[0][1]),
+                                  o.point(e[1][0], e[1][1]),
+                                  o.lineEnd())
+                                : (o.point(e[1][0], e[1][1]),
+                                  o.lineEnd(),
+                                  o.lineStart(),
+                                  o.point(e[0][0], e[0][1])))),
+                        !i || (a && Kn(a, r)) || o.point(r[0], r[1]),
+                        (a = r),
+                        (l = i),
+                        (s = t);
+                    },
+                    lineEnd: function () {
+                      l && o.lineEnd(), (a = null);
+                    },
+                    clean: function () {
+                      return c | ((u && l) << 1);
+                    },
+                  };
+                },
+                ni(i, 6 * C),
+                A ? [0, -i] : [-R, i - R],
+              );
+              function d(t, e) {
+                return Math.cos(t) * Math.cos(e) > p;
+              }
+              function f(t, e, n) {
+                var r = [1, 0, 0],
+                  i = jn(zn(t), zn(e)),
+                  o = Hn(i, i),
+                  a = i[0],
+                  s = o - a * a;
+                if (!s) return !n && t;
+                var l = jn(r, i),
+                  r = qn(r, (p * o) / s),
+                  o = (Vn(r, qn(i, (-p * a) / s)), l),
+                  i = Hn(r, o),
+                  a = Hn(o, o),
+                  s = i * i - a * (Hn(r, r) - 1);
+                if (!(s < 0)) {
+                  (l = Math.sqrt(s)), (s = qn(o, (-i - l) / a));
+                  if ((Vn(s, r), (s = Jn(s)), !n)) return s;
+                  var u,
+                    n = t[0],
+                    c = e[0],
+                    t = t[1],
+                    e = e[1],
+                    A = (c < n && ((u = n), (n = c), (c = u)), c - n),
+                    h = F(A - R) < Q;
+                  return (
+                    !h && e < t && ((u = t), (t = e), (e = u)),
+                    (
+                      h || A < Q
+                        ? h
+                          ? (0 < t + e) ^ (s[1] < (F(s[0] - n) < Q ? t : e))
+                          : t <= s[1] && s[1] <= e
+                        : (R < A) ^ (n <= s[0] && s[0] <= c)
+                    )
+                      ? (Vn((u = qn(o, (-i + l) / a)), r), [s, Jn(u)])
+                      : void 0
+                  );
+                }
+              }
+              function g(t, e) {
+                var n = A ? i : R - i,
+                  r = 0;
+                return (
+                  t < -n ? (r |= 1) : n < t && (r |= 2), e < -n ? (r |= 4) : n < e && (r |= 8), r
+                );
+              }
+            }
+            function Er(l, u, c, A) {
+              return function (t) {
+                var e = t.a,
+                  n = t.b,
+                  r = e.x,
+                  e = e.y,
+                  i = 0,
+                  o = 1,
+                  a = n.x - r,
+                  n = n.y - e,
+                  s = l - r;
+                if (a || !(0 < s)) {
+                  if (((s /= a), a < 0)) {
+                    if (s < i) return;
+                    s < o && (o = s);
+                  } else if (0 < a) {
+                    if (o < s) return;
+                    i < s && (i = s);
+                  }
+                  if (((s = c - r), a || !(s < 0))) {
+                    if (((s /= a), a < 0)) {
+                      if (o < s) return;
+                      i < s && (i = s);
+                    } else if (0 < a) {
+                      if (s < i) return;
+                      s < o && (o = s);
+                    }
+                    if (((s = u - e), n || !(0 < s))) {
+                      if (((s /= n), n < 0)) {
+                        if (s < i) return;
+                        s < o && (o = s);
+                      } else if (0 < n) {
+                        if (o < s) return;
+                        i < s && (i = s);
+                      }
+                      if (((s = A - e), n || !(s < 0))) {
+                        if (((s /= n), n < 0)) {
+                          if (o < s) return;
+                          i < s && (i = s);
+                        } else if (0 < n) {
+                          if (s < i) return;
+                          s < o && (o = s);
+                        }
+                        return (
+                          0 < i && (t.a = { x: r + i * a, y: e + i * n }),
+                          o < 1 && (t.b = { x: r + o * a, y: e + o * n }),
+                          t
+                        );
+                      }
+                    }
+                  }
+                }
+              };
+            }
+            var Br = 1e9;
+            function Cr(y, w, E, B) {
+              return function (i) {
+                var r,
+                  c,
+                  o,
+                  a,
+                  s,
+                  l,
+                  u,
+                  A,
+                  h,
+                  p,
+                  d,
+                  f = i,
+                  t = vr(),
+                  g = Er(y, w, E, B),
+                  e = {
+                    point: n,
+                    lineStart: function () {
+                      (e.point = b), c && c.push((o = []));
+                      (p = !0), (h = !1), (u = A = NaN);
+                    },
+                    lineEnd: function () {
+                      r && (b(a, s), l && h && t.rejoin(), r.push(t.buffer()));
+                      (e.point = n), h && i.lineEnd();
+                    },
+                    polygonStart: function () {
+                      (i = t), (r = []), (c = []), (d = !0);
+                    },
+                    polygonEnd: function () {
+                      (i = f), (r = _.merge(r));
+                      var t = (function (t) {
+                          for (var e = 0, n = c.length, r = t[1], i = 0; i < n; ++i)
+                            for (var o, a = 1, s = c[i], l = s.length, u = s[0]; a < l; ++a)
+                              (o = s[a]),
+                                u[1] <= r
+                                  ? o[1] > r && 0 < Kt(u, o, t) && ++e
+                                  : o[1] <= r && Kt(u, o, t) < 0 && --e,
+                                (u = o);
+                          return 0 !== e;
+                        })([y, B]),
+                        e = d && t,
+                        n = r.length;
+                      (e || n) &&
+                        (i.polygonStart(),
+                        e && (i.lineStart(), m(null, null, 1, i), i.lineEnd()),
+                        n && pr(r, x, t, m, i),
+                        i.polygonEnd()),
+                        (r = c = o = null);
+                    },
+                  };
+                function m(t, e, n, r) {
+                  var i = 0,
+                    o = 0;
+                  if (null == t || (i = C(t, n)) !== (o = C(e, n)) || (I(t, e) < 0) ^ (0 < n))
+                    for (
+                      ;
+                      r.point(0 === i || 3 === i ? y : E, 1 < i ? B : w),
+                        (i = (i + n + 4) % 4) !== o;
+
+                    );
+                  else r.point(e[0], e[1]);
+                }
+                function v(t, e) {
+                  return y <= t && t <= E && w <= e && e <= B;
+                }
+                function n(t, e) {
+                  v(t, e) && i.point(t, e);
+                }
+                function b(t, e) {
+                  var n,
+                    r = v(
+                      (t = Math.max(-Br, Math.min(Br, t))),
+                      (e = Math.max(-Br, Math.min(Br, e))),
+                    );
+                  c && o.push([t, e]),
+                    p
+                      ? ((a = t), (s = e), (p = !1), (l = r) && (i.lineStart(), i.point(t, e)))
+                      : r && h
+                        ? i.point(t, e)
+                        : g((n = { a: { x: u, y: A }, b: { x: t, y: e } }))
+                          ? (h || (i.lineStart(), i.point(n.a.x, n.a.y)),
+                            i.point(n.b.x, n.b.y),
+                            r || i.lineEnd(),
+                            (d = !1))
+                          : r && (i.lineStart(), i.point(t, e), (d = !1)),
+                    (u = t),
+                    (A = e),
+                    (h = r);
+                }
+                return e;
+              };
+              function C(t, e) {
+                return F(t[0] - y) < Q
+                  ? 0 < e
+                    ? 0
+                    : 3
+                  : F(t[0] - E) < Q
+                    ? 0 < e
+                      ? 2
+                      : 1
+                    : F(t[1] - w) < Q
+                      ? 0 < e
+                        ? 1
+                        : 0
+                      : 0 < e
+                        ? 3
+                        : 2;
+              }
+              function x(t, e) {
+                return I(t.x, e.x);
+              }
+              function I(t, e) {
+                var n = C(t, 1),
+                  r = C(e, 1);
+                return n !== r
+                  ? n - r
+                  : 0 === n
+                    ? e[1] - t[1]
+                    : 1 === n
+                      ? t[0] - e[0]
+                      : 2 === n
+                        ? t[1] - e[1]
+                        : e[0] - t[0];
+              }
+            }
+            function xr(t) {
+              var e = 0,
+                n = R / 3,
+                r = Wr(t),
+                t = r(e, n);
+              return (
+                (t.parallels = function (t) {
+                  return arguments.length
+                    ? r((e = (t[0] * R) / 180), (n = (t[1] * R) / 180))
+                    : [(e / R) * 180, (n / R) * 180];
+                }),
+                t
+              );
+            }
+            function Ir(t, e) {
+              var t = Math.sin(t),
+                n = (t + Math.sin(e)) / 2,
+                r = 1 + t * (2 * n - t),
+                i = Math.sqrt(r) / n;
+              function o(t, e) {
+                e = Math.sqrt(r - 2 * n * Math.sin(e)) / n;
+                return [e * Math.sin((t *= n)), i - e * Math.cos(t)];
+              }
+              return (
+                (o.invert = function (t, e) {
+                  e = i - e;
+                  return [Math.atan2(t, e) / n, Xt((r - (t * t + e * e) * n * n) / (2 * n))];
+                }),
+                o
+              );
+            }
+            (_.geo.clipExtent = function () {
+              var e,
+                n,
+                r,
+                i,
+                o,
+                a,
+                s = {
+                  stream: function (t) {
+                    return o && (o.valid = !1), ((o = a(t)).valid = !0), o;
+                  },
+                  extent: function (t) {
+                    return arguments.length
+                      ? ((a = Cr((e = +t[0][0]), (n = +t[0][1]), (r = +t[1][0]), (i = +t[1][1]))),
+                        o && ((o.valid = !1), (o = null)),
+                        s)
+                      : [
+                          [e, n],
+                          [r, i],
+                        ];
+                  },
+                };
+              return s.extent([
+                [0, 0],
+                [960, 500],
+              ]);
+            }),
+              ((_.geo.conicEqualArea = function () {
+                return xr(Ir);
+              }).raw = Ir),
+              (_.geo.albers = function () {
+                return _.geo
+                  .conicEqualArea()
+                  .rotate([96, 0])
+                  .center([-0.6, 38.7])
+                  .parallels([29.5, 45.5])
+                  .scale(1070);
+              }),
+              (_.geo.albersUsa = function () {
+                var n,
+                  i,
+                  o,
+                  a,
+                  s = _.geo.albers(),
+                  l = _.geo
+                    .conicEqualArea()
+                    .rotate([154, 0])
+                    .center([-2, 58.5])
+                    .parallels([55, 65]),
+                  u = _.geo.conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),
+                  c = {
+                    point: function (t, e) {
+                      n = [t, e];
+                    },
+                  };
+                function A(t) {
+                  var e = t[0],
+                    t = t[1];
+                  return (n = null), i(e, t), n || (o(e, t), n) || a(e, t), n;
+                }
+                return (
+                  (A.invert = function (t) {
+                    var e = s.scale(),
+                      n = s.translate(),
+                      r = (t[0] - n[0]) / e,
+                      n = (t[1] - n[1]) / e;
+                    return (
+                      0.12 <= n && n < 0.234 && -0.425 <= r && r < -0.214
+                        ? l
+                        : 0.166 <= n && n < 0.234 && -0.214 <= r && r < -0.115
+                          ? u
+                          : s
+                    ).invert(t);
+                  }),
+                  (A.stream = function (t) {
+                    var n = s.stream(t),
+                      r = l.stream(t),
+                      i = u.stream(t);
+                    return {
+                      point: function (t, e) {
+                        n.point(t, e), r.point(t, e), i.point(t, e);
+                      },
+                      sphere: function () {
+                        n.sphere(), r.sphere(), i.sphere();
+                      },
+                      lineStart: function () {
+                        n.lineStart(), r.lineStart(), i.lineStart();
+                      },
+                      lineEnd: function () {
+                        n.lineEnd(), r.lineEnd(), i.lineEnd();
+                      },
+                      polygonStart: function () {
+                        n.polygonStart(), r.polygonStart(), i.polygonStart();
+                      },
+                      polygonEnd: function () {
+                        n.polygonEnd(), r.polygonEnd(), i.polygonEnd();
+                      },
+                    };
+                  }),
+                  (A.precision = function (t) {
+                    return arguments.length
+                      ? (s.precision(t), l.precision(t), u.precision(t), A)
+                      : s.precision();
+                  }),
+                  (A.scale = function (t) {
+                    return arguments.length
+                      ? (s.scale(t), l.scale(0.35 * t), u.scale(t), A.translate(s.translate()))
+                      : s.scale();
+                  }),
+                  (A.translate = function (t) {
+                    if (!arguments.length) return s.translate();
+                    var e = s.scale(),
+                      n = +t[0],
+                      r = +t[1];
+                    return (
+                      (i = s
+                        .translate(t)
+                        .clipExtent([
+                          [n - 0.455 * e, r - 0.238 * e],
+                          [n + 0.455 * e, r + 0.238 * e],
+                        ])
+                        .stream(c).point),
+                      (o = l
+                        .translate([n - 0.307 * e, r + 0.201 * e])
+                        .clipExtent([
+                          [n - 0.425 * e + Q, r + 0.12 * e + Q],
+                          [n - 0.214 * e - Q, r + 0.234 * e - Q],
+                        ])
+                        .stream(c).point),
+                      (a = u
+                        .translate([n - 0.205 * e, r + 0.212 * e])
+                        .clipExtent([
+                          [n - 0.214 * e + Q, r + 0.166 * e + Q],
+                          [n - 0.115 * e - Q, r + 0.234 * e - Q],
+                        ])
+                        .stream(c).point),
+                      A
+                    );
+                  }),
+                  A.scale(1070)
+                );
+              });
+            var Mr,
+              Dr,
+              Sr,
+              kr,
+              Fr,
+              Qr,
+              _r = {
+                point: l,
+                lineStart: l,
+                lineEnd: l,
+                polygonStart: function () {
+                  (Dr = 0), (_r.lineStart = Tr);
+                },
+                polygonEnd: function () {
+                  (_r.lineStart = _r.lineEnd = _r.point = l), (Mr += F(Dr / 2));
+                },
+              };
+            function Tr() {
+              var n, r, i, o;
+              function a(t, e) {
+                (Dr += o * t - i * e), (i = t), (o = e);
+              }
+              (_r.point = function (t, e) {
+                (_r.point = a), (n = i = t), (r = o = e);
+              }),
+                (_r.lineEnd = function () {
+                  a(n, r);
+                });
+            }
+            var Rr = {
+              point: function (t, e) {
+                t < Sr && (Sr = t);
+                Fr < t && (Fr = t);
+                e < kr && (kr = e);
+                Qr < e && (Qr = e);
+              },
+              lineStart: l,
+              lineEnd: l,
+              polygonStart: l,
+              polygonEnd: l,
+            };
+            function Ur() {
+              var n = Nr(4.5),
+                r = [],
+                i = {
+                  point: t,
+                  lineStart: function () {
+                    i.point = e;
+                  },
+                  lineEnd: a,
+                  polygonStart: function () {
+                    i.lineEnd = s;
+                  },
+                  polygonEnd: function () {
+                    (i.lineEnd = a), (i.point = t);
+                  },
+                  pointRadius: function (t) {
+                    return (n = Nr(t)), i;
+                  },
+                  result: function () {
+                    var t;
+                    if (r.length) return (t = r.join('')), (r = []), t;
+                  },
+                };
+              function t(t, e) {
+                r.push('M', t, ',', e, n);
+              }
+              function e(t, e) {
+                r.push('M', t, ',', e), (i.point = o);
+              }
+              function o(t, e) {
+                r.push('L', t, ',', e);
+              }
+              function a() {
+                i.point = t;
+              }
+              function s() {
+                r.push('Z');
+              }
+              return i;
+            }
+            function Nr(t) {
+              return (
+                'm0,' +
+                t +
+                'a' +
+                t +
+                ',' +
+                t +
+                ' 0 1,1 0,' +
+                -2 * t +
+                'a' +
+                t +
+                ',' +
+                t +
+                ' 0 1,1 0,' +
+                2 * t +
+                'z'
+              );
+            }
+            var Pr,
+              b = {
+                point: Lr,
+                lineStart: Yr,
+                lineEnd: Or,
+                polygonStart: function () {
+                  b.lineStart = Gr;
+                },
+                polygonEnd: function () {
+                  (b.point = Lr), (b.lineStart = Yr), (b.lineEnd = Or);
+                },
+              };
+            function Lr(t, e) {
+              (_n += t), (Tn += e), ++Rn;
+            }
+            function Yr() {
+              var i, o;
+              function n(t, e) {
+                var n = t - i,
+                  r = e - o,
+                  n = Math.sqrt(n * n + r * r);
+                (Un += (n * (i + t)) / 2),
+                  (Nn += (n * (o + e)) / 2),
+                  (f += n),
+                  Lr((i = t), (o = e));
+              }
+              b.point = function (t, e) {
+                (b.point = n), Lr((i = t), (o = e));
+              };
+            }
+            function Or() {
+              b.point = Lr;
+            }
+            function Gr() {
+              var n, r, i, o;
+              function a(t, e) {
+                var n = t - i,
+                  r = e - o,
+                  n = Math.sqrt(n * n + r * r);
+                (Un += (n * (i + t)) / 2),
+                  (Nn += (n * (o + e)) / 2),
+                  (f += n),
+                  (Pn += (n = o * t - i * e) * (i + t)),
+                  (Ln += n * (o + e)),
+                  (Yn += 3 * n),
+                  Lr((i = t), (o = e));
+              }
+              (b.point = function (t, e) {
+                (b.point = a), Lr((n = i = t), (r = o = e));
+              }),
+                (b.lineEnd = function () {
+                  a(n, r);
+                });
+            }
+            function zr(n) {
+              var r = 4.5,
+                i = {
+                  point: t,
+                  lineStart: function () {
+                    i.point = e;
+                  },
+                  lineEnd: a,
+                  polygonStart: function () {
+                    i.lineEnd = s;
+                  },
+                  polygonEnd: function () {
+                    (i.lineEnd = a), (i.point = t);
+                  },
+                  pointRadius: function (t) {
+                    return (r = t), i;
+                  },
+                  result: l,
+                };
+              function t(t, e) {
+                n.moveTo(t + r, e), n.arc(t, e, r, 0, x);
+              }
+              function e(t, e) {
+                n.moveTo(t, e), (i.point = o);
+              }
+              function o(t, e) {
+                n.lineTo(t, e);
+              }
+              function a() {
+                i.point = t;
+              }
+              function s() {
+                n.closePath();
+              }
+              return i;
+            }
+            function Hr(M) {
+              var D = 0.5,
+                S = Math.cos(30 * C),
+                w = 16;
+              function e(t) {
+                return (w ? r : n)(t);
+              }
+              function n(n) {
+                return Vr(n, function (t, e) {
+                  (t = M(t, e)), n.point(t[0], t[1]);
+                });
+              }
+              function r(r) {
+                var n,
+                  i,
+                  o,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c,
+                  A,
+                  h,
+                  p,
+                  d,
+                  f = {
+                    point: t,
+                    lineStart: e,
+                    lineEnd: m,
+                    polygonStart: function () {
+                      r.polygonStart(), (f.lineStart = v);
+                    },
+                    polygonEnd: function () {
+                      r.polygonEnd(), (f.lineStart = e);
+                    },
+                  };
+                function t(t, e) {
+                  (t = M(t, e)), r.point(t[0], t[1]);
+                }
+                function e() {
+                  (c = NaN), (f.point = g), r.lineStart();
+                }
+                function g(t, e) {
+                  var n = zn([t, e]),
+                    e = M(t, e);
+                  k(
+                    c,
+                    A,
+                    u,
+                    h,
+                    p,
+                    d,
+                    (c = e[0]),
+                    (A = e[1]),
+                    (u = t),
+                    (h = n[0]),
+                    (p = n[1]),
+                    (d = n[2]),
+                    w,
+                    r,
+                  ),
+                    r.point(c, A);
+                }
+                function m() {
+                  (f.point = t), r.lineEnd();
+                }
+                function v() {
+                  e(), (f.point = b), (f.lineEnd = y);
+                }
+                function b(t, e) {
+                  g((n = t), e), (i = c), (o = A), (a = h), (s = p), (l = d), (f.point = g);
+                }
+                function y() {
+                  k(c, A, u, h, p, d, i, o, n, a, s, l, w, r), (f.lineEnd = m), m();
+                }
+                return f;
+              }
+              function k(t, e, n, r, i, o, a, s, l, u, c, A, h, p) {
+                var d,
+                  f,
+                  g,
+                  m,
+                  v,
+                  b,
+                  y,
+                  w,
+                  E,
+                  B,
+                  C = a - t,
+                  x = s - e,
+                  I = C * C + x * x;
+                4 * D < I &&
+                  h-- &&
+                  ((d = r + u),
+                  (f = i + c),
+                  (g = o + A),
+                  (m = Math.sqrt(d * d + f * f + g * g)),
+                  (y = Math.asin((g /= m))),
+                  (v = F(F(g) - 1) < Q || F(n - l) < Q ? (n + l) / 2 : Math.atan2(f, d)),
+                  (b = (y = M(v, y))[0]),
+                  (y = y[1]),
+                  (D < ((B = x * (w = b - t) - C * (E = y - e)) * B) / I ||
+                    0.3 < F((C * w + x * E) / I - 0.5) ||
+                    r * u + i * c + o * A < S) &&
+                    (k(t, e, n, r, i, o, b, y, v, (d /= m), (f /= m), g, h, p),
+                    p.point(b, y),
+                    k(b, y, v, d, f, g, a, s, l, u, c, A, h, p)));
+              }
+              return (
+                (e.precision = function (t) {
+                  return arguments.length ? ((w = 0 < (D = t * t) && 16), e) : Math.sqrt(D);
+                }),
+                e
+              );
+            }
+            function jr(t) {
+              this.stream = t;
+            }
+            function Vr(t, e) {
+              return {
+                point: e,
+                sphere: function () {
+                  t.sphere();
+                },
+                lineStart: function () {
+                  t.lineStart();
+                },
+                lineEnd: function () {
+                  t.lineEnd();
+                },
+                polygonStart: function () {
+                  t.polygonStart();
+                },
+                polygonEnd: function () {
+                  t.polygonEnd();
+                },
+              };
+            }
+            function qr(t) {
+              return Wr(function () {
+                return t;
+              })();
+            }
+            function Wr(t) {
+              var n,
+                e,
+                r,
+                i,
+                o,
+                a,
+                s = Hr(function (t, e) {
+                  return [(t = n(t, e))[0] * l + i, o - t[1] * l];
+                }),
+                l = 150,
+                u = 480,
+                c = 250,
+                A = 0,
+                h = 0,
+                p = 0,
+                d = 0,
+                f = 0,
+                g = yr,
+                m = k,
+                v = null,
+                b = null;
+              function y(t) {
+                return [(t = r(t[0] * C, t[1] * C))[0] * l + i, o - t[1] * l];
+              }
+              function w(t) {
+                return (t = r.invert((t[0] - i) / l, (o - t[1]) / l)) && [t[0] * I, t[1] * I];
+              }
+              function E() {
+                r = Ar((e = Xr(p, d, f)), n);
+                var t = n(A, h);
+                return (i = u - t[0] * l), (o = c + t[1] * l), B();
+              }
+              function B() {
+                return a && ((a.valid = !1), (a = null)), y;
+              }
+              return (
+                (y.stream = function (t) {
+                  return a && (a.valid = !1), ((a = Jr(g(e, s(m(t))))).valid = !0), a;
+                }),
+                (y.clipAngle = function (t) {
+                  return arguments.length
+                    ? ((g = null == t ? ((v = t), yr) : wr((v = +t) * C)), B())
+                    : v;
+                }),
+                (y.clipExtent = function (t) {
+                  return arguments.length
+                    ? ((m = (b = t) ? Cr(t[0][0], t[0][1], t[1][0], t[1][1]) : k), B())
+                    : b;
+                }),
+                (y.scale = function (t) {
+                  return arguments.length ? ((l = +t), E()) : l;
+                }),
+                (y.translate = function (t) {
+                  return arguments.length ? ((u = +t[0]), (c = +t[1]), E()) : [u, c];
+                }),
+                (y.center = function (t) {
+                  return arguments.length
+                    ? ((A = (t[0] % 360) * C), (h = (t[1] % 360) * C), E())
+                    : [A * I, h * I];
+                }),
+                (y.rotate = function (t) {
+                  return arguments.length
+                    ? ((p = (t[0] % 360) * C),
+                      (d = (t[1] % 360) * C),
+                      (f = 2 < t.length ? (t[2] % 360) * C : 0),
+                      E())
+                    : [p * I, d * I, f * I];
+                }),
+                _.rebind(y, s, 'precision'),
+                function () {
+                  return (n = t.apply(this, arguments)), (y.invert = n.invert && w), E();
+                }
+              );
+            }
+            function Jr(n) {
+              return Vr(n, function (t, e) {
+                n.point(t * C, e * C);
+              });
+            }
+            function Kr(t, e) {
+              return [t, e];
+            }
+            function Zr(t, e) {
+              return [R < t ? t - x : t < -R ? t + x : t, e];
+            }
+            function Xr(t, e, n) {
+              return t ? (e || n ? Ar(ti(t), ei(e, n)) : ti(t)) : e || n ? ei(e, n) : Zr;
+            }
+            function $r(n) {
+              return function (t, e) {
+                return [R < (t += n) ? t - x : t < -R ? t + x : t, e];
+              };
+            }
+            function ti(t) {
+              var e = $r(t);
+              return (e.invert = $r(-t)), e;
+            }
+            function ei(t, e) {
+              var i = Math.cos(t),
+                o = Math.sin(t),
+                a = Math.cos(e),
+                s = Math.sin(e);
+              function n(t, e) {
+                var n = Math.cos(e),
+                  r = Math.cos(t) * n,
+                  t = Math.sin(t) * n,
+                  n = Math.sin(e),
+                  e = n * i + r * o;
+                return [Math.atan2(t * a - e * s, r * i - n * o), Xt(e * a + t * s)];
+              }
+              return (
+                (n.invert = function (t, e) {
+                  var n = Math.cos(e),
+                    r = Math.cos(t) * n,
+                    t = Math.sin(t) * n,
+                    n = Math.sin(e),
+                    e = n * a - t * s;
+                  return [Math.atan2(t * a + n * s, r * i + e * o), Xt(e * i - r * o)];
+                }),
+                n
+              );
+            }
+            function ni(s, l) {
+              var u = Math.cos(s),
+                c = Math.sin(s);
+              return function (t, e, n, r) {
+                var i = n * l;
+                null != t
+                  ? ((t = ri(u, t)), (e = ri(u, e)), (0 < n ? t < e : e < t) && (t += n * x))
+                  : ((t = s + n * x), (e = s - 0.5 * i));
+                for (var o, a = t; 0 < n ? e < a : a < e; a -= i)
+                  r.point((o = Jn([u, -c * Math.cos(a), -c * Math.sin(a)]))[0], o[1]);
+              };
+            }
+            function ri(t, e) {
+              (e = zn(e)), (e[0] -= t), Wn(e), (t = Zt(-e[1]));
+              return ((-e[2] < 0 ? -t : t) + 2 * Math.PI - Q) % (2 * Math.PI);
+            }
+            function ii(t, e, n) {
+              var r = _.range(t, e - Q, n).concat(e);
+              return function (e) {
+                return r.map(function (t) {
+                  return [e, t];
+                });
+              };
+            }
+            function oi(t, e, n) {
+              var r = _.range(t, e - Q, n).concat(e);
+              return function (e) {
+                return r.map(function (t) {
+                  return [t, e];
+                });
+              };
+            }
+            function ai(t) {
+              return t.source;
+            }
+            function si(t) {
+              return t.target;
+            }
+            (_.geo.path = function () {
+              var r,
+                e,
+                i,
+                n,
+                o,
+                a = 4.5;
+              function s(t) {
+                return (
+                  t &&
+                    ('function' == typeof a && n.pointRadius(+a.apply(this, arguments)),
+                    (o && o.valid) || (o = i(n)),
+                    _.geo.stream(t, o)),
+                  n.result()
+                );
+              }
+              function l() {
+                return (o = null), s;
+              }
+              return (
+                (s.area = function (t) {
+                  return (Mr = 0), _.geo.stream(t, i(_r)), Mr;
+                }),
+                (s.centroid = function (t) {
+                  return (
+                    (_n = Tn = Rn = Un = Nn = f = Pn = Ln = Yn = 0),
+                    _.geo.stream(t, i(b)),
+                    Yn
+                      ? [Pn / Yn, Ln / Yn]
+                      : f
+                        ? [Un / f, Nn / f]
+                        : Rn
+                          ? [_n / Rn, Tn / Rn]
+                          : [NaN, NaN]
+                  );
+                }),
+                (s.bounds = function (t) {
+                  return (
+                    (Fr = Qr = -(Sr = kr = 1 / 0)),
+                    _.geo.stream(t, i(Rr)),
+                    [
+                      [Sr, kr],
+                      [Fr, Qr],
+                    ]
+                  );
+                }),
+                (s.projection = function (t) {
+                  return arguments.length
+                    ? ((i = (r = t)
+                        ? t.stream ||
+                          ((n = t),
+                          (e = Hr(function (t, e) {
+                            return n([t * I, e * I]);
+                          })),
+                          function (t) {
+                            return Jr(e(t));
+                          })
+                        : k),
+                      l())
+                    : r;
+                  var n, e;
+                }),
+                (s.context = function (t) {
+                  return arguments.length
+                    ? ((n = null == (e = t) ? new Ur() : new zr(t)),
+                      'function' != typeof a && n.pointRadius(a),
+                      l())
+                    : e;
+                }),
+                (s.pointRadius = function (t) {
+                  return arguments.length
+                    ? ((a = 'function' == typeof t ? t : (n.pointRadius(+t), +t)), s)
+                    : a;
+                }),
+                s.projection(_.geo.albersUsa()).context(null)
+              );
+            }),
+              (_.geo.transform = function (r) {
+                return {
+                  stream: function (t) {
+                    var e,
+                      n = new jr(t);
+                    for (e in r) n[e] = r[e];
+                    return n;
+                  },
+                };
+              }),
+              (jr.prototype = {
+                point: function (t, e) {
+                  this.stream.point(t, e);
+                },
+                sphere: function () {
+                  this.stream.sphere();
+                },
+                lineStart: function () {
+                  this.stream.lineStart();
+                },
+                lineEnd: function () {
+                  this.stream.lineEnd();
+                },
+                polygonStart: function () {
+                  this.stream.polygonStart();
+                },
+                polygonEnd: function () {
+                  this.stream.polygonEnd();
+                },
+              }),
+              (_.geo.projection = qr),
+              (_.geo.projectionMutator = Wr),
+              ((_.geo.equirectangular = function () {
+                return qr(Kr);
+              }).raw = Kr.invert =
+                Kr),
+              (_.geo.rotation = function (e) {
+                function t(t) {
+                  return ((t = e(t[0] * C, t[1] * C))[0] *= I), (t[1] *= I), t;
+                }
+                return (
+                  (e = Xr((e[0] % 360) * C, e[1] * C, 2 < e.length ? e[2] * C : 0)),
+                  (t.invert = function (t) {
+                    return ((t = e.invert(t[0] * C, t[1] * C))[0] *= I), (t[1] *= I), t;
+                  }),
+                  t
+                );
+              }),
+              (Zr.invert = Kr),
+              (_.geo.circle = function () {
+                var e,
+                  i,
+                  o = [0, 0],
+                  n = 6;
+                function r() {
+                  var t = 'function' == typeof o ? o.apply(this, arguments) : o,
+                    n = Xr(-t[0] * C, -t[1] * C, 0).invert,
+                    r = [];
+                  return (
+                    i(null, null, 1, {
+                      point: function (t, e) {
+                        r.push((t = n(t, e))), (t[0] *= I), (t[1] *= I);
+                      },
+                    }),
+                    { type: 'Polygon', coordinates: [r] }
+                  );
+                }
+                return (
+                  (r.origin = function (t) {
+                    return arguments.length ? ((o = t), r) : o;
+                  }),
+                  (r.angle = function (t) {
+                    return arguments.length ? ((i = ni((e = +t) * C, n * C)), r) : e;
+                  }),
+                  (r.precision = function (t) {
+                    return arguments.length ? ((i = ni(e * C, (n = +t) * C)), r) : n;
+                  }),
+                  r.angle(90)
+                );
+              }),
+              (_.geo.distance = function (t, e) {
+                var n = (e[0] - t[0]) * C,
+                  t = t[1] * C,
+                  e = e[1] * C,
+                  r = Math.sin(n),
+                  n = Math.cos(n),
+                  i = Math.sin(t),
+                  t = Math.cos(t),
+                  o = Math.sin(e),
+                  e = Math.cos(e);
+                return Math.atan2(
+                  Math.sqrt((r = e * r) * r + (r = t * o - i * e * n) * r),
+                  i * o + t * e * n,
+                );
+              }),
+              (_.geo.graticule = function () {
+                var e,
+                  n,
+                  r,
+                  i,
+                  o,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c,
+                  A,
+                  h,
+                  p = 10,
+                  d = p,
+                  f = 90,
+                  g = 360,
+                  m = 2.5;
+                function v() {
+                  return { type: 'MultiLineString', coordinates: t() };
+                }
+                function t() {
+                  return _.range(Math.ceil(i / f) * f, r, f)
+                    .map(A)
+                    .concat(_.range(Math.ceil(l / g) * g, s, g).map(h))
+                    .concat(
+                      _.range(Math.ceil(n / p) * p, e, p)
+                        .filter(function (t) {
+                          return F(t % f) > Q;
+                        })
+                        .map(u),
+                    )
+                    .concat(
+                      _.range(Math.ceil(a / d) * d, o, d)
+                        .filter(function (t) {
+                          return F(t % g) > Q;
+                        })
+                        .map(c),
+                    );
+                }
+                return (
+                  (v.lines = function () {
+                    return t().map(function (t) {
+                      return { type: 'LineString', coordinates: t };
+                    });
+                  }),
+                  (v.outline = function () {
+                    return {
+                      type: 'Polygon',
+                      coordinates: [
+                        A(i).concat(
+                          h(s).slice(1),
+                          A(r).reverse().slice(1),
+                          h(l).reverse().slice(1),
+                        ),
+                      ],
+                    };
+                  }),
+                  (v.extent = function (t) {
+                    return arguments.length ? v.majorExtent(t).minorExtent(t) : v.minorExtent();
+                  }),
+                  (v.majorExtent = function (t) {
+                    return arguments.length
+                      ? ((i = +t[0][0]),
+                        (r = +t[1][0]),
+                        (l = +t[0][1]),
+                        (s = +t[1][1]),
+                        r < i && ((t = i), (i = r), (r = t)),
+                        s < l && ((t = l), (l = s), (s = t)),
+                        v.precision(m))
+                      : [
+                          [i, l],
+                          [r, s],
+                        ];
+                  }),
+                  (v.minorExtent = function (t) {
+                    return arguments.length
+                      ? ((n = +t[0][0]),
+                        (e = +t[1][0]),
+                        (a = +t[0][1]),
+                        (o = +t[1][1]),
+                        e < n && ((t = n), (n = e), (e = t)),
+                        o < a && ((t = a), (a = o), (o = t)),
+                        v.precision(m))
+                      : [
+                          [n, a],
+                          [e, o],
+                        ];
+                  }),
+                  (v.step = function (t) {
+                    return arguments.length ? v.majorStep(t).minorStep(t) : v.minorStep();
+                  }),
+                  (v.majorStep = function (t) {
+                    return arguments.length ? ((f = +t[0]), (g = +t[1]), v) : [f, g];
+                  }),
+                  (v.minorStep = function (t) {
+                    return arguments.length ? ((p = +t[0]), (d = +t[1]), v) : [p, d];
+                  }),
+                  (v.precision = function (t) {
+                    return arguments.length
+                      ? ((m = +t),
+                        (u = ii(a, o, 90)),
+                        (c = oi(n, e, m)),
+                        (A = ii(l, s, 90)),
+                        (h = oi(i, r, m)),
+                        v)
+                      : m;
+                  }),
+                  v
+                    .majorExtent([
+                      [-180, -90 + Q],
+                      [180, 90 - Q],
+                    ])
+                    .minorExtent([
+                      [-180, -80 - Q],
+                      [180, 80 + Q],
+                    ])
+                );
+              }),
+              (_.geo.greatArc = function () {
+                var e,
+                  n,
+                  r = ai,
+                  i = si;
+                function o() {
+                  return {
+                    type: 'LineString',
+                    coordinates: [e || r.apply(this, arguments), n || i.apply(this, arguments)],
+                  };
+                }
+                return (
+                  (o.distance = function () {
+                    return _.geo.distance(
+                      e || r.apply(this, arguments),
+                      n || i.apply(this, arguments),
+                    );
+                  }),
+                  (o.source = function (t) {
+                    return arguments.length
+                      ? ((e = 'function' == typeof (r = t) ? null : t), o)
+                      : r;
+                  }),
+                  (o.target = function (t) {
+                    return arguments.length
+                      ? ((n = 'function' == typeof (i = t) ? null : t), o)
+                      : i;
+                  }),
+                  (o.precision = function () {
+                    return arguments.length ? o : 0;
+                  }),
+                  o
+                );
+              }),
+              (_.geo.interpolate = function (t, e) {
+                return (
+                  (n = t[0] * C),
+                  (r = t[1] * C),
+                  (t = e[0] * C),
+                  (e = e[1] * C),
+                  (i = Math.cos(r)),
+                  (o = Math.sin(r)),
+                  (a = Math.cos(e)),
+                  (s = Math.sin(e)),
+                  (l = i * Math.cos(n)),
+                  (u = i * Math.sin(n)),
+                  (c = a * Math.cos(t)),
+                  (A = a * Math.sin(t)),
+                  (h = 2 * Math.asin(Math.sqrt(te(e - r) + i * a * te(t - n)))),
+                  (p = 1 / Math.sin(h)),
+                  ((e = h
+                    ? function (t) {
+                        var e = Math.sin((t *= h)) * p,
+                          t = Math.sin(h - t) * p,
+                          n = t * l + e * c,
+                          r = t * u + e * A,
+                          t = t * o + e * s;
+                        return [Math.atan2(r, n) * I, Math.atan2(t, Math.sqrt(n * n + r * r)) * I];
+                      }
+                    : function () {
+                        return [n * I, r * I];
+                      }).distance = h),
+                  e
+                );
+                var n, r, i, o, a, s, l, u, c, A, h, p;
+              }),
+              (_.geo.length = function (t) {
+                return (Pr = 0), _.geo.stream(t, li), Pr;
+              });
+            var li = {
+              sphere: l,
+              point: l,
+              lineStart: function () {
+                var o, a, s;
+                function n(t, e) {
+                  var n = Math.sin((e *= C)),
+                    e = Math.cos(e),
+                    r = F((t *= C) - o),
+                    i = Math.cos(r);
+                  (Pr += Math.atan2(
+                    Math.sqrt((r = e * Math.sin(r)) * r + (r = s * n - a * e * i) * r),
+                    a * n + s * e * i,
+                  )),
+                    (o = t),
+                    (a = n),
+                    (s = e);
+                }
+                (li.point = function (t, e) {
+                  (o = t * C), (a = Math.sin((e *= C))), (s = Math.cos(e)), (li.point = n);
+                }),
+                  (li.lineEnd = function () {
+                    li.point = li.lineEnd = l;
+                  });
+              },
+              lineEnd: l,
+              polygonStart: l,
+              polygonEnd: l,
+            };
+            function ui(i, o) {
+              function t(t, e) {
+                var n = Math.cos(t),
+                  r = Math.cos(e),
+                  n = i(n * r);
+                return [n * r * Math.sin(t), n * Math.sin(e)];
+              }
+              return (
+                (t.invert = function (t, e) {
+                  var n = Math.sqrt(t * t + e * e),
+                    r = o(n),
+                    i = Math.sin(r),
+                    r = Math.cos(r);
+                  return [Math.atan2(t * i, n * r), Math.asin(n && (e * i) / n)];
+                }),
+                t
+              );
+            }
+            var ci = ui(
+                function (t) {
+                  return Math.sqrt(2 / (1 + t));
+                },
+                function (t) {
+                  return 2 * Math.asin(t / 2);
+                },
+              ),
+              Ai =
+                (((_.geo.azimuthalEqualArea = function () {
+                  return qr(ci);
+                }).raw = ci),
+                ui(function (t) {
+                  t = Math.acos(t);
+                  return t && t / Math.sin(t);
+                }, k));
+            function hi(t, e) {
+              function n(t) {
+                return Math.tan(R / 4 + t / 2);
+              }
+              var r = Math.cos(t),
+                i = t === e ? Math.sin(t) : Math.log(r / Math.cos(e)) / Math.log(n(e) / n(t)),
+                o = (r * Math.pow(n(t), i)) / i;
+              return i
+                ? ((a.invert = function (t, e) {
+                    var e = o - e,
+                      n = Jt(i) * Math.sqrt(t * t + e * e);
+                    return [Math.atan2(t, e) / i, 2 * Math.atan(Math.pow(o / n, 1 / i)) - U];
+                  }),
+                  a)
+                : fi;
+              function a(t, e) {
+                0 < o ? e < -U + Q && (e = -U + Q) : U - Q < e && (e = U - Q);
+                e = o / Math.pow(n(e), i);
+                return [e * Math.sin(i * t), o - e * Math.cos(i * t)];
+              }
+            }
+            function pi(t, e) {
+              var n = Math.cos(t),
+                r = t === e ? Math.sin(t) : (n - Math.cos(e)) / (e - t),
+                i = n / r + t;
+              return F(r) < Q
+                ? Kr
+                : ((o.invert = function (t, e) {
+                    e = i - e;
+                    return [Math.atan2(t, e) / r, i - Jt(r) * Math.sqrt(t * t + e * e)];
+                  }),
+                  o);
+              function o(t, e) {
+                e = i - e;
+                return [e * Math.sin(r * t), i - e * Math.cos(r * t)];
+              }
+            }
+            ((_.geo.azimuthalEquidistant = function () {
+              return qr(Ai);
+            }).raw = Ai),
+              ((_.geo.conicConformal = function () {
+                return xr(hi);
+              }).raw = hi),
+              ((_.geo.conicEquidistant = function () {
+                return xr(pi);
+              }).raw = pi);
+            var di = ui(function (t) {
+              return 1 / t;
+            }, Math.atan);
+            function fi(t, e) {
+              return [t, Math.log(Math.tan(R / 4 + e / 2))];
+            }
+            function gi(t) {
+              var i,
+                o = qr(t),
+                a = o.scale,
+                s = o.translate,
+                l = o.clipExtent;
+              return (
+                (o.scale = function () {
+                  var t = a.apply(o, arguments);
+                  return t === o ? (i ? o.clipExtent(null) : o) : t;
+                }),
+                (o.translate = function () {
+                  var t = s.apply(o, arguments);
+                  return t === o ? (i ? o.clipExtent(null) : o) : t;
+                }),
+                (o.clipExtent = function (t) {
+                  var e,
+                    n,
+                    r = l.apply(o, arguments);
+                  return (
+                    r === o
+                      ? (i = null == t) &&
+                        ((e = R * a()),
+                        (n = s()),
+                        l([
+                          [n[0] - e, n[1] - e],
+                          [n[0] + e, n[1] + e],
+                        ]))
+                      : i && (r = null),
+                    r
+                  );
+                }),
+                o.clipExtent(null)
+              );
+            }
+            ((_.geo.gnomonic = function () {
+              return qr(di);
+            }).raw = di),
+              (fi.invert = function (t, e) {
+                return [t, 2 * Math.atan(Math.exp(e)) - U];
+              }),
+              ((_.geo.mercator = function () {
+                return gi(fi);
+              }).raw = fi);
+            var mi = ui(function () {
+                return 1;
+              }, Math.asin),
+              vi =
+                (((_.geo.orthographic = function () {
+                  return qr(mi);
+                }).raw = mi),
+                ui(
+                  function (t) {
+                    return 1 / (1 + t);
+                  },
+                  function (t) {
+                    return 2 * Math.atan(t);
+                  },
+                ));
+            function bi(t, e) {
+              return [Math.log(Math.tan(R / 4 + e / 2)), -t];
+            }
+            function yi(t) {
+              return t[0];
+            }
+            function wi(t) {
+              return t[1];
+            }
+            function Ei(t) {
+              for (var e = t.length, n = [0, 1], r = 2, i = 2; i < e; i++) {
+                for (; 1 < r && Kt(t[n[r - 2]], t[n[r - 1]], t[i]) <= 0; ) --r;
+                n[r++] = i;
+              }
+              return n.slice(0, r);
+            }
+            function Bi(t, e) {
+              return t[0] - e[0] || t[1] - e[1];
+            }
+            ((_.geo.stereographic = function () {
+              return qr(vi);
+            }).raw = vi),
+              (bi.invert = function (t, e) {
+                return [-e, 2 * Math.atan(Math.exp(t)) - U];
+              }),
+              ((_.geo.transverseMercator = function () {
+                var t = gi(bi),
+                  e = t.center,
+                  n = t.rotate;
+                return (
+                  (t.center = function (t) {
+                    return t ? e([-t[1], t[0]]) : [(t = e())[1], -t[0]];
+                  }),
+                  (t.rotate = function (t) {
+                    return t
+                      ? n([t[0], t[1], 2 < t.length ? t[2] + 90 : 90])
+                      : [(t = n())[0], t[1], t[2] - 90];
+                  }),
+                  n([0, 0, 90])
+                );
+              }).raw = bi),
+              (_.geom = {}),
+              (_.geom.hull = function (t) {
+                var h = yi,
+                  p = wi;
+                return arguments.length
+                  ? e(t)
+                  : ((e.x = function (t) {
+                      return arguments.length ? ((h = t), e) : h;
+                    }),
+                    (e.y = function (t) {
+                      return arguments.length ? ((p = t), e) : p;
+                    }),
+                    e);
+                function e(t) {
+                  if (t.length < 3) return [];
+                  for (var e = N(h), n = N(p), r = t.length, i = [], o = [], a = 0; a < r; a++)
+                    i.push([+e.call(this, t[a], a), +n.call(this, t[a], a), a]);
+                  for (i.sort(Bi), a = 0; a < r; a++) o.push([i[a][0], -i[a][1]]);
+                  var s = Ei(i),
+                    l = Ei(o),
+                    u = l[0] === s[0],
+                    c = l[l.length - 1] === s[s.length - 1],
+                    A = [];
+                  for (a = s.length - 1; 0 <= a; --a) A.push(t[i[s[a]][2]]);
+                  for (a = +u; a < l.length - c; ++a) A.push(t[i[l[a]][2]]);
+                  return A;
+                }
+              }),
+              (_.geom.polygon = function (t) {
+                return pt(t, Ci), t;
+              });
+            var Ci = (_.geom.polygon.prototype = []);
+            function xi(t, e, n) {
+              return (n[0] - e[0]) * (t[1] - e[1]) < (n[1] - e[1]) * (t[0] - e[0]);
+            }
+            function Ii(t, e, n, r) {
+              var i = t[0],
+                o = n[0],
+                a = e[0] - i,
+                s = r[0] - o,
+                t = t[1],
+                n = n[1],
+                e = e[1] - t,
+                r = r[1] - n,
+                n = (s * (t - n) - r * (i - o)) / (r * a - s * e);
+              return [i + n * a, t + n * e];
+            }
+            function Mi(t) {
+              var e = t[0],
+                t = t[t.length - 1];
+              return !(e[0] - t[0] || e[1] - t[1]);
+            }
+            (Ci.area = function () {
+              for (var t, e = -1, n = this.length, r = this[n - 1], i = 0; ++e < n; )
+                (t = r), (r = this[e]), (i += t[1] * r[0] - t[0] * r[1]);
+              return 0.5 * i;
+            }),
+              (Ci.centroid = function (t) {
+                var e,
+                  n,
+                  r = -1,
+                  i = this.length,
+                  o = 0,
+                  a = 0,
+                  s = this[i - 1];
+                for (arguments.length || (t = -1 / (6 * this.area())); ++r < i; )
+                  (e = s),
+                    (s = this[r]),
+                    (n = e[0] * s[1] - s[0] * e[1]),
+                    (o += (e[0] + s[0]) * n),
+                    (a += (e[1] + s[1]) * n);
+                return [o * t, a * t];
+              }),
+              (Ci.clip = function (t) {
+                for (
+                  var e,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s = Mi(t),
+                    l = -1,
+                    u = this.length - Mi(this),
+                    c = this[u - 1];
+                  ++l < u;
+
+                ) {
+                  for (
+                    e = t.slice(), t.length = 0, i = this[l], o = e[(r = e.length - s) - 1], n = -1;
+                    ++n < r;
+
+                  )
+                    xi((a = e[n]), c, i)
+                      ? (xi(o, c, i) || t.push(Ii(o, a, c, i)), t.push(a))
+                      : xi(o, c, i) && t.push(Ii(o, a, c, i)),
+                      (o = a);
+                  s && t.push(t[0]), (c = i);
+                }
+                return t;
+              });
+            var Di,
+              Si,
+              ki,
+              Fi,
+              Qi,
+              _i = [],
+              Ti = [];
+            function Ri() {
+              Xi(this), (this.edge = this.site = this.circle = null);
+            }
+            function Ui(t) {
+              var e = _i.pop() || new Ri();
+              return (e.site = t), e;
+            }
+            function Ni(t) {
+              ji(t), ki.remove(t), _i.push(t), Xi(t);
+            }
+            function Pi(t) {
+              for (var e, n, r, i, o = t.x, a = t.y, s = ki._; s; )
+                if (((r = Li(s, a) - o), Q < r)) s = s.L;
+                else {
+                  if (
+                    ((i =
+                      o -
+                      (function (t, e) {
+                        var n = t.N;
+                        if (n) return Li(n, e);
+                        n = t.site;
+                        return n.y === e ? n.x : 1 / 0;
+                      })(s, a)),
+                    !(Q < i))
+                  ) {
+                    -Q < r ? ((e = s.P), (n = s)) : -Q < i ? (n = (e = s).N) : (e = n = s);
+                    break;
+                  }
+                  if (!s.R) {
+                    e = s;
+                    break;
+                  }
+                  s = s.R;
+                }
+              var l,
+                u,
+                c,
+                A,
+                h,
+                p,
+                d,
+                f,
+                g,
+                m,
+                v = Ui(t);
+              if ((ki.insert(e, v), e || n)) {
+                if (e === n)
+                  return (
+                    ji(e),
+                    (n = Ui(e.site)),
+                    ki.insert(v, n),
+                    (v.edge = n.edge = Wi(e.site, v.site)),
+                    Hi(e),
+                    void Hi(n)
+                  );
+                n
+                  ? (ji(e),
+                    ji(n),
+                    (u = (l = e.site).x),
+                    (c = l.y),
+                    (A = t.x - u),
+                    (m = t.y - c),
+                    (p = (h = n.site).x - u),
+                    (d = h.y - c),
+                    Ji(
+                      n.edge,
+                      l,
+                      h,
+                      (m = {
+                        x:
+                          (d * (f = A * A + m * m) - m * (g = p * p + d * d)) /
+                            (d = 2 * (A * d - m * p)) +
+                          u,
+                        y: (A * g - p * f) / d + c,
+                      }),
+                    ),
+                    (v.edge = Wi(l, t, null, m)),
+                    (n.edge = Wi(t, h, null, m)),
+                    Hi(e),
+                    Hi(n))
+                  : (v.edge = Wi(e.site, v.site));
+              }
+            }
+            function Li(t, e) {
+              var n = t.site,
+                r = n.x,
+                i = n.y,
+                o = i - e;
+              if (!o) return r;
+              t = t.P;
+              if (!t) return -1 / 0;
+              (t = (n = t.site).x), (n = n.y), (e = n - e);
+              if (!e) return t;
+              var a = t - r,
+                s = 1 / o - 1 / e,
+                l = a / e;
+              return s
+                ? (-l + Math.sqrt(l * l - 2 * s * ((a * a) / (-2 * e) - n + e / 2 + i - o / 2))) /
+                    s +
+                    r
+                : (r + t) / 2;
+            }
+            function Yi(t) {
+              (this.site = t), (this.edges = []);
+            }
+            function Oi(t) {
+              for (
+                var e,
+                  n,
+                  r,
+                  i,
+                  o,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c = t[0][0],
+                  A = t[1][0],
+                  h = t[0][1],
+                  p = t[1][1],
+                  d = Si,
+                  f = d.length;
+                f--;
+
+              )
+                if ((i = d[f]) && i.prepare())
+                  for (s = (a = i.edges).length, o = 0; o < s; )
+                    (n = (u = a[o].end()).x),
+                      (r = u.y),
+                      (e = (l = a[++o % s].start()).x),
+                      (l = l.y),
+                      (F(n - e) > Q || F(r - l) > Q) &&
+                        (a.splice(
+                          o,
+                          0,
+                          new Ki(
+                            (function (t, e, n) {
+                              t = new qi(t, null);
+                              return (t.a = e), (t.b = n), Di.push(t), t;
+                            })(
+                              i.site,
+                              u,
+                              F(n - c) < Q && Q < p - r
+                                ? { x: c, y: F(e - c) < Q ? l : p }
+                                : F(r - p) < Q && Q < A - n
+                                  ? { x: F(l - p) < Q ? e : A, y: p }
+                                  : F(n - A) < Q && Q < r - h
+                                    ? { x: A, y: F(e - A) < Q ? l : h }
+                                    : F(r - h) < Q && Q < n - c
+                                      ? { x: F(l - h) < Q ? e : c, y: h }
+                                      : null,
+                            ),
+                            i.site,
+                            null,
+                          ),
+                        ),
+                        ++s);
+            }
+            function Gi(t, e) {
+              return e.angle - t.angle;
+            }
+            function zi() {
+              Xi(this), (this.x = this.y = this.arc = this.site = this.cy = null);
+            }
+            function Hi(t) {
+              var e = t.P,
+                n = t.N;
+              if (e && n) {
+                var e = e.site,
+                  r = t.site,
+                  n = n.site;
+                if (e !== n) {
+                  var i = r.x,
+                    o = r.y,
+                    a = e.x - i,
+                    e = e.y - o,
+                    s = n.x - i,
+                    l = 2 * (a * (n = n.y - o) - e * s);
+                  if (!(-qt <= l)) {
+                    for (
+                      var u = a * a + e * e,
+                        c = s * s + n * n,
+                        e = (n * u - e * c) / l,
+                        a = (a * c - s * u) / l,
+                        n = a + o,
+                        A = Ti.pop() || new zi(),
+                        h =
+                          ((A.arc = t),
+                          (A.site = r),
+                          (A.x = e + i),
+                          (A.y = n + Math.sqrt(e * e + a * a)),
+                          (A.cy = n),
+                          (t.circle = A),
+                          null),
+                        p = Qi._;
+                      p;
+
+                    )
+                      if (A.y < p.y || (A.y === p.y && A.x <= p.x)) {
+                        if (!p.L) {
+                          h = p.P;
+                          break;
+                        }
+                        p = p.L;
+                      } else {
+                        if (!p.R) {
+                          h = p;
+                          break;
+                        }
+                        p = p.R;
+                      }
+                    Qi.insert(h, A), h || (Fi = A);
+                  }
+                }
+              }
+            }
+            function ji(t) {
+              var e = t.circle;
+              e && (e.P || (Fi = e.N), Qi.remove(e), Ti.push(e), Xi(e), (t.circle = null));
+            }
+            function Vi(t) {
+              for (var e, n = Di, r = Er(t[0][0], t[0][1], t[1][0], t[1][1]), i = n.length; i--; )
+                (!(function (t, e) {
+                  var n = t.b;
+                  if (!n) {
+                    var r = t.a,
+                      i = e[0][0],
+                      o = e[1][0],
+                      a = e[0][1],
+                      e = e[1][1],
+                      s = t.l,
+                      l = t.r,
+                      u = s.x,
+                      s = s.y,
+                      c = l.x,
+                      l = l.y,
+                      A = (u + c) / 2,
+                      h = (s + l) / 2;
+                    if (l === s) {
+                      if (A < i || o <= A) return;
+                      if (c < u) {
+                        if (r) {
+                          if (r.y >= e) return;
+                        } else r = { x: A, y: a };
+                        n = { x: A, y: e };
+                      } else {
+                        if (r) {
+                          if (r.y < a) return;
+                        } else r = { x: A, y: e };
+                        n = { x: A, y: a };
+                      }
+                    } else if (((A = h - (h = (u - c) / (l - s)) * A), h < -1 || 1 < h))
+                      if (c < u) {
+                        if (r) {
+                          if (r.y >= e) return;
+                        } else r = { x: (a - A) / h, y: a };
+                        n = { x: (e - A) / h, y: e };
+                      } else {
+                        if (r) {
+                          if (r.y < a) return;
+                        } else r = { x: (e - A) / h, y: e };
+                        n = { x: (a - A) / h, y: a };
+                      }
+                    else if (s < l) {
+                      if (r) {
+                        if (r.x >= o) return;
+                      } else r = { x: i, y: h * i + A };
+                      n = { x: o, y: h * o + A };
+                    } else {
+                      if (r) {
+                        if (r.x < i) return;
+                      } else r = { x: o, y: h * o + A };
+                      n = { x: i, y: h * i + A };
+                    }
+                    (t.a = r), (t.b = n);
+                  }
+                  return 1;
+                })((e = n[i]), t) ||
+                  !r(e) ||
+                  (F(e.a.x - e.b.x) < Q && F(e.a.y - e.b.y) < Q)) &&
+                  ((e.a = e.b = null), n.splice(i, 1));
+            }
+            function qi(t, e) {
+              (this.l = t), (this.r = e), (this.a = this.b = null);
+            }
+            function Wi(t, e, n, r) {
+              var i = new qi(t, e);
+              return (
+                Di.push(i),
+                n && Ji(i, t, e, n),
+                r && Ji(i, e, t, r),
+                Si[t.i].edges.push(new Ki(i, t, e)),
+                Si[e.i].edges.push(new Ki(i, e, t)),
+                i
+              );
+            }
+            function Ji(t, e, n, r) {
+              t.a || t.b ? (t.l === n ? (t.b = r) : (t.a = r)) : ((t.a = r), (t.l = e), (t.r = n));
+            }
+            function Ki(t, e, n) {
+              var r = t.a,
+                i = t.b;
+              (this.edge = t),
+                (this.site = e),
+                (this.angle = n
+                  ? Math.atan2(n.y - e.y, n.x - e.x)
+                  : t.l === e
+                    ? Math.atan2(i.x - r.x, r.y - i.y)
+                    : Math.atan2(r.x - i.x, i.y - r.y));
+            }
+            function Zi() {
+              this._ = null;
+            }
+            function Xi(t) {
+              t.U = t.C = t.L = t.R = t.P = t.N = null;
+            }
+            function $i(t, e) {
+              var n = e,
+                e = e.R,
+                r = n.U;
+              r ? (r.L === n ? (r.L = e) : (r.R = e)) : (t._ = e),
+                (e.U = r),
+                (n.U = e),
+                (n.R = e.L),
+                n.R && (n.R.U = n),
+                (e.L = n);
+            }
+            function to(t, e) {
+              var n = e,
+                e = e.L,
+                r = n.U;
+              r ? (r.L === n ? (r.L = e) : (r.R = e)) : (t._ = e),
+                (e.U = r),
+                (n.U = e),
+                (n.L = e.R),
+                n.L && (n.L.U = n),
+                (e.R = n);
+            }
+            function eo(t) {
+              for (; t.L; ) t = t.L;
+              return t;
+            }
+            function no(t, e) {
+              var n,
+                r,
+                i,
+                o = t.sort(ro).pop();
+              for (Di = [], Si = new Array(t.length), ki = new Zi(), Qi = new Zi(); ; )
+                if (((i = Fi), o && (!i || o.y < i.y || (o.y === i.y && o.x < i.x))))
+                  (o.x === n && o.y === r) || ((Si[o.i] = new Yi(o)), Pi(o), (n = o.x), (r = o.y)),
+                    (o = t.pop());
+                else {
+                  if (!i) break;
+                  m = g = f = d = p = h = A = c = u = l = s = a = void 0;
+                  for (
+                    var a = i.arc,
+                      s = a.circle,
+                      l = s.x,
+                      u = s.cy,
+                      c = { x: l, y: u },
+                      A = a.P,
+                      h = a.N,
+                      p = [a],
+                      d = (Ni(a), A);
+                    d.circle && F(l - d.circle.x) < Q && F(u - d.circle.cy) < Q;
+
+                  )
+                    (A = d.P), p.unshift(d), Ni(d), (d = A);
+                  p.unshift(d), ji(d);
+                  for (var f = h; f.circle && F(l - f.circle.x) < Q && F(u - f.circle.cy) < Q; )
+                    (h = f.N), p.push(f), Ni(f), (f = h);
+                  p.push(f), ji(f);
+                  for (var g = p.length, m = 1; m < g; ++m)
+                    (f = p[m]), (d = p[m - 1]), Ji(f.edge, d.site, f.site, c);
+                  (d = p[0]), ((f = p[g - 1]).edge = Wi(d.site, f.site, null, c)), Hi(d), Hi(f);
+                }
+              e && (Vi(e), Oi(e));
+              e = { cells: Si, edges: Di };
+              return (ki = Qi = Di = Si = null), e;
+            }
+            function ro(t, e) {
+              return e.y - t.y || e.x - t.x;
+            }
+            (Yi.prototype.prepare = function () {
+              for (var t, e = this.edges, n = e.length; n--; )
+                ((t = e[n].edge).b && t.a) || e.splice(n, 1);
+              return e.sort(Gi), e.length;
+            }),
+              (Ki.prototype = {
+                start: function () {
+                  return this.edge.l === this.site ? this.edge.a : this.edge.b;
+                },
+                end: function () {
+                  return this.edge.l === this.site ? this.edge.b : this.edge.a;
+                },
+              }),
+              (Zi.prototype = {
+                insert: function (t, e) {
+                  var n, r, i;
+                  if (t) {
+                    if (((e.P = t), (e.N = t.N), t.N && (t.N.P = e), (t.N = e), t.R)) {
+                      for (t = t.R; t.L; ) t = t.L;
+                      t.L = e;
+                    } else t.R = e;
+                    n = t;
+                  } else
+                    n = this._
+                      ? ((t = eo(this._)), (e.P = null), ((e.N = t).P = t.L = e), t)
+                      : ((e.P = e.N = null), (this._ = e), null);
+                  for (e.L = e.R = null, e.U = n, e.C = !0, t = e; n && n.C; )
+                    n === (r = n.U).L
+                      ? (i = r.R) && i.C
+                        ? ((n.C = i.C = !1), (r.C = !0), (t = r))
+                        : (t === n.R && ($i(this, n), (n = (t = n).U)),
+                          (n.C = !1),
+                          (r.C = !0),
+                          to(this, r))
+                      : (i = r.L) && i.C
+                        ? ((n.C = i.C = !1), (r.C = !0), (t = r))
+                        : (t === n.L && (to(this, n), (n = (t = n).U)),
+                          (n.C = !1),
+                          (r.C = !0),
+                          $i(this, r)),
+                      (n = t.U);
+                  this._.C = !1;
+                },
+                remove: function (t) {
+                  t.N && (t.N.P = t.P), t.P && (t.P.N = t.N), (t.N = t.P = null);
+                  var e,
+                    n,
+                    r = t.U,
+                    i = t.L,
+                    o = t.R,
+                    a = i ? (o ? eo(o) : i) : o;
+                  if (
+                    (r ? (r.L === t ? (r.L = a) : (r.R = a)) : (this._ = a),
+                    i && o
+                      ? ((n = a.C),
+                        (a.C = t.C),
+                        ((a.L = i).U = a) !== o
+                          ? ((r = a.U), (a.U = t.U), (t = a.R), (r.L = t), ((a.R = o).U = a))
+                          : ((a.U = r), (t = (r = a).R)))
+                      : ((n = t.C), (t = a)),
+                    t && (t.U = r),
+                    !n)
+                  )
+                    if (t && t.C) t.C = !1;
+                    else {
+                      do {
+                        if (t === this._) break;
+                        if (t === r.L) {
+                          if (
+                            ((e = r.R).C && ((e.C = !1), (r.C = !0), $i(this, r), (e = r.R)),
+                            (e.L && e.L.C) || (e.R && e.R.C))
+                          ) {
+                            (e.R && e.R.C) || ((e.L.C = !1), (e.C = !0), to(this, e), (e = r.R)),
+                              (e.C = r.C),
+                              (r.C = e.R.C = !1),
+                              $i(this, r),
+                              (t = this._);
+                            break;
+                          }
+                        } else if (
+                          ((e = r.L).C && ((e.C = !1), (r.C = !0), to(this, r), (e = r.L)),
+                          (e.L && e.L.C) || (e.R && e.R.C))
+                        ) {
+                          (e.L && e.L.C) || ((e.R.C = !1), (e.C = !0), $i(this, e), (e = r.L)),
+                            (e.C = r.C),
+                            (r.C = e.L.C = !1),
+                            to(this, r),
+                            (t = this._);
+                          break;
+                        }
+                      } while (((e.C = !0), (r = (t = r).U), !t.C));
+                      t && (t.C = !1);
+                    }
+                },
+              }),
+              (_.geom.voronoi = function (t) {
+                var e = yi,
+                  n = wi,
+                  r = e,
+                  i = n,
+                  u = io;
+                return t
+                  ? o(t)
+                  : ((o.links = function (e) {
+                      return no(h(e))
+                        .edges.filter(function (t) {
+                          return t.l && t.r;
+                        })
+                        .map(function (t) {
+                          return { source: e[t.l.i], target: e[t.r.i] };
+                        });
+                    }),
+                    (o.triangles = function (c) {
+                      var A = [];
+                      return (
+                        no(h(c)).cells.forEach(function (t, e) {
+                          for (
+                            var n,
+                              r,
+                              i = t.site,
+                              o = t.edges.sort(Gi),
+                              a = -1,
+                              s = o.length,
+                              l = o[s - 1].edge,
+                              u = l.l === i ? l.r : l.l;
+                            ++a < s;
+
+                          )
+                            (n = u),
+                              (u = (l = o[a].edge).l === i ? l.r : l.l),
+                              e < n.i &&
+                                e < u.i &&
+                                ((r = u),
+                                (i.x - r.x) * (n.y - i.y) - (i.x - n.x) * (r.y - i.y) < 0) &&
+                                A.push([c[e], c[n.i], c[u.i]]);
+                        }),
+                        A
+                      );
+                    }),
+                    (o.x = function (t) {
+                      return arguments.length ? ((r = N((e = t))), o) : e;
+                    }),
+                    (o.y = function (t) {
+                      return arguments.length ? ((i = N((n = t))), o) : n;
+                    }),
+                    (o.clipExtent = function (t) {
+                      return arguments.length ? ((u = null == t ? io : t), o) : u === io ? null : u;
+                    }),
+                    (o.size = function (t) {
+                      return arguments.length
+                        ? o.clipExtent(t && [[0, 0], t])
+                        : u === io
+                          ? null
+                          : u && u[1];
+                    }),
+                    o);
+                function o(r) {
+                  var i = new Array(r.length),
+                    o = u[0][0],
+                    a = u[0][1],
+                    s = u[1][0],
+                    l = u[1][1];
+                  return (
+                    no(h(r), u).cells.forEach(function (t, e) {
+                      var n = t.edges,
+                        t = t.site;
+                      (i[e] = n.length
+                        ? n.map(function (t) {
+                            t = t.start();
+                            return [t.x, t.y];
+                          })
+                        : t.x >= o && t.x <= s && t.y >= a && t.y <= l
+                          ? [
+                              [o, l],
+                              [s, l],
+                              [s, a],
+                              [o, a],
+                            ]
+                          : []).point = r[e];
+                    }),
+                    i
+                  );
+                }
+                function h(t) {
+                  return t.map(function (t, e) {
+                    return { x: Math.round(r(t, e) / Q) * Q, y: Math.round(i(t, e) / Q) * Q, i: e };
+                  });
+                }
+              });
+            var io = [
+              [-1e6, -1e6],
+              [1e6, 1e6],
+            ];
+            function oo(t) {
+              return t.x;
+            }
+            function ao(t) {
+              return t.y;
+            }
+            function so() {
+              return { leaf: !0, nodes: [], point: null, x: null, y: null };
+            }
+            function lo(t, e) {
+              (t = _.rgb(t)), (e = _.rgb(e));
+              var n = t.r,
+                r = t.g,
+                i = t.b,
+                o = e.r - n,
+                a = e.g - r,
+                s = e.b - i;
+              return function (t) {
+                return (
+                  '#' +
+                  ye(Math.round(n + o * t)) +
+                  ye(Math.round(r + a * t)) +
+                  ye(Math.round(i + s * t))
+                );
+              };
+            }
+            function uo(t, e) {
+              var n,
+                r = {},
+                i = {};
+              for (n in t) n in e ? (r[n] = fo(t[n], e[n])) : (i[n] = t[n]);
+              for (n in e) n in t || (i[n] = e[n]);
+              return function (t) {
+                for (n in r) i[n] = r[n](t);
+                return i;
+              };
+            }
+            function co(e, n) {
+              return (
+                (e = +e),
+                (n = +n),
+                function (t) {
+                  return e * (1 - t) + n * t;
+                }
+              );
+            }
+            function Ao(t, r) {
+              var e,
+                n,
+                i,
+                o = (ho.lastIndex = po.lastIndex = 0),
+                a = -1,
+                s = [],
+                l = [];
+              for (t += '', r += ''; (e = ho.exec(t)) && (n = po.exec(r)); )
+                (i = n.index) > o && ((i = r.slice(o, i)), s[a] ? (s[a] += i) : (s[++a] = i)),
+                  (e = e[0]) === (n = n[0])
+                    ? s[a]
+                      ? (s[a] += n)
+                      : (s[++a] = n)
+                    : ((s[++a] = null), l.push({ i: a, x: co(e, n) })),
+                  (o = po.lastIndex);
+              return (
+                o < r.length && ((i = r.slice(o)), s[a] ? (s[a] += i) : (s[++a] = i)),
+                s.length < 2
+                  ? l[0]
+                    ? ((r = l[0].x),
+                      function (t) {
+                        return r(t) + '';
+                      })
+                    : function () {
+                        return r;
+                      }
+                  : ((r = l.length),
+                    function (t) {
+                      for (var e, n = 0; n < r; ++n) s[(e = l[n]).i] = e.x(t);
+                      return s.join('');
+                    })
+              );
+            }
+            (_.geom.delaunay = function (t) {
+              return _.geom.voronoi().triangles(t);
+            }),
+              (_.geom.quadtree = function (t, v, b, y, E) {
+                var B,
+                  C = yi,
+                  x = wi;
+                return (B = arguments.length)
+                  ? ((C = oo), (x = ao), 3 === B && ((E = b), (y = v), (b = v = 0)), e(t))
+                  : ((e.x = function (t) {
+                      return arguments.length ? ((C = t), e) : C;
+                    }),
+                    (e.y = function (t) {
+                      return arguments.length ? ((x = t), e) : x;
+                    }),
+                    (e.extent = function (t) {
+                      return arguments.length
+                        ? (null == t
+                            ? (v = b = y = E = null)
+                            : ((v = +t[0][0]), (b = +t[0][1]), (y = +t[1][0]), (E = +t[1][1])),
+                          e)
+                        : null == v
+                          ? null
+                          : [
+                              [v, b],
+                              [y, E],
+                            ];
+                    }),
+                    (e.size = function (t) {
+                      return arguments.length
+                        ? (null == t
+                            ? (v = b = y = E = null)
+                            : ((v = b = 0), (y = +t[0]), (E = +t[1])),
+                          e)
+                        : null == v
+                          ? null
+                          : [y - v, E - b];
+                    }),
+                    e);
+                function e(t) {
+                  var e,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c = N(C),
+                    A = N(x);
+                  if (null != v) (a = v), (s = b), (l = y), (u = E);
+                  else if (((l = u = -(a = s = 1 / 0)), (n = []), (r = []), (o = t.length), B))
+                    for (i = 0; i < o; ++i)
+                      (e = t[i]).x < a && (a = e.x),
+                        e.y < s && (s = e.y),
+                        e.x > l && (l = e.x),
+                        e.y > u && (u = e.y),
+                        n.push(e.x),
+                        r.push(e.y);
+                  else
+                    for (i = 0; i < o; ++i) {
+                      var h = +c((e = t[i]), i),
+                        p = +A(e, i);
+                      h < a && (a = h),
+                        p < s && (s = p),
+                        l < h && (l = h),
+                        u < p && (u = p),
+                        n.push(h),
+                        r.push(p);
+                    }
+                  var d = l - a,
+                    f = u - s;
+                  function g(t, e, n, r, i, o, a, s) {
+                    var l, u, c;
+                    isNaN(n) ||
+                      isNaN(r) ||
+                      (t.leaf
+                        ? ((l = t.x),
+                          (u = t.y),
+                          null != l
+                            ? (F(l - n) + F(u - r) < 0.01 ||
+                                ((c = t.point),
+                                (t.x = t.y = t.point = null),
+                                m(t, c, l, u, i, o, a, s)),
+                              m(t, e, n, r, i, o, a, s))
+                            : ((t.x = n), (t.y = r), (t.point = e)))
+                        : m(t, e, n, r, i, o, a, s));
+                  }
+                  function m(t, e, n, r, i, o, a, s) {
+                    var l = 0.5 * (i + a),
+                      u = 0.5 * (o + s),
+                      c = l <= n,
+                      A = u <= r,
+                      h = (A << 1) | c;
+                    (t.leaf = !1),
+                      c ? (i = l) : (a = l),
+                      A ? (o = u) : (s = u),
+                      g((t = t.nodes[h] || (t.nodes[h] = so())), e, n, r, i, o, a, s);
+                  }
+                  f < d ? (u = s + d) : (l = a + f);
+                  var w = so();
+                  if (
+                    ((w.add = function (t) {
+                      g(w, t, +c(t, ++i), +A(t, i), a, s, l, u);
+                    }),
+                    (w.visit = function (t) {
+                      !(function t(e, n, r, i, o, a) {
+                        {
+                          var s, l;
+                          e(n, r, i, o, a) ||
+                            ((s = 0.5 * (r + o)),
+                            (l = 0.5 * (i + a)),
+                            (n = n.nodes)[0] && t(e, n[0], r, i, s, l),
+                            n[1] && t(e, n[1], s, i, o, l),
+                            n[2] && t(e, n[2], r, l, s, a),
+                            n[3] && t(e, n[3], s, l, o, a));
+                        }
+                      })(t, w, a, s, l, u);
+                    }),
+                    (w.find = function (t) {
+                      return (
+                        (p = t[0]),
+                        (d = t[1]),
+                        (y = 1 / 0),
+                        (function t(e, n, r, i, o) {
+                          if (!(m < n || v < r || i < f || o < g)) {
+                            (a = e.point) &&
+                              (s = (s = p - e.x) * s + (s = d - e.y) * s) < y &&
+                              ((s = Math.sqrt((y = s))),
+                              (f = p - s),
+                              (g = d - s),
+                              (m = p + s),
+                              (v = d + s),
+                              (b = a));
+                            for (
+                              var a,
+                                s,
+                                l = e.nodes,
+                                u = 0.5 * (n + i),
+                                c = 0.5 * (r + o),
+                                A = ((c <= d) << 1) | (u <= p),
+                                h = A + 4;
+                              A < h;
+                              ++A
+                            )
+                              if ((e = l[3 & A]))
+                                switch (3 & A) {
+                                  case 0:
+                                    t(e, n, r, u, c);
+                                    break;
+                                  case 1:
+                                    t(e, u, r, i, c);
+                                    break;
+                                  case 2:
+                                    t(e, n, c, u, o);
+                                    break;
+                                  case 3:
+                                    t(e, u, c, i, o);
+                                }
+                          }
+                        })(w, (f = a), (g = s), (m = l), (v = u)),
+                        b
+                      );
+                      var p, d, f, g, m, v, b, y;
+                    }),
+                    (i = -1),
+                    null == v)
+                  ) {
+                    for (; ++i < o; ) g(w, t[i], n[i], r[i], a, s, l, u);
+                    --i;
+                  } else t.forEach(w.add);
+                  return (n = r = t = e = null), w;
+                }
+              }),
+              (_.interpolateRgb = lo),
+              (_.interpolateObject = uo),
+              (_.interpolateNumber = co),
+              (_.interpolateString = Ao);
+            var ho = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
+              po = new RegExp(ho.source, 'g');
+            function fo(t, e) {
+              for (
+                var n, r = _.interpolators.length;
+                0 <= --r && !(n = _.interpolators[r](t, e));
+
+              );
+              return n;
+            }
+            function go(t, e) {
+              for (
+                var n = [],
+                  r = [],
+                  i = t.length,
+                  o = e.length,
+                  a = Math.min(t.length, e.length),
+                  s = 0;
+                s < a;
+                ++s
+              )
+                n.push(fo(t[s], e[s]));
+              for (; s < i; ++s) r[s] = t[s];
+              for (; s < o; ++s) r[s] = e[s];
+              return function (t) {
+                for (s = 0; s < a; ++s) r[s] = n[s](t);
+                return r;
+              };
+            }
+            (_.interpolate = fo),
+              (_.interpolators = [
+                function (t, e) {
+                  var n = typeof e;
+                  return (
+                    'string' == n
+                      ? Ie.has(e.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(e)
+                        ? lo
+                        : Ao
+                      : e instanceof oe
+                        ? lo
+                        : Array.isArray(e)
+                          ? go
+                          : 'object' == n && isNaN(e)
+                            ? uo
+                            : co
+                  )(t, e);
+                },
+              ]),
+              (_.interpolateArray = go);
+            function mo() {
+              return k;
+            }
+            var vo = _.map({
+                linear: mo,
+                poly: function (e) {
+                  return function (t) {
+                    return Math.pow(t, e);
+                  };
+                },
+                quad: function () {
+                  return Eo;
+                },
+                cubic: function () {
+                  return Bo;
+                },
+                sin: function () {
+                  return xo;
+                },
+                exp: function () {
+                  return Io;
+                },
+                circle: function () {
+                  return Mo;
+                },
+                elastic: function (e, n) {
+                  var r;
+                  arguments.length < 2 && (n = 0.45);
+                  r = arguments.length ? (n / x) * Math.asin(1 / e) : ((e = 1), n / 4);
+                  return function (t) {
+                    return 1 + e * Math.pow(2, -10 * t) * Math.sin(((t - r) * x) / n);
+                  };
+                },
+                back: function (e) {
+                  e = e || 1.70158;
+                  return function (t) {
+                    return t * t * ((e + 1) * t - e);
+                  };
+                },
+                bounce: function () {
+                  return Do;
+                },
+              }),
+              bo = _.map({
+                in: k,
+                out: yo,
+                'in-out': wo,
+                'out-in': function (t) {
+                  return wo(yo(t));
+                },
+              });
+            function yo(e) {
+              return function (t) {
+                return 1 - e(1 - t);
+              };
+            }
+            function wo(e) {
+              return function (t) {
+                return 0.5 * (t < 0.5 ? e(2 * t) : 2 - e(2 - 2 * t));
+              };
+            }
+            function Eo(t) {
+              return t * t;
+            }
+            function Bo(t) {
+              return t * t * t;
+            }
+            function Co(t) {
+              if (t <= 0) return 0;
+              if (1 <= t) return 1;
+              var e = t * t,
+                n = e * t;
+              return 4 * (t < 0.5 ? n : 3 * (t - e) + n - 0.75);
+            }
+            function xo(t) {
+              return 1 - Math.cos(t * U);
+            }
+            function Io(t) {
+              return Math.pow(2, 10 * (t - 1));
+            }
+            function Mo(t) {
+              return 1 - Math.sqrt(1 - t * t);
+            }
+            function Do(t) {
+              return t < 1 / 2.75
+                ? 7.5625 * t * t
+                : t < 2 / 2.75
+                  ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75
+                  : t < 2.5 / 2.75
+                    ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375
+                    : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;
+            }
+            function So(e, n) {
+              return (
+                (n -= e),
+                function (t) {
+                  return Math.round(e + n * t);
+                }
+              );
+            }
+            function ko(t) {
+              var e,
+                n,
+                r = [t.a, t.b],
+                i = [t.c, t.d],
+                o = Qo(r),
+                a = Fo(r, i),
+                s = Qo((((e = i)[0] += (s = -a) * (n = r)[0]), (e[1] += s * n[1]), e)) || 0;
+              r[0] * i[1] < i[0] * r[1] && ((r[0] *= -1), (r[1] *= -1), (o *= -1), (a *= -1)),
+                (this.rotate = (o ? Math.atan2(r[1], r[0]) : Math.atan2(-i[0], i[1])) * I),
+                (this.translate = [t.e, t.f]),
+                (this.scale = [o, s]),
+                (this.skew = s ? Math.atan2(a, s) * I : 0);
+            }
+            function Fo(t, e) {
+              return t[0] * e[0] + t[1] * e[1];
+            }
+            function Qo(t) {
+              var e = Math.sqrt(Fo(t, t));
+              return e && ((t[0] /= e), (t[1] /= e)), e;
+            }
+            (_.ease = function (t) {
+              var e,
+                n = t.indexOf('-'),
+                r = 0 <= n ? t.slice(0, n) : t,
+                n = 0 <= n ? t.slice(n + 1) : 'in',
+                r = vo.get(r) || mo,
+                n = bo.get(n) || k;
+              return (
+                (e = n(r.apply(null, S.call(arguments, 1)))),
+                function (t) {
+                  return t <= 0 ? 0 : 1 <= t ? 1 : e(t);
+                }
+              );
+            }),
+              (_.interpolateHcl = function (t, e) {
+                (t = _.hcl(t)), (e = _.hcl(e));
+                var n = t.h,
+                  r = t.c,
+                  i = t.l,
+                  o = e.h - n,
+                  a = e.c - r,
+                  s = e.l - i;
+                isNaN(a) && ((a = 0), (r = isNaN(r) ? e.c : r));
+                isNaN(o)
+                  ? ((o = 0), (n = isNaN(n) ? e.h : n))
+                  : 180 < o
+                    ? (o -= 360)
+                    : o < -180 && (o += 360);
+                return function (t) {
+                  return le(n + o * t, r + a * t, i + s * t) + '';
+                };
+              }),
+              (_.interpolateHsl = function (t, e) {
+                (t = _.hsl(t)), (e = _.hsl(e));
+                var n = t.h,
+                  r = t.s,
+                  i = t.l,
+                  o = e.h - n,
+                  a = e.s - r,
+                  s = e.l - i;
+                isNaN(a) && ((a = 0), (r = isNaN(r) ? e.s : r));
+                isNaN(o)
+                  ? ((o = 0), (n = isNaN(n) ? e.h : n))
+                  : 180 < o
+                    ? (o -= 360)
+                    : o < -180 && (o += 360);
+                return function (t) {
+                  return se(n + o * t, r + a * t, i + s * t) + '';
+                };
+              }),
+              (_.interpolateLab = function (t, e) {
+                (t = _.lab(t)), (e = _.lab(e));
+                var n = t.l,
+                  r = t.a,
+                  i = t.b,
+                  o = e.l - n,
+                  a = e.a - r,
+                  s = e.b - i;
+                return function (t) {
+                  return pe(n + o * t, r + a * t, i + s * t) + '';
+                };
+              }),
+              (_.interpolateRound = So),
+              (_.transform = function (t) {
+                var n = T.createElementNS(_.ns.prefix.svg, 'g');
+                return (_.transform = function (t) {
+                  var e;
+                  return (
+                    null != t &&
+                      (n.setAttribute('transform', t), (e = n.transform.baseVal.consolidate())),
+                    new ko(e ? e.matrix : _o)
+                  );
+                })(t);
+              }),
+              (ko.prototype.toString = function () {
+                return (
+                  'translate(' +
+                  this.translate +
+                  ')rotate(' +
+                  this.rotate +
+                  ')skewX(' +
+                  this.skew +
+                  ')scale(' +
+                  this.scale +
+                  ')'
+                );
+              });
+            var _o = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
+            function To(t) {
+              return t.length ? t.pop() + ',' : '';
+            }
+            function Ro(t, e) {
+              var n,
+                r,
+                i,
+                o,
+                a,
+                s,
+                l = [],
+                u = [];
+              return (
+                (t = _.transform(t)),
+                (e = _.transform(e)),
+                (r = t.translate),
+                (i = e.translate),
+                (a = l),
+                (o = u),
+                r[0] !== i[0] || r[1] !== i[1]
+                  ? ((n = a.push('translate(', null, ',', null, ')')),
+                    o.push({ i: n - 4, x: co(r[0], i[0]) }, { i: n - 2, x: co(r[1], i[1]) }))
+                  : (i[0] || i[1]) && a.push('translate(' + i + ')'),
+                (o = t.rotate),
+                (n = e.rotate),
+                (r = l),
+                (a = u),
+                o !== n
+                  ? (180 < o - n ? (n += 360) : 180 < n - o && (o += 360),
+                    a.push({ i: r.push(To(r) + 'rotate(', null, ')') - 2, x: co(o, n) }))
+                  : n && r.push(To(r) + 'rotate(' + n + ')'),
+                (i = t.skew),
+                (a = e.skew),
+                (o = l),
+                (r = u),
+                i !== a
+                  ? r.push({ i: o.push(To(o) + 'skewX(', null, ')') - 2, x: co(i, a) })
+                  : a && o.push(To(o) + 'skewX(' + a + ')'),
+                (r = t.scale),
+                (i = e.scale),
+                (o = l),
+                (a = u),
+                r[0] !== i[0] || r[1] !== i[1]
+                  ? ((s = o.push(To(o) + 'scale(', null, ',', null, ')')),
+                    a.push({ i: s - 4, x: co(r[0], i[0]) }, { i: s - 2, x: co(r[1], i[1]) }))
+                  : (1 === i[0] && 1 === i[1]) || o.push(To(o) + 'scale(' + i + ')'),
+                (t = e = null),
+                function (t) {
+                  for (var e, n = -1, r = u.length; ++n < r; ) l[(e = u[n]).i] = e.x(t);
+                  return l.join('');
+                }
+              );
+            }
+            function Uo(e, n) {
+              return (
+                (n = (n -= e = +e) || 1 / n),
+                function (t) {
+                  return (t - e) / n;
+                }
+              );
+            }
+            function No(e, n) {
+              return (
+                (n = (n -= e = +e) || 1 / n),
+                function (t) {
+                  return Math.max(0, Math.min(1, (t - e) / n));
+                }
+              );
+            }
+            function Po(t) {
+              for (var e = [], n = t.parent; null != n; ) e.push(t), (n = (t = n).parent);
+              return e.push(t), e;
+            }
+            function Lo(t) {
+              t.fixed |= 2;
+            }
+            function Yo(t) {
+              t.fixed &= -7;
+            }
+            function Oo(t) {
+              (t.fixed |= 4), (t.px = t.x), (t.py = t.y);
+            }
+            function Go(t) {
+              t.fixed &= -5;
+            }
+            (_.interpolateTransform = Ro),
+              (_.layout = {}),
+              (_.layout.bundle = function () {
+                return function (t) {
+                  for (var e = [], n = -1, r = t.length; ++n < r; )
+                    e.push(
+                      (function (t) {
+                        var e = t.source,
+                          n = t.target,
+                          r = (function (t, e) {
+                            if (t === e) return t;
+                            var n = Po(t),
+                              r = Po(e),
+                              i = n.pop(),
+                              o = r.pop(),
+                              a = null;
+                            for (; i === o; ) (a = i), (i = n.pop()), (o = r.pop());
+                            return a;
+                          })(e, n),
+                          i = [e];
+                        for (; e !== r; ) (e = e.parent), i.push(e);
+                        var o = i.length;
+                        for (; n !== r; ) i.splice(o, 0, n), (n = n.parent);
+                        return i;
+                      })(t[n]),
+                    );
+                  return e;
+                };
+              }),
+              (_.layout.chord = function () {
+                var g,
+                  m,
+                  v,
+                  b,
+                  y,
+                  w,
+                  E,
+                  e = {},
+                  B = 0;
+                function t() {
+                  var t,
+                    e,
+                    n,
+                    r,
+                    i,
+                    o = {},
+                    a = [],
+                    s = _.range(b),
+                    l = [];
+                  for (g = [], m = [], t = 0, r = -1; ++r < b; ) {
+                    for (e = 0, i = -1; ++i < b; ) e += v[r][i];
+                    a.push(e), l.push(_.range(b)), (t += e);
+                  }
+                  for (
+                    y &&
+                      s.sort(function (t, e) {
+                        return y(a[t], a[e]);
+                      }),
+                      w &&
+                        l.forEach(function (t, n) {
+                          t.sort(function (t, e) {
+                            return w(v[n][t], v[n][e]);
+                          });
+                        }),
+                      t = (x - B * b) / t,
+                      e = 0,
+                      r = -1;
+                    ++r < b;
+
+                  ) {
+                    for (n = e, i = -1; ++i < b; ) {
+                      var u = s[r],
+                        c = l[u][i],
+                        A = v[u][c],
+                        h = e,
+                        p = (e += A * t);
+                      o[u + '-' + c] = {
+                        index: u,
+                        subindex: c,
+                        startAngle: h,
+                        endAngle: p,
+                        value: A,
+                      };
+                    }
+                    (m[u] = { index: u, startAngle: n, endAngle: e, value: a[u] }), (e += B);
+                  }
+                  for (r = -1; ++r < b; )
+                    for (i = r - 1; ++i < b; ) {
+                      var d = o[r + '-' + i],
+                        f = o[i + '-' + r];
+                      (d.value || f.value) &&
+                        g.push(
+                          d.value < f.value ? { source: f, target: d } : { source: d, target: f },
+                        );
+                    }
+                  E && C();
+                }
+                function C() {
+                  g.sort(function (t, e) {
+                    return E(
+                      (t.source.value + t.target.value) / 2,
+                      (e.source.value + e.target.value) / 2,
+                    );
+                  });
+                }
+                return (
+                  (e.matrix = function (t) {
+                    return arguments.length ? ((b = (v = t) && v.length), (g = m = null), e) : v;
+                  }),
+                  (e.padding = function (t) {
+                    return arguments.length ? ((B = t), (g = m = null), e) : B;
+                  }),
+                  (e.sortGroups = function (t) {
+                    return arguments.length ? ((y = t), (g = m = null), e) : y;
+                  }),
+                  (e.sortSubgroups = function (t) {
+                    return arguments.length ? ((w = t), (g = null), e) : w;
+                  }),
+                  (e.sortChords = function (t) {
+                    return arguments.length ? ((E = t), g && C(), e) : E;
+                  }),
+                  (e.chords = function () {
+                    return g || t(), g;
+                  }),
+                  (e.groups = function () {
+                    return m || t(), m;
+                  }),
+                  e
+                );
+              }),
+              (_.layout.force = function () {
+                var A,
+                  t,
+                  h,
+                  p,
+                  d,
+                  f,
+                  i = {},
+                  g = _.dispatch('start', 'tick', 'end'),
+                  m = [1, 1],
+                  v = 0.9,
+                  o = zo,
+                  a = Ho,
+                  b = -30,
+                  y = jo,
+                  w = 0.1,
+                  E = 0.64,
+                  B = [],
+                  C = [];
+                function e(t) {
+                  (t.px = _.event.x), (t.py = _.event.y), i.resume();
+                }
+                return (
+                  (i.tick = function () {
+                    if ((h *= 0.99) < 0.005)
+                      return (A = null), g.end({ type: 'end', alpha: (h = 0) }), !0;
+                    for (var t, e, n, r, i, o, a, s, l = B.length, u = C.length, c = 0; c < u; ++c)
+                      (n = (e = C[c]).source),
+                        (i = (a = (r = e.target).x - n.x) * a + (s = r.y - n.y) * s) &&
+                          ((a *= i = (h * d[c] * ((i = Math.sqrt(i)) - p[c])) / i),
+                          (s *= i),
+                          (r.x -=
+                            a * (o = n.weight + r.weight ? n.weight / (n.weight + r.weight) : 0.5)),
+                          (r.y -= s * o),
+                          (n.x += a * (o = 1 - o)),
+                          (n.y += s * o));
+                    if ((o = h * w) && ((a = m[0] / 2), (s = m[1] / 2), (c = -1), o))
+                      for (; ++c < l; ) ((e = B[c]).x += (a - e.x) * o), (e.y += (s - e.y) * o);
+                    if (b)
+                      for (
+                        !(function t(e, n, r) {
+                          var i = 0,
+                            o = 0;
+                          e.charge = 0;
+                          if (!e.leaf)
+                            for (var a, s = e.nodes, l = s.length, u = -1; ++u < l; )
+                              null != (a = s[u]) &&
+                                (t(a, n, r),
+                                (e.charge += a.charge),
+                                (i += a.charge * a.cx),
+                                (o += a.charge * a.cy));
+                          {
+                            var c;
+                            e.point &&
+                              (e.leaf ||
+                                ((e.point.x += Math.random() - 0.5),
+                                (e.point.y += Math.random() - 0.5)),
+                              (c = n * r[e.point.index]),
+                              (e.charge += e.pointCharge = c),
+                              (i += c * e.point.x),
+                              (o += c * e.point.y));
+                          }
+                          e.cx = i / e.charge;
+                          e.cy = o / e.charge;
+                        })((t = _.geom.quadtree(B)), h, f),
+                          c = -1;
+                        ++c < l;
+
+                      )
+                        (e = B[c]).fixed ||
+                          t.visit(
+                            (function (s) {
+                              return function (t, e, n, r) {
+                                if (t.point !== s) {
+                                  var i,
+                                    o = t.cx - s.x,
+                                    a = t.cy - s.y,
+                                    r = r - e,
+                                    e = o * o + a * a;
+                                  if ((r * r) / E < e)
+                                    return (
+                                      e < y &&
+                                        ((i = t.charge / e), (s.px -= o * i), (s.py -= a * i)),
+                                      !0
+                                    );
+                                  t.point &&
+                                    e &&
+                                    e < y &&
+                                    ((i = t.pointCharge / e), (s.px -= o * i), (s.py -= a * i));
+                                }
+                                return !t.charge;
+                              };
+                            })(e),
+                          );
+                    for (c = -1; ++c < l; )
+                      (e = B[c]).fixed
+                        ? ((e.x = e.px), (e.y = e.py))
+                        : ((e.x -= (e.px - (e.px = e.x)) * v), (e.y -= (e.py - (e.py = e.y)) * v));
+                    g.tick({ type: 'tick', alpha: h });
+                  }),
+                  (i.nodes = function (t) {
+                    return arguments.length ? ((B = t), i) : B;
+                  }),
+                  (i.links = function (t) {
+                    return arguments.length ? ((C = t), i) : C;
+                  }),
+                  (i.size = function (t) {
+                    return arguments.length ? ((m = t), i) : m;
+                  }),
+                  (i.linkDistance = function (t) {
+                    return arguments.length ? ((o = 'function' == typeof t ? t : +t), i) : o;
+                  }),
+                  (i.distance = i.linkDistance),
+                  (i.linkStrength = function (t) {
+                    return arguments.length ? ((a = 'function' == typeof t ? t : +t), i) : a;
+                  }),
+                  (i.friction = function (t) {
+                    return arguments.length ? ((v = +t), i) : v;
+                  }),
+                  (i.charge = function (t) {
+                    return arguments.length ? ((b = 'function' == typeof t ? t : +t), i) : b;
+                  }),
+                  (i.chargeDistance = function (t) {
+                    return arguments.length ? ((y = t * t), i) : Math.sqrt(y);
+                  }),
+                  (i.gravity = function (t) {
+                    return arguments.length ? ((w = +t), i) : w;
+                  }),
+                  (i.theta = function (t) {
+                    return arguments.length ? ((E = t * t), i) : Math.sqrt(E);
+                  }),
+                  (i.alpha = function (t) {
+                    return arguments.length
+                      ? ((t = +t),
+                        h
+                          ? 0 < t
+                            ? (h = t)
+                            : ((A.c = null),
+                              (A.t = NaN),
+                              (A = null),
+                              g.end({ type: 'end', alpha: (h = 0) }))
+                          : 0 < t && (g.start({ type: 'start', alpha: (h = t) }), (A = Te(i.tick))),
+                        i)
+                      : h;
+                  }),
+                  (i.start = function () {
+                    for (
+                      var s, t, l = B.length, u = C.length, e = m[0], n = m[1], c = 0;
+                      c < l;
+                      ++c
+                    )
+                      ((t = B[c]).index = c), (t.weight = 0);
+                    for (c = 0; c < u; ++c)
+                      'number' == typeof (t = C[c]).source && (t.source = B[t.source]),
+                        'number' == typeof t.target && (t.target = B[t.target]),
+                        ++t.source.weight,
+                        ++t.target.weight;
+                    for (c = 0; c < l; ++c)
+                      (t = B[c]),
+                        isNaN(t.x) && (t.x = r('x', e)),
+                        isNaN(t.y) && (t.y = r('y', n)),
+                        isNaN(t.px) && (t.px = t.x),
+                        isNaN(t.py) && (t.py = t.y);
+                    if (((p = []), 'function' == typeof o))
+                      for (c = 0; c < u; ++c) p[c] = +o.call(this, C[c], c);
+                    else for (c = 0; c < u; ++c) p[c] = o;
+                    if (((d = []), 'function' == typeof a))
+                      for (c = 0; c < u; ++c) d[c] = +a.call(this, C[c], c);
+                    else for (c = 0; c < u; ++c) d[c] = a;
+                    if (((f = []), 'function' == typeof b))
+                      for (c = 0; c < l; ++c) f[c] = +b.call(this, B[c], c);
+                    else for (c = 0; c < l; ++c) f[c] = b;
+                    function r(t, e) {
+                      if (!s) {
+                        for (s = new Array(l), o = 0; o < l; ++o) s[o] = [];
+                        for (o = 0; o < u; ++o) {
+                          var n = C[o];
+                          s[n.source.index].push(n.target), s[n.target.index].push(n.source);
+                        }
+                      }
+                      for (var r, i = s[c], o = -1, a = i.length; ++o < a; )
+                        if (!isNaN((r = i[o][t]))) return r;
+                      return Math.random() * e;
+                    }
+                    return i.resume();
+                  }),
+                  (i.resume = function () {
+                    return i.alpha(0.1);
+                  }),
+                  (i.stop = function () {
+                    return i.alpha(0);
+                  }),
+                  (i.drag = function () {
+                    if (
+                      ((t =
+                        t ||
+                        _.behavior
+                          .drag()
+                          .origin(k)
+                          .on('dragstart.force', Lo)
+                          .on('drag.force', e)
+                          .on('dragend.force', Yo)),
+                      !arguments.length)
+                    )
+                      return t;
+                    this.on('mouseover.force', Oo).on('mouseout.force', Go).call(t);
+                  }),
+                  _.rebind(i, g, 'on')
+                );
+              });
+            var zo = 20,
+              Ho = 1,
+              jo = 1 / 0;
+            function Vo(t, e) {
+              return _.rebind(t, e, 'sort', 'children', 'value'), ((t.nodes = t).links = Xo), t;
+            }
+            function qo(t, e) {
+              for (var n, r, i = [t]; null != (t = i.pop()); )
+                if ((e(t), (r = t.children) && (n = r.length))) for (; 0 <= --n; ) i.push(r[n]);
+            }
+            function Wo(t, e) {
+              for (var n = [t], r = []; null != (t = n.pop()); )
+                if ((r.push(t), (o = t.children) && (i = o.length)))
+                  for (var i, o, a = -1; ++a < i; ) n.push(o[a]);
+              for (; null != (t = r.pop()); ) e(t);
+            }
+            function Jo(t) {
+              return t.children;
+            }
+            function Ko(t) {
+              return t.value;
+            }
+            function Zo(t, e) {
+              return e.value - t.value;
+            }
+            function Xo(t) {
+              return _.merge(
+                t.map(function (e) {
+                  return (e.children || []).map(function (t) {
+                    return { source: e, target: t };
+                  });
+                }),
+              );
+            }
+            (_.layout.hierarchy = function () {
+              var s = Zo,
+                l = Jo,
+                u = Ko;
+              function c(t) {
+                var e,
+                  n,
+                  r,
+                  i,
+                  o = [t],
+                  a = [];
+                for (t.depth = 0; null != (e = o.pop()); )
+                  if ((a.push(e), (r = l.call(c, e, e.depth)) && (n = r.length))) {
+                    for (; 0 <= --n; ) o.push((i = r[n])), (i.parent = e), (i.depth = e.depth + 1);
+                    u && (e.value = 0), (e.children = r);
+                  } else u && (e.value = +u.call(c, e, e.depth) || 0), delete e.children;
+                return (
+                  Wo(t, function (t) {
+                    var e;
+                    s && (e = t.children) && e.sort(s), u && (e = t.parent) && (e.value += t.value);
+                  }),
+                  a
+                );
+              }
+              return (
+                (c.sort = function (t) {
+                  return arguments.length ? ((s = t), c) : s;
+                }),
+                (c.children = function (t) {
+                  return arguments.length ? ((l = t), c) : l;
+                }),
+                (c.value = function (t) {
+                  return arguments.length ? ((u = t), c) : u;
+                }),
+                (c.revalue = function (t) {
+                  return (
+                    u &&
+                      (qo(t, function (t) {
+                        t.children && (t.value = 0);
+                      }),
+                      Wo(t, function (t) {
+                        var e;
+                        t.children || (t.value = +u.call(c, t, t.depth) || 0),
+                          (e = t.parent) && (e.value += t.value);
+                      })),
+                    t
+                  );
+                }),
+                c
+              );
+            }),
+              (_.layout.partition = function () {
+                var n = _.layout.hierarchy(),
+                  r = [1, 1];
+                function e(t, e) {
+                  t = n.call(this, t, e);
+                  return (
+                    (function t(e, n, r, i) {
+                      var o = e.children;
+                      if (
+                        ((e.x = n),
+                        (e.y = e.depth * i),
+                        (e.dx = r),
+                        (e.dy = i),
+                        o && (a = o.length))
+                      ) {
+                        var a,
+                          s,
+                          l = -1;
+                        for (r = e.value ? r / e.value : 0; ++l < a; )
+                          t((s = o[l]), n, (s = s.value * r), i), (n += s);
+                      }
+                    })(
+                      t[0],
+                      0,
+                      r[0],
+                      r[1] /
+                        (function t(e) {
+                          var n = e.children,
+                            r = 0;
+                          if (n && (i = n.length))
+                            for (var i, o = -1; ++o < i; ) r = Math.max(r, t(n[o]));
+                          return 1 + r;
+                        })(t[0]),
+                    ),
+                    t
+                  );
+                }
+                return (
+                  (e.size = function (t) {
+                    return arguments.length ? ((r = t), e) : r;
+                  }),
+                  Vo(e, n)
+                );
+              }),
+              (_.layout.pie = function () {
+                var A = Number,
+                  h = $o,
+                  p = 0,
+                  d = x,
+                  f = 0;
+                function g(n) {
+                  var e,
+                    t = n.length,
+                    r = n.map(function (t, e) {
+                      return +A.call(g, t, e);
+                    }),
+                    i = +('function' == typeof p ? p.apply(this, arguments) : p),
+                    o = ('function' == typeof d ? d.apply(this, arguments) : d) - i,
+                    a = Math.min(
+                      Math.abs(o) / t,
+                      +('function' == typeof f ? f.apply(this, arguments) : f),
+                    ),
+                    s = a * (o < 0 ? -1 : 1),
+                    l = _.sum(r),
+                    u = l ? (o - t * s) / l : 0,
+                    o = _.range(t),
+                    c = [];
+                  return (
+                    null != h &&
+                      o.sort(
+                        h === $o
+                          ? function (t, e) {
+                              return r[e] - r[t];
+                            }
+                          : function (t, e) {
+                              return h(n[t], n[e]);
+                            },
+                      ),
+                    o.forEach(function (t) {
+                      c[t] = {
+                        data: n[t],
+                        value: (e = r[t]),
+                        startAngle: i,
+                        endAngle: (i += e * u + s),
+                        padAngle: a,
+                      };
+                    }),
+                    c
+                  );
+                }
+                return (
+                  (g.value = function (t) {
+                    return arguments.length ? ((A = t), g) : A;
+                  }),
+                  (g.sort = function (t) {
+                    return arguments.length ? ((h = t), g) : h;
+                  }),
+                  (g.startAngle = function (t) {
+                    return arguments.length ? ((p = t), g) : p;
+                  }),
+                  (g.endAngle = function (t) {
+                    return arguments.length ? ((d = t), g) : d;
+                  }),
+                  (g.padAngle = function (t) {
+                    return arguments.length ? ((f = t), g) : f;
+                  }),
+                  g
+                );
+              });
+            var $o = {};
+            function ta(t) {
+              return t.x;
+            }
+            function ea(t) {
+              return t.y;
+            }
+            function na(t, e, n) {
+              (t.y0 = e), (t.y = n);
+            }
+            _.layout.stack = function () {
+              var A = k,
+                h = oa,
+                p = aa,
+                d = na,
+                f = ta,
+                g = ea;
+              function m(t, e) {
+                if ((n = t.length))
+                  for (
+                    var n,
+                      r,
+                      i,
+                      o = (s = t.map(function (t, e) {
+                        return A.call(m, t, e);
+                      })).map(function (t) {
+                        return t.map(function (t, e) {
+                          return [f.call(m, t, e), g.call(m, t, e)];
+                        });
+                      }),
+                      a = h.call(m, o, e),
+                      s = _.permute(s, a),
+                      o = _.permute(o, a),
+                      l = p.call(m, o, e),
+                      u = s[0].length,
+                      c = 0;
+                    c < u;
+                    ++c
+                  )
+                    for (d.call(m, s[0][c], (i = l[c]), o[0][c][1]), r = 1; r < n; ++r)
+                      d.call(m, s[r][c], (i += o[r - 1][c][1]), o[r][c][1]);
+                return t;
+              }
+              return (
+                (m.values = function (t) {
+                  return arguments.length ? ((A = t), m) : A;
+                }),
+                (m.order = function (t) {
+                  return arguments.length
+                    ? ((h = 'function' == typeof t ? t : ra.get(t) || oa), m)
+                    : h;
+                }),
+                (m.offset = function (t) {
+                  return arguments.length
+                    ? ((p = 'function' == typeof t ? t : ia.get(t) || aa), m)
+                    : p;
+                }),
+                (m.x = function (t) {
+                  return arguments.length ? ((f = t), m) : f;
+                }),
+                (m.y = function (t) {
+                  return arguments.length ? ((g = t), m) : g;
+                }),
+                (m.out = function (t) {
+                  return arguments.length ? ((d = t), m) : d;
+                }),
+                m
+              );
+            };
+            var ra = _.map({
+                'inside-out': function (t) {
+                  for (
+                    var e,
+                      n = t.length,
+                      r = t.map(sa),
+                      i = t.map(la),
+                      o = _.range(n).sort(function (t, e) {
+                        return r[t] - r[e];
+                      }),
+                      a = 0,
+                      s = 0,
+                      l = [],
+                      u = [],
+                      c = 0;
+                    c < n;
+                    ++c
+                  )
+                    (e = o[c]), a < s ? ((a += i[e]), l.push(e)) : ((s += i[e]), u.push(e));
+                  return u.reverse().concat(l);
+                },
+                reverse: function (t) {
+                  return _.range(t.length).reverse();
+                },
+                default: oa,
+              }),
+              ia = _.map({
+                silhouette: function (t) {
+                  for (
+                    var e, n, r = t.length, i = t[0].length, o = [], a = 0, s = [], l = 0;
+                    l < i;
+                    ++l
+                  ) {
+                    for (n = e = 0; e < r; e++) n += t[e][l][1];
+                    a < n && (a = n), o.push(n);
+                  }
+                  for (l = 0; l < i; ++l) s[l] = (a - o[l]) / 2;
+                  return s;
+                },
+                wiggle: function (t) {
+                  var e,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c = t.length,
+                    A = t[0],
+                    h = A.length,
+                    p = [];
+                  for (p[0] = l = u = 0, n = 1; n < h; ++n) {
+                    for (i = e = 0; e < c; ++e) i += t[e][n][1];
+                    for (s = A[n][(o = e = 0)] - A[n - 1][0]; e < c; ++e) {
+                      for (r = 0, a = (t[e][n][1] - t[e][n - 1][1]) / (2 * s); r < e; ++r)
+                        a += (t[r][n][1] - t[r][n - 1][1]) / s;
+                      o += a * t[e][n][1];
+                    }
+                    (p[n] = l -= i ? (o / i) * s : 0), l < u && (u = l);
+                  }
+                  for (n = 0; n < h; ++n) p[n] -= u;
+                  return p;
+                },
+                expand: function (t) {
+                  for (
+                    var e, n, r = t.length, i = t[0].length, o = 1 / r, a = [], s = 0;
+                    s < i;
+                    ++s
+                  ) {
+                    for (n = e = 0; e < r; e++) n += t[e][s][1];
+                    if (n) for (e = 0; e < r; e++) t[e][s][1] /= n;
+                    else for (e = 0; e < r; e++) t[e][s][1] = o;
+                  }
+                  for (s = 0; s < i; ++s) a[s] = 0;
+                  return a;
+                },
+                zero: aa,
+              });
+            function oa(t) {
+              return _.range(t.length);
+            }
+            function aa(t) {
+              for (var e = -1, n = t[0].length, r = []; ++e < n; ) r[e] = 0;
+              return r;
+            }
+            function sa(t) {
+              for (var e, n = 1, r = 0, i = t[0][1], o = t.length; n < o; ++n)
+                (e = t[n][1]) > i && ((r = n), (i = e));
+              return r;
+            }
+            function la(t) {
+              return t.reduce(ua, 0);
+            }
+            function ua(t, e) {
+              return t + e[1];
+            }
+            function ca(t, e) {
+              return Aa(t, Math.ceil(Math.log(e.length) / Math.LN2 + 1));
+            }
+            function Aa(t, e) {
+              for (var n = -1, r = +t[0], i = (t[1] - r) / e, o = []; ++n <= e; ) o[n] = i * n + r;
+              return o;
+            }
+            function ha(t) {
+              return [_.min(t), _.max(t)];
+            }
+            function pa(t, e) {
+              return t.value - e.value;
+            }
+            function da(t, e) {
+              var n = t._pack_next;
+              ((t._pack_next = e)._pack_prev = t), ((e._pack_next = n)._pack_prev = e);
+            }
+            function fa(t, e) {
+              (t._pack_next = e)._pack_prev = t;
+            }
+            function ga(t, e) {
+              var n = e.x - t.x,
+                r = e.y - t.y,
+                t = t.r + e.r;
+              return n * n + r * r < 0.999 * t * t;
+            }
+            function ma(t) {
+              if ((e = t.children) && (a = e.length)) {
+                var e,
+                  n,
+                  r,
+                  i,
+                  o,
+                  a,
+                  s = 1 / 0,
+                  l = -1 / 0,
+                  u = 1 / 0,
+                  c = -1 / 0;
+                if (
+                  (e.forEach(va),
+                  ((n = e[0]).x = -n.r),
+                  (n.y = 0),
+                  b(n),
+                  1 < a && (((r = e[1]).x = r.r), (r.y = 0), b(r), 2 < a))
+                )
+                  for (
+                    ya(n, r, (i = e[2])),
+                      b(i),
+                      da(n, i),
+                      da((n._pack_prev = i), r),
+                      r = n._pack_next,
+                      v = 3;
+                    v < a;
+                    v++
+                  ) {
+                    ya(n, r, (i = e[v]));
+                    for (var A = 0, h = 1, p = 1, d = r._pack_next; d !== r; d = d._pack_next, h++)
+                      if (ga(d, i)) {
+                        A = 1;
+                        break;
+                      }
+                    if (1 == A)
+                      for (
+                        o = n._pack_prev;
+                        o !== d._pack_prev && !ga(o, i);
+                        o = o._pack_prev, p++
+                      );
+                    A
+                      ? (h < p || (h == p && r.r < n.r) ? fa(n, (r = d)) : fa((n = o), r), v--)
+                      : (da(n, i), b((r = i)));
+                  }
+                for (var f = (s + l) / 2, g = (u + c) / 2, m = 0, v = 0; v < a; v++)
+                  ((i = e[v]).x -= f),
+                    (i.y -= g),
+                    (m = Math.max(m, i.r + Math.sqrt(i.x * i.x + i.y * i.y)));
+                (t.r = m), e.forEach(ba);
+              }
+              function b(t) {
+                (s = Math.min(t.x - t.r, s)),
+                  (l = Math.max(t.x + t.r, l)),
+                  (u = Math.min(t.y - t.r, u)),
+                  (c = Math.max(t.y + t.r, c));
+              }
+            }
+            function va(t) {
+              t._pack_next = t._pack_prev = t;
+            }
+            function ba(t) {
+              delete t._pack_next, delete t._pack_prev;
+            }
+            function ya(t, e, n) {
+              var r,
+                i,
+                o = t.r + n.r,
+                a = e.x - t.x,
+                s = e.y - t.y;
+              o && (a || s)
+                ? ((e = e.r + n.r),
+                  (i = 0.5 + ((o *= o) - (e *= e)) / (2 * (r = a * a + s * s))),
+                  (e = Math.sqrt(Math.max(0, 2 * e * (o + r) - (o -= r) * o - e * e)) / (2 * r)),
+                  (n.x = t.x + i * a + e * s),
+                  (n.y = t.y + i * s - e * a))
+                : ((n.x = t.x + o), (n.y = t.y));
+            }
+            function wa(t, e) {
+              return t.parent == e.parent ? 1 : 2;
+            }
+            function Ea(t) {
+              var e = t.children;
+              return e.length ? e[0] : t.t;
+            }
+            function Ba(t) {
+              var e,
+                n = t.children;
+              return (e = n.length) ? n[e - 1] : t.t;
+            }
+            function Ca(t) {
+              return { x: t.x, y: t.y, dx: t.dx, dy: t.dy };
+            }
+            function xa(t, e) {
+              var n = t.x + e[3],
+                r = t.y + e[0],
+                i = t.dx - e[1] - e[3],
+                t = t.dy - e[0] - e[2];
+              return (
+                i < 0 && ((n += i / 2), (i = 0)),
+                t < 0 && ((r += t / 2), (t = 0)),
+                { x: n, y: r, dx: i, dy: t }
+              );
+            }
+            function Ia(t) {
+              var e = t[0],
+                t = t[t.length - 1];
+              return e < t ? [e, t] : [t, e];
+            }
+            function Ma(t) {
+              return t.rangeExtent ? t.rangeExtent() : Ia(t.range());
+            }
+            function Da(t, e, n, r) {
+              var i = n(t[0], t[1]),
+                o = r(e[0], e[1]);
+              return function (t) {
+                return o(i(t));
+              };
+            }
+            function Sa(t, e) {
+              var n,
+                r = 0,
+                i = t.length - 1,
+                o = t[r],
+                a = t[i];
+              return (
+                a < o && ((n = r), (r = i), (i = n), (n = o), (o = a), (a = n)),
+                (t[r] = e.floor(o)),
+                (t[i] = e.ceil(a)),
+                t
+              );
+            }
+            function ka(e) {
+              return e
+                ? {
+                    floor: function (t) {
+                      return Math.floor(t / e) * e;
+                    },
+                    ceil: function (t) {
+                      return Math.ceil(t / e) * e;
+                    },
+                  }
+                : Fa;
+            }
+            (_.layout.histogram = function () {
+              var A = !0,
+                h = Number,
+                p = ha,
+                d = ca;
+              function n(t, e) {
+                for (
+                  var n,
+                    r,
+                    i = [],
+                    o = t.map(h, this),
+                    a = p.call(this, o, e),
+                    s = d.call(this, a, o, e),
+                    e = -1,
+                    l = o.length,
+                    u = s.length - 1,
+                    c = A ? 1 : 1 / l;
+                  ++e < u;
+
+                )
+                  ((n = i[e] = []).dx = s[e + 1] - (n.x = s[e])), (n.y = 0);
+                if (0 < u)
+                  for (e = -1; ++e < l; )
+                    (r = o[e]) >= a[0] &&
+                      r <= a[1] &&
+                      (((n = i[_.bisect(s, r, 1, u) - 1]).y += c), n.push(t[e]));
+                return i;
+              }
+              return (
+                (n.value = function (t) {
+                  return arguments.length ? ((h = t), n) : h;
+                }),
+                (n.range = function (t) {
+                  return arguments.length ? ((p = N(t)), n) : p;
+                }),
+                (n.bins = function (e) {
+                  return arguments.length
+                    ? ((d =
+                        'number' == typeof e
+                          ? function (t) {
+                              return Aa(t, e);
+                            }
+                          : N(e)),
+                      n)
+                    : d;
+                }),
+                (n.frequency = function (t) {
+                  return arguments.length ? ((A = !!t), n) : A;
+                }),
+                n
+              );
+            }),
+              (_.layout.pack = function () {
+                var a,
+                  s = _.layout.hierarchy().sort(pa),
+                  l = 0,
+                  u = [1, 1];
+                function e(t, e) {
+                  var n,
+                    t = s.call(this, t, e),
+                    e = t[0],
+                    r = u[0],
+                    i = u[1],
+                    o =
+                      null == a
+                        ? Math.sqrt
+                        : 'function' == typeof a
+                          ? a
+                          : function () {
+                              return a;
+                            };
+                  return (
+                    (e.x = e.y = 0),
+                    Wo(e, function (t) {
+                      t.r = +o(t.value);
+                    }),
+                    Wo(e, ma),
+                    l &&
+                      ((n = (l * (a ? 1 : Math.max((2 * e.r) / r, (2 * e.r) / i))) / 2),
+                      Wo(e, function (t) {
+                        t.r += n;
+                      }),
+                      Wo(e, ma),
+                      Wo(e, function (t) {
+                        t.r -= n;
+                      })),
+                    (function t(e, n, r, i) {
+                      var o = e.children;
+                      e.x = n += i * e.x;
+                      e.y = r += i * e.y;
+                      e.r *= i;
+                      if (o) for (var a = -1, s = o.length; ++a < s; ) t(o[a], n, r, i);
+                    })(e, r / 2, i / 2, a ? 1 : 1 / Math.max((2 * e.r) / r, (2 * e.r) / i)),
+                    t
+                  );
+                }
+                return (
+                  (e.size = function (t) {
+                    return arguments.length ? ((u = t), e) : u;
+                  }),
+                  (e.radius = function (t) {
+                    return arguments.length
+                      ? ((a = null == t || 'function' == typeof t ? t : +t), e)
+                      : a;
+                  }),
+                  (e.padding = function (t) {
+                    return arguments.length ? ((l = +t), e) : l;
+                  }),
+                  Vo(e, s)
+                );
+              }),
+              (_.layout.tree = function () {
+                var u = _.layout.hierarchy().sort(null).value(null),
+                  h = wa,
+                  c = [1, 1],
+                  A = null;
+                function e(t, e) {
+                  var n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s,
+                    t = u.call(this, t, e),
+                    e = t[0],
+                    l = (function (t) {
+                      var e,
+                        t = { A: null, children: [t] },
+                        n = [t];
+                      for (; null != (e = n.pop()); )
+                        for (var r, i = e.children, o = 0, a = i.length; o < a; ++o)
+                          n.push(
+                            ((i[o] = r =
+                              {
+                                _: i[o],
+                                parent: e,
+                                children: ((r = i[o].children) && r.slice()) || [],
+                                A: null,
+                                a: null,
+                                z: 0,
+                                m: 0,
+                                c: 0,
+                                s: 0,
+                                t: null,
+                                i: o,
+                              }).a = r),
+                          );
+                      return t.children[0];
+                    })(e);
+                  return (
+                    Wo(l, p),
+                    (l.parent.m = -l.z),
+                    qo(l, d),
+                    A
+                      ? qo(e, f)
+                      : (qo((i = r = n = e), function (t) {
+                          t.x < n.x && (n = t), t.x > r.x && (r = t), t.depth > i.depth && (i = t);
+                        }),
+                        (o = h(n, r) / 2 - n.x),
+                        (a = c[0] / (r.x + h(r, n) / 2 + o)),
+                        (s = c[1] / (i.depth || 1)),
+                        qo(e, function (t) {
+                          (t.x = (t.x + o) * a), (t.y = t.depth * s);
+                        })),
+                    t
+                  );
+                }
+                function p(t) {
+                  var e = t.children,
+                    n = t.parent.children,
+                    r = t.i ? n[t.i - 1] : null;
+                  if (e.length) {
+                    for (var i, o = 0, a = 0, s = t.children, l = s.length; 0 <= --l; )
+                      ((i = s[l]).z += o), (i.m += o), (o += i.s + (a += i.c));
+                    e = (e[0].z + e[e.length - 1].z) / 2;
+                    r ? ((t.z = r.z + h(t._, r._)), (t.m = t.z - e)) : (t.z = e);
+                  } else r && (t.z = r.z + h(t._, r._));
+                  t.parent.A = (function (t, e, n) {
+                    if (e) {
+                      for (
+                        var r,
+                          i = t,
+                          o = t,
+                          a = e,
+                          s = i.parent.children[0],
+                          l = i.m,
+                          u = o.m,
+                          c = a.m,
+                          A = s.m;
+                        (a = Ba(a)), (i = Ea(i)), a && i;
+
+                      )
+                        (s = Ea(s)),
+                          ((o = Ba(o)).a = t),
+                          0 < (r = a.z + c - i.z - l + h(a._, i._)) &&
+                            ((function (t, e, n) {
+                              var r = n / (e.i - t.i);
+                              (e.c -= r), (e.s += n), (t.c += r), (e.z += n), (e.m += n);
+                            })(
+                              (function (t, e, n) {
+                                return t.a.parent === e.parent ? t.a : n;
+                              })(a, t, n),
+                              t,
+                              r,
+                            ),
+                            (l += r),
+                            (u += r)),
+                          (c += a.m),
+                          (l += i.m),
+                          (A += s.m),
+                          (u += o.m);
+                      a && !Ba(o) && ((o.t = a), (o.m += c - u)),
+                        i && !Ea(s) && ((s.t = i), (s.m += l - A), (n = t));
+                    }
+                    return n;
+                  })(t, r, t.parent.A || n[0]);
+                }
+                function d(t) {
+                  (t._.x = t.z + t.parent.m), (t.m += t.parent.m);
+                }
+                function f(t) {
+                  (t.x *= c[0]), (t.y = t.depth * c[1]);
+                }
+                return (
+                  (e.separation = function (t) {
+                    return arguments.length ? ((h = t), e) : h;
+                  }),
+                  (e.size = function (t) {
+                    return arguments.length ? ((A = null == (c = t) ? f : null), e) : A ? null : c;
+                  }),
+                  (e.nodeSize = function (t) {
+                    return arguments.length ? ((A = null == (c = t) ? null : f), e) : A ? c : null;
+                  }),
+                  Vo(e, u)
+                );
+              }),
+              (_.layout.cluster = function () {
+                var l = _.layout.hierarchy().sort(null).value(null),
+                  u = wa,
+                  c = [1, 1],
+                  A = !1;
+                function e(t, e) {
+                  var r,
+                    t = l.call(this, t, e),
+                    n = t[0],
+                    i = 0,
+                    e =
+                      (Wo(n, function (t) {
+                        var e,
+                          n = t.children;
+                        n && n.length
+                          ? ((t.x =
+                              (e = n).reduce(function (t, e) {
+                                return t + e.x;
+                              }, 0) / e.length),
+                            (t.y =
+                              1 +
+                              _.max(n, function (t) {
+                                return t.y;
+                              })))
+                          : ((t.x = r ? (i += u(t, r)) : 0), (t.y = 0), (r = t));
+                      }),
+                      (function t(e) {
+                        var n = e.children;
+                        return n && n.length ? t(n[0]) : e;
+                      })(n)),
+                    o = (function t(e) {
+                      var n,
+                        r = e.children;
+                      return r && (n = r.length) ? t(r[n - 1]) : e;
+                    })(n),
+                    a = e.x - u(e, o) / 2,
+                    s = o.x + u(o, e) / 2;
+                  return (
+                    Wo(
+                      n,
+                      A
+                        ? function (t) {
+                            (t.x = (t.x - n.x) * c[0]), (t.y = (n.y - t.y) * c[1]);
+                          }
+                        : function (t) {
+                            (t.x = ((t.x - a) / (s - a)) * c[0]),
+                              (t.y = (1 - (n.y ? t.y / n.y : 1)) * c[1]);
+                          },
+                    ),
+                    t
+                  );
+                }
+                return (
+                  (e.separation = function (t) {
+                    return arguments.length ? ((u = t), e) : u;
+                  }),
+                  (e.size = function (t) {
+                    return arguments.length ? ((A = null == (c = t)), e) : A ? null : c;
+                  }),
+                  (e.nodeSize = function (t) {
+                    return arguments.length ? ((A = null != (c = t)), e) : A ? c : null;
+                  }),
+                  Vo(e, l)
+                );
+              }),
+              (_.layout.treemap = function () {
+                var n,
+                  r = _.layout.hierarchy(),
+                  c = Math.round,
+                  i = [1, 1],
+                  o = null,
+                  u = Ca,
+                  a = !1,
+                  A = 'squarify',
+                  h = 0.5 * (1 + Math.sqrt(5));
+                function p(t, e) {
+                  for (var n, r, i = -1, o = t.length; ++i < o; )
+                    (r = (n = t[i]).value * (e < 0 ? 0 : e)), (n.area = isNaN(r) || r <= 0 ? 0 : r);
+                }
+                function d(t) {
+                  var e = t.children;
+                  if (e && e.length) {
+                    var n,
+                      r,
+                      i = u(t),
+                      o = [],
+                      a = e.slice(),
+                      s = 1 / 0,
+                      l =
+                        'slice' === A
+                          ? i.dx
+                          : 'dice' === A
+                            ? i.dy
+                            : 'slice-dice' === A
+                              ? 1 & t.depth
+                                ? i.dy
+                                : i.dx
+                              : Math.min(i.dx, i.dy);
+                    for (p(a, (i.dx * i.dy) / t.value), o.area = 0; 0 < (r = a.length); )
+                      o.push((r = a[r - 1])),
+                        (o.area += r.area),
+                        (s =
+                          'squarify' !== A ||
+                          (n = (function (t, e) {
+                            var n,
+                              r = t.area,
+                              i = 0,
+                              o = 1 / 0,
+                              a = -1,
+                              s = t.length;
+                            for (; ++a < s; )
+                              (n = t[a].area) && (n < o && (o = n), i < n && (i = n));
+                            return (
+                              (e *= e),
+                              (r *= r) ? Math.max((e * i * h) / r, r / (e * o * h)) : 1 / 0
+                            );
+                          })(o, l)) <= s
+                            ? (a.pop(), n)
+                            : ((o.area -= o.pop().area),
+                              f(o, l, i, !1),
+                              (l = Math.min(i.dx, i.dy)),
+                              1 / (o.length = o.area = 0)));
+                    o.length && (f(o, l, i, !0), (o.length = o.area = 0)), e.forEach(d);
+                  }
+                }
+                function s(t) {
+                  var e = t.children;
+                  if (e && e.length) {
+                    var n,
+                      r = u(t),
+                      i = e.slice(),
+                      o = [];
+                    for (p(i, (r.dx * r.dy) / t.value), o.area = 0; (n = i.pop()); )
+                      o.push(n),
+                        (o.area += n.area),
+                        null != n.z &&
+                          (f(o, n.z ? r.dx : r.dy, r, !i.length), (o.length = o.area = 0));
+                    e.forEach(s);
+                  }
+                }
+                function f(t, e, n, r) {
+                  var i,
+                    o = -1,
+                    a = t.length,
+                    s = n.x,
+                    l = n.y,
+                    u = e ? c(t.area / e) : 0;
+                  if (e == n.dx) {
+                    for ((r || u > n.dy) && (u = n.dy); ++o < a; )
+                      ((i = t[o]).x = s),
+                        (i.y = l),
+                        (i.dy = u),
+                        (s += i.dx = Math.min(n.x + n.dx - s, u ? c(i.area / u) : 0));
+                    (i.z = !0), (i.dx += n.x + n.dx - s), (n.y += u), (n.dy -= u);
+                  } else {
+                    for ((r || u > n.dx) && (u = n.dx); ++o < a; )
+                      ((i = t[o]).x = s),
+                        (i.y = l),
+                        (i.dx = u),
+                        (l += i.dy = Math.min(n.y + n.dy - l, u ? c(i.area / u) : 0));
+                    (i.z = !1), (i.dy += n.y + n.dy - l), (n.x += u), (n.dx -= u);
+                  }
+                }
+                function l(t) {
+                  var t = n || r(t),
+                    e = t[0];
+                  return (
+                    (e.x = e.y = 0),
+                    e.value ? ((e.dx = i[0]), (e.dy = i[1])) : (e.dx = e.dy = 0),
+                    n && r.revalue(e),
+                    p([e], (e.dx * e.dy) / e.value),
+                    (n ? s : d)(e),
+                    a && (n = t),
+                    t
+                  );
+                }
+                return (
+                  (l.size = function (t) {
+                    return arguments.length ? ((i = t), l) : i;
+                  }),
+                  (l.padding = function (n) {
+                    return arguments.length
+                      ? ((u =
+                          null == (o = n)
+                            ? Ca
+                            : 'function' == (e = typeof n)
+                              ? function (t) {
+                                  var e = n.call(l, t, t.depth);
+                                  return null == e
+                                    ? Ca(t)
+                                    : xa(t, 'number' == typeof e ? [e, e, e, e] : e);
+                                }
+                              : ('number' == e && (n = [n, n, n, n]), t)),
+                        l)
+                      : o;
+                    function t(t) {
+                      return xa(t, n);
+                    }
+                    var e;
+                  }),
+                  (l.round = function (t) {
+                    return arguments.length ? ((c = t ? Math.round : Number), l) : c != Number;
+                  }),
+                  (l.sticky = function (t) {
+                    return arguments.length ? ((a = t), (n = null), l) : a;
+                  }),
+                  (l.ratio = function (t) {
+                    return arguments.length ? ((h = t), l) : h;
+                  }),
+                  (l.mode = function (t) {
+                    return arguments.length ? ((A = t + ''), l) : A;
+                  }),
+                  Vo(l, r)
+                );
+              }),
+              (_.random = {
+                normal: function (r, i) {
+                  var t = arguments.length;
+                  return (
+                    t < 2 && (i = 1),
+                    t < 1 && (r = 0),
+                    function () {
+                      for (
+                        var t, e, n;
+                        !(n = (t = 2 * Math.random() - 1) * t + (e = 2 * Math.random() - 1) * e) ||
+                        1 < n;
+
+                      );
+                      return r + i * t * Math.sqrt((-2 * Math.log(n)) / n);
+                    }
+                  );
+                },
+                logNormal: function () {
+                  var t = _.random.normal.apply(_, arguments);
+                  return function () {
+                    return Math.exp(t());
+                  };
+                },
+                bates: function (t) {
+                  var e = _.random.irwinHall(t);
+                  return function () {
+                    return e() / t;
+                  };
+                },
+                irwinHall: function (n) {
+                  return function () {
+                    for (var t = 0, e = 0; e < n; e++) t += Math.random();
+                    return t;
+                  };
+                },
+              }),
+              (_.scale = {});
+            var Fa = { floor: k, ceil: k };
+            function Qa(n, t, e, r) {
+              var i = [],
+                o = [],
+                a = 0,
+                s = Math.min(n.length, t.length) - 1;
+              for (
+                n[s] < n[0] && ((n = n.slice().reverse()), (t = t.slice().reverse()));
+                ++a <= s;
+
+              )
+                i.push(e(n[a - 1], n[a])), o.push(r(t[a - 1], t[a]));
+              return function (t) {
+                var e = _.bisect(n, t, 1, s) - 1;
+                return o[e](i[e](t));
+              };
+            }
+            function _a(t, e) {
+              return _.rebind(t, e, 'range', 'rangeRound', 'interpolate', 'clamp');
+            }
+            function Ta(t, e) {
+              return Sa(t, ka(Ra(t, e)[2])), Sa(t, ka(Ra(t, e)[2])), t;
+            }
+            function Ra(t, e) {
+              null == e && (e = 10);
+              var t = Ia(t),
+                n = t[1] - t[0],
+                r = Math.pow(10, Math.floor(Math.log(n / e) / Math.LN10)),
+                e = (e / n) * r;
+              return (
+                e <= 0.15 ? (r *= 10) : e <= 0.35 ? (r *= 5) : e <= 0.75 && (r *= 2),
+                (t[0] = Math.ceil(t[0] / r) * r),
+                (t[1] = Math.floor(t[1] / r) * r + 0.5 * r),
+                (t[2] = r),
+                t
+              );
+            }
+            function Ua(t, e) {
+              return _.range.apply(_, Ra(t, e));
+            }
+            function Na(t, e, n) {
+              var r,
+                i,
+                o,
+                t = Ra(t, e);
+              if (n) {
+                var a,
+                  e = Ye.exec(n);
+                if ((e.shift(), 's' === e[8]))
+                  return (
+                    (a = _.formatPrefix(Math.max(F(t[0]), F(t[1])))),
+                    e[7] || (e[7] = '.' + La(a.scale(t[2]))),
+                    (e[8] = 'f'),
+                    (n = _.format(e.join(''))),
+                    function (t) {
+                      return n(a.scale(t)) + a.symbol;
+                    }
+                  );
+                e[7] ||
+                  (e[7] =
+                    '.' +
+                    ((r = e[8]),
+                    (o = La((i = t)[2])),
+                    r in Pa
+                      ? Math.abs(o - La(Math.max(F(i[0]), F(i[1])))) + +('e' !== r)
+                      : o - 2 * ('%' === r))),
+                  (n = e.join(''));
+              } else n = ',.' + La(t[2]) + 'f';
+              return _.format(n);
+            }
+            _.scale.linear = function () {
+              return (function t(n, r, i, o) {
+                var a, s;
+                function e() {
+                  var t = 2 < Math.min(n.length, r.length) ? Qa : Da,
+                    e = o ? No : Uo;
+                  return (a = t(n, r, e, i)), (s = t(r, n, e, fo)), l;
+                }
+                function l(t) {
+                  return a(t);
+                }
+                l.invert = function (t) {
+                  return s(t);
+                };
+                l.domain = function (t) {
+                  return arguments.length ? ((n = t.map(Number)), e()) : n;
+                };
+                l.range = function (t) {
+                  return arguments.length ? ((r = t), e()) : r;
+                };
+                l.rangeRound = function (t) {
+                  return l.range(t).interpolate(So);
+                };
+                l.clamp = function (t) {
+                  return arguments.length ? ((o = t), e()) : o;
+                };
+                l.interpolate = function (t) {
+                  return arguments.length ? ((i = t), e()) : i;
+                };
+                l.ticks = function (t) {
+                  return Ua(n, t);
+                };
+                l.tickFormat = function (t, e) {
+                  return Na(n, t, e);
+                };
+                l.nice = function (t) {
+                  return Ta(n, t), e();
+                };
+                l.copy = function () {
+                  return t(n, r, i, o);
+                };
+                return e();
+              })([0, 1], [0, 1], fo, !1);
+            };
+            var Pa = { s: 1, g: 1, p: 1, r: 1, e: 1 };
+            function La(t) {
+              return -Math.floor(Math.log(t) / Math.LN10 + 0.01);
+            }
+            _.scale.log = function () {
+              return (function t(e, l, u, c) {
+                function A(t) {
+                  return (u ? Math.log(t < 0 ? 0 : t) : -Math.log(0 < t ? 0 : -t)) / Math.log(l);
+                }
+                function h(t) {
+                  return u ? Math.pow(l, t) : -Math.pow(l, -t);
+                }
+                function i(t) {
+                  return e(A(t));
+                }
+                i.invert = function (t) {
+                  return h(e.invert(t));
+                };
+                i.domain = function (t) {
+                  return arguments.length
+                    ? ((u = 0 <= t[0]), e.domain((c = t.map(Number)).map(A)), i)
+                    : c;
+                };
+                i.base = function (t) {
+                  return arguments.length ? ((l = +t), e.domain(c.map(A)), i) : l;
+                };
+                i.nice = function () {
+                  var t = Sa(c.map(A), u ? Math : Oa);
+                  return e.domain(t), (c = t.map(h)), i;
+                };
+                i.ticks = function () {
+                  var t = Ia(c),
+                    e = [],
+                    n = t[0],
+                    r = t[1],
+                    i = Math.floor(A(n)),
+                    o = Math.ceil(A(r)),
+                    a = l % 1 ? 2 : l;
+                  if (isFinite(o - i)) {
+                    if (u) {
+                      for (; i < o; i++) for (var s = 1; s < a; s++) e.push(h(i) * s);
+                      e.push(h(i));
+                    } else
+                      for (e.push(h(i)); i++ < o; ) for (s = a - 1; 0 < s; s--) e.push(h(i) * s);
+                    for (i = 0; e[i] < n; i++);
+                    for (o = e.length; e[o - 1] > r; o--);
+                    e = e.slice(i, o);
+                  }
+                  return e;
+                };
+                i.tickFormat = function (t, n) {
+                  if (!arguments.length) return Ya;
+                  arguments.length < 2 ? (n = Ya) : 'function' != typeof n && (n = _.format(n));
+                  var r = Math.max(1, (l * t) / i.ticks().length);
+                  return function (t) {
+                    var e = t / h(Math.round(A(t)));
+                    return e * l < l - 0.5 && (e *= l), e <= r ? n(t) : '';
+                  };
+                };
+                i.copy = function () {
+                  return t(e.copy(), l, u, c);
+                };
+                return _a(i, e);
+              })(_.scale.linear().domain([0, 1]), 10, !0, [1, 10]);
+            };
+            var Ya = _.format('.0e'),
+              Oa = {
+                floor: function (t) {
+                  return -Math.ceil(-t);
+                },
+                ceil: function (t) {
+                  return -Math.floor(-t);
+                },
+              };
+            function Ga(e) {
+              return function (t) {
+                return t < 0 ? -Math.pow(-t, e) : Math.pow(t, e);
+              };
+            }
+            (_.scale.pow = function () {
+              return (function t(e, n, r) {
+                var i = Ga(n),
+                  o = Ga(1 / n);
+                function a(t) {
+                  return e(i(t));
+                }
+                a.invert = function (t) {
+                  return o(e.invert(t));
+                };
+                a.domain = function (t) {
+                  return arguments.length ? (e.domain((r = t.map(Number)).map(i)), a) : r;
+                };
+                a.ticks = function (t) {
+                  return Ua(r, t);
+                };
+                a.tickFormat = function (t, e) {
+                  return Na(r, t, e);
+                };
+                a.nice = function (t) {
+                  return a.domain(Ta(r, t));
+                };
+                a.exponent = function (t) {
+                  return arguments.length
+                    ? ((i = Ga((n = t))), (o = Ga(1 / n)), e.domain(r.map(i)), a)
+                    : n;
+                };
+                a.copy = function () {
+                  return t(e.copy(), n, r);
+                };
+                return _a(a, e);
+              })(_.scale.linear(), 1, [0, 1]);
+            }),
+              (_.scale.sqrt = function () {
+                return _.scale.pow().exponent(0.5);
+              }),
+              (_.scale.ordinal = function () {
+                return (function t(s, l) {
+                  var i, u, c;
+                  function A(t) {
+                    return u[
+                      ((i.get(t) || ('range' === l.t ? i.set(t, s.push(t)) : NaN)) - 1) % u.length
+                    ];
+                  }
+                  function h(e, n) {
+                    return _.range(s.length).map(function (t) {
+                      return e + n * t;
+                    });
+                  }
+                  A.domain = function (t) {
+                    if (!arguments.length) return s;
+                    (s = []), (i = new W());
+                    for (var e, n = -1, r = t.length; ++n < r; )
+                      i.has((e = t[n])) || i.set(e, s.push(e));
+                    return A[l.t].apply(A, l.a);
+                  };
+                  A.range = function (t) {
+                    return arguments.length
+                      ? ((u = t), (c = 0), (l = { t: 'range', a: arguments }), A)
+                      : u;
+                  };
+                  A.rangePoints = function (t, e) {
+                    arguments.length < 2 && (e = 0);
+                    var n = t[0],
+                      r = t[1],
+                      r = s.length < 2 ? ((n = (n + r) / 2), 0) : (r - n) / (s.length - 1 + e);
+                    return (
+                      (u = h(n + (r * e) / 2, r)),
+                      (c = 0),
+                      (l = { t: 'rangePoints', a: arguments }),
+                      A
+                    );
+                  };
+                  A.rangeRoundPoints = function (t, e) {
+                    arguments.length < 2 && (e = 0);
+                    var n = t[0],
+                      r = t[1],
+                      i =
+                        s.length < 2
+                          ? ((n = r = Math.round((n + r) / 2)), 0)
+                          : ((r - n) / (s.length - 1 + e)) | 0;
+                    return (
+                      (u = h(
+                        n + Math.round((i * e) / 2 + (r - n - (s.length - 1 + e) * i) / 2),
+                        i,
+                      )),
+                      (c = 0),
+                      (l = { t: 'rangeRoundPoints', a: arguments }),
+                      A
+                    );
+                  };
+                  A.rangeBands = function (t, e, n) {
+                    arguments.length < 2 && (e = 0), arguments.length < 3 && (n = e);
+                    var r = t[1] < t[0],
+                      i = t[+r],
+                      o = t[1 - r],
+                      o = (o - i) / (s.length - e + 2 * n);
+                    return (
+                      (u = h(i + o * n, o)),
+                      r && u.reverse(),
+                      (c = o * (1 - e)),
+                      (l = { t: 'rangeBands', a: arguments }),
+                      A
+                    );
+                  };
+                  A.rangeRoundBands = function (t, e, n) {
+                    arguments.length < 2 && (e = 0), arguments.length < 3 && (n = e);
+                    var r = t[1] < t[0],
+                      i = t[+r],
+                      o = t[1 - r],
+                      a = Math.floor((o - i) / (s.length - e + 2 * n));
+                    return (
+                      (u = h(i + Math.round((o - i - (s.length - e) * a) / 2), a)),
+                      r && u.reverse(),
+                      (c = Math.round(a * (1 - e))),
+                      (l = { t: 'rangeRoundBands', a: arguments }),
+                      A
+                    );
+                  };
+                  A.rangeBand = function () {
+                    return c;
+                  };
+                  A.rangeExtent = function () {
+                    return Ia(l.a[0]);
+                  };
+                  A.copy = function () {
+                    return t(s, l);
+                  };
+                  return A.domain(s);
+                })([], { t: 'range', a: [[]] });
+              }),
+              (_.scale.category10 = function () {
+                return _.scale.ordinal().range(za);
+              }),
+              (_.scale.category20 = function () {
+                return _.scale.ordinal().range(Ha);
+              }),
+              (_.scale.category20b = function () {
+                return _.scale.ordinal().range(ja);
+              }),
+              (_.scale.category20c = function () {
+                return _.scale.ordinal().range(Va);
+              });
+            var za = [
+                2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186,
+                1556175,
+              ].map(be),
+              Ha = [
+                2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742,
+                9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807,
+                12369186, 14408589, 1556175, 10410725,
+              ].map(be),
+              ja = [
+                3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993,
+                12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683,
+                10834324, 13528509, 14589654,
+              ].map(be),
+              Va = [
+                3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018,
+                3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891,
+                6513507, 9868950, 12434877, 14277081,
+              ].map(be);
+            function qa() {
+              return 0;
+            }
+            (_.scale.quantile = function () {
+              return (function t(n, r) {
+                var i;
+                function e() {
+                  var t = 0,
+                    e = r.length;
+                  for (i = []; ++t < e; ) i[t - 1] = _.quantile(n, t / e);
+                  return o;
+                }
+                function o(t) {
+                  if (!isNaN((t = +t))) return r[_.bisect(i, t)];
+                }
+                o.domain = function (t) {
+                  return arguments.length ? ((n = t.map(H).filter(j).sort(z)), e()) : n;
+                };
+                o.range = function (t) {
+                  return arguments.length ? ((r = t), e()) : r;
+                };
+                o.quantiles = function () {
+                  return i;
+                };
+                o.invertExtent = function (t) {
+                  return (t = r.indexOf(t)) < 0
+                    ? [NaN, NaN]
+                    : [0 < t ? i[t - 1] : n[0], t < i.length ? i[t] : n[n.length - 1]];
+                };
+                o.copy = function () {
+                  return t(n, r);
+                };
+                return e();
+              })([], []);
+            }),
+              (_.scale.quantize = function () {
+                return (function t(e, n, r) {
+                  var i, o;
+                  function a(t) {
+                    return r[Math.max(0, Math.min(o, Math.floor(i * (t - e))))];
+                  }
+                  function s() {
+                    return (i = r.length / (n - e)), (o = r.length - 1), a;
+                  }
+                  a.domain = function (t) {
+                    return arguments.length ? ((e = +t[0]), (n = +t[t.length - 1]), s()) : [e, n];
+                  };
+                  a.range = function (t) {
+                    return arguments.length ? ((r = t), s()) : r;
+                  };
+                  a.invertExtent = function (t) {
+                    return [(t = (t = r.indexOf(t)) < 0 ? NaN : t / i + e), t + 1 / i];
+                  };
+                  a.copy = function () {
+                    return t(e, n, r);
+                  };
+                  return s();
+                })(0, 1, [0, 1]);
+              }),
+              (_.scale.threshold = function () {
+                return (function t(e, n) {
+                  function r(t) {
+                    if (t <= t) return n[_.bisect(e, t)];
+                  }
+                  r.domain = function (t) {
+                    return arguments.length ? ((e = t), r) : e;
+                  };
+                  r.range = function (t) {
+                    return arguments.length ? ((n = t), r) : n;
+                  };
+                  r.invertExtent = function (t) {
+                    return (t = n.indexOf(t)), [e[t - 1], e[t]];
+                  };
+                  r.copy = function () {
+                    return t(e, n);
+                  };
+                  return r;
+                })([0.5], [0, 1]);
+              }),
+              (_.scale.identity = function () {
+                return (function t(n) {
+                  function e(t) {
+                    return +t;
+                  }
+                  e.invert = e;
+                  e.domain = e.range = function (t) {
+                    return arguments.length ? ((n = t.map(e)), e) : n;
+                  };
+                  e.ticks = function (t) {
+                    return Ua(n, t);
+                  };
+                  e.tickFormat = function (t, e) {
+                    return Na(n, t, e);
+                  };
+                  e.copy = function () {
+                    return t(n);
+                  };
+                  return e;
+                })([0, 1]);
+              }),
+              (_.svg = {}),
+              (_.svg.arc = function () {
+                var B = Ja,
+                  C = Ka,
+                  x = qa,
+                  I = Wa,
+                  M = Za,
+                  D = Xa,
+                  S = $a;
+                function e() {
+                  var t = Math.max(0, +B.apply(this, arguments)),
+                    e = Math.max(0, +C.apply(this, arguments)),
+                    n = M.apply(this, arguments) - U,
+                    r = D.apply(this, arguments) - U,
+                    i = Math.abs(r - n),
+                    o = r < n ? 0 : 1;
+                  if ((e < t && ((a = e), (e = t), (t = a)), Wt <= i))
+                    return k(e, o) + (t ? k(t, 1 - o) : '') + 'Z';
+                  var a,
+                    s,
+                    l,
+                    u,
+                    c,
+                    A,
+                    h,
+                    p,
+                    d,
+                    f,
+                    g,
+                    m,
+                    v,
+                    b,
+                    y = 0,
+                    w = 0,
+                    E = [];
+                  return (
+                    (b = (+S.apply(this, arguments) || 0) / 2) &&
+                      ((m = I === Wa ? Math.sqrt(t * t + e * e) : +I.apply(this, arguments)),
+                      o || (w *= -1),
+                      e && (w = Xt((m / e) * Math.sin(b))),
+                      t && (y = Xt((m / t) * Math.sin(b)))),
+                    e
+                      ? ((u = e * Math.cos(n + w)),
+                        (c = e * Math.sin(n + w)),
+                        (A = e * Math.cos(r - w)),
+                        (s = e * Math.sin(r - w)),
+                        (l = Math.abs(r - n - 2 * w) <= R ? 0 : 1),
+                        w &&
+                          (ts(u, c, A, s) === o) ^ l &&
+                          ((m = (n + r) / 2),
+                          (u = e * Math.cos(m)),
+                          (c = e * Math.sin(m)),
+                          (A = s = null)))
+                      : (u = c = 0),
+                    t
+                      ? ((d = t * Math.cos(r - y)),
+                        (f = t * Math.sin(r - y)),
+                        (g = t * Math.cos(n + y)),
+                        (h = t * Math.sin(n + y)),
+                        (p = Math.abs(n - r + 2 * y) <= R ? 0 : 1),
+                        y &&
+                          (ts(d, f, g, h) === 1 - o) ^ p &&
+                          ((b = (n + r) / 2),
+                          (d = t * Math.cos(b)),
+                          (f = t * Math.sin(b)),
+                          (g = h = null)))
+                      : (d = f = 0),
+                    Q < i && 0.001 < (a = Math.min(Math.abs(e - t) / 2, +x.apply(this, arguments)))
+                      ? ((w = (t < e) ^ o ? 0 : 1),
+                        (y = m = a),
+                        i < R &&
+                          ((r =
+                            u -
+                            (n =
+                              null == g
+                                ? [d, f]
+                                : null == A
+                                  ? [u, c]
+                                  : Ii([u, c], [g, h], [A, s], [d, f]))[0]),
+                          (b = c - n[1]),
+                          (i = A - n[0]),
+                          (v = s - n[1]),
+                          (r =
+                            1 /
+                            Math.sin(
+                              Math.acos(
+                                (r * i + b * v) /
+                                  (Math.sqrt(r * r + b * b) * Math.sqrt(i * i + v * v)),
+                              ) / 2,
+                            )),
+                          (b = Math.sqrt(n[0] * n[0] + n[1] * n[1])),
+                          (y = Math.min(a, (t - b) / (r - 1))),
+                          (m = Math.min(a, (e - b) / (1 + r)))),
+                        null != A
+                          ? ((i = es(null == g ? [d, f] : [g, h], [u, c], e, m, o)),
+                            (v = es([A, s], [d, f], e, m, o)),
+                            a === m
+                              ? E.push(
+                                  'M',
+                                  i[0],
+                                  'A',
+                                  m,
+                                  ',',
+                                  m,
+                                  ' 0 0,',
+                                  w,
+                                  ' ',
+                                  i[1],
+                                  'A',
+                                  e,
+                                  ',',
+                                  e,
+                                  ' 0 ',
+                                  (1 - o) ^ ts(i[1][0], i[1][1], v[1][0], v[1][1]),
+                                  ',',
+                                  o,
+                                  ' ',
+                                  v[1],
+                                  'A',
+                                  m,
+                                  ',',
+                                  m,
+                                  ' 0 0,',
+                                  w,
+                                  ' ',
+                                  v[0],
+                                )
+                              : E.push('M', i[0], 'A', m, ',', m, ' 0 1,', w, ' ', v[0]))
+                          : E.push('M', u, ',', c),
+                        null != g
+                          ? ((n = es([u, c], [g, h], t, -y, o)),
+                            (b = es([d, f], null == A ? [u, c] : [A, s], t, -y, o)),
+                            a === y
+                              ? E.push(
+                                  'L',
+                                  b[0],
+                                  'A',
+                                  y,
+                                  ',',
+                                  y,
+                                  ' 0 0,',
+                                  w,
+                                  ' ',
+                                  b[1],
+                                  'A',
+                                  t,
+                                  ',',
+                                  t,
+                                  ' 0 ',
+                                  o ^ ts(b[1][0], b[1][1], n[1][0], n[1][1]),
+                                  ',',
+                                  1 - o,
+                                  ' ',
+                                  n[1],
+                                  'A',
+                                  y,
+                                  ',',
+                                  y,
+                                  ' 0 0,',
+                                  w,
+                                  ' ',
+                                  n[0],
+                                )
+                              : E.push('L', b[0], 'A', y, ',', y, ' 0 0,', w, ' ', n[0]))
+                          : E.push('L', d, ',', f))
+                      : (E.push('M', u, ',', c),
+                        null != A && E.push('A', e, ',', e, ' 0 ', l, ',', o, ' ', A, ',', s),
+                        E.push('L', d, ',', f),
+                        null != g && E.push('A', t, ',', t, ' 0 ', p, ',', 1 - o, ' ', g, ',', h)),
+                    E.push('Z'),
+                    E.join('')
+                  );
+                }
+                function k(t, e) {
+                  return (
+                    'M0,' +
+                    t +
+                    'A' +
+                    t +
+                    ',' +
+                    t +
+                    ' 0 1,' +
+                    e +
+                    ' 0,' +
+                    -t +
+                    'A' +
+                    t +
+                    ',' +
+                    t +
+                    ' 0 1,' +
+                    e +
+                    ' 0,' +
+                    t
+                  );
+                }
+                return (
+                  (e.innerRadius = function (t) {
+                    return arguments.length ? ((B = N(t)), e) : B;
+                  }),
+                  (e.outerRadius = function (t) {
+                    return arguments.length ? ((C = N(t)), e) : C;
+                  }),
+                  (e.cornerRadius = function (t) {
+                    return arguments.length ? ((x = N(t)), e) : x;
+                  }),
+                  (e.padRadius = function (t) {
+                    return arguments.length ? ((I = t == Wa ? Wa : N(t)), e) : I;
+                  }),
+                  (e.startAngle = function (t) {
+                    return arguments.length ? ((M = N(t)), e) : M;
+                  }),
+                  (e.endAngle = function (t) {
+                    return arguments.length ? ((D = N(t)), e) : D;
+                  }),
+                  (e.padAngle = function (t) {
+                    return arguments.length ? ((S = N(t)), e) : S;
+                  }),
+                  (e.centroid = function () {
+                    var t = (+B.apply(this, arguments) + +C.apply(this, arguments)) / 2,
+                      e = (+M.apply(this, arguments) + +D.apply(this, arguments)) / 2 - U;
+                    return [Math.cos(e) * t, Math.sin(e) * t];
+                  }),
+                  e
+                );
+              });
+            var Wa = 'auto';
+            function Ja(t) {
+              return t.innerRadius;
+            }
+            function Ka(t) {
+              return t.outerRadius;
+            }
+            function Za(t) {
+              return t.startAngle;
+            }
+            function Xa(t) {
+              return t.endAngle;
+            }
+            function $a(t) {
+              return t && t.padAngle;
+            }
+            function ts(t, e, n, r) {
+              return 0 < (t - n) * e - (e - r) * t ? 0 : 1;
+            }
+            function es(t, e, n, r, i) {
+              var o = t[0] - e[0],
+                a = t[1] - e[1],
+                i = (i ? r : -r) / Math.sqrt(o * o + a * a),
+                a = i * a,
+                i = -i * o,
+                o = t[0] + a,
+                t = t[1] + i,
+                s = e[0] + a,
+                e = e[1] + i,
+                l = (o + s) / 2,
+                u = (t + e) / 2,
+                c = s - o,
+                A = e - t,
+                h = c * c + A * A,
+                r = n - r,
+                o = o * e - s * t,
+                e = (A < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * h - o * o)),
+                s = (o * A - c * e) / h,
+                t = (-o * c - A * e) / h,
+                p = (o * A + c * e) / h,
+                o = (-o * c + A * e) / h,
+                c = s - l,
+                A = t - u,
+                e = p - l,
+                h = o - u;
+              return (
+                e * e + h * h < c * c + A * A && ((s = p), (t = o)),
+                [
+                  [s - a, t - i],
+                  [(s * n) / r, (t * n) / r],
+                ]
+              );
+            }
+            function ns(u) {
+              var c = yi,
+                A = wi,
+                h = hr,
+                p = D,
+                e = p.key,
+                d = 0.7;
+              function n(t) {
+                var e,
+                  n = [],
+                  r = [],
+                  i = -1,
+                  o = t.length,
+                  a = N(c),
+                  s = N(A);
+                function l() {
+                  n.push('M', p(u(r), d));
+                }
+                for (; ++i < o; )
+                  h.call(this, (e = t[i]), i)
+                    ? r.push([+a.call(this, e, i), +s.call(this, e, i)])
+                    : r.length && (l(), (r = []));
+                return r.length && l(), n.length ? n.join('') : null;
+              }
+              return (
+                (n.x = function (t) {
+                  return arguments.length ? ((c = t), n) : c;
+                }),
+                (n.y = function (t) {
+                  return arguments.length ? ((A = t), n) : A;
+                }),
+                (n.defined = function (t) {
+                  return arguments.length ? ((h = t), n) : h;
+                }),
+                (n.interpolate = function (t) {
+                  return arguments.length
+                    ? ((e = 'function' == typeof t ? (p = t) : (p = rs.get(t) || D).key), n)
+                    : e;
+                }),
+                (n.tension = function (t) {
+                  return arguments.length ? ((d = t), n) : d;
+                }),
+                n
+              );
+            }
+            _.svg.line = function () {
+              return ns(k);
+            };
+            var rs = _.map({
+              linear: D,
+              'linear-closed': is,
+              step: function (t) {
+                var e = 0,
+                  n = t.length,
+                  r = t[0],
+                  i = [r[0], ',', r[1]];
+                for (; ++e < n; ) i.push('H', (r[0] + (r = t[e])[0]) / 2, 'V', r[1]);
+                1 < n && i.push('H', r[0]);
+                return i.join('');
+              },
+              'step-before': os,
+              'step-after': as,
+              basis: us,
+              'basis-open': function (t) {
+                if (t.length < 4) return D(t);
+                var e,
+                  n = [],
+                  r = -1,
+                  i = t.length,
+                  o = [0],
+                  a = [0];
+                for (; ++r < 3; ) (e = t[r]), o.push(e[0]), a.push(e[1]);
+                n.push(y(hs, o) + ',' + y(hs, a)), --r;
+                for (; ++r < i; )
+                  (e = t[r]), o.shift(), o.push(e[0]), a.shift(), a.push(e[1]), ps(n, o, a);
+                return n.join('');
+              },
+              'basis-closed': function (t) {
+                var e,
+                  n,
+                  r = -1,
+                  i = t.length,
+                  o = i + 4,
+                  a = [],
+                  s = [];
+                for (; ++r < 4; ) (n = t[r % i]), a.push(n[0]), s.push(n[1]);
+                (e = [y(hs, a), ',', y(hs, s)]), --r;
+                for (; ++r < o; )
+                  (n = t[r % i]), a.shift(), a.push(n[0]), s.shift(), s.push(n[1]), ps(e, a, s);
+                return e.join('');
+              },
+              bundle: function (t, e) {
+                var n = t.length - 1;
+                if (n)
+                  for (
+                    var r, i, o = t[0][0], a = t[0][1], s = t[n][0] - o, l = t[n][1] - a, u = -1;
+                    ++u <= n;
+
+                  )
+                    (r = t[u]),
+                      (i = u / n),
+                      (r[0] = e * r[0] + (1 - e) * (o + i * s)),
+                      (r[1] = e * r[1] + (1 - e) * (a + i * l));
+                return us(t);
+              },
+              cardinal: function (t, e) {
+                return t.length < 3 ? D(t) : t[0] + ss(t, ls(t, e));
+              },
+              'cardinal-open': function (t, e) {
+                return t.length < 4 ? D(t) : t[1] + ss(t.slice(1, -1), ls(t, e));
+              },
+              'cardinal-closed': function (t, e) {
+                return t.length < 3
+                  ? is(t)
+                  : t[0] + ss((t.push(t[0]), t), ls([t[t.length - 2]].concat(t, [t[1]]), e));
+              },
+              monotone: function (t) {
+                return t.length < 3
+                  ? D(t)
+                  : t[0] +
+                      ss(
+                        t,
+                        (function (t) {
+                          var e,
+                            n,
+                            r,
+                            i,
+                            o = [],
+                            a = (function (t) {
+                              var e = 0,
+                                n = t.length - 1,
+                                r = [],
+                                i = t[0],
+                                o = t[1],
+                                a = (r[0] = ds(i, o));
+                              for (; ++e < n; ) r[e] = (a + (a = ds((i = o), (o = t[e + 1])))) / 2;
+                              return (r[e] = a), r;
+                            })(t),
+                            s = -1,
+                            l = t.length - 1;
+                          for (; ++s < l; )
+                            (e = ds(t[s], t[s + 1])),
+                              F(e) < Q
+                                ? (a[s] = a[s + 1] = 0)
+                                : ((n = a[s] / e),
+                                  (r = a[s + 1] / e),
+                                  9 < (i = n * n + r * r) &&
+                                    ((i = (3 * e) / Math.sqrt(i)),
+                                    (a[s] = i * n),
+                                    (a[s + 1] = i * r)));
+                          s = -1;
+                          for (; ++s <= l; )
+                            (i =
+                              (t[Math.min(l, s + 1)][0] - t[Math.max(0, s - 1)][0]) /
+                              (6 * (1 + a[s] * a[s]))),
+                              o.push([i || 0, a[s] * i || 0]);
+                          return o;
+                        })(t),
+                      );
+              },
+            });
+            function D(t) {
+              return 1 < t.length ? t.join('L') : t + 'Z';
+            }
+            function is(t) {
+              return t.join('L') + 'Z';
+            }
+            function os(t) {
+              for (var e = 0, n = t.length, r = t[0], i = [r[0], ',', r[1]]; ++e < n; )
+                i.push('V', (r = t[e])[1], 'H', r[0]);
+              return i.join('');
+            }
+            function as(t) {
+              for (var e = 0, n = t.length, r = t[0], i = [r[0], ',', r[1]]; ++e < n; )
+                i.push('H', (r = t[e])[0], 'V', r[1]);
+              return i.join('');
+            }
+            function ss(t, e) {
+              if (e.length < 1 || (t.length != e.length && t.length != e.length + 2)) return D(t);
+              var n = t.length != e.length,
+                r = '',
+                i = t[0],
+                o = t[1],
+                a = e[0],
+                s = a,
+                l = 1;
+              if (
+                (n &&
+                  ((r +=
+                    'Q' +
+                    (o[0] - (2 * a[0]) / 3) +
+                    ',' +
+                    (o[1] - (2 * a[1]) / 3) +
+                    ',' +
+                    o[0] +
+                    ',' +
+                    o[1]),
+                  (i = t[1]),
+                  (l = 2)),
+                1 < e.length)
+              ) {
+                (s = e[1]),
+                  (o = t[l]),
+                  l++,
+                  (r +=
+                    'C' +
+                    (i[0] + a[0]) +
+                    ',' +
+                    (i[1] + a[1]) +
+                    ',' +
+                    (o[0] - s[0]) +
+                    ',' +
+                    (o[1] - s[1]) +
+                    ',' +
+                    o[0] +
+                    ',' +
+                    o[1]);
+                for (var u = 2; u < e.length; u++, l++)
+                  (o = t[l]),
+                    (s = e[u]),
+                    (r += 'S' + (o[0] - s[0]) + ',' + (o[1] - s[1]) + ',' + o[0] + ',' + o[1]);
+              }
+              return (
+                n &&
+                  ((i = t[l]),
+                  (r +=
+                    'Q' +
+                    (o[0] + (2 * s[0]) / 3) +
+                    ',' +
+                    (o[1] + (2 * s[1]) / 3) +
+                    ',' +
+                    i[0] +
+                    ',' +
+                    i[1])),
+                r
+              );
+            }
+            function ls(t, e) {
+              for (
+                var n, r = [], i = (1 - e) / 2, o = t[0], a = t[1], s = 1, l = t.length;
+                ++s < l;
+
+              )
+                (n = o), (o = a), (a = t[s]), r.push([i * (a[0] - n[0]), i * (a[1] - n[1])]);
+              return r;
+            }
+            function us(t) {
+              if (t.length < 3) return D(t);
+              var e = 1,
+                n = t.length,
+                r = t[0],
+                i = r[0],
+                o = r[1],
+                a = [i, i, i, (r = t[1])[0]],
+                s = [o, o, o, r[1]],
+                l = [i, ',', o, 'L', y(hs, a), ',', y(hs, s)];
+              for (t.push(t[n - 1]); ++e <= n; )
+                (r = t[e]), a.shift(), a.push(r[0]), s.shift(), s.push(r[1]), ps(l, a, s);
+              return t.pop(), l.push('L', r), l.join('');
+            }
+            function y(t, e) {
+              return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] + t[3] * e[3];
+            }
+            rs.forEach(function (t, e) {
+              (e.key = t), (e.closed = /-closed$/.test(t));
+            });
+            var cs = [0, 2 / 3, 1 / 3, 0],
+              As = [0, 1 / 3, 2 / 3, 0],
+              hs = [0, 1 / 6, 2 / 3, 1 / 6];
+            function ps(t, e, n) {
+              t.push(
+                'C',
+                y(cs, e),
+                ',',
+                y(cs, n),
+                ',',
+                y(As, e),
+                ',',
+                y(As, n),
+                ',',
+                y(hs, e),
+                ',',
+                y(hs, n),
+              );
+            }
+            function ds(t, e) {
+              return (e[1] - t[1]) / (e[0] - t[0]);
+            }
+            function fs(t) {
+              for (var e, n, r, i = -1, o = t.length; ++i < o; )
+                (n = (e = t[i])[0]),
+                  (r = e[1] - U),
+                  (e[0] = n * Math.cos(r)),
+                  (e[1] = n * Math.sin(r));
+              return t;
+            }
+            function gs(d) {
+              var f = yi,
+                g = yi,
+                m = 0,
+                v = wi,
+                b = hr,
+                y = D,
+                e = y.key,
+                w = y,
+                E = 'L',
+                B = 0.7;
+              function n(t) {
+                var e,
+                  n,
+                  r,
+                  i = [],
+                  o = [],
+                  a = [],
+                  s = -1,
+                  l = t.length,
+                  u = N(f),
+                  c = N(m),
+                  A =
+                    f === g
+                      ? function () {
+                          return n;
+                        }
+                      : N(g),
+                  h =
+                    m === v
+                      ? function () {
+                          return r;
+                        }
+                      : N(v);
+                function p() {
+                  i.push('M', y(d(a), B), E, w(d(o.reverse()), B), 'Z');
+                }
+                for (; ++s < l; )
+                  b.call(this, (e = t[s]), s)
+                    ? (o.push([(n = +u.call(this, e, s)), (r = +c.call(this, e, s))]),
+                      a.push([+A.call(this, e, s), +h.call(this, e, s)]))
+                    : o.length && (p(), (o = []), (a = []));
+                return o.length && p(), i.length ? i.join('') : null;
+              }
+              return (
+                (n.x = function (t) {
+                  return arguments.length ? ((f = g = t), n) : g;
+                }),
+                (n.x0 = function (t) {
+                  return arguments.length ? ((f = t), n) : f;
+                }),
+                (n.x1 = function (t) {
+                  return arguments.length ? ((g = t), n) : g;
+                }),
+                (n.y = function (t) {
+                  return arguments.length ? ((m = v = t), n) : v;
+                }),
+                (n.y0 = function (t) {
+                  return arguments.length ? ((m = t), n) : m;
+                }),
+                (n.y1 = function (t) {
+                  return arguments.length ? ((v = t), n) : v;
+                }),
+                (n.defined = function (t) {
+                  return arguments.length ? ((b = t), n) : b;
+                }),
+                (n.interpolate = function (t) {
+                  return arguments.length
+                    ? ((e = 'function' == typeof t ? (y = t) : (y = rs.get(t) || D).key),
+                      (w = y.reverse || y),
+                      (E = y.closed ? 'M' : 'L'),
+                      n)
+                    : e;
+                }),
+                (n.tension = function (t) {
+                  return arguments.length ? ((B = t), n) : B;
+                }),
+                n
+              );
+            }
+            function ms(t) {
+              return t.radius;
+            }
+            function vs(t) {
+              return [t.x, t.y];
+            }
+            function bs() {
+              return 64;
+            }
+            function ys() {
+              return 'circle';
+            }
+            function ws(t) {
+              t = Math.sqrt(t / R);
+              return (
+                'M0,' +
+                t +
+                'A' +
+                t +
+                ',' +
+                t +
+                ' 0 1,1 0,' +
+                -t +
+                'A' +
+                t +
+                ',' +
+                t +
+                ' 0 1,1 0,' +
+                t +
+                'Z'
+              );
+            }
+            (_.svg.line.radial = function () {
+              var t = ns(fs);
+              return (t.radius = t.x), delete t.x, (t.angle = t.y), delete t.y, t;
+            }),
+              ((os.reverse = as).reverse = os),
+              (_.svg.area = function () {
+                return gs(k);
+              }),
+              (_.svg.area.radial = function () {
+                var t = gs(fs);
+                return (
+                  (t.radius = t.x),
+                  delete t.x,
+                  (t.innerRadius = t.x0),
+                  delete t.x0,
+                  (t.outerRadius = t.x1),
+                  delete t.x1,
+                  (t.angle = t.y),
+                  delete t.y,
+                  (t.startAngle = t.y0),
+                  delete t.y0,
+                  (t.endAngle = t.y1),
+                  delete t.y1,
+                  t
+                );
+              }),
+              (_.svg.chord = function () {
+                var i = ai,
+                  o = si,
+                  a = ms,
+                  s = Za,
+                  l = Xa;
+                function e(t, e) {
+                  var n,
+                    r = u(this, i, t, e),
+                    t = u(this, o, t, e);
+                  return (
+                    'M' +
+                    r.p0 +
+                    c(r.r, r.p1, r.a1 - r.a0) +
+                    ((e = t),
+                    (n = r).a0 == e.a0 && n.a1 == e.a1
+                      ? A(r.r, r.p1, r.r, r.p0)
+                      : A(r.r, r.p1, t.r, t.p0) +
+                        c(t.r, t.p1, t.a1 - t.a0) +
+                        A(t.r, t.p1, r.r, r.p0)) +
+                    'Z'
+                  );
+                }
+                function u(t, e, n, r) {
+                  var e = e.call(t, n, r),
+                    n = a.call(t, e, r),
+                    i = s.call(t, e, r) - U,
+                    t = l.call(t, e, r) - U;
+                  return {
+                    r: n,
+                    a0: i,
+                    a1: t,
+                    p0: [n * Math.cos(i), n * Math.sin(i)],
+                    p1: [n * Math.cos(t), n * Math.sin(t)],
+                  };
+                }
+                function c(t, e, n) {
+                  return 'A' + t + ',' + t + ' 0 ' + +(R < n) + ',1 ' + e;
+                }
+                function A(t, e, n, r) {
+                  return 'Q 0,0 ' + r;
+                }
+                return (
+                  (e.radius = function (t) {
+                    return arguments.length ? ((a = N(t)), e) : a;
+                  }),
+                  (e.source = function (t) {
+                    return arguments.length ? ((i = N(t)), e) : i;
+                  }),
+                  (e.target = function (t) {
+                    return arguments.length ? ((o = N(t)), e) : o;
+                  }),
+                  (e.startAngle = function (t) {
+                    return arguments.length ? ((s = N(t)), e) : s;
+                  }),
+                  (e.endAngle = function (t) {
+                    return arguments.length ? ((l = N(t)), e) : l;
+                  }),
+                  e
+                );
+              }),
+              (_.svg.diagonal = function () {
+                var r = ai,
+                  i = si,
+                  o = vs;
+                function e(t, e) {
+                  var n = r.call(this, t, e),
+                    t = i.call(this, t, e),
+                    e = (n.y + t.y) / 2,
+                    n = [n, { x: n.x, y: e }, { x: t.x, y: e }, t];
+                  return 'M' + (n = n.map(o))[0] + 'C' + n[1] + ' ' + n[2] + ' ' + n[3];
+                }
+                return (
+                  (e.source = function (t) {
+                    return arguments.length ? ((r = N(t)), e) : r;
+                  }),
+                  (e.target = function (t) {
+                    return arguments.length ? ((i = N(t)), e) : i;
+                  }),
+                  (e.projection = function (t) {
+                    return arguments.length ? ((o = t), e) : o;
+                  }),
+                  e
+                );
+              }),
+              (_.svg.diagonal.radial = function () {
+                var t = _.svg.diagonal(),
+                  e = vs,
+                  r = t.projection;
+                return (
+                  (t.projection = function (t) {
+                    return arguments.length
+                      ? r(
+                          ((n = e = t),
+                          function () {
+                            var t = n.apply(this, arguments),
+                              e = t[0],
+                              t = t[1] - U;
+                            return [e * Math.cos(t), e * Math.sin(t)];
+                          }),
+                        )
+                      : e;
+                    var n;
+                  }),
+                  t
+                );
+              }),
+              (_.svg.symbol = function () {
+                var n = ys,
+                  r = bs;
+                function e(t, e) {
+                  return (Es.get(n.call(this, t, e)) || ws)(r.call(this, t, e));
+                }
+                return (
+                  (e.type = function (t) {
+                    return arguments.length ? ((n = N(t)), e) : n;
+                  }),
+                  (e.size = function (t) {
+                    return arguments.length ? ((r = N(t)), e) : r;
+                  }),
+                  e
+                );
+              });
+            var Es = _.map({
+                circle: ws,
+                cross: function (t) {
+                  t = Math.sqrt(t / 5) / 2;
+                  return (
+                    'M' +
+                    -3 * t +
+                    ',' +
+                    -t +
+                    'H' +
+                    -t +
+                    'V' +
+                    -3 * t +
+                    'H' +
+                    t +
+                    'V' +
+                    -t +
+                    'H' +
+                    3 * t +
+                    'V' +
+                    t +
+                    'H' +
+                    t +
+                    'V' +
+                    3 * t +
+                    'H' +
+                    -t +
+                    'V' +
+                    t +
+                    'H' +
+                    -3 * t +
+                    'Z'
+                  );
+                },
+                diamond: function (t) {
+                  var t = Math.sqrt(t / (2 * Cs)),
+                    e = t * Cs;
+                  return 'M0,' + -t + 'L' + e + ',0 0,' + t + ' ' + -e + ',0Z';
+                },
+                square: function (t) {
+                  t = Math.sqrt(t) / 2;
+                  return (
+                    'M' +
+                    -t +
+                    ',' +
+                    -t +
+                    'L' +
+                    t +
+                    ',' +
+                    -t +
+                    ' ' +
+                    t +
+                    ',' +
+                    t +
+                    ' ' +
+                    -t +
+                    ',' +
+                    t +
+                    'Z'
+                  );
+                },
+                'triangle-down': function (t) {
+                  var t = Math.sqrt(t / Bs),
+                    e = (t * Bs) / 2;
+                  return 'M0,' + e + 'L' + t + ',' + -e + ' ' + -t + ',' + -e + 'Z';
+                },
+                'triangle-up': function (t) {
+                  var t = Math.sqrt(t / Bs),
+                    e = (t * Bs) / 2;
+                  return 'M0,' + -e + 'L' + t + ',' + e + ' ' + -t + ',' + e + 'Z';
+                },
+              }),
+              Bs = ((_.svg.symbolTypes = Es.keys()), Math.sqrt(3)),
+              Cs = Math.tan(30 * C),
+              xs =
+                ((r.transition = function (t) {
+                  for (
+                    var e,
+                      n,
+                      r = Ds || ++ks,
+                      i = _s(t),
+                      o = [],
+                      a = Ss || { time: Date.now(), ease: Co, delay: 0, duration: 250 },
+                      s = -1,
+                      l = this.length;
+                    ++s < l;
+
+                  ) {
+                    o.push((e = []));
+                    for (var u = this[s], c = -1, A = u.length; ++c < A; )
+                      (n = u[c]) && Ts(n, c, i, r, a), e.push(n);
+                  }
+                  return Ms(o, i, r);
+                }),
+                (r.interrupt = function (t) {
+                  return this.each(null == t ? xs : Is(_s(t)));
+                }),
+                Is(_s()));
+            function Is(r) {
+              return function () {
+                var t, e, n;
+                (t = this[r]) &&
+                  (n = t[(e = t.active)]) &&
+                  ((n.timer.c = null),
+                  (n.timer.t = NaN),
+                  --t.count ? delete t[e] : delete this[r],
+                  (t.active += 0.5),
+                  n.event && n.event.interrupt.call(this, this.__data__, n.index));
+              };
+            }
+            function Ms(t, e, n) {
+              return pt(t, w), (t.namespace = e), (t.id = n), t;
+            }
+            var Ds,
+              Ss,
+              w = [],
+              ks = 0;
+            function Fs(t, r, i, o) {
+              var a = t.id,
+                s = t.namespace;
+              return Tt(
+                t,
+                'function' == typeof i
+                  ? function (t, e, n) {
+                      t[s][a].tween.set(r, o(i.call(t, t.__data__, e, n)));
+                    }
+                  : ((i = o(i)),
+                    function (t) {
+                      t[s][a].tween.set(r, i);
+                    }),
+              );
+            }
+            function Qs(t) {
+              return (
+                null == t && (t = ''),
+                function () {
+                  this.textContent = t;
+                }
+              );
+            }
+            function _s(t) {
+              return null == t ? '__transition__' : '__transition_' + t + '__';
+            }
+            function Ts(o, a, r, s, t) {
+              var l,
+                u,
+                c,
+                A,
+                h,
+                p = o[r] || (o[r] = { active: 0, count: 0 }),
+                d = p[s];
+              function n(t) {
+                var e,
+                  n,
+                  r = p.active,
+                  i = p[r];
+                for (e in (i &&
+                  ((i.timer.c = null),
+                  (i.timer.t = NaN),
+                  --p.count,
+                  delete p[r],
+                  i.event && i.event.interrupt.call(o, o.__data__, i.index)),
+                p))
+                  +e < s &&
+                    (((n = p[e]).timer.c = null), (n.timer.t = NaN), --p.count, delete p[e]);
+                (u.c = f),
+                  Te(
+                    function () {
+                      return u.c && f(t || 1) && ((u.c = null), (u.t = NaN)), 1;
+                    },
+                    0,
+                    l,
+                  ),
+                  (p.active = s),
+                  d.event && d.event.start.call(o, o.__data__, a),
+                  (h = []),
+                  d.tween.forEach(function (t, e) {
+                    (e = e.call(o, o.__data__, a)) && h.push(e);
+                  }),
+                  (A = d.ease),
+                  (c = d.duration);
+              }
+              function f(t) {
+                for (var t = t / c, e = A(t), n = h.length; 0 < n; ) h[--n].call(o, e);
+                if (1 <= t)
+                  return (
+                    d.event && d.event.end.call(o, o.__data__, a),
+                    --p.count ? delete p[s] : delete o[r],
+                    1
+                  );
+              }
+              d ||
+                ((l = t.time),
+                (u = Te(
+                  function (t) {
+                    var e = d.delay;
+                    if (((u.t = e + l), e <= t)) return n(t - e);
+                    u.c = n;
+                  },
+                  0,
+                  l,
+                )),
+                (d = p[s] =
+                  {
+                    tween: new W(),
+                    time: l,
+                    timer: u,
+                    delay: t.delay,
+                    duration: t.duration,
+                    ease: t.ease,
+                    index: a,
+                  }),
+                (t = null),
+                ++p.count);
+            }
+            (w.call = r.call),
+              (w.empty = r.empty),
+              (w.node = r.node),
+              (w.size = r.size),
+              (_.transition = function (t, e) {
+                return t && t.transition ? (Ds ? t.transition(e) : t) : _.selection().transition(t);
+              }),
+              ((_.transition.prototype = w).select = function (t) {
+                var e,
+                  n,
+                  r,
+                  i = this.id,
+                  o = this.namespace,
+                  a = [];
+                t = vt(t);
+                for (var s = -1, l = this.length; ++s < l; ) {
+                  a.push((e = []));
+                  for (var u = this[s], c = -1, A = u.length; ++c < A; )
+                    (r = u[c]) && (n = t.call(r, r.__data__, c, s))
+                      ? ('__data__' in r && (n.__data__ = r.__data__),
+                        Ts(n, c, o, i, r[o][i]),
+                        e.push(n))
+                      : e.push(null);
+                }
+                return Ms(a, o, i);
+              }),
+              (w.selectAll = function (t) {
+                var e,
+                  n,
+                  r,
+                  i,
+                  o,
+                  a = this.id,
+                  s = this.namespace,
+                  l = [];
+                t = bt(t);
+                for (var u = -1, c = this.length; ++u < c; )
+                  for (var A = this[u], h = -1, p = A.length; ++h < p; )
+                    if ((r = A[h])) {
+                      (o = r[s][a]), (n = t.call(r, r.__data__, h, u)), l.push((e = []));
+                      for (var d = -1, f = n.length; ++d < f; )
+                        (i = n[d]) && Ts(i, d, s, a, o), e.push(i);
+                    }
+                return Ms(l, s, a);
+              }),
+              (w.filter = function (t) {
+                var e,
+                  n,
+                  r = [];
+                'function' != typeof t && (t = _t(t));
+                for (var i = 0, o = this.length; i < o; i++) {
+                  r.push((e = []));
+                  for (var a, s = 0, l = (a = this[i]).length; s < l; s++)
+                    (n = a[s]) && t.call(n, n.__data__, s, i) && e.push(n);
+                }
+                return Ms(r, this.namespace, this.id);
+              }),
+              (w.tween = function (e, n) {
+                var r = this.id,
+                  i = this.namespace;
+                return arguments.length < 2
+                  ? this.node()[i][r].tween.get(e)
+                  : Tt(
+                      this,
+                      null == n
+                        ? function (t) {
+                            t[i][r].tween.remove(e);
+                          }
+                        : function (t) {
+                            t[i][r].tween.set(e, n);
+                          },
+                    );
+              }),
+              (w.attr = function (t, e) {
+                if (arguments.length < 2) {
+                  for (e in t) this.attr(e, t[e]);
+                  return this;
+                }
+                var r = 'transform' == t ? Ro : fo,
+                  i = _.ns.qualify(t);
+                function o() {
+                  this.removeAttribute(i);
+                }
+                function a() {
+                  this.removeAttributeNS(i.space, i.local);
+                }
+                return Fs(
+                  this,
+                  'attr.' + t,
+                  e,
+                  i.local
+                    ? function (n) {
+                        return null == n
+                          ? a
+                          : ((n += ''),
+                            function () {
+                              var e,
+                                t = this.getAttributeNS(i.space, i.local);
+                              return (
+                                t !== n &&
+                                ((e = r(t, n)),
+                                function (t) {
+                                  this.setAttributeNS(i.space, i.local, e(t));
+                                })
+                              );
+                            });
+                      }
+                    : function (n) {
+                        return null == n
+                          ? o
+                          : ((n += ''),
+                            function () {
+                              var e,
+                                t = this.getAttribute(i);
+                              return (
+                                t !== n &&
+                                ((e = r(t, n)),
+                                function (t) {
+                                  this.setAttribute(i, e(t));
+                                })
+                              );
+                            });
+                      },
+                );
+              }),
+              (w.attrTween = function (t, r) {
+                var i = _.ns.qualify(t);
+                return this.tween(
+                  'attr.' + t,
+                  i.local
+                    ? function (t, e) {
+                        var n = r.call(this, t, e, this.getAttributeNS(i.space, i.local));
+                        return (
+                          n &&
+                          function (t) {
+                            this.setAttributeNS(i.space, i.local, n(t));
+                          }
+                        );
+                      }
+                    : function (t, e) {
+                        var n = r.call(this, t, e, this.getAttribute(i));
+                        return (
+                          n &&
+                          function (t) {
+                            this.setAttribute(i, n(t));
+                          }
+                        );
+                      },
+                );
+              }),
+              (w.style = function (r, t, i) {
+                var e = arguments.length;
+                if (e < 3) {
+                  if ('string' != typeof r) {
+                    for (i in (e < 2 && (t = ''), r)) this.style(i, r[i], t);
+                    return this;
+                  }
+                  i = '';
+                }
+                function o() {
+                  this.style.removeProperty(r);
+                }
+                return Fs(this, 'style.' + r, t, function (n) {
+                  return null == n
+                    ? o
+                    : ((n += ''),
+                      function () {
+                        var e,
+                          t = L(this).getComputedStyle(this, null).getPropertyValue(r);
+                        return (
+                          t !== n &&
+                          ((e = fo(t, n)),
+                          function (t) {
+                            this.style.setProperty(r, e(t), i);
+                          })
+                        );
+                      });
+                });
+              }),
+              (w.styleTween = function (r, i, o) {
+                return (
+                  arguments.length < 3 && (o = ''),
+                  this.tween('style.' + r, function (t, e) {
+                    var n = i.call(
+                      this,
+                      t,
+                      e,
+                      L(this).getComputedStyle(this, null).getPropertyValue(r),
+                    );
+                    return (
+                      n &&
+                      function (t) {
+                        this.style.setProperty(r, n(t), o);
+                      }
+                    );
+                  })
+                );
+              }),
+              (w.text = function (t) {
+                return Fs(this, 'text', t, Qs);
+              }),
+              (w.remove = function () {
+                var e = this.namespace;
+                return this.each('end.transition', function () {
+                  var t;
+                  this[e].count < 2 && (t = this.parentNode) && t.removeChild(this);
+                });
+              }),
+              (w.ease = function (e) {
+                var n = this.id,
+                  r = this.namespace;
+                return arguments.length < 1
+                  ? this.node()[r][n].ease
+                  : ('function' != typeof e && (e = _.ease.apply(_, arguments)),
+                    Tt(this, function (t) {
+                      t[r][n].ease = e;
+                    }));
+              }),
+              (w.delay = function (r) {
+                var i = this.id,
+                  o = this.namespace;
+                return arguments.length < 1
+                  ? this.node()[o][i].delay
+                  : Tt(
+                      this,
+                      'function' == typeof r
+                        ? function (t, e, n) {
+                            t[o][i].delay = +r.call(t, t.__data__, e, n);
+                          }
+                        : ((r = +r),
+                          function (t) {
+                            t[o][i].delay = r;
+                          }),
+                    );
+              }),
+              (w.duration = function (r) {
+                var i = this.id,
+                  o = this.namespace;
+                return arguments.length < 1
+                  ? this.node()[o][i].duration
+                  : Tt(
+                      this,
+                      'function' == typeof r
+                        ? function (t, e, n) {
+                            t[o][i].duration = Math.max(1, r.call(t, t.__data__, e, n));
+                          }
+                        : ((r = Math.max(1, r)),
+                          function (t) {
+                            t[o][i].duration = r;
+                          }),
+                    );
+              }),
+              (w.each = function (r, e) {
+                var i = this.id,
+                  o = this.namespace;
+                if (arguments.length < 2) {
+                  var t = Ss,
+                    n = Ds;
+                  try {
+                    (Ds = i),
+                      Tt(this, function (t, e, n) {
+                        (Ss = t[o][i]), r.call(t, t.__data__, e, n);
+                      });
+                  } finally {
+                    (Ss = t), (Ds = n);
+                  }
+                } else
+                  Tt(this, function (t) {
+                    t = t[o][i];
+                    (t.event || (t.event = _.dispatch('start', 'end', 'interrupt'))).on(r, e);
+                  });
+                return this;
+              }),
+              (w.transition = function () {
+                for (
+                  var t,
+                    e,
+                    n,
+                    r = this.id,
+                    i = ++ks,
+                    o = this.namespace,
+                    a = [],
+                    s = 0,
+                    l = this.length;
+                  s < l;
+                  s++
+                ) {
+                  a.push((t = []));
+                  for (var u, c = 0, A = (u = this[s]).length; c < A; c++)
+                    (e = u[c]) &&
+                      Ts(e, c, o, i, {
+                        time: (n = e[o][r]).time,
+                        ease: n.ease,
+                        delay: n.delay + n.duration,
+                        duration: n.duration,
+                      }),
+                      t.push(e);
+                }
+                return Ms(a, o, i);
+              }),
+              (_.svg.axis = function () {
+                var w,
+                  E = _.scale.linear(),
+                  B = Rs,
+                  C = 6,
+                  x = 6,
+                  I = 3,
+                  M = [10],
+                  D = null;
+                function n(t) {
+                  t.each(function () {
+                    var t,
+                      e,
+                      n,
+                      r,
+                      i,
+                      o,
+                      a,
+                      s = _.select(this),
+                      l = this.__chart__ || E,
+                      u = (this.__chart__ = E.copy()),
+                      c = null == D ? (u.ticks ? u.ticks.apply(u, M) : u.domain()) : D,
+                      A = null == w ? (u.tickFormat ? u.tickFormat.apply(u, M) : k) : w,
+                      c = s.selectAll('.tick').data(c, u),
+                      h = c
+                        .enter()
+                        .insert('g', '.domain')
+                        .attr('class', 'tick')
+                        .style('opacity', Q),
+                      p = _.transition(c.exit()).style('opacity', Q).remove(),
+                      d = _.transition(c.order()).style('opacity', 1),
+                      f = Math.max(C, 0) + I,
+                      g = Ma(u),
+                      s = s.selectAll('.domain').data([0]),
+                      s = (s.enter().append('path').attr('class', 'domain'), _.transition(s)),
+                      m = (h.append('line'), h.append('text'), h.select('line')),
+                      v = d.select('line'),
+                      c = c.select('text').text(A),
+                      A = h.select('text'),
+                      b = d.select('text'),
+                      y = 'top' === B || 'left' === B ? -1 : 1;
+                    'bottom' === B || 'top' === B
+                      ? ((t = Ns),
+                        (e = 'x'),
+                        (r = 'y'),
+                        (n = 'x2'),
+                        (i = 'y2'),
+                        c.attr('dy', y < 0 ? '0em' : '.71em').style('text-anchor', 'middle'),
+                        s.attr('d', 'M' + g[0] + ',' + y * x + 'V0H' + g[1] + 'V' + y * x))
+                      : ((t = Ps),
+                        (e = 'y'),
+                        (r = 'x'),
+                        (n = 'y2'),
+                        (i = 'x2'),
+                        c.attr('dy', '.32em').style('text-anchor', y < 0 ? 'end' : 'start'),
+                        s.attr('d', 'M' + y * x + ',' + g[0] + 'H0V' + g[1] + 'H' + y * x)),
+                      m.attr(i, y * C),
+                      A.attr(r, y * f),
+                      v.attr(n, 0).attr(i, y * C),
+                      b.attr(e, 0).attr(r, y * f),
+                      u.rangeBand
+                        ? ((a = (o = u).rangeBand() / 2),
+                          (l = u =
+                            function (t) {
+                              return o(t) + a;
+                            }))
+                        : l.rangeBand
+                          ? (l = u)
+                          : p.call(t, u, l),
+                      h.call(t, l, u),
+                      d.call(t, u, u);
+                  });
+                }
+                return (
+                  (n.scale = function (t) {
+                    return arguments.length ? ((E = t), n) : E;
+                  }),
+                  (n.orient = function (t) {
+                    return arguments.length ? ((B = t in Us ? t + '' : Rs), n) : B;
+                  }),
+                  (n.ticks = function () {
+                    return arguments.length ? ((M = h(arguments)), n) : M;
+                  }),
+                  (n.tickValues = function (t) {
+                    return arguments.length ? ((D = t), n) : D;
+                  }),
+                  (n.tickFormat = function (t) {
+                    return arguments.length ? ((w = t), n) : w;
+                  }),
+                  (n.tickSize = function (t) {
+                    var e = arguments.length;
+                    return e ? ((C = +t), (x = +arguments[e - 1]), n) : C;
+                  }),
+                  (n.innerTickSize = function (t) {
+                    return arguments.length ? ((C = +t), n) : C;
+                  }),
+                  (n.outerTickSize = function (t) {
+                    return arguments.length ? ((x = +t), n) : x;
+                  }),
+                  (n.tickPadding = function (t) {
+                    return arguments.length ? ((I = +t), n) : I;
+                  }),
+                  (n.tickSubdivide = function () {
+                    return arguments.length && n;
+                  }),
+                  n
+                );
+              });
+            var Rs = 'bottom',
+              Us = { top: 1, right: 1, bottom: 1, left: 1 };
+            function Ns(t, n, r) {
+              t.attr('transform', function (t) {
+                var e = n(t);
+                return 'translate(' + (isFinite(e) ? e : r(t)) + ',0)';
+              });
+            }
+            function Ps(t, n, r) {
+              t.attr('transform', function (t) {
+                var e = n(t);
+                return 'translate(0,' + (isFinite(e) ? e : r(t)) + ')';
+              });
+            }
+            _.svg.brush = function () {
+              var m,
+                v,
+                b = At(I, 'brushstart', 'brush', 'brushend'),
+                y = null,
+                w = null,
+                E = [0, 0],
+                B = [0, 0],
+                C = !0,
+                x = !0,
+                i = Ys[0];
+              function I(t) {
+                t.each(function () {
+                  var t,
+                    e = _.select(this)
+                      .style('pointer-events', 'all')
+                      .style('-webkit-tap-highlight-color', 'rgba(0,0,0,0)')
+                      .on('mousedown.brush', o)
+                      .on('touchstart.brush', o),
+                    n = e.selectAll('.background').data([0]),
+                    r =
+                      (n
+                        .enter()
+                        .append('rect')
+                        .attr('class', 'background')
+                        .style('visibility', 'hidden')
+                        .style('cursor', 'crosshair'),
+                      e
+                        .selectAll('.extent')
+                        .data([0])
+                        .enter()
+                        .append('rect')
+                        .attr('class', 'extent')
+                        .style('cursor', 'move'),
+                      e.selectAll('.resize').data(i, k)),
+                    r =
+                      (r.exit().remove(),
+                      r
+                        .enter()
+                        .append('g')
+                        .attr('class', function (t) {
+                          return 'resize ' + t;
+                        })
+                        .style('cursor', function (t) {
+                          return Ls[t];
+                        })
+                        .append('rect')
+                        .attr('x', function (t) {
+                          return /[ew]$/.test(t) ? -3 : null;
+                        })
+                        .attr('y', function (t) {
+                          return /^[ns]/.test(t) ? -3 : null;
+                        })
+                        .attr('width', 6)
+                        .attr('height', 6)
+                        .style('visibility', 'hidden'),
+                      r.style('display', I.empty() ? 'none' : null),
+                      _.transition(e)),
+                    e = _.transition(n);
+                  y && ((t = Ma(y)), e.attr('x', t[0]).attr('width', t[1] - t[0]), D(r)),
+                    w && ((t = Ma(w)), e.attr('y', t[0]).attr('height', t[1] - t[0]), S(r)),
+                    M(r);
+                });
+              }
+              function M(t) {
+                t.selectAll('.resize').attr('transform', function (t) {
+                  return 'translate(' + E[+/e$/.test(t)] + ',' + B[+/^s/.test(t)] + ')';
+                });
+              }
+              function D(t) {
+                t.select('.extent').attr('x', E[0]),
+                  t.selectAll('.extent,.n>rect,.s>rect').attr('width', E[1] - E[0]);
+              }
+              function S(t) {
+                t.select('.extent').attr('y', B[0]),
+                  t.selectAll('.extent,.e>rect,.w>rect').attr('height', B[1] - B[0]);
+              }
+              function o() {
+                var l,
+                  t,
+                  n,
+                  r = this,
+                  e = _.select(_.event.target),
+                  i = b.of(r, arguments),
+                  o = _.select(r),
+                  a = e.datum(),
+                  s = !/^(n|s)$/.test(a) && y,
+                  u = !/^(e|w)$/.test(a) && w,
+                  c = e.classed('extent'),
+                  A = zt(r),
+                  h = _.mouse(r),
+                  p = _.select(L(r))
+                    .on('keydown.brush', function () {
+                      32 == _.event.keyCode &&
+                        (c || ((l = null), (h[0] -= E[1]), (h[1] -= B[1]), (c = 2)), ut());
+                    })
+                    .on('keyup.brush', function () {
+                      32 == _.event.keyCode &&
+                        2 == c &&
+                        ((h[0] += E[1]), (h[1] += B[1]), (c = 0), ut());
+                    });
+                function d() {
+                  var t = _.mouse(r),
+                    e = !1;
+                  n && ((t[0] += n[0]), (t[1] += n[1])),
+                    c ||
+                      (_.event.altKey
+                        ? ((l = l || [(E[0] + E[1]) / 2, (B[0] + B[1]) / 2]),
+                          (h[0] = E[+(t[0] < l[0])]),
+                          (h[1] = B[+(t[1] < l[1])]))
+                        : (l = null)),
+                    s && f(t, y, 0) && (D(o), (e = !0)),
+                    u && f(t, w, 1) && (S(o), (e = !0)),
+                    e && (M(o), i({ type: 'brush', mode: c ? 'move' : 'resize' }));
+                }
+                function f(t, e, n) {
+                  var r,
+                    e = Ma(e),
+                    i = e[0],
+                    e = e[1],
+                    o = h[n],
+                    a = n ? B : E,
+                    s = a[1] - a[0];
+                  return (
+                    c && ((i -= o), (e -= s + o)),
+                    (t = (n ? x : C) ? Math.max(i, Math.min(e, t[n])) : t[n]),
+                    c
+                      ? (r = (t += o) + s)
+                      : (o = l ? Math.max(i, Math.min(e, 2 * l[n] - t)) : o) < t
+                        ? ((r = t), (t = o))
+                        : (r = o),
+                    (a[0] != t || a[1] != r) &&
+                      (n ? (v = null) : (m = null), (a[0] = t), (a[1] = r), 1)
+                  );
+                }
+                function g() {
+                  d(),
+                    o
+                      .style('pointer-events', 'all')
+                      .selectAll('.resize')
+                      .style('display', I.empty() ? 'none' : null),
+                    _.select('body').style('cursor', null),
+                    p
+                      .on('mousemove.brush', null)
+                      .on('mouseup.brush', null)
+                      .on('touchmove.brush', null)
+                      .on('touchend.brush', null)
+                      .on('keydown.brush', null)
+                      .on('keyup.brush', null),
+                    A(),
+                    i({ type: 'brushend' });
+                }
+                _.event.changedTouches
+                  ? p.on('touchmove.brush', d).on('touchend.brush', g)
+                  : p.on('mousemove.brush', d).on('mouseup.brush', g),
+                  o.interrupt().selectAll('*').interrupt(),
+                  c
+                    ? ((h[0] = E[0] - h[0]), (h[1] = B[0] - h[1]))
+                    : a
+                      ? ((t = +/w$/.test(a)),
+                        (a = +/^n/.test(a)),
+                        (n = [E[1 - t] - h[0], B[1 - a] - h[1]]),
+                        (h[0] = E[t]),
+                        (h[1] = B[a]))
+                      : _.event.altKey && (l = h.slice()),
+                  o.style('pointer-events', 'none').selectAll('.resize').style('display', null),
+                  _.select('body').style('cursor', e.style('cursor')),
+                  i({ type: 'brushstart' }),
+                  d();
+              }
+              return (
+                (I.event = function (t) {
+                  t.each(function () {
+                    var r = b.of(this, arguments),
+                      i = { x: E, y: B, i: m, j: v },
+                      t = this.__chart__ || i;
+                    (this.__chart__ = i),
+                      Ds
+                        ? _.select(this)
+                            .transition()
+                            .each('start.brush', function () {
+                              (m = t.i), (v = t.j), (E = t.x), (B = t.y), r({ type: 'brushstart' });
+                            })
+                            .tween('brush:brush', function () {
+                              var e = go(E, i.x),
+                                n = go(B, i.y);
+                              return (
+                                (m = v = null),
+                                function (t) {
+                                  (E = i.x = e(t)),
+                                    (B = i.y = n(t)),
+                                    r({ type: 'brush', mode: 'resize' });
+                                }
+                              );
+                            })
+                            .each('end.brush', function () {
+                              (m = i.i),
+                                (v = i.j),
+                                r({ type: 'brush', mode: 'resize' }),
+                                r({ type: 'brushend' });
+                            })
+                        : (r({ type: 'brushstart' }),
+                          r({ type: 'brush', mode: 'resize' }),
+                          r({ type: 'brushend' }));
+                  });
+                }),
+                (I.x = function (t) {
+                  return arguments.length ? ((i = Ys[(!(y = t) << 1) | !w]), I) : y;
+                }),
+                (I.y = function (t) {
+                  return arguments.length ? ((i = Ys[(!y << 1) | !(w = t)]), I) : w;
+                }),
+                (I.clamp = function (t) {
+                  return arguments.length
+                    ? (y && w ? ((C = !!t[0]), (x = !!t[1])) : y ? (C = !!t) : w && (x = !!t), I)
+                    : y && w
+                      ? [C, x]
+                      : y
+                        ? C
+                        : w
+                          ? x
+                          : null;
+                }),
+                (I.extent = function (t) {
+                  var e, n, r, i, o;
+                  return arguments.length
+                    ? (y &&
+                        ((e = t[0]),
+                        (n = t[1]),
+                        w && ((e = e[0]), (n = n[0])),
+                        (m = [e, n]),
+                        y.invert && ((e = y(e)), (n = y(n))),
+                        n < e && ((o = e), (e = n), (n = o)),
+                        (e == E[0] && n == E[1]) || (E = [e, n])),
+                      w &&
+                        ((r = t[0]),
+                        (i = t[1]),
+                        y && ((r = r[1]), (i = i[1])),
+                        (v = [r, i]),
+                        w.invert && ((r = w(r)), (i = w(i))),
+                        i < r && ((o = r), (r = i), (i = o)),
+                        (r == B[0] && i == B[1]) || (B = [r, i])),
+                      I)
+                    : (y &&
+                        (m
+                          ? ((e = m[0]), (n = m[1]))
+                          : ((e = E[0]),
+                            (n = E[1]),
+                            y.invert && ((e = y.invert(e)), (n = y.invert(n))),
+                            n < e && ((o = e), (e = n), (n = o)))),
+                      w &&
+                        (v
+                          ? ((r = v[0]), (i = v[1]))
+                          : ((r = B[0]),
+                            (i = B[1]),
+                            w.invert && ((r = w.invert(r)), (i = w.invert(i))),
+                            i < r && ((o = r), (r = i), (i = o)))),
+                      y && w
+                        ? [
+                            [e, r],
+                            [n, i],
+                          ]
+                        : y
+                          ? [e, n]
+                          : w && [r, i]);
+                }),
+                (I.clear = function () {
+                  return I.empty() || ((E = [0, 0]), (B = [0, 0]), (m = v = null)), I;
+                }),
+                (I.empty = function () {
+                  return (!!y && E[0] == E[1]) || (!!w && B[0] == B[1]);
+                }),
+                _.rebind(I, b, 'on')
+              );
+            };
+            var Ls = {
+                n: 'ns-resize',
+                e: 'ew-resize',
+                s: 'ns-resize',
+                w: 'ew-resize',
+                nw: 'nwse-resize',
+                ne: 'nesw-resize',
+                se: 'nwse-resize',
+                sw: 'nesw-resize',
+              },
+              Ys = [['n', 'e', 's', 'w', 'nw', 'ne', 'se', 'sw'], ['e', 'w'], ['n', 's'], []],
+              e = (E.format = n.timeFormat),
+              n = e.utc,
+              Os = n('%Y-%m-%dT%H:%M:%S.%LZ');
+            function Gs(t) {
+              return t.toISOString();
+            }
+            function zs(e, i, t) {
+              function o(t) {
+                return e(t);
+              }
+              function a(t, e) {
+                var n = (t[1] - t[0]) / e,
+                  r = _.bisect(js, n);
+                return r == js.length
+                  ? [
+                      i.year,
+                      Ra(
+                        t.map(function (t) {
+                          return t / 31536e6;
+                        }),
+                        e,
+                      )[2],
+                    ]
+                  : r
+                    ? i[n / js[r - 1] < js[r] / n ? r - 1 : r]
+                    : [Ws, Ra(t, e)[2]];
+              }
+              return (
+                (o.invert = function (t) {
+                  return Hs(e.invert(t));
+                }),
+                (o.domain = function (t) {
+                  return arguments.length ? (e.domain(t), o) : e.domain().map(Hs);
+                }),
+                (o.nice = function (e, n) {
+                  var t = o.domain(),
+                    r = Ia(t),
+                    r = null == e ? a(r, 10) : 'number' == typeof e && a(r, e);
+                  function i(t) {
+                    return !isNaN(t) && !e.range(t, Hs(+t + 1), n).length;
+                  }
+                  return (
+                    r && ((e = r[0]), (n = r[1])),
+                    o.domain(
+                      Sa(
+                        t,
+                        1 < n
+                          ? {
+                              floor: function (t) {
+                                for (; i((t = e.floor(t))); ) t = Hs(t - 1);
+                                return t;
+                              },
+                              ceil: function (t) {
+                                for (; i((t = e.ceil(t))); ) t = Hs(+t + 1);
+                                return t;
+                              },
+                            }
+                          : e,
+                      ),
+                    )
+                  );
+                }),
+                (o.ticks = function (t, e) {
+                  var n = Ia(o.domain()),
+                    r =
+                      null == t
+                        ? a(n, 10)
+                        : 'number' == typeof t
+                          ? a(n, t)
+                          : !t.range && [{ range: t }, e];
+                  return r && ((t = r[0]), (e = r[1])), t.range(n[0], Hs(+n[1] + 1), e < 1 ? 1 : e);
+                }),
+                (o.tickFormat = function () {
+                  return t;
+                }),
+                (o.copy = function () {
+                  return zs(e.copy(), i, t);
+                }),
+                _a(o, e)
+              );
+            }
+            function Hs(t) {
+              return new Date(t);
+            }
+            (e.iso = Date.prototype.toISOString && +new Date('2000-01-01T00:00:00.000Z') ? Gs : Os),
+              (Gs.parse = function (t) {
+                t = new Date(t);
+                return isNaN(t) ? null : t;
+              }),
+              (Gs.toString = Os.toString),
+              (E.second = je(
+                function (t) {
+                  return new B(1e3 * Math.floor(t / 1e3));
+                },
+                function (t, e) {
+                  t.setTime(t.getTime() + 1e3 * Math.floor(e));
+                },
+                function (t) {
+                  return t.getSeconds();
+                },
+              )),
+              (E.seconds = E.second.range),
+              (E.seconds.utc = E.second.utc.range),
+              (E.minute = je(
+                function (t) {
+                  return new B(6e4 * Math.floor(t / 6e4));
+                },
+                function (t, e) {
+                  t.setTime(t.getTime() + 6e4 * Math.floor(e));
+                },
+                function (t) {
+                  return t.getMinutes();
+                },
+              )),
+              (E.minutes = E.minute.range),
+              (E.minutes.utc = E.minute.utc.range),
+              (E.hour = je(
+                function (t) {
+                  var e = t.getTimezoneOffset() / 60;
+                  return new B(36e5 * (Math.floor(t / 36e5 - e) + e));
+                },
+                function (t, e) {
+                  t.setTime(t.getTime() + 36e5 * Math.floor(e));
+                },
+                function (t) {
+                  return t.getHours();
+                },
+              )),
+              (E.hours = E.hour.range),
+              (E.hours.utc = E.hour.utc.range),
+              (E.month = je(
+                function (t) {
+                  return (t = E.day(t)).setDate(1), t;
+                },
+                function (t, e) {
+                  t.setMonth(t.getMonth() + e);
+                },
+                function (t) {
+                  return t.getMonth();
+                },
+              )),
+              (E.months = E.month.range),
+              (E.months.utc = E.month.utc.range);
+            var js = [
+                1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5,
+                6048e5, 2592e6, 7776e6, 31536e6,
+              ],
+              Vs = [
+                [E.second, 1],
+                [E.second, 5],
+                [E.second, 15],
+                [E.second, 30],
+                [E.minute, 1],
+                [E.minute, 5],
+                [E.minute, 15],
+                [E.minute, 30],
+                [E.hour, 1],
+                [E.hour, 3],
+                [E.hour, 6],
+                [E.hour, 12],
+                [E.day, 1],
+                [E.day, 2],
+                [E.week, 1],
+                [E.month, 1],
+                [E.month, 3],
+                [E.year, 1],
+              ],
+              qs = e.multi([
+                [
+                  '.%L',
+                  function (t) {
+                    return t.getMilliseconds();
+                  },
+                ],
+                [
+                  ':%S',
+                  function (t) {
+                    return t.getSeconds();
+                  },
+                ],
+                [
+                  '%I:%M',
+                  function (t) {
+                    return t.getMinutes();
+                  },
+                ],
+                [
+                  '%I %p',
+                  function (t) {
+                    return t.getHours();
+                  },
+                ],
+                [
+                  '%a %d',
+                  function (t) {
+                    return t.getDay() && 1 != t.getDate();
+                  },
+                ],
+                [
+                  '%b %d',
+                  function (t) {
+                    return 1 != t.getDate();
+                  },
+                ],
+                [
+                  '%B',
+                  function (t) {
+                    return t.getMonth();
+                  },
+                ],
+                ['%Y', hr],
+              ]),
+              Ws = {
+                range: function (t, e, n) {
+                  return _.range(Math.ceil(t / n) * n, +e, n).map(Hs);
+                },
+                floor: k,
+                ceil: k,
+              },
+              Js =
+                ((Vs.year = E.year),
+                (E.scale = function () {
+                  return zs(_.scale.linear(), Vs, qs);
+                }),
+                Vs.map(function (t) {
+                  return [t[0].utc, t[1]];
+                })),
+              Ks = n.multi([
+                [
+                  '.%L',
+                  function (t) {
+                    return t.getUTCMilliseconds();
+                  },
+                ],
+                [
+                  ':%S',
+                  function (t) {
+                    return t.getUTCSeconds();
+                  },
+                ],
+                [
+                  '%I:%M',
+                  function (t) {
+                    return t.getUTCMinutes();
+                  },
+                ],
+                [
+                  '%I %p',
+                  function (t) {
+                    return t.getUTCHours();
+                  },
+                ],
+                [
+                  '%a %d',
+                  function (t) {
+                    return t.getUTCDay() && 1 != t.getUTCDate();
+                  },
+                ],
+                [
+                  '%b %d',
+                  function (t) {
+                    return 1 != t.getUTCDate();
+                  },
+                ],
+                [
+                  '%B',
+                  function (t) {
+                    return t.getUTCMonth();
+                  },
+                ],
+                ['%Y', hr],
+              ]);
+            function Zs(t) {
+              return JSON.parse(t.responseText);
+            }
+            function Xs(t) {
+              var e = T.createRange();
+              return e.selectNode(T.body), e.createContextualFragment(t.responseText);
+            }
+            (Js.year = E.year.utc),
+              (E.scale.utc = function () {
+                return zs(_.scale.linear(), Js, Ks);
+              }),
+              (_.text = Me(function (t) {
+                return t.responseText;
+              })),
+              (_.json = function (t, e) {
+                return De(t, 'application/json', Zs, e);
+              }),
+              (_.html = function (t, e) {
+                return De(t, 'text/html', Xs, e);
+              }),
+              (_.xml = Me(function (t) {
+                return t.responseXML;
+              })),
+              'object' == typeof $s && $s.exports ? ($s.exports = _) : (this.d3 = _);
+          })();
+        },
+        {},
+      ],
+      34: [
+        function (t, e, n) {
+          var r, i;
+          (r = this),
+            (i = function () {
+              return function e(t, n, r) {
+                function i(t) {
+                  return String(t);
+                }
+                var o = window,
+                  a = 'application/octet-stream',
+                  s = r || a,
+                  l = t,
+                  t = !n && !r && l,
+                  u = document.createElement('a'),
+                  c = o.Blob || o.MozBlob || o.WebKitBlob || i,
+                  A = n || 'download',
+                  c = c.call ? c.bind(o) : Blob;
+                if (
+                  ('true' === String(this) && ((s = (l = [l, s])[0]), (l = l[1])),
+                  t && t.length < 2048)
+                ) {
+                  var h,
+                    A = t.split('/').pop().split('?')[0];
+                  if (((u.href = t), -1 !== u.href.indexOf(t)))
+                    return (
+                      (h = new XMLHttpRequest()).open('GET', t, !0),
+                      (h.responseType = 'blob'),
+                      (h.onload = function (t) {
+                        e(t.target.response, A, a);
+                      }),
+                      setTimeout(function () {
+                        h.send();
+                      }, 0),
+                      h
+                    );
+                }
+                if (/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(l)) {
+                  if (!(2096103.424 < l.length && c !== i))
+                    return navigator.msSaveBlob ? navigator.msSaveBlob(g(l), A) : m(l);
+                  s = (l = g(l)).type || a;
+                } else if (/([\x80-\xff])/.test(l)) {
+                  for (var p = 0, d = new Uint8Array(l.length), f = d.length; p < f; ++p)
+                    d[p] = l.charCodeAt(p);
+                  l = new c([d], { type: s });
+                }
+                function g(t) {
+                  for (
+                    var t = t.split(/[:;,]/),
+                      e = t[1],
+                      n = ('base64' == t[2] ? atob : decodeURIComponent)(t.pop()),
+                      r = n.length,
+                      i = 0,
+                      o = new Uint8Array(r);
+                    i < r;
+                    ++i
+                  )
+                    o[i] = n.charCodeAt(i);
+                  return new c([o], { type: e });
+                }
+                function m(t, e) {
+                  if ('download' in u)
+                    return (
+                      (u.href = t),
+                      u.setAttribute('download', A),
+                      (u.className = 'download-js-link'),
+                      (u.innerHTML = 'downloading...'),
+                      (u.style.display = 'none'),
+                      document.body.appendChild(u),
+                      setTimeout(function () {
+                        u.click(),
+                          document.body.removeChild(u),
+                          !0 === e &&
+                            setTimeout(function () {
+                              o.URL.revokeObjectURL(u.href);
+                            }, 250);
+                      }, 66),
+                      !0
+                    );
+                  if (/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent))
+                    return (
+                      /^data:/.test(t) && (t = 'data:' + t.replace(/^data:([\w\/\-\+]+)/, a)),
+                      window.open(t) ||
+                        (confirm(
+                          'Displaying New Document\n\nUse Save As... to download, then click back to return to this page.',
+                        ) &&
+                          (location.href = t)),
+                      !0
+                    );
+                  var n = document.createElement('iframe');
+                  document.body.appendChild(n),
+                    !e && /^data:/.test(t) && (t = 'data:' + t.replace(/^data:([\w\/\-\+]+)/, a)),
+                    (n.src = t),
+                    setTimeout(function () {
+                      document.body.removeChild(n);
+                    }, 333);
+                }
+                if (((r = l instanceof c ? l : new c([l], { type: s })), navigator.msSaveBlob))
+                  return navigator.msSaveBlob(r, A);
+                if (o.URL) m(o.URL.createObjectURL(r), !0);
+                else {
+                  if ('string' == typeof r || r.constructor === i)
+                    try {
+                      return m('data:' + s + ';base64,' + o.btoa(r));
+                    } catch (t) {
+                      return m('data:' + s + ',' + encodeURIComponent(r));
+                    }
+                  ((n = new FileReader()).onload = function (t) {
+                    m(this.result);
+                  }),
+                    n.readAsDataURL(r);
+                }
+                return !0;
+              };
+            }),
+            'object' == typeof n ? (e.exports = i()) : (r.download = i());
+        },
+        {},
+      ],
+      35: [
+        function (t, e, n) {
+          function r() {
+            (this._events = this._events || {}),
+              (this._maxListeners = this._maxListeners || void 0);
+          }
+          function l(t) {
+            return 'function' == typeof t;
+          }
+          function u(t) {
+            return 'object' == typeof t && null !== t;
+          }
+          function c(t) {
+            return void 0 === t;
+          }
+          (((e.exports = r).EventEmitter = r).prototype._events = void 0),
+            (r.prototype._maxListeners = void 0),
+            (r.defaultMaxListeners = 10),
+            (r.prototype.setMaxListeners = function (t) {
+              if ('number' != typeof t || t < 0 || isNaN(t))
+                throw TypeError('n must be a positive number');
+              return (this._maxListeners = t), this;
+            }),
+            (r.prototype.emit = function (t) {
+              var e, n, r, i, o, a, s;
+              if (
+                (this._events || (this._events = {}), 'error' === t) &&
+                (!this._events.error || (u(this._events.error) && !this._events.error.length))
+              )
+                throw (s = arguments[1]) instanceof Error
+                  ? s
+                  : (((a = new Error('Uncaught, unspecified "error" event. (' + s + ')')).context =
+                      s),
+                    a);
+              if (c((e = this._events[t]))) return !1;
+              if (l(e))
+                switch (arguments.length) {
+                  case 1:
+                    e.call(this);
+                    break;
+                  case 2:
+                    e.call(this, arguments[1]);
+                    break;
+                  case 3:
+                    e.call(this, arguments[1], arguments[2]);
+                    break;
+                  default:
+                    (r = Array.prototype.slice.call(arguments, 1)), e.apply(this, r);
+                }
+              else if (u(e))
+                for (
+                  r = Array.prototype.slice.call(arguments, 1), n = (o = e.slice()).length, i = 0;
+                  i < n;
+                  i++
+                )
+                  o[i].apply(this, r);
+              return !0;
+            }),
+            (r.prototype.on = r.prototype.addListener =
+              function (t, e) {
+                if (l(e))
+                  return (
+                    this._events || (this._events = {}),
+                    this._events.newListener &&
+                      this.emit('newListener', t, l(e.listener) ? e.listener : e),
+                    this._events[t]
+                      ? u(this._events[t])
+                        ? this._events[t].push(e)
+                        : (this._events[t] = [this._events[t], e])
+                      : (this._events[t] = e),
+                    u(this._events[t]) &&
+                      !this._events[t].warned &&
+                      (e = c(this._maxListeners) ? r.defaultMaxListeners : this._maxListeners) &&
+                      0 < e &&
+                      this._events[t].length > e &&
+                      ((this._events[t].warned = !0),
+                      console.error(
+                        '(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.',
+                        this._events[t].length,
+                      ),
+                      'function' == typeof console.trace && console.trace()),
+                    this
+                  );
+                throw TypeError('listener must be a function');
+              }),
+            (r.prototype.once = function (t, e) {
+              if (!l(e)) throw TypeError('listener must be a function');
+              var n = !1;
+              function r() {
+                this.removeListener(t, r), n || ((n = !0), e.apply(this, arguments));
+              }
+              return (r.listener = e), this.on(t, r), this;
+            }),
+            (r.prototype.removeListener = function (t, e) {
+              var n, r, i, o;
+              if (!l(e)) throw TypeError('listener must be a function');
+              if (this._events && this._events[t])
+                if (
+                  ((i = (n = this._events[t]).length),
+                  (r = -1),
+                  n === e || (l(n.listener) && n.listener === e))
+                )
+                  delete this._events[t],
+                    this._events.removeListener && this.emit('removeListener', t, e);
+                else if (u(n)) {
+                  for (o = i; 0 < o--; )
+                    if (n[o] === e || (n[o].listener && n[o].listener === e)) {
+                      r = o;
+                      break;
+                    }
+                  if (r < 0) return this;
+                  1 === n.length ? ((n.length = 0), delete this._events[t]) : n.splice(r, 1),
+                    this._events.removeListener && this.emit('removeListener', t, e);
+                }
+              return this;
+            }),
+            (r.prototype.removeAllListeners = function (t) {
+              var e, n;
+              if (this._events) {
+                if (!this._events.removeListener)
+                  return (
+                    0 === arguments.length
+                      ? (this._events = {})
+                      : this._events[t] && delete this._events[t],
+                    this
+                  );
+                if (0 === arguments.length) {
+                  for (e in this._events) 'removeListener' !== e && this.removeAllListeners(e);
+                  return this.removeAllListeners('removeListener'), (this._events = {}), this;
+                }
+                if (l((n = this._events[t]))) this.removeListener(t, n);
+                else if (n) for (; n.length; ) this.removeListener(t, n[n.length - 1]);
+                delete this._events[t];
+              }
+              return this;
+            }),
+            (r.prototype.listeners = function (t) {
+              t =
+                this._events && this._events[t]
+                  ? l(this._events[t])
+                    ? [this._events[t]]
+                    : this._events[t].slice()
+                  : [];
+              return t;
+            }),
+            (r.prototype.listenerCount = function (t) {
+              if (this._events) {
+                t = this._events[t];
+                if (l(t)) return 1;
+                if (t) return t.length;
+              }
+              return 0;
+            }),
+            (r.listenerCount = function (t, e) {
+              return t.listenerCount(e);
+            });
+        },
+        {},
+      ],
+      36: [
+        function (t, e, n) {
+          var r = (function (s) {
+            'use strict';
+            var l, u, c, A, h, p, e, d, f, r, t;
+            if (
+              !(
+                void 0 === s ||
+                ('undefined' != typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent))
+              )
+            )
+              return (
+                (t = s.document),
+                (l = function () {
+                  return s.URL || s.webkitURL || s;
+                }),
+                (u = t.createElementNS('http://www.w3.org/1999/xhtml', 'a')),
+                (c = 'download' in u),
+                (A = /constructor/i.test(s.HTMLElement) || s.safari),
+                (h = /CriOS\/[\d]+/.test(navigator.userAgent)),
+                (p = function (t) {
+                  (s.setImmediate || s.setTimeout)(function () {
+                    throw t;
+                  }, 0);
+                }),
+                (e = 4e4),
+                (d = function (t) {
+                  setTimeout(function () {
+                    'string' == typeof t ? l().revokeObjectURL(t) : t.remove();
+                  }, e);
+                }),
+                (f = function (t) {
+                  return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(
+                    t.type,
+                  )
+                    ? new Blob([String.fromCharCode(65279), t], { type: t.type })
+                    : t;
+                }),
+                (r = function (t, n, e) {
+                  e || (t = f(t));
+                  var r,
+                    i,
+                    o = this,
+                    e = 'application/octet-stream' === t.type,
+                    a = function () {
+                      for (
+                        var t = o,
+                          e = 'writestart progress write writeend'.split(' '),
+                          n = void 0,
+                          r = (e = [].concat(e)).length;
+                        r--;
+
+                      ) {
+                        var i = t['on' + e[r]];
+                        if ('function' == typeof i)
+                          try {
+                            i.call(t, n || t);
+                          } catch (t) {
+                            p(t);
+                          }
+                      }
+                    };
+                  if (((o.readyState = o.INIT), c))
+                    return (
+                      (r = l().createObjectURL(t)),
+                      void setTimeout(function () {
+                        var t, e;
+                        (u.href = r),
+                          (u.download = n),
+                          (t = u),
+                          (e = new MouseEvent('click')),
+                          t.dispatchEvent(e),
+                          a(),
+                          d(r),
+                          (o.readyState = o.DONE);
+                      })
+                    );
+                  (h || (e && A)) && s.FileReader
+                    ? (((i = new FileReader()).onloadend = function () {
+                        var t = h
+                          ? i.result
+                          : i.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
+                        s.open(t, '_blank') || (s.location.href = t),
+                          (t = void 0),
+                          (o.readyState = o.DONE),
+                          a();
+                      }),
+                      i.readAsDataURL(t),
+                      (o.readyState = o.INIT))
+                    : ((r = r || l().createObjectURL(t)),
+                      (!e && s.open(r, '_blank')) || (s.location.href = r),
+                      (o.readyState = o.DONE),
+                      a(),
+                      d(r));
+                }),
+                (t = r.prototype),
+                'undefined' != typeof navigator && navigator.msSaveOrOpenBlob
+                  ? function (t, e, n) {
+                      return (
+                        (e = e || t.name || 'download'),
+                        n || (t = f(t)),
+                        navigator.msSaveOrOpenBlob(t, e)
+                      );
+                    }
+                  : ((t.abort = function () {}),
+                    (t.readyState = t.INIT = 0),
+                    (t.WRITING = 1),
+                    (t.DONE = 2),
+                    (t.error =
+                      t.onwritestart =
+                      t.onprogress =
+                      t.onwrite =
+                      t.onabort =
+                      t.onerror =
+                      t.onwriteend =
+                        null),
+                    function (t, e, n) {
+                      return new r(t, e || t.name || 'download', n);
+                    })
+              );
+          })(
+            ('undefined' != typeof self && self) ||
+              ('undefined' != typeof window && window) ||
+              this.content,
+          );
+          void 0 !== e && e.exports && (e.exports.saveAs = r);
+        },
+        {},
+      ],
+      37: [
+        function (t, e, n) {
+          (n.read = function (t, e, n, r, i) {
+            var o,
+              a,
+              s = 8 * i - r - 1,
+              l = (1 << s) - 1,
+              u = l >> 1,
+              c = -7,
+              A = n ? i - 1 : 0,
+              h = n ? -1 : 1,
+              i = t[e + A];
+            for (
+              A += h, o = i & ((1 << -c) - 1), i >>= -c, c += s;
+              0 < c;
+              o = 256 * o + t[e + A], A += h, c -= 8
+            );
+            for (
+              a = o & ((1 << -c) - 1), o >>= -c, c += r;
+              0 < c;
+              a = 256 * a + t[e + A], A += h, c -= 8
+            );
+            if (0 === o) o = 1 - u;
+            else {
+              if (o === l) return a ? NaN : (1 / 0) * (i ? -1 : 1);
+              (a += Math.pow(2, r)), (o -= u);
+            }
+            return (i ? -1 : 1) * a * Math.pow(2, o - r);
+          }),
+            (n.write = function (t, e, n, r, i, o) {
+              var a,
+                s,
+                l = 8 * o - i - 1,
+                u = (1 << l) - 1,
+                c = u >> 1,
+                A = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
+                h = r ? 0 : o - 1,
+                p = r ? 1 : -1,
+                o = e < 0 || (0 === e && 1 / e < 0) ? 1 : 0;
+              for (
+                e = Math.abs(e),
+                  isNaN(e) || e === 1 / 0
+                    ? ((s = isNaN(e) ? 1 : 0), (a = u))
+                    : ((a = Math.floor(Math.log(e) / Math.LN2)),
+                      e * (r = Math.pow(2, -a)) < 1 && (a--, (r *= 2)),
+                      2 <= (e += 1 <= a + c ? A / r : A * Math.pow(2, 1 - c)) * r &&
+                        (a++, (r /= 2)),
+                      u <= a + c
+                        ? ((s = 0), (a = u))
+                        : 1 <= a + c
+                          ? ((s = (e * r - 1) * Math.pow(2, i)), (a += c))
+                          : ((s = e * Math.pow(2, c - 1) * Math.pow(2, i)), (a = 0)));
+                8 <= i;
+                t[n + h] = 255 & s, h += p, s /= 256, i -= 8
+              );
+              for (a = (a << i) | s, l += i; 0 < l; t[n + h] = 255 & a, h += p, a /= 256, l -= 8);
+              t[n + h - p] |= 128 * o;
+            });
+        },
+        {},
+      ],
+      38: [
+        function (t, e, n) {
+          'function' == typeof Object.create
+            ? (e.exports = function (t, e) {
+                e &&
+                  ((t.super_ = e),
+                  (t.prototype = Object.create(e.prototype, {
+                    constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 },
+                  })));
+              })
+            : (e.exports = function (t, e) {
+                var n;
+                e &&
+                  ((t.super_ = e),
+                  ((n = function () {}).prototype = e.prototype),
+                  (t.prototype = new n()),
+                  (t.prototype.constructor = t));
+              });
+        },
+        {},
+      ],
+      39: [
+        function (t, e, n) {
+          var r = {}.toString;
+          e.exports =
+            Array.isArray ||
+            function (t) {
+              return '[object Array]' == r.call(t);
+            };
+        },
+        {},
+      ],
+      40: [
+        function (t, n, e) {
+          !(function (t, e) {
+            'use strict';
+            'object' == typeof n && 'object' == typeof n.exports
+              ? (n.exports = t.document
+                  ? e(t, !0)
+                  : function (t) {
+                      if (t.document) return e(t);
+                      throw new Error('jQuery requires a window with a document');
+                    })
+              : e(t);
+          })('undefined' != typeof window ? window : this, function (w, U) {
+            'use strict';
+            function v(t) {
+              return (
+                'function' == typeof t &&
+                'number' != typeof t.nodeType &&
+                'function' != typeof t.item
+              );
+            }
+            function f(t) {
+              return null != t && t === t.window;
+            }
+            var e = [],
+              N = Object.getPrototypeOf,
+              s = e.slice,
+              P = e.flat
+                ? function (t) {
+                    return e.flat.call(t);
+                  }
+                : function (t) {
+                    return e.concat.apply([], t);
+                  },
+              L = e.push,
+              Y = e.indexOf,
+              O = {},
+              G = O.toString,
+              z = O.hasOwnProperty,
+              H = z.toString,
+              j = H.call(Object),
+              g = {},
+              E = w.document,
+              V = { type: !0, src: !0, nonce: !0, noModule: !0 };
+            function q(t, e, n) {
+              var r,
+                i,
+                o = (n = n || E).createElement('script');
+              if (((o.text = t), e))
+                for (r in V)
+                  (i = e[r] || (e.getAttribute && e.getAttribute(r))) && o.setAttribute(r, i);
+              n.head.appendChild(o).parentNode.removeChild(o);
+            }
+            function d(t) {
+              return null == t
+                ? t + ''
+                : 'object' == typeof t || 'function' == typeof t
+                  ? O[G.call(t)] || 'object'
+                  : typeof t;
+            }
+            var B = function (t, e) {
+              return new B.fn.init(t, e);
+            };
+            function W(t) {
+              var e = !!t && 'length' in t && t.length,
+                n = d(t);
+              return (
+                !v(t) &&
+                !f(t) &&
+                ('array' === n || 0 === e || ('number' == typeof e && 0 < e && e - 1 in t))
+              );
+            }
+            (B.fn = B.prototype =
+              {
+                jquery: '3.6.0',
+                constructor: B,
+                length: 0,
+                toArray: function () {
+                  return s.call(this);
+                },
+                get: function (t) {
+                  return null == t ? s.call(this) : t < 0 ? this[t + this.length] : this[t];
+                },
+                pushStack: function (t) {
+                  t = B.merge(this.constructor(), t);
+                  return (t.prevObject = this), t;
+                },
+                each: function (t) {
+                  return B.each(this, t);
+                },
+                map: function (n) {
+                  return this.pushStack(
+                    B.map(this, function (t, e) {
+                      return n.call(t, e, t);
+                    }),
+                  );
+                },
+                slice: function () {
+                  return this.pushStack(s.apply(this, arguments));
+                },
+                first: function () {
+                  return this.eq(0);
+                },
+                last: function () {
+                  return this.eq(-1);
+                },
+                even: function () {
+                  return this.pushStack(
+                    B.grep(this, function (t, e) {
+                      return (e + 1) % 2;
+                    }),
+                  );
+                },
+                odd: function () {
+                  return this.pushStack(
+                    B.grep(this, function (t, e) {
+                      return e % 2;
+                    }),
+                  );
+                },
+                eq: function (t) {
+                  var e = this.length,
+                    t = +t + (t < 0 ? e : 0);
+                  return this.pushStack(0 <= t && t < e ? [this[t]] : []);
+                },
+                end: function () {
+                  return this.prevObject || this.constructor();
+                },
+                push: L,
+                sort: e.sort,
+                splice: e.splice,
+              }),
+              (B.extend = B.fn.extend =
+                function () {
+                  var t,
+                    e,
+                    n,
+                    r,
+                    i,
+                    o = arguments[0] || {},
+                    a = 1,
+                    s = arguments.length,
+                    l = !1;
+                  for (
+                    'boolean' == typeof o && ((l = o), (o = arguments[a] || {}), a++),
+                      'object' == typeof o || v(o) || (o = {}),
+                      a === s && ((o = this), a--);
+                    a < s;
+                    a++
+                  )
+                    if (null != (t = arguments[a]))
+                      for (e in t)
+                        (n = t[e]),
+                          '__proto__' !== e &&
+                            o !== n &&
+                            (l && n && (B.isPlainObject(n) || (r = Array.isArray(n)))
+                              ? ((i = o[e]),
+                                (i =
+                                  r && !Array.isArray(i) ? [] : r || B.isPlainObject(i) ? i : {}),
+                                (r = !1),
+                                (o[e] = B.extend(l, i, n)))
+                              : void 0 !== n && (o[e] = n));
+                  return o;
+                }),
+              B.extend({
+                expando: 'jQuery' + ('3.6.0' + Math.random()).replace(/\D/g, ''),
+                isReady: !0,
+                error: function (t) {
+                  throw new Error(t);
+                },
+                noop: function () {},
+                isPlainObject: function (t) {
+                  return (
+                    !(!t || '[object Object]' !== G.call(t)) &&
+                    (!(t = N(t)) ||
+                      ('function' == typeof (t = z.call(t, 'constructor') && t.constructor) &&
+                        H.call(t) === j))
+                  );
+                },
+                isEmptyObject: function (t) {
+                  for (var e in t) return !1;
+                  return !0;
+                },
+                globalEval: function (t, e, n) {
+                  q(t, { nonce: e && e.nonce }, n);
+                },
+                each: function (t, e) {
+                  var n,
+                    r = 0;
+                  if (W(t)) for (n = t.length; r < n && !1 !== e.call(t[r], r, t[r]); r++);
+                  else for (r in t) if (!1 === e.call(t[r], r, t[r])) break;
+                  return t;
+                },
+                makeArray: function (t, e) {
+                  e = e || [];
+                  return (
+                    null != t &&
+                      (W(Object(t)) ? B.merge(e, 'string' == typeof t ? [t] : t) : L.call(e, t)),
+                    e
+                  );
+                },
+                inArray: function (t, e, n) {
+                  return null == e ? -1 : Y.call(e, t, n);
+                },
+                merge: function (t, e) {
+                  for (var n = +e.length, r = 0, i = t.length; r < n; r++) t[i++] = e[r];
+                  return (t.length = i), t;
+                },
+                grep: function (t, e, n) {
+                  for (var r = [], i = 0, o = t.length, a = !n; i < o; i++)
+                    !e(t[i], i) != a && r.push(t[i]);
+                  return r;
+                },
+                map: function (t, e, n) {
+                  var r,
+                    i,
+                    o = 0,
+                    a = [];
+                  if (W(t)) for (r = t.length; o < r; o++) null != (i = e(t[o], o, n)) && a.push(i);
+                  else for (o in t) null != (i = e(t[o], o, n)) && a.push(i);
+                  return P(a);
+                },
+                guid: 1,
+                support: g,
+              }),
+              'function' == typeof Symbol && (B.fn[Symbol.iterator] = e[Symbol.iterator]),
+              B.each(
+                'Boolean Number String Function Array Date RegExp Object Error Symbol'.split(' '),
+                function (t, e) {
+                  O['[object ' + e + ']'] = e.toLowerCase();
+                },
+              );
+            function r(t, e, n) {
+              for (var r = [], i = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; )
+                if (1 === t.nodeType) {
+                  if (i && B(t).is(n)) break;
+                  r.push(t);
+                }
+              return r;
+            }
+            function J(t, e) {
+              for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t);
+              return n;
+            }
+            var t = (function (U) {
+                function A(t, e) {
+                  return (
+                    (t = '0x' + t.slice(1) - 65536),
+                    e ||
+                      (t < 0
+                        ? String.fromCharCode(65536 + t)
+                        : String.fromCharCode((t >> 10) | 55296, (1023 & t) | 56320))
+                  );
+                }
+                function N(t, e) {
+                  return e
+                    ? '\0' === t
+                      ? '�'
+                      : t.slice(0, -1) + '\\' + t.charCodeAt(t.length - 1).toString(16) + ' '
+                    : '\\' + t;
+                }
+                function P() {
+                  E();
+                }
+                var t,
+                  h,
+                  y,
+                  o,
+                  L,
+                  p,
+                  Y,
+                  O,
+                  w,
+                  l,
+                  u,
+                  E,
+                  B,
+                  n,
+                  C,
+                  d,
+                  r,
+                  i,
+                  f,
+                  x = 'sizzle' + +new Date(),
+                  c = U.document,
+                  I = 0,
+                  G = 0,
+                  z = F(),
+                  H = F(),
+                  j = F(),
+                  g = F(),
+                  V = function (t, e) {
+                    return t === e && (u = !0), 0;
+                  },
+                  q = {}.hasOwnProperty,
+                  e = [],
+                  W = e.pop,
+                  J = e.push,
+                  M = e.push,
+                  K = e.slice,
+                  v = function (t, e) {
+                    for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n;
+                    return -1;
+                  },
+                  Z =
+                    'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped',
+                  a = '[\\x20\\t\\r\\n\\f]',
+                  s = '(?:\\\\[\\da-fA-F]{1,6}' + a + '?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+',
+                  X =
+                    '\\[' +
+                    a +
+                    '*(' +
+                    s +
+                    ')(?:' +
+                    a +
+                    '*([*^$|!~]?=)' +
+                    a +
+                    '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' +
+                    s +
+                    '))|)' +
+                    a +
+                    '*\\]',
+                  $ =
+                    ':(' +
+                    s +
+                    ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' +
+                    X +
+                    ')*)|.*)\\)|)',
+                  tt = new RegExp(a + '+', 'g'),
+                  m = new RegExp('^' + a + '+|((?:^|[^\\\\])(?:\\\\.)*)' + a + '+$', 'g'),
+                  et = new RegExp('^' + a + '*,' + a + '*'),
+                  nt = new RegExp('^' + a + '*([>+~]|' + a + ')' + a + '*'),
+                  rt = new RegExp(a + '|>'),
+                  it = new RegExp($),
+                  ot = new RegExp('^' + s + '$'),
+                  b = {
+                    ID: new RegExp('^#(' + s + ')'),
+                    CLASS: new RegExp('^\\.(' + s + ')'),
+                    TAG: new RegExp('^(' + s + '|[*])'),
+                    ATTR: new RegExp('^' + X),
+                    PSEUDO: new RegExp('^' + $),
+                    CHILD: new RegExp(
+                      '^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' +
+                        a +
+                        '*(even|odd|(([+-]|)(\\d*)n|)' +
+                        a +
+                        '*(?:([+-]|)' +
+                        a +
+                        '*(\\d+)|))' +
+                        a +
+                        '*\\)|)',
+                      'i',
+                    ),
+                    bool: new RegExp('^(?:' + Z + ')$', 'i'),
+                    needsContext: new RegExp(
+                      '^' +
+                        a +
+                        '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' +
+                        a +
+                        '*((?:-\\d)?\\d*)' +
+                        a +
+                        '*\\)|)(?=[^-]|$)',
+                      'i',
+                    ),
+                  },
+                  at = /HTML$/i,
+                  st = /^(?:input|select|textarea|button)$/i,
+                  lt = /^h\d$/i,
+                  D = /^[^{]+\{\s*\[native \w/,
+                  ut = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+                  ct = /[+~]/,
+                  S = new RegExp('\\\\[\\da-fA-F]{1,6}' + a + '?|\\\\([^\\r\\n\\f])', 'g'),
+                  At = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+                  ht = vt(
+                    function (t) {
+                      return !0 === t.disabled && 'fieldset' === t.nodeName.toLowerCase();
+                    },
+                    { dir: 'parentNode', next: 'legend' },
+                  );
+                try {
+                  M.apply((e = K.call(c.childNodes)), c.childNodes),
+                    e[c.childNodes.length].nodeType;
+                } catch (t) {
+                  M = {
+                    apply: e.length
+                      ? function (t, e) {
+                          J.apply(t, K.call(e));
+                        }
+                      : function (t, e) {
+                          for (var n = t.length, r = 0; (t[n++] = e[r++]); );
+                          t.length = n - 1;
+                        },
+                  };
+                }
+                function k(e, t, n, r) {
+                  var i,
+                    o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c = t && t.ownerDocument,
+                    A = t ? t.nodeType : 9;
+                  if (
+                    ((n = n || []), 'string' != typeof e || !e || (1 !== A && 9 !== A && 11 !== A))
+                  )
+                    return n;
+                  if (!r && (E(t), (t = t || B), C)) {
+                    if (11 !== A && (s = ut.exec(e)))
+                      if ((i = s[1])) {
+                        if (9 === A) {
+                          if (!(u = t.getElementById(i))) return n;
+                          if (u.id === i) return n.push(u), n;
+                        } else if (c && (u = c.getElementById(i)) && f(t, u) && u.id === i)
+                          return n.push(u), n;
+                      } else {
+                        if (s[2]) return M.apply(n, t.getElementsByTagName(e)), n;
+                        if ((i = s[3]) && h.getElementsByClassName && t.getElementsByClassName)
+                          return M.apply(n, t.getElementsByClassName(i)), n;
+                      }
+                    if (
+                      h.qsa &&
+                      !g[e + ' '] &&
+                      (!d || !d.test(e)) &&
+                      (1 !== A || 'object' !== t.nodeName.toLowerCase())
+                    ) {
+                      if (((u = e), (c = t), 1 === A && (rt.test(e) || nt.test(e)))) {
+                        for (
+                          ((c = (ct.test(e) && gt(t.parentNode)) || t) === t && h.scope) ||
+                            ((a = t.getAttribute('id'))
+                              ? (a = a.replace(At, N))
+                              : t.setAttribute('id', (a = x))),
+                            o = (l = p(e)).length;
+                          o--;
+
+                        )
+                          l[o] = (a ? '#' + a : ':scope') + ' ' + R(l[o]);
+                        u = l.join(',');
+                      }
+                      try {
+                        return M.apply(n, c.querySelectorAll(u)), n;
+                      } catch (t) {
+                        g(e, !0);
+                      } finally {
+                        a === x && t.removeAttribute('id');
+                      }
+                    }
+                  }
+                  return O(e.replace(m, '$1'), t, n, r);
+                }
+                function F() {
+                  var n = [];
+                  function r(t, e) {
+                    return n.push(t + ' ') > y.cacheLength && delete r[n.shift()], (r[t + ' '] = e);
+                  }
+                  return r;
+                }
+                function Q(t) {
+                  return (t[x] = !0), t;
+                }
+                function _(t) {
+                  var e = B.createElement('fieldset');
+                  try {
+                    return !!t(e);
+                  } catch (t) {
+                    return !1;
+                  } finally {
+                    e.parentNode && e.parentNode.removeChild(e);
+                  }
+                }
+                function pt(t, e) {
+                  for (var n = t.split('|'), r = n.length; r--; ) y.attrHandle[n[r]] = e;
+                }
+                function dt(t, e) {
+                  var n = e && t,
+                    r = n && 1 === t.nodeType && 1 === e.nodeType && t.sourceIndex - e.sourceIndex;
+                  if (r) return r;
+                  if (n) for (; (n = n.nextSibling); ) if (n === e) return -1;
+                  return t ? 1 : -1;
+                }
+                function ft(e) {
+                  return function (t) {
+                    return 'form' in t
+                      ? t.parentNode && !1 === t.disabled
+                        ? 'label' in t
+                          ? 'label' in t.parentNode
+                            ? t.parentNode.disabled === e
+                            : t.disabled === e
+                          : t.isDisabled === e || (t.isDisabled !== !e && ht(t) === e)
+                        : t.disabled === e
+                      : 'label' in t && t.disabled === e;
+                  };
+                }
+                function T(a) {
+                  return Q(function (o) {
+                    return (
+                      (o = +o),
+                      Q(function (t, e) {
+                        for (var n, r = a([], t.length, o), i = r.length; i--; )
+                          t[(n = r[i])] && (t[n] = !(e[n] = t[n]));
+                      })
+                    );
+                  });
+                }
+                function gt(t) {
+                  return t && void 0 !== t.getElementsByTagName && t;
+                }
+                for (t in ((h = k.support = {}),
+                (L = k.isXML =
+                  function (t) {
+                    var e = t && t.namespaceURI,
+                      t = t && (t.ownerDocument || t).documentElement;
+                    return !at.test(e || (t && t.nodeName) || 'HTML');
+                  }),
+                (E = k.setDocument =
+                  function (t) {
+                    var t = t ? t.ownerDocument || t : c;
+                    return (
+                      t != B &&
+                        9 === t.nodeType &&
+                        t.documentElement &&
+                        ((n = (B = t).documentElement),
+                        (C = !L(B)),
+                        c != B &&
+                          (t = B.defaultView) &&
+                          t.top !== t &&
+                          (t.addEventListener
+                            ? t.addEventListener('unload', P, !1)
+                            : t.attachEvent && t.attachEvent('onunload', P)),
+                        (h.scope = _(function (t) {
+                          return (
+                            n.appendChild(t).appendChild(B.createElement('div')),
+                            void 0 !== t.querySelectorAll &&
+                              !t.querySelectorAll(':scope fieldset div').length
+                          );
+                        })),
+                        (h.attributes = _(function (t) {
+                          return (t.className = 'i'), !t.getAttribute('className');
+                        })),
+                        (h.getElementsByTagName = _(function (t) {
+                          return (
+                            t.appendChild(B.createComment('')), !t.getElementsByTagName('*').length
+                          );
+                        })),
+                        (h.getElementsByClassName = D.test(B.getElementsByClassName)),
+                        (h.getById = _(function (t) {
+                          return (
+                            (n.appendChild(t).id = x),
+                            !B.getElementsByName || !B.getElementsByName(x).length
+                          );
+                        })),
+                        h.getById
+                          ? ((y.filter.ID = function (t) {
+                              var e = t.replace(S, A);
+                              return function (t) {
+                                return t.getAttribute('id') === e;
+                              };
+                            }),
+                            (y.find.ID = function (t, e) {
+                              if (void 0 !== e.getElementById && C)
+                                return (e = e.getElementById(t)) ? [e] : [];
+                            }))
+                          : ((y.filter.ID = function (t) {
+                              var e = t.replace(S, A);
+                              return function (t) {
+                                t = void 0 !== t.getAttributeNode && t.getAttributeNode('id');
+                                return t && t.value === e;
+                              };
+                            }),
+                            (y.find.ID = function (t, e) {
+                              if (void 0 !== e.getElementById && C) {
+                                var n,
+                                  r,
+                                  i,
+                                  o = e.getElementById(t);
+                                if (o) {
+                                  if ((n = o.getAttributeNode('id')) && n.value === t) return [o];
+                                  for (i = e.getElementsByName(t), r = 0; (o = i[r++]); )
+                                    if ((n = o.getAttributeNode('id')) && n.value === t) return [o];
+                                }
+                                return [];
+                              }
+                            })),
+                        (y.find.TAG = h.getElementsByTagName
+                          ? function (t, e) {
+                              return void 0 !== e.getElementsByTagName
+                                ? e.getElementsByTagName(t)
+                                : h.qsa
+                                  ? e.querySelectorAll(t)
+                                  : void 0;
+                            }
+                          : function (t, e) {
+                              var n,
+                                r = [],
+                                i = 0,
+                                o = e.getElementsByTagName(t);
+                              if ('*' !== t) return o;
+                              for (; (n = o[i++]); ) 1 === n.nodeType && r.push(n);
+                              return r;
+                            }),
+                        (y.find.CLASS =
+                          h.getElementsByClassName &&
+                          function (t, e) {
+                            if (void 0 !== e.getElementsByClassName && C)
+                              return e.getElementsByClassName(t);
+                          }),
+                        (r = []),
+                        (d = []),
+                        (h.qsa = D.test(B.querySelectorAll)) &&
+                          (_(function (t) {
+                            var e;
+                            (n.appendChild(t).innerHTML =
+                              "<a id='" +
+                              x +
+                              "'></a><select id='" +
+                              x +
+                              "-\r\\' msallowcapture=''><option selected=''></option></select>"),
+                              t.querySelectorAll("[msallowcapture^='']").length &&
+                                d.push('[*^$]=' + a + '*(?:\'\'|"")'),
+                              t.querySelectorAll('[selected]').length ||
+                                d.push('\\[' + a + '*(?:value|' + Z + ')'),
+                              t.querySelectorAll('[id~=' + x + '-]').length || d.push('~='),
+                              (e = B.createElement('input')).setAttribute('name', ''),
+                              t.appendChild(e),
+                              t.querySelectorAll("[name='']").length ||
+                                d.push('\\[' + a + '*name' + a + '*=' + a + '*(?:\'\'|"")'),
+                              t.querySelectorAll(':checked').length || d.push(':checked'),
+                              t.querySelectorAll('a#' + x + '+*').length || d.push('.#.+[+~]'),
+                              t.querySelectorAll('\\\f'),
+                              d.push('[\\r\\n\\f]');
+                          }),
+                          _(function (t) {
+                            t.innerHTML =
+                              "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
+                            var e = B.createElement('input');
+                            e.setAttribute('type', 'hidden'),
+                              t.appendChild(e).setAttribute('name', 'D'),
+                              t.querySelectorAll('[name=d]').length &&
+                                d.push('name' + a + '*[*^$|!~]?='),
+                              2 !== t.querySelectorAll(':enabled').length &&
+                                d.push(':enabled', ':disabled'),
+                              (n.appendChild(t).disabled = !0),
+                              2 !== t.querySelectorAll(':disabled').length &&
+                                d.push(':enabled', ':disabled'),
+                              t.querySelectorAll('*,:x'),
+                              d.push(',.*:');
+                          })),
+                        (h.matchesSelector = D.test(
+                          (i =
+                            n.matches ||
+                            n.webkitMatchesSelector ||
+                            n.mozMatchesSelector ||
+                            n.oMatchesSelector ||
+                            n.msMatchesSelector),
+                        )) &&
+                          _(function (t) {
+                            (h.disconnectedMatch = i.call(t, '*')),
+                              i.call(t, "[s!='']:x"),
+                              r.push('!=', $);
+                          }),
+                        (d = d.length && new RegExp(d.join('|'))),
+                        (r = r.length && new RegExp(r.join('|'))),
+                        (t = D.test(n.compareDocumentPosition)),
+                        (f =
+                          t || D.test(n.contains)
+                            ? function (t, e) {
+                                var n = 9 === t.nodeType ? t.documentElement : t,
+                                  e = e && e.parentNode;
+                                return (
+                                  t === e ||
+                                  !(
+                                    !e ||
+                                    1 !== e.nodeType ||
+                                    !(n.contains
+                                      ? n.contains(e)
+                                      : t.compareDocumentPosition &&
+                                        16 & t.compareDocumentPosition(e))
+                                  )
+                                );
+                              }
+                            : function (t, e) {
+                                if (e) for (; (e = e.parentNode); ) if (e === t) return !0;
+                                return !1;
+                              }),
+                        (V = t
+                          ? function (t, e) {
+                              if (t === e) return (u = !0), 0;
+                              var n = !t.compareDocumentPosition - !e.compareDocumentPosition;
+                              return (
+                                n ||
+                                (1 &
+                                  (n =
+                                    (t.ownerDocument || t) == (e.ownerDocument || e)
+                                      ? t.compareDocumentPosition(e)
+                                      : 1) ||
+                                (!h.sortDetached && e.compareDocumentPosition(t) === n)
+                                  ? t == B || (t.ownerDocument == c && f(c, t))
+                                    ? -1
+                                    : e == B || (e.ownerDocument == c && f(c, e))
+                                      ? 1
+                                      : l
+                                        ? v(l, t) - v(l, e)
+                                        : 0
+                                  : 4 & n
+                                    ? -1
+                                    : 1)
+                              );
+                            }
+                          : function (t, e) {
+                              if (t === e) return (u = !0), 0;
+                              var n,
+                                r = 0,
+                                i = t.parentNode,
+                                o = e.parentNode,
+                                a = [t],
+                                s = [e];
+                              if (!i || !o)
+                                return t == B
+                                  ? -1
+                                  : e == B
+                                    ? 1
+                                    : i
+                                      ? -1
+                                      : o
+                                        ? 1
+                                        : l
+                                          ? v(l, t) - v(l, e)
+                                          : 0;
+                              if (i === o) return dt(t, e);
+                              for (n = t; (n = n.parentNode); ) a.unshift(n);
+                              for (n = e; (n = n.parentNode); ) s.unshift(n);
+                              for (; a[r] === s[r]; ) r++;
+                              return r ? dt(a[r], s[r]) : a[r] == c ? -1 : s[r] == c ? 1 : 0;
+                            })),
+                      B
+                    );
+                  }),
+                (k.matches = function (t, e) {
+                  return k(t, null, null, e);
+                }),
+                (k.matchesSelector = function (t, e) {
+                  if (
+                    (E(t),
+                    h.matchesSelector &&
+                      C &&
+                      !g[e + ' '] &&
+                      (!r || !r.test(e)) &&
+                      (!d || !d.test(e)))
+                  )
+                    try {
+                      var n = i.call(t, e);
+                      if (n || h.disconnectedMatch || (t.document && 11 !== t.document.nodeType))
+                        return n;
+                    } catch (t) {
+                      g(e, !0);
+                    }
+                  return 0 < k(e, B, null, [t]).length;
+                }),
+                (k.contains = function (t, e) {
+                  return (t.ownerDocument || t) != B && E(t), f(t, e);
+                }),
+                (k.attr = function (t, e) {
+                  (t.ownerDocument || t) != B && E(t);
+                  var n = y.attrHandle[e.toLowerCase()],
+                    n = n && q.call(y.attrHandle, e.toLowerCase()) ? n(t, e, !C) : void 0;
+                  return void 0 !== n
+                    ? n
+                    : h.attributes || !C
+                      ? t.getAttribute(e)
+                      : (n = t.getAttributeNode(e)) && n.specified
+                        ? n.value
+                        : null;
+                }),
+                (k.escape = function (t) {
+                  return (t + '').replace(At, N);
+                }),
+                (k.error = function (t) {
+                  throw new Error('Syntax error, unrecognized expression: ' + t);
+                }),
+                (k.uniqueSort = function (t) {
+                  var e,
+                    n = [],
+                    r = 0,
+                    i = 0;
+                  if (
+                    ((u = !h.detectDuplicates), (l = !h.sortStable && t.slice(0)), t.sort(V), u)
+                  ) {
+                    for (; (e = t[i++]); ) e === t[i] && (r = n.push(i));
+                    for (; r--; ) t.splice(n[r], 1);
+                  }
+                  return (l = null), t;
+                }),
+                (o = k.getText =
+                  function (t) {
+                    var e,
+                      n = '',
+                      r = 0,
+                      i = t.nodeType;
+                    if (i) {
+                      if (1 === i || 9 === i || 11 === i) {
+                        if ('string' == typeof t.textContent) return t.textContent;
+                        for (t = t.firstChild; t; t = t.nextSibling) n += o(t);
+                      } else if (3 === i || 4 === i) return t.nodeValue;
+                    } else for (; (e = t[r++]); ) n += o(e);
+                    return n;
+                  }),
+                ((y = k.selectors =
+                  {
+                    cacheLength: 50,
+                    createPseudo: Q,
+                    match: b,
+                    attrHandle: {},
+                    find: {},
+                    relative: {
+                      '>': { dir: 'parentNode', first: !0 },
+                      ' ': { dir: 'parentNode' },
+                      '+': { dir: 'previousSibling', first: !0 },
+                      '~': { dir: 'previousSibling' },
+                    },
+                    preFilter: {
+                      ATTR: function (t) {
+                        return (
+                          (t[1] = t[1].replace(S, A)),
+                          (t[3] = (t[3] || t[4] || t[5] || '').replace(S, A)),
+                          '~=' === t[2] && (t[3] = ' ' + t[3] + ' '),
+                          t.slice(0, 4)
+                        );
+                      },
+                      CHILD: function (t) {
+                        return (
+                          (t[1] = t[1].toLowerCase()),
+                          'nth' === t[1].slice(0, 3)
+                            ? (t[3] || k.error(t[0]),
+                              (t[4] = +(t[4]
+                                ? t[5] + (t[6] || 1)
+                                : 2 * ('even' === t[3] || 'odd' === t[3]))),
+                              (t[5] = +(t[7] + t[8] || 'odd' === t[3])))
+                            : t[3] && k.error(t[0]),
+                          t
+                        );
+                      },
+                      PSEUDO: function (t) {
+                        var e,
+                          n = !t[6] && t[2];
+                        return b.CHILD.test(t[0])
+                          ? null
+                          : (t[3]
+                              ? (t[2] = t[4] || t[5] || '')
+                              : n &&
+                                it.test(n) &&
+                                (e = p(n, !0)) &&
+                                (e = n.indexOf(')', n.length - e) - n.length) &&
+                                ((t[0] = t[0].slice(0, e)), (t[2] = n.slice(0, e))),
+                            t.slice(0, 3));
+                      },
+                    },
+                    filter: {
+                      TAG: function (t) {
+                        var e = t.replace(S, A).toLowerCase();
+                        return '*' === t
+                          ? function () {
+                              return !0;
+                            }
+                          : function (t) {
+                              return t.nodeName && t.nodeName.toLowerCase() === e;
+                            };
+                      },
+                      CLASS: function (t) {
+                        var e = z[t + ' '];
+                        return (
+                          e ||
+                          ((e = new RegExp('(^|' + a + ')' + t + '(' + a + '|$)')) &&
+                            z(t, function (t) {
+                              return e.test(
+                                ('string' == typeof t.className && t.className) ||
+                                  (void 0 !== t.getAttribute && t.getAttribute('class')) ||
+                                  '',
+                              );
+                            }))
+                        );
+                      },
+                      ATTR: function (e, n, r) {
+                        return function (t) {
+                          t = k.attr(t, e);
+                          return null == t
+                            ? '!=' === n
+                            : !n ||
+                                ((t += ''),
+                                '=' === n
+                                  ? t === r
+                                  : '!=' === n
+                                    ? t !== r
+                                    : '^=' === n
+                                      ? r && 0 === t.indexOf(r)
+                                      : '*=' === n
+                                        ? r && -1 < t.indexOf(r)
+                                        : '$=' === n
+                                          ? r && t.slice(-r.length) === r
+                                          : '~=' === n
+                                            ? -1 < (' ' + t.replace(tt, ' ') + ' ').indexOf(r)
+                                            : '|=' === n &&
+                                              (t === r || t.slice(0, r.length + 1) === r + '-'));
+                        };
+                      },
+                      CHILD: function (d, t, e, f, g) {
+                        var m = 'nth' !== d.slice(0, 3),
+                          v = 'last' !== d.slice(-4),
+                          b = 'of-type' === t;
+                        return 1 === f && 0 === g
+                          ? function (t) {
+                              return !!t.parentNode;
+                            }
+                          : function (t, e, n) {
+                              var r,
+                                i,
+                                o,
+                                a,
+                                s,
+                                l,
+                                u = m != v ? 'nextSibling' : 'previousSibling',
+                                c = t.parentNode,
+                                A = b && t.nodeName.toLowerCase(),
+                                h = !n && !b,
+                                p = !1;
+                              if (c) {
+                                if (m) {
+                                  for (; u; ) {
+                                    for (a = t; (a = a[u]); )
+                                      if (b ? a.nodeName.toLowerCase() === A : 1 === a.nodeType)
+                                        return !1;
+                                    l = u = 'only' === d && !l && 'nextSibling';
+                                  }
+                                  return !0;
+                                }
+                                if (((l = [v ? c.firstChild : c.lastChild]), v && h)) {
+                                  for (
+                                    p =
+                                      (s =
+                                        (r =
+                                          (i =
+                                            (o = (a = c)[x] || (a[x] = {}))[a.uniqueID] ||
+                                            (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1]) &&
+                                      r[2],
+                                      a = s && c.childNodes[s];
+                                    (a = (++s && a && a[u]) || (p = s = 0) || l.pop());
+
+                                  )
+                                    if (1 === a.nodeType && ++p && a === t) {
+                                      i[d] = [I, s, p];
+                                      break;
+                                    }
+                                } else if (
+                                  !1 ===
+                                  (p = h
+                                    ? (s =
+                                        (r =
+                                          (i =
+                                            (o = (a = t)[x] || (a[x] = {}))[a.uniqueID] ||
+                                            (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1])
+                                    : p)
+                                )
+                                  for (
+                                    ;
+                                    (a = (++s && a && a[u]) || (p = s = 0) || l.pop()) &&
+                                    ((b ? a.nodeName.toLowerCase() !== A : 1 !== a.nodeType) ||
+                                      !++p ||
+                                      (h &&
+                                        ((i =
+                                          (o = a[x] || (a[x] = {}))[a.uniqueID] ||
+                                          (o[a.uniqueID] = {}))[d] = [I, p]),
+                                      a !== t));
+
+                                  );
+                                return (p -= g) === f || (p % f == 0 && 0 <= p / f);
+                              }
+                            };
+                      },
+                      PSEUDO: function (t, o) {
+                        var e,
+                          a =
+                            y.pseudos[t] ||
+                            y.setFilters[t.toLowerCase()] ||
+                            k.error('unsupported pseudo: ' + t);
+                        return a[x]
+                          ? a(o)
+                          : 1 < a.length
+                            ? ((e = [t, t, '', o]),
+                              y.setFilters.hasOwnProperty(t.toLowerCase())
+                                ? Q(function (t, e) {
+                                    for (var n, r = a(t, o), i = r.length; i--; )
+                                      t[(n = v(t, r[i]))] = !(e[n] = r[i]);
+                                  })
+                                : function (t) {
+                                    return a(t, 0, e);
+                                  })
+                            : a;
+                      },
+                    },
+                    pseudos: {
+                      not: Q(function (t) {
+                        var r = [],
+                          i = [],
+                          s = Y(t.replace(m, '$1'));
+                        return s[x]
+                          ? Q(function (t, e, n, r) {
+                              for (var i, o = s(t, null, r, []), a = t.length; a--; )
+                                (i = o[a]) && (t[a] = !(e[a] = i));
+                            })
+                          : function (t, e, n) {
+                              return (r[0] = t), s(r, null, n, i), (r[0] = null), !i.pop();
+                            };
+                      }),
+                      has: Q(function (e) {
+                        return function (t) {
+                          return 0 < k(e, t).length;
+                        };
+                      }),
+                      contains: Q(function (e) {
+                        return (
+                          (e = e.replace(S, A)),
+                          function (t) {
+                            return -1 < (t.textContent || o(t)).indexOf(e);
+                          }
+                        );
+                      }),
+                      lang: Q(function (n) {
+                        return (
+                          ot.test(n || '') || k.error('unsupported lang: ' + n),
+                          (n = n.replace(S, A).toLowerCase()),
+                          function (t) {
+                            var e;
+                            do {
+                              if (
+                                (e = C
+                                  ? t.lang
+                                  : t.getAttribute('xml:lang') || t.getAttribute('lang'))
+                              )
+                                return (e = e.toLowerCase()) === n || 0 === e.indexOf(n + '-');
+                            } while ((t = t.parentNode) && 1 === t.nodeType);
+                            return !1;
+                          }
+                        );
+                      }),
+                      target: function (t) {
+                        var e = U.location && U.location.hash;
+                        return e && e.slice(1) === t.id;
+                      },
+                      root: function (t) {
+                        return t === n;
+                      },
+                      focus: function (t) {
+                        return (
+                          t === B.activeElement &&
+                          (!B.hasFocus || B.hasFocus()) &&
+                          !!(t.type || t.href || ~t.tabIndex)
+                        );
+                      },
+                      enabled: ft(!1),
+                      disabled: ft(!0),
+                      checked: function (t) {
+                        var e = t.nodeName.toLowerCase();
+                        return ('input' === e && !!t.checked) || ('option' === e && !!t.selected);
+                      },
+                      selected: function (t) {
+                        return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected;
+                      },
+                      empty: function (t) {
+                        for (t = t.firstChild; t; t = t.nextSibling) if (t.nodeType < 6) return !1;
+                        return !0;
+                      },
+                      parent: function (t) {
+                        return !y.pseudos.empty(t);
+                      },
+                      header: function (t) {
+                        return lt.test(t.nodeName);
+                      },
+                      input: function (t) {
+                        return st.test(t.nodeName);
+                      },
+                      button: function (t) {
+                        var e = t.nodeName.toLowerCase();
+                        return ('input' === e && 'button' === t.type) || 'button' === e;
+                      },
+                      text: function (t) {
+                        return (
+                          'input' === t.nodeName.toLowerCase() &&
+                          'text' === t.type &&
+                          (null == (t = t.getAttribute('type')) || 'text' === t.toLowerCase())
+                        );
+                      },
+                      first: T(function () {
+                        return [0];
+                      }),
+                      last: T(function (t, e) {
+                        return [e - 1];
+                      }),
+                      eq: T(function (t, e, n) {
+                        return [n < 0 ? n + e : n];
+                      }),
+                      even: T(function (t, e) {
+                        for (var n = 0; n < e; n += 2) t.push(n);
+                        return t;
+                      }),
+                      odd: T(function (t, e) {
+                        for (var n = 1; n < e; n += 2) t.push(n);
+                        return t;
+                      }),
+                      lt: T(function (t, e, n) {
+                        for (var r = n < 0 ? n + e : e < n ? e : n; 0 <= --r; ) t.push(r);
+                        return t;
+                      }),
+                      gt: T(function (t, e, n) {
+                        for (var r = n < 0 ? n + e : n; ++r < e; ) t.push(r);
+                        return t;
+                      }),
+                    },
+                  }).pseudos.nth = y.pseudos.eq),
+                { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }))
+                  y.pseudos[t] = (function (e) {
+                    return function (t) {
+                      return 'input' === t.nodeName.toLowerCase() && t.type === e;
+                    };
+                  })(t);
+                for (t in { submit: !0, reset: !0 })
+                  y.pseudos[t] = (function (n) {
+                    return function (t) {
+                      var e = t.nodeName.toLowerCase();
+                      return ('input' === e || 'button' === e) && t.type === n;
+                    };
+                  })(t);
+                function mt() {}
+                function R(t) {
+                  for (var e = 0, n = t.length, r = ''; e < n; e++) r += t[e].value;
+                  return r;
+                }
+                function vt(a, t, e) {
+                  var s = t.dir,
+                    l = t.next,
+                    u = l || s,
+                    c = e && 'parentNode' === u,
+                    A = G++;
+                  return t.first
+                    ? function (t, e, n) {
+                        for (; (t = t[s]); ) if (1 === t.nodeType || c) return a(t, e, n);
+                        return !1;
+                      }
+                    : function (t, e, n) {
+                        var r,
+                          i,
+                          o = [I, A];
+                        if (n) {
+                          for (; (t = t[s]); ) if ((1 === t.nodeType || c) && a(t, e, n)) return !0;
+                        } else
+                          for (; (t = t[s]); )
+                            if (1 === t.nodeType || c)
+                              if (
+                                ((i =
+                                  (i = t[x] || (t[x] = {}))[t.uniqueID] || (i[t.uniqueID] = {})),
+                                l && l === t.nodeName.toLowerCase())
+                              )
+                                t = t[s] || t;
+                              else {
+                                if ((r = i[u]) && r[0] === I && r[1] === A) return (o[2] = r[2]);
+                                if (((i[u] = o)[2] = a(t, e, n))) return !0;
+                              }
+                        return !1;
+                      };
+                }
+                function bt(i) {
+                  return 1 < i.length
+                    ? function (t, e, n) {
+                        for (var r = i.length; r--; ) if (!i[r](t, e, n)) return !1;
+                        return !0;
+                      }
+                    : i[0];
+                }
+                function yt(t, e, n, r, i) {
+                  for (var o, a = [], s = 0, l = t.length, u = null != e; s < l; s++)
+                    !(o = t[s]) || (n && !n(o, r, i)) || (a.push(o), u && e.push(s));
+                  return a;
+                }
+                function wt(p, d, f, g, m, t) {
+                  return (
+                    g && !g[x] && (g = wt(g)),
+                    m && !m[x] && (m = wt(m, t)),
+                    Q(function (t, e, n, r) {
+                      var i,
+                        o,
+                        a,
+                        s = [],
+                        l = [],
+                        u = e.length,
+                        c =
+                          t ||
+                          (function (t, e, n) {
+                            for (var r = 0, i = e.length; r < i; r++) k(t, e[r], n);
+                            return n;
+                          })(d || '*', n.nodeType ? [n] : n, []),
+                        A = !p || (!t && d) ? c : yt(c, s, p, n, r),
+                        h = f ? (m || (t ? p : u || g) ? [] : e) : A;
+                      if ((f && f(A, h, n, r), g))
+                        for (i = yt(h, l), g(i, [], n, r), o = i.length; o--; )
+                          (a = i[o]) && (h[l[o]] = !(A[l[o]] = a));
+                      if (t) {
+                        if (m || p) {
+                          if (m) {
+                            for (i = [], o = h.length; o--; ) (a = h[o]) && i.push((A[o] = a));
+                            m(null, (h = []), i, r);
+                          }
+                          for (o = h.length; o--; )
+                            (a = h[o]) && -1 < (i = m ? v(t, a) : s[o]) && (t[i] = !(e[i] = a));
+                        }
+                      } else
+                        (h = yt(h === e ? h.splice(u, h.length) : h)),
+                          m ? m(null, e, h, r) : M.apply(e, h);
+                    })
+                  );
+                }
+                function Et(g, m) {
+                  function t(t, e, n, r, i) {
+                    var o,
+                      a,
+                      s,
+                      l = 0,
+                      u = '0',
+                      c = t && [],
+                      A = [],
+                      h = w,
+                      p = t || (b && y.find.TAG('*', i)),
+                      d = (I += null == h ? 1 : Math.random() || 0.1),
+                      f = p.length;
+                    for (i && (w = e == B || e || i); u !== f && null != (o = p[u]); u++) {
+                      if (b && o) {
+                        for (a = 0, e || o.ownerDocument == B || (E(o), (n = !C)); (s = g[a++]); )
+                          if (s(o, e || B, n)) {
+                            r.push(o);
+                            break;
+                          }
+                        i && (I = d);
+                      }
+                      v && ((o = !s && o) && l--, t && c.push(o));
+                    }
+                    if (((l += u), v && u !== l)) {
+                      for (a = 0; (s = m[a++]); ) s(c, A, e, n);
+                      if (t) {
+                        if (0 < l) for (; u--; ) c[u] || A[u] || (A[u] = W.call(r));
+                        A = yt(A);
+                      }
+                      M.apply(r, A), i && !t && 0 < A.length && 1 < l + m.length && k.uniqueSort(r);
+                    }
+                    return i && ((I = d), (w = h)), c;
+                  }
+                  var v = 0 < m.length,
+                    b = 0 < g.length;
+                  return v ? Q(t) : t;
+                }
+                return (
+                  (mt.prototype = y.filters = y.pseudos),
+                  (y.setFilters = new mt()),
+                  (p = k.tokenize =
+                    function (t, e) {
+                      var n,
+                        r,
+                        i,
+                        o,
+                        a,
+                        s,
+                        l,
+                        u = H[t + ' '];
+                      if (u) return e ? 0 : u.slice(0);
+                      for (a = t, s = [], l = y.preFilter; a; ) {
+                        for (o in ((n && !(r = et.exec(a))) ||
+                          (r && (a = a.slice(r[0].length) || a), s.push((i = []))),
+                        (n = !1),
+                        (r = nt.exec(a)) &&
+                          ((n = r.shift()),
+                          i.push({ value: n, type: r[0].replace(m, ' ') }),
+                          (a = a.slice(n.length))),
+                        y.filter))
+                          !(r = b[o].exec(a)) ||
+                            (l[o] && !(r = l[o](r))) ||
+                            ((n = r.shift()),
+                            i.push({ value: n, type: o, matches: r }),
+                            (a = a.slice(n.length)));
+                        if (!n) break;
+                      }
+                      return e ? a.length : a ? k.error(t) : H(t, s).slice(0);
+                    }),
+                  (Y = k.compile =
+                    function (t, e) {
+                      var n,
+                        r = [],
+                        i = [],
+                        o = j[t + ' '];
+                      if (!o) {
+                        for (n = (e = e || p(t)).length; n--; )
+                          ((o = (function t(e) {
+                            for (
+                              var r,
+                                n,
+                                i,
+                                o = e.length,
+                                a = y.relative[e[0].type],
+                                s = a || y.relative[' '],
+                                l = a ? 1 : 0,
+                                u = vt(
+                                  function (t) {
+                                    return t === r;
+                                  },
+                                  s,
+                                  !0,
+                                ),
+                                c = vt(
+                                  function (t) {
+                                    return -1 < v(r, t);
+                                  },
+                                  s,
+                                  !0,
+                                ),
+                                A = [
+                                  function (t, e, n) {
+                                    return (
+                                      (t =
+                                        (!a && (n || e !== w)) ||
+                                        ((r = e).nodeType ? u : c)(t, e, n)),
+                                      (r = null),
+                                      t
+                                    );
+                                  },
+                                ];
+                              l < o;
+                              l++
+                            )
+                              if ((n = y.relative[e[l].type])) A = [vt(bt(A), n)];
+                              else {
+                                if ((n = y.filter[e[l].type].apply(null, e[l].matches))[x]) {
+                                  for (i = ++l; i < o && !y.relative[e[i].type]; i++);
+                                  return wt(
+                                    1 < l && bt(A),
+                                    1 < l &&
+                                      R(
+                                        e
+                                          .slice(0, l - 1)
+                                          .concat({ value: ' ' === e[l - 2].type ? '*' : '' }),
+                                      ).replace(m, '$1'),
+                                    n,
+                                    l < i && t(e.slice(l, i)),
+                                    i < o && t((e = e.slice(i))),
+                                    i < o && R(e),
+                                  );
+                                }
+                                A.push(n);
+                              }
+                            return bt(A);
+                          })(e[n]))[x]
+                            ? r
+                            : i
+                          ).push(o);
+                        (o = j(t, Et(i, r))).selector = t;
+                      }
+                      return o;
+                    }),
+                  (O = k.select =
+                    function (t, e, n, r) {
+                      var i,
+                        o,
+                        a,
+                        s,
+                        l,
+                        u = 'function' == typeof t && t,
+                        c = !r && p((t = u.selector || t));
+                      if (((n = n || []), 1 === c.length)) {
+                        if (
+                          2 < (o = c[0] = c[0].slice(0)).length &&
+                          'ID' === (a = o[0]).type &&
+                          9 === e.nodeType &&
+                          C &&
+                          y.relative[o[1].type]
+                        ) {
+                          if (!(e = (y.find.ID(a.matches[0].replace(S, A), e) || [])[0])) return n;
+                          u && (e = e.parentNode), (t = t.slice(o.shift().value.length));
+                        }
+                        for (
+                          i = b.needsContext.test(t) ? 0 : o.length;
+                          i-- && ((a = o[i]), !y.relative[(s = a.type)]);
+
+                        )
+                          if (
+                            (l = y.find[s]) &&
+                            (r = l(
+                              a.matches[0].replace(S, A),
+                              (ct.test(o[0].type) && gt(e.parentNode)) || e,
+                            ))
+                          ) {
+                            if ((o.splice(i, 1), (t = r.length && R(o)))) break;
+                            return M.apply(n, r), n;
+                          }
+                      }
+                      return (
+                        (u || Y(t, c))(r, e, !C, n, !e || (ct.test(t) && gt(e.parentNode)) || e), n
+                      );
+                    }),
+                  (h.sortStable = x.split('').sort(V).join('') === x),
+                  (h.detectDuplicates = !!u),
+                  E(),
+                  (h.sortDetached = _(function (t) {
+                    return 1 & t.compareDocumentPosition(B.createElement('fieldset'));
+                  })),
+                  _(function (t) {
+                    return (
+                      (t.innerHTML = "<a href='#'></a>"), '#' === t.firstChild.getAttribute('href')
+                    );
+                  }) ||
+                    pt('type|href|height|width', function (t, e, n) {
+                      if (!n) return t.getAttribute(e, 'type' === e.toLowerCase() ? 1 : 2);
+                    }),
+                  (h.attributes &&
+                    _(function (t) {
+                      return (
+                        (t.innerHTML = '<input/>'),
+                        t.firstChild.setAttribute('value', ''),
+                        '' === t.firstChild.getAttribute('value')
+                      );
+                    })) ||
+                    pt('value', function (t, e, n) {
+                      if (!n && 'input' === t.nodeName.toLowerCase()) return t.defaultValue;
+                    }),
+                  _(function (t) {
+                    return null == t.getAttribute('disabled');
+                  }) ||
+                    pt(Z, function (t, e, n) {
+                      if (!n)
+                        return !0 === t[e]
+                          ? e.toLowerCase()
+                          : (n = t.getAttributeNode(e)) && n.specified
+                            ? n.value
+                            : null;
+                    }),
+                  k
+                );
+              })(w),
+              K =
+                ((B.find = t),
+                (B.expr = t.selectors),
+                (B.expr[':'] = B.expr.pseudos),
+                (B.uniqueSort = B.unique = t.uniqueSort),
+                (B.text = t.getText),
+                (B.isXMLDoc = t.isXML),
+                (B.contains = t.contains),
+                (B.escapeSelector = t.escape),
+                B.expr.match.needsContext);
+            function l(t, e) {
+              return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase();
+            }
+            var Z = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
+            function X(t, n, r) {
+              return v(n)
+                ? B.grep(t, function (t, e) {
+                    return !!n.call(t, e, t) !== r;
+                  })
+                : n.nodeType
+                  ? B.grep(t, function (t) {
+                      return (t === n) !== r;
+                    })
+                  : 'string' != typeof n
+                    ? B.grep(t, function (t) {
+                        return -1 < Y.call(n, t) !== r;
+                      })
+                    : B.filter(n, t, r);
+            }
+            (B.filter = function (t, e, n) {
+              var r = e[0];
+              return (
+                n && (t = ':not(' + t + ')'),
+                1 === e.length && 1 === r.nodeType
+                  ? B.find.matchesSelector(r, t)
+                    ? [r]
+                    : []
+                  : B.find.matches(
+                      t,
+                      B.grep(e, function (t) {
+                        return 1 === t.nodeType;
+                      }),
+                    )
+              );
+            }),
+              B.fn.extend({
+                find: function (t) {
+                  var e,
+                    n,
+                    r = this.length,
+                    i = this;
+                  if ('string' != typeof t)
+                    return this.pushStack(
+                      B(t).filter(function () {
+                        for (e = 0; e < r; e++) if (B.contains(i[e], this)) return !0;
+                      }),
+                    );
+                  for (n = this.pushStack([]), e = 0; e < r; e++) B.find(t, i[e], n);
+                  return 1 < r ? B.uniqueSort(n) : n;
+                },
+                filter: function (t) {
+                  return this.pushStack(X(this, t || [], !1));
+                },
+                not: function (t) {
+                  return this.pushStack(X(this, t || [], !0));
+                },
+                is: function (t) {
+                  return !!X(this, 'string' == typeof t && K.test(t) ? B(t) : t || [], !1).length;
+                },
+              });
+            var $,
+              tt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+              et =
+                (((B.fn.init = function (t, e, n) {
+                  if (!t) return this;
+                  if (((n = n || $), 'string' != typeof t))
+                    return t.nodeType
+                      ? ((this[0] = t), (this.length = 1), this)
+                      : v(t)
+                        ? void 0 !== n.ready
+                          ? n.ready(t)
+                          : t(B)
+                        : B.makeArray(t, this);
+                  if (
+                    !(r =
+                      '<' === t[0] && '>' === t[t.length - 1] && 3 <= t.length
+                        ? [null, t, null]
+                        : tt.exec(t)) ||
+                    (!r[1] && e)
+                  )
+                    return (!e || e.jquery ? e || n : this.constructor(e)).find(t);
+                  if (r[1]) {
+                    if (
+                      ((e = e instanceof B ? e[0] : e),
+                      B.merge(
+                        this,
+                        B.parseHTML(r[1], e && e.nodeType ? e.ownerDocument || e : E, !0),
+                      ),
+                      Z.test(r[1]) && B.isPlainObject(e))
+                    )
+                      for (var r in e) v(this[r]) ? this[r](e[r]) : this.attr(r, e[r]);
+                    return this;
+                  }
+                  return (n = E.getElementById(r[2])) && ((this[0] = n), (this.length = 1)), this;
+                }).prototype = B.fn),
+                ($ = B(E)),
+                /^(?:parents|prev(?:Until|All))/),
+              nt = { children: !0, contents: !0, next: !0, prev: !0 };
+            function rt(t, e) {
+              for (; (t = t[e]) && 1 !== t.nodeType; );
+              return t;
+            }
+            B.fn.extend({
+              has: function (t) {
+                var e = B(t, this),
+                  n = e.length;
+                return this.filter(function () {
+                  for (var t = 0; t < n; t++) if (B.contains(this, e[t])) return !0;
+                });
+              },
+              closest: function (t, e) {
+                var n,
+                  r = 0,
+                  i = this.length,
+                  o = [],
+                  a = 'string' != typeof t && B(t);
+                if (!K.test(t))
+                  for (; r < i; r++)
+                    for (n = this[r]; n && n !== e; n = n.parentNode)
+                      if (
+                        n.nodeType < 11 &&
+                        (a ? -1 < a.index(n) : 1 === n.nodeType && B.find.matchesSelector(n, t))
+                      ) {
+                        o.push(n);
+                        break;
+                      }
+                return this.pushStack(1 < o.length ? B.uniqueSort(o) : o);
+              },
+              index: function (t) {
+                return t
+                  ? 'string' == typeof t
+                    ? Y.call(B(t), this[0])
+                    : Y.call(this, t.jquery ? t[0] : t)
+                  : this[0] && this[0].parentNode
+                    ? this.first().prevAll().length
+                    : -1;
+              },
+              add: function (t, e) {
+                return this.pushStack(B.uniqueSort(B.merge(this.get(), B(t, e))));
+              },
+              addBack: function (t) {
+                return this.add(null == t ? this.prevObject : this.prevObject.filter(t));
+              },
+            }),
+              B.each(
+                {
+                  parent: function (t) {
+                    t = t.parentNode;
+                    return t && 11 !== t.nodeType ? t : null;
+                  },
+                  parents: function (t) {
+                    return r(t, 'parentNode');
+                  },
+                  parentsUntil: function (t, e, n) {
+                    return r(t, 'parentNode', n);
+                  },
+                  next: function (t) {
+                    return rt(t, 'nextSibling');
+                  },
+                  prev: function (t) {
+                    return rt(t, 'previousSibling');
+                  },
+                  nextAll: function (t) {
+                    return r(t, 'nextSibling');
+                  },
+                  prevAll: function (t) {
+                    return r(t, 'previousSibling');
+                  },
+                  nextUntil: function (t, e, n) {
+                    return r(t, 'nextSibling', n);
+                  },
+                  prevUntil: function (t, e, n) {
+                    return r(t, 'previousSibling', n);
+                  },
+                  siblings: function (t) {
+                    return J((t.parentNode || {}).firstChild, t);
+                  },
+                  children: function (t) {
+                    return J(t.firstChild);
+                  },
+                  contents: function (t) {
+                    return null != t.contentDocument && N(t.contentDocument)
+                      ? t.contentDocument
+                      : (l(t, 'template') && (t = t.content || t), B.merge([], t.childNodes));
+                  },
+                },
+                function (r, i) {
+                  B.fn[r] = function (t, e) {
+                    var n = B.map(this, i, t);
+                    return (
+                      (e = 'Until' !== r.slice(-5) ? t : e) &&
+                        'string' == typeof e &&
+                        (n = B.filter(e, n)),
+                      1 < this.length && (nt[r] || B.uniqueSort(n), et.test(r) && n.reverse()),
+                      this.pushStack(n)
+                    );
+                  };
+                },
+              );
+            var C = /[^\x20\t\r\n\f]+/g;
+            function c(t) {
+              return t;
+            }
+            function it(t) {
+              throw t;
+            }
+            function ot(t, e, n, r) {
+              var i;
+              try {
+                t && v((i = t.promise))
+                  ? i.call(t).done(e).fail(n)
+                  : t && v((i = t.then))
+                    ? i.call(t, e, n)
+                    : e.apply(void 0, [t].slice(r));
+              } catch (t) {
+                n.apply(void 0, [t]);
+              }
+            }
+            (B.Callbacks = function (r) {
+              var t, n;
+              r =
+                'string' == typeof r
+                  ? ((t = r),
+                    (n = {}),
+                    B.each(t.match(C) || [], function (t, e) {
+                      n[e] = !0;
+                    }),
+                    n)
+                  : B.extend({}, r);
+              function i() {
+                for (s = s || r.once, a = o = !0; u.length; c = -1)
+                  for (e = u.shift(); ++c < l.length; )
+                    !1 === l[c].apply(e[0], e[1]) && r.stopOnFalse && ((c = l.length), (e = !1));
+                r.memory || (e = !1), (o = !1), s && (l = e ? [] : '');
+              }
+              var o,
+                e,
+                a,
+                s,
+                l = [],
+                u = [],
+                c = -1,
+                A = {
+                  add: function () {
+                    return (
+                      l &&
+                        (e && !o && ((c = l.length - 1), u.push(e)),
+                        (function n(t) {
+                          B.each(t, function (t, e) {
+                            v(e)
+                              ? (r.unique && A.has(e)) || l.push(e)
+                              : e && e.length && 'string' !== d(e) && n(e);
+                          });
+                        })(arguments),
+                        e && !o && i()),
+                      this
+                    );
+                  },
+                  remove: function () {
+                    return (
+                      B.each(arguments, function (t, e) {
+                        for (var n; -1 < (n = B.inArray(e, l, n)); ) l.splice(n, 1), n <= c && c--;
+                      }),
+                      this
+                    );
+                  },
+                  has: function (t) {
+                    return t ? -1 < B.inArray(t, l) : 0 < l.length;
+                  },
+                  empty: function () {
+                    return (l = l && []), this;
+                  },
+                  disable: function () {
+                    return (s = u = []), (l = e = ''), this;
+                  },
+                  disabled: function () {
+                    return !l;
+                  },
+                  lock: function () {
+                    return (s = u = []), e || o || (l = e = ''), this;
+                  },
+                  locked: function () {
+                    return !!s;
+                  },
+                  fireWith: function (t, e) {
+                    return (
+                      s || ((e = [t, (e = e || []).slice ? e.slice() : e]), u.push(e), o || i()),
+                      this
+                    );
+                  },
+                  fire: function () {
+                    return A.fireWith(this, arguments), this;
+                  },
+                  fired: function () {
+                    return !!a;
+                  },
+                };
+              return A;
+            }),
+              B.extend({
+                Deferred: function (t) {
+                  var o = [
+                      ['notify', 'progress', B.Callbacks('memory'), B.Callbacks('memory'), 2],
+                      [
+                        'resolve',
+                        'done',
+                        B.Callbacks('once memory'),
+                        B.Callbacks('once memory'),
+                        0,
+                        'resolved',
+                      ],
+                      [
+                        'reject',
+                        'fail',
+                        B.Callbacks('once memory'),
+                        B.Callbacks('once memory'),
+                        1,
+                        'rejected',
+                      ],
+                    ],
+                    i = 'pending',
+                    a = {
+                      state: function () {
+                        return i;
+                      },
+                      always: function () {
+                        return s.done(arguments).fail(arguments), this;
+                      },
+                      catch: function (t) {
+                        return a.then(null, t);
+                      },
+                      pipe: function () {
+                        var i = arguments;
+                        return B.Deferred(function (r) {
+                          B.each(o, function (t, e) {
+                            var n = v(i[e[4]]) && i[e[4]];
+                            s[e[1]](function () {
+                              var t = n && n.apply(this, arguments);
+                              t && v(t.promise)
+                                ? t.promise().progress(r.notify).done(r.resolve).fail(r.reject)
+                                : r[e[0] + 'With'](this, n ? [t] : arguments);
+                            });
+                          }),
+                            (i = null);
+                        }).promise();
+                      },
+                      then: function (e, n, r) {
+                        var l = 0;
+                        function u(i, o, a, s) {
+                          return function () {
+                            function t() {
+                              var t, e;
+                              if (!(i < l)) {
+                                if ((t = a.apply(n, r)) === o.promise())
+                                  throw new TypeError('Thenable self-resolution');
+                                (e =
+                                  t && ('object' == typeof t || 'function' == typeof t) && t.then),
+                                  v(e)
+                                    ? s
+                                      ? e.call(t, u(l, o, c, s), u(l, o, it, s))
+                                      : (l++,
+                                        e.call(
+                                          t,
+                                          u(l, o, c, s),
+                                          u(l, o, it, s),
+                                          u(l, o, c, o.notifyWith),
+                                        ))
+                                    : (a !== c && ((n = void 0), (r = [t])),
+                                      (s || o.resolveWith)(n, r));
+                              }
+                            }
+                            var n = this,
+                              r = arguments,
+                              e = s
+                                ? t
+                                : function () {
+                                    try {
+                                      t();
+                                    } catch (t) {
+                                      B.Deferred.exceptionHook &&
+                                        B.Deferred.exceptionHook(t, e.stackTrace),
+                                        l <= i + 1 &&
+                                          (a !== it && ((n = void 0), (r = [t])),
+                                          o.rejectWith(n, r));
+                                    }
+                                  };
+                            i
+                              ? e()
+                              : (B.Deferred.getStackHook &&
+                                  (e.stackTrace = B.Deferred.getStackHook()),
+                                w.setTimeout(e));
+                          };
+                        }
+                        return B.Deferred(function (t) {
+                          o[0][3].add(u(0, t, v(r) ? r : c, t.notifyWith)),
+                            o[1][3].add(u(0, t, v(e) ? e : c)),
+                            o[2][3].add(u(0, t, v(n) ? n : it));
+                        }).promise();
+                      },
+                      promise: function (t) {
+                        return null != t ? B.extend(t, a) : a;
+                      },
+                    },
+                    s = {};
+                  return (
+                    B.each(o, function (t, e) {
+                      var n = e[2],
+                        r = e[5];
+                      (a[e[1]] = n.add),
+                        r &&
+                          n.add(
+                            function () {
+                              i = r;
+                            },
+                            o[3 - t][2].disable,
+                            o[3 - t][3].disable,
+                            o[0][2].lock,
+                            o[0][3].lock,
+                          ),
+                        n.add(e[3].fire),
+                        (s[e[0]] = function () {
+                          return s[e[0] + 'With'](this === s ? void 0 : this, arguments), this;
+                        }),
+                        (s[e[0] + 'With'] = n.fireWith);
+                    }),
+                    a.promise(s),
+                    t && t.call(s, s),
+                    s
+                  );
+                },
+                when: function (t) {
+                  function e(e) {
+                    return function (t) {
+                      (i[e] = this),
+                        (o[e] = 1 < arguments.length ? s.call(arguments) : t),
+                        --n || a.resolveWith(i, o);
+                    };
+                  }
+                  var n = arguments.length,
+                    r = n,
+                    i = Array(r),
+                    o = s.call(arguments),
+                    a = B.Deferred();
+                  if (
+                    n <= 1 &&
+                    (ot(t, a.done(e(r)).resolve, a.reject, !n),
+                    'pending' === a.state() || v(o[r] && o[r].then))
+                  )
+                    return a.then();
+                  for (; r--; ) ot(o[r], e(r), a.reject);
+                  return a.promise();
+                },
+              });
+            var at = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/,
+              st =
+                ((B.Deferred.exceptionHook = function (t, e) {
+                  w.console &&
+                    w.console.warn &&
+                    t &&
+                    at.test(t.name) &&
+                    w.console.warn('jQuery.Deferred exception: ' + t.message, t.stack, e);
+                }),
+                (B.readyException = function (t) {
+                  w.setTimeout(function () {
+                    throw t;
+                  });
+                }),
+                B.Deferred());
+            function lt() {
+              E.removeEventListener('DOMContentLoaded', lt),
+                w.removeEventListener('load', lt),
+                B.ready();
+            }
+            (B.fn.ready = function (t) {
+              return (
+                st.then(t).catch(function (t) {
+                  B.readyException(t);
+                }),
+                this
+              );
+            }),
+              B.extend({
+                isReady: !1,
+                readyWait: 1,
+                ready: function (t) {
+                  (!0 === t ? --B.readyWait : B.isReady) ||
+                    ((B.isReady = !0) !== t && 0 < --B.readyWait) ||
+                    st.resolveWith(E, [B]);
+                },
+              }),
+              (B.ready.then = st.then),
+              'complete' === E.readyState ||
+              ('loading' !== E.readyState && !E.documentElement.doScroll)
+                ? w.setTimeout(B.ready)
+                : (E.addEventListener('DOMContentLoaded', lt), w.addEventListener('load', lt));
+            function A(t, e, n, r, i, o, a) {
+              var s = 0,
+                l = t.length,
+                u = null == n;
+              if ('object' === d(n)) for (s in ((i = !0), n)) A(t, e, s, n[s], !0, o, a);
+              else if (
+                void 0 !== r &&
+                ((i = !0),
+                v(r) || (a = !0),
+                (e = u
+                  ? a
+                    ? (e.call(t, r), null)
+                    : ((u = e),
+                      function (t, e, n) {
+                        return u.call(B(t), n);
+                      })
+                  : e))
+              )
+                for (; s < l; s++) e(t[s], n, a ? r : r.call(t[s], s, e(t[s], n)));
+              return i ? t : u ? e.call(t) : l ? e(t[0], n) : o;
+            }
+            var ut = /^-ms-/,
+              ct = /-([a-z])/g;
+            function At(t, e) {
+              return e.toUpperCase();
+            }
+            function b(t) {
+              return t.replace(ut, 'ms-').replace(ct, At);
+            }
+            function m(t) {
+              return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType;
+            }
+            function ht() {
+              this.expando = B.expando + ht.uid++;
+            }
+            (ht.uid = 1),
+              (ht.prototype = {
+                cache: function (t) {
+                  var e = t[this.expando];
+                  return (
+                    e ||
+                      ((e = {}),
+                      m(t) &&
+                        (t.nodeType
+                          ? (t[this.expando] = e)
+                          : Object.defineProperty(t, this.expando, {
+                              value: e,
+                              configurable: !0,
+                            }))),
+                    e
+                  );
+                },
+                set: function (t, e, n) {
+                  var r,
+                    i = this.cache(t);
+                  if ('string' == typeof e) i[b(e)] = n;
+                  else for (r in e) i[b(r)] = e[r];
+                  return i;
+                },
+                get: function (t, e) {
+                  return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][b(e)];
+                },
+                access: function (t, e, n) {
+                  return void 0 === e || (e && 'string' == typeof e && void 0 === n)
+                    ? this.get(t, e)
+                    : (this.set(t, e, n), void 0 !== n ? n : e);
+                },
+                remove: function (t, e) {
+                  var n,
+                    r = t[this.expando];
+                  if (void 0 !== r) {
+                    if (void 0 !== e) {
+                      n = (e = Array.isArray(e)
+                        ? e.map(b)
+                        : (e = b(e)) in r
+                          ? [e]
+                          : e.match(C) || []).length;
+                      for (; n--; ) delete r[e[n]];
+                    }
+                    (void 0 !== e && !B.isEmptyObject(r)) ||
+                      (t.nodeType ? (t[this.expando] = void 0) : delete t[this.expando]);
+                  }
+                },
+                hasData: function (t) {
+                  t = t[this.expando];
+                  return void 0 !== t && !B.isEmptyObject(t);
+                },
+              });
+            var y = new ht(),
+              u = new ht(),
+              pt = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+              dt = /[A-Z]/g;
+            function ft(t, e, n) {
+              var r, i;
+              if (void 0 === n && 1 === t.nodeType)
+                if (
+                  ((r = 'data-' + e.replace(dt, '-$&').toLowerCase()),
+                  'string' == typeof (n = t.getAttribute(r)))
+                ) {
+                  try {
+                    n =
+                      'true' === (i = n) ||
+                      ('false' !== i &&
+                        ('null' === i
+                          ? null
+                          : i === +i + ''
+                            ? +i
+                            : pt.test(i)
+                              ? JSON.parse(i)
+                              : i));
+                  } catch (t) {}
+                  u.set(t, e, n);
+                } else n = void 0;
+              return n;
+            }
+            B.extend({
+              hasData: function (t) {
+                return u.hasData(t) || y.hasData(t);
+              },
+              data: function (t, e, n) {
+                return u.access(t, e, n);
+              },
+              removeData: function (t, e) {
+                u.remove(t, e);
+              },
+              _data: function (t, e, n) {
+                return y.access(t, e, n);
+              },
+              _removeData: function (t, e) {
+                y.remove(t, e);
+              },
+            }),
+              B.fn.extend({
+                data: function (n, t) {
+                  var e,
+                    r,
+                    i,
+                    o = this[0],
+                    a = o && o.attributes;
+                  if (void 0 !== n)
+                    return 'object' == typeof n
+                      ? this.each(function () {
+                          u.set(this, n);
+                        })
+                      : A(
+                          this,
+                          function (t) {
+                            var e;
+                            if (o && void 0 === t)
+                              return void 0 !== (e = u.get(o, n)) || void 0 !== (e = ft(o, n))
+                                ? e
+                                : void 0;
+                            this.each(function () {
+                              u.set(this, n, t);
+                            });
+                          },
+                          null,
+                          t,
+                          1 < arguments.length,
+                          null,
+                          !0,
+                        );
+                  if (
+                    this.length &&
+                    ((i = u.get(o)), 1 === o.nodeType && !y.get(o, 'hasDataAttrs'))
+                  ) {
+                    for (e = a.length; e--; )
+                      a[e] &&
+                        0 === (r = a[e].name).indexOf('data-') &&
+                        ((r = b(r.slice(5))), ft(o, r, i[r]));
+                    y.set(o, 'hasDataAttrs', !0);
+                  }
+                  return i;
+                },
+                removeData: function (t) {
+                  return this.each(function () {
+                    u.remove(this, t);
+                  });
+                },
+              }),
+              B.extend({
+                queue: function (t, e, n) {
+                  var r;
+                  if (t)
+                    return (
+                      (r = y.get(t, (e = (e || 'fx') + 'queue'))),
+                      n &&
+                        (!r || Array.isArray(n) ? (r = y.access(t, e, B.makeArray(n))) : r.push(n)),
+                      r || []
+                    );
+                },
+                dequeue: function (t, e) {
+                  e = e || 'fx';
+                  var n = B.queue(t, e),
+                    r = n.length,
+                    i = n.shift(),
+                    o = B._queueHooks(t, e);
+                  'inprogress' === i && ((i = n.shift()), r--),
+                    i &&
+                      ('fx' === e && n.unshift('inprogress'),
+                      delete o.stop,
+                      i.call(
+                        t,
+                        function () {
+                          B.dequeue(t, e);
+                        },
+                        o,
+                      )),
+                    !r && o && o.empty.fire();
+                },
+                _queueHooks: function (t, e) {
+                  var n = e + 'queueHooks';
+                  return (
+                    y.get(t, n) ||
+                    y.access(t, n, {
+                      empty: B.Callbacks('once memory').add(function () {
+                        y.remove(t, [e + 'queue', n]);
+                      }),
+                    })
+                  );
+                },
+              }),
+              B.fn.extend({
+                queue: function (e, n) {
+                  var t = 2;
+                  return (
+                    'string' != typeof e && ((n = e), (e = 'fx'), t--),
+                    arguments.length < t
+                      ? B.queue(this[0], e)
+                      : void 0 === n
+                        ? this
+                        : this.each(function () {
+                            var t = B.queue(this, e, n);
+                            B._queueHooks(this, e),
+                              'fx' === e && 'inprogress' !== t[0] && B.dequeue(this, e);
+                          })
+                  );
+                },
+                dequeue: function (t) {
+                  return this.each(function () {
+                    B.dequeue(this, t);
+                  });
+                },
+                clearQueue: function (t) {
+                  return this.queue(t || 'fx', []);
+                },
+                promise: function (t, e) {
+                  function n() {
+                    --i || o.resolveWith(a, [a]);
+                  }
+                  var r,
+                    i = 1,
+                    o = B.Deferred(),
+                    a = this,
+                    s = this.length;
+                  for ('string' != typeof t && ((e = t), (t = void 0)), t = t || 'fx'; s--; )
+                    (r = y.get(a[s], t + 'queueHooks')) && r.empty && (i++, r.empty.add(n));
+                  return n(), o.promise(e);
+                },
+              });
+            function gt(t, e) {
+              return (
+                'none' === (t = e || t).style.display ||
+                ('' === t.style.display && I(t) && 'none' === B.css(t, 'display'))
+              );
+            }
+            var t = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
+              mt = new RegExp('^(?:([+-])=|)(' + t + ')([a-z%]*)$', 'i'),
+              h = ['Top', 'Right', 'Bottom', 'Left'],
+              x = E.documentElement,
+              I = function (t) {
+                return B.contains(t.ownerDocument, t);
+              },
+              vt = { composed: !0 };
+            x.getRootNode &&
+              (I = function (t) {
+                return B.contains(t.ownerDocument, t) || t.getRootNode(vt) === t.ownerDocument;
+              });
+            function bt(t, e, n, r) {
+              var i,
+                o,
+                a = 20,
+                s = r
+                  ? function () {
+                      return r.cur();
+                    }
+                  : function () {
+                      return B.css(t, e, '');
+                    },
+                l = s(),
+                u = (n && n[3]) || (B.cssNumber[e] ? '' : 'px'),
+                c = t.nodeType && (B.cssNumber[e] || ('px' !== u && +l)) && mt.exec(B.css(t, e));
+              if (c && c[3] !== u) {
+                for (u = u || c[3], c = +(l /= 2) || 1; a--; )
+                  B.style(t, e, c + u),
+                    (1 - o) * (1 - (o = s() / l || 0.5)) <= 0 && (a = 0),
+                    (c /= o);
+                B.style(t, e, (c *= 2) + u), (n = n || []);
+              }
+              return (
+                n &&
+                  ((c = +c || +l || 0),
+                  (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]),
+                  r && ((r.unit = u), (r.start = c), (r.end = i))),
+                i
+              );
+            }
+            var yt = {};
+            function M(t, e) {
+              for (var n, r, i, o, a, s = [], l = 0, u = t.length; l < u; l++)
+                (r = t[l]).style &&
+                  ((n = r.style.display),
+                  e
+                    ? ('none' === n &&
+                        ((s[l] = y.get(r, 'display') || null), s[l] || (r.style.display = '')),
+                      '' === r.style.display &&
+                        gt(r) &&
+                        (s[l] =
+                          ((a = o = void 0),
+                          (o = (i = r).ownerDocument),
+                          (i = i.nodeName),
+                          (a = yt[i]) ||
+                            ((o = o.body.appendChild(o.createElement(i))),
+                            (a = B.css(o, 'display')),
+                            o.parentNode.removeChild(o),
+                            (yt[i] = a = 'none' === a ? 'block' : a)),
+                          a)))
+                    : 'none' !== n && ((s[l] = 'none'), y.set(r, 'display', n)));
+              for (l = 0; l < u; l++) null != s[l] && (t[l].style.display = s[l]);
+              return t;
+            }
+            B.fn.extend({
+              show: function () {
+                return M(this, !0);
+              },
+              hide: function () {
+                return M(this);
+              },
+              toggle: function (t) {
+                return 'boolean' == typeof t
+                  ? t
+                    ? this.show()
+                    : this.hide()
+                  : this.each(function () {
+                      gt(this) ? B(this).show() : B(this).hide();
+                    });
+              },
+            });
+            var wt = /^(?:checkbox|radio)$/i,
+              Et = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
+              Bt = /^$|^module$|\/(?:java|ecma)script/i,
+              D =
+                ((Q = E.createDocumentFragment().appendChild(E.createElement('div'))),
+                (a = E.createElement('input')).setAttribute('type', 'radio'),
+                a.setAttribute('checked', 'checked'),
+                a.setAttribute('name', 't'),
+                Q.appendChild(a),
+                (g.checkClone = Q.cloneNode(!0).cloneNode(!0).lastChild.checked),
+                (Q.innerHTML = '<textarea>x</textarea>'),
+                (g.noCloneChecked = !!Q.cloneNode(!0).lastChild.defaultValue),
+                (Q.innerHTML = '<option></option>'),
+                (g.option = !!Q.lastChild),
+                {
+                  thead: [1, '<table>', '</table>'],
+                  col: [2, '<table><colgroup>', '</colgroup></table>'],
+                  tr: [2, '<table><tbody>', '</tbody></table>'],
+                  td: [3, '<table><tbody><tr>', '</tr></tbody></table>'],
+                  _default: [0, '', ''],
+                });
+            function S(t, e) {
+              var n =
+                void 0 !== t.getElementsByTagName
+                  ? t.getElementsByTagName(e || '*')
+                  : void 0 !== t.querySelectorAll
+                    ? t.querySelectorAll(e || '*')
+                    : [];
+              return void 0 === e || (e && l(t, e)) ? B.merge([t], n) : n;
+            }
+            function Ct(t, e) {
+              for (var n = 0, r = t.length; n < r; n++)
+                y.set(t[n], 'globalEval', !e || y.get(e[n], 'globalEval'));
+            }
+            (D.tbody = D.tfoot = D.colgroup = D.caption = D.thead),
+              (D.th = D.td),
+              g.option ||
+                (D.optgroup = D.option = [1, "<select multiple='multiple'>", '</select>']);
+            var xt = /<|&#?\w+;/;
+            function It(t, e, n, r, i) {
+              for (
+                var o, a, s, l, u, c = e.createDocumentFragment(), A = [], h = 0, p = t.length;
+                h < p;
+                h++
+              )
+                if ((o = t[h]) || 0 === o)
+                  if ('object' === d(o)) B.merge(A, o.nodeType ? [o] : o);
+                  else if (xt.test(o)) {
+                    for (
+                      a = a || c.appendChild(e.createElement('div')),
+                        s = (Et.exec(o) || ['', ''])[1].toLowerCase(),
+                        s = D[s] || D._default,
+                        a.innerHTML = s[1] + B.htmlPrefilter(o) + s[2],
+                        u = s[0];
+                      u--;
+
+                    )
+                      a = a.lastChild;
+                    B.merge(A, a.childNodes), ((a = c.firstChild).textContent = '');
+                  } else A.push(e.createTextNode(o));
+              for (c.textContent = '', h = 0; (o = A[h++]); )
+                if (r && -1 < B.inArray(o, r)) i && i.push(o);
+                else if (((l = I(o)), (a = S(c.appendChild(o), 'script')), l && Ct(a), n))
+                  for (u = 0; (o = a[u++]); ) Bt.test(o.type || '') && n.push(o);
+              return c;
+            }
+            var Mt = /^([^.]*)(?:\.(.+)|)/;
+            function n() {
+              return !0;
+            }
+            function p() {
+              return !1;
+            }
+            function Dt(t, e) {
+              return (
+                (t ===
+                  (function () {
+                    try {
+                      return E.activeElement;
+                    } catch (t) {}
+                  })()) ==
+                ('focus' === e)
+              );
+            }
+            function St(t, e, n, r, i, o) {
+              var a, s;
+              if ('object' == typeof e) {
+                for (s in ('string' != typeof n && ((r = r || n), (n = void 0)), e))
+                  St(t, s, n, r, e[s], o);
+                return t;
+              }
+              if (
+                (null == r && null == i
+                  ? ((i = n), (r = n = void 0))
+                  : null == i &&
+                    ('string' == typeof n
+                      ? ((i = r), (r = void 0))
+                      : ((i = r), (r = n), (n = void 0))),
+                !1 === i)
+              )
+                i = p;
+              else if (!i) return t;
+              return (
+                1 === o &&
+                  ((a = i),
+                  ((i = function (t) {
+                    return B().off(t), a.apply(this, arguments);
+                  }).guid = a.guid || (a.guid = B.guid++))),
+                t.each(function () {
+                  B.event.add(this, e, i, r, n);
+                })
+              );
+            }
+            function kt(t, i, o) {
+              o
+                ? (y.set(t, i, !1),
+                  B.event.add(t, i, {
+                    namespace: !1,
+                    handler: function (t) {
+                      var e,
+                        n,
+                        r = y.get(this, i);
+                      if (1 & t.isTrigger && this[i]) {
+                        if (r.length)
+                          (B.event.special[i] || {}).delegateType && t.stopPropagation();
+                        else if (
+                          ((r = s.call(arguments)),
+                          y.set(this, i, r),
+                          (e = o(this, i)),
+                          this[i](),
+                          r !== (n = y.get(this, i)) || e ? y.set(this, i, !1) : (n = {}),
+                          r !== n)
+                        )
+                          return t.stopImmediatePropagation(), t.preventDefault(), n && n.value;
+                      } else
+                        r.length &&
+                          (y.set(this, i, {
+                            value: B.event.trigger(
+                              B.extend(r[0], B.Event.prototype),
+                              r.slice(1),
+                              this,
+                            ),
+                          }),
+                          t.stopImmediatePropagation());
+                    },
+                  }))
+                : void 0 === y.get(t, i) && B.event.add(t, i, n);
+            }
+            (B.event = {
+              global: {},
+              add: function (e, t, n, r, i) {
+                var o,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c,
+                  A,
+                  h,
+                  p,
+                  d = y.get(e);
+                if (m(e))
+                  for (
+                    n.handler && ((n = (o = n).handler), (i = o.selector)),
+                      i && B.find.matchesSelector(x, i),
+                      n.guid || (n.guid = B.guid++),
+                      (s = d.events) || (s = d.events = Object.create(null)),
+                      (a = d.handle) ||
+                        (a = d.handle =
+                          function (t) {
+                            return void 0 !== B && B.event.triggered !== t.type
+                              ? B.event.dispatch.apply(e, arguments)
+                              : void 0;
+                          }),
+                      l = (t = (t || '').match(C) || ['']).length;
+                    l--;
+
+                  )
+                    (A = p = (h = Mt.exec(t[l]) || [])[1]),
+                      (h = (h[2] || '').split('.').sort()),
+                      A &&
+                        ((u = B.event.special[A] || {}),
+                        (A = (i ? u.delegateType : u.bindType) || A),
+                        (u = B.event.special[A] || {}),
+                        (p = B.extend(
+                          {
+                            type: A,
+                            origType: p,
+                            data: r,
+                            handler: n,
+                            guid: n.guid,
+                            selector: i,
+                            needsContext: i && B.expr.match.needsContext.test(i),
+                            namespace: h.join('.'),
+                          },
+                          o,
+                        )),
+                        (c = s[A]) ||
+                          (((c = s[A] = []).delegateCount = 0),
+                          (u.setup && !1 !== u.setup.call(e, r, h, a)) ||
+                            (e.addEventListener && e.addEventListener(A, a))),
+                        u.add && (u.add.call(e, p), p.handler.guid || (p.handler.guid = n.guid)),
+                        i ? c.splice(c.delegateCount++, 0, p) : c.push(p),
+                        (B.event.global[A] = !0));
+              },
+              remove: function (t, e, n, r, i) {
+                var o,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c,
+                  A,
+                  h,
+                  p,
+                  d,
+                  f,
+                  g = y.hasData(t) && y.get(t);
+                if (g && (l = g.events)) {
+                  for (u = (e = (e || '').match(C) || ['']).length; u--; )
+                    if (
+                      ((p = f = (s = Mt.exec(e[u]) || [])[1]),
+                      (d = (s[2] || '').split('.').sort()),
+                      p)
+                    ) {
+                      for (
+                        A = B.event.special[p] || {},
+                          h = l[(p = (r ? A.delegateType : A.bindType) || p)] || [],
+                          s = s[2] && new RegExp('(^|\\.)' + d.join('\\.(?:.*\\.|)') + '(\\.|$)'),
+                          a = o = h.length;
+                        o--;
+
+                      )
+                        (c = h[o]),
+                          (!i && f !== c.origType) ||
+                            (n && n.guid !== c.guid) ||
+                            (s && !s.test(c.namespace)) ||
+                            (r && r !== c.selector && ('**' !== r || !c.selector)) ||
+                            (h.splice(o, 1),
+                            c.selector && h.delegateCount--,
+                            A.remove && A.remove.call(t, c));
+                      a &&
+                        !h.length &&
+                        ((A.teardown && !1 !== A.teardown.call(t, d, g.handle)) ||
+                          B.removeEvent(t, p, g.handle),
+                        delete l[p]);
+                    } else for (p in l) B.event.remove(t, p + e[u], n, r, !0);
+                  B.isEmptyObject(l) && y.remove(t, 'handle events');
+                }
+              },
+              dispatch: function (t) {
+                var e,
+                  n,
+                  r,
+                  i,
+                  o,
+                  a = new Array(arguments.length),
+                  s = B.event.fix(t),
+                  t = (y.get(this, 'events') || Object.create(null))[s.type] || [],
+                  l = B.event.special[s.type] || {};
+                for (a[0] = s, e = 1; e < arguments.length; e++) a[e] = arguments[e];
+                if (
+                  ((s.delegateTarget = this), !l.preDispatch || !1 !== l.preDispatch.call(this, s))
+                ) {
+                  for (
+                    o = B.event.handlers.call(this, s, t), e = 0;
+                    (r = o[e++]) && !s.isPropagationStopped();
+
+                  )
+                    for (
+                      s.currentTarget = r.elem, n = 0;
+                      (i = r.handlers[n++]) && !s.isImmediatePropagationStopped();
+
+                    )
+                      (s.rnamespace && !1 !== i.namespace && !s.rnamespace.test(i.namespace)) ||
+                        ((s.handleObj = i),
+                        (s.data = i.data),
+                        void 0 !==
+                          (i = ((B.event.special[i.origType] || {}).handle || i.handler).apply(
+                            r.elem,
+                            a,
+                          )) &&
+                          !1 === (s.result = i) &&
+                          (s.preventDefault(), s.stopPropagation()));
+                  return l.postDispatch && l.postDispatch.call(this, s), s.result;
+                }
+              },
+              handlers: function (t, e) {
+                var n,
+                  r,
+                  i,
+                  o,
+                  a,
+                  s = [],
+                  l = e.delegateCount,
+                  u = t.target;
+                if (l && u.nodeType && !('click' === t.type && 1 <= t.button))
+                  for (; u !== this; u = u.parentNode || this)
+                    if (1 === u.nodeType && ('click' !== t.type || !0 !== u.disabled)) {
+                      for (o = [], a = {}, n = 0; n < l; n++)
+                        void 0 === a[(i = (r = e[n]).selector + ' ')] &&
+                          (a[i] = r.needsContext
+                            ? -1 < B(i, this).index(u)
+                            : B.find(i, this, null, [u]).length),
+                          a[i] && o.push(r);
+                      o.length && s.push({ elem: u, handlers: o });
+                    }
+                return (u = this), l < e.length && s.push({ elem: u, handlers: e.slice(l) }), s;
+              },
+              addProp: function (e, t) {
+                Object.defineProperty(B.Event.prototype, e, {
+                  enumerable: !0,
+                  configurable: !0,
+                  get: v(t)
+                    ? function () {
+                        if (this.originalEvent) return t(this.originalEvent);
+                      }
+                    : function () {
+                        if (this.originalEvent) return this.originalEvent[e];
+                      },
+                  set: function (t) {
+                    Object.defineProperty(this, e, {
+                      enumerable: !0,
+                      configurable: !0,
+                      writable: !0,
+                      value: t,
+                    });
+                  },
+                });
+              },
+              fix: function (t) {
+                return t[B.expando] ? t : new B.Event(t);
+              },
+              special: {
+                load: { noBubble: !0 },
+                click: {
+                  setup: function (t) {
+                    t = this || t;
+                    return wt.test(t.type) && t.click && l(t, 'input') && kt(t, 'click', n), !1;
+                  },
+                  trigger: function (t) {
+                    t = this || t;
+                    return wt.test(t.type) && t.click && l(t, 'input') && kt(t, 'click'), !0;
+                  },
+                  _default: function (t) {
+                    t = t.target;
+                    return (
+                      (wt.test(t.type) && t.click && l(t, 'input') && y.get(t, 'click')) ||
+                      l(t, 'a')
+                    );
+                  },
+                },
+                beforeunload: {
+                  postDispatch: function (t) {
+                    void 0 !== t.result &&
+                      t.originalEvent &&
+                      (t.originalEvent.returnValue = t.result);
+                  },
+                },
+              },
+            }),
+              (B.removeEvent = function (t, e, n) {
+                t.removeEventListener && t.removeEventListener(e, n);
+              }),
+              (B.Event = function (t, e) {
+                if (!(this instanceof B.Event)) return new B.Event(t, e);
+                t && t.type
+                  ? ((this.originalEvent = t),
+                    (this.type = t.type),
+                    (this.isDefaultPrevented =
+                      t.defaultPrevented || (void 0 === t.defaultPrevented && !1 === t.returnValue)
+                        ? n
+                        : p),
+                    (this.target =
+                      t.target && 3 === t.target.nodeType ? t.target.parentNode : t.target),
+                    (this.currentTarget = t.currentTarget),
+                    (this.relatedTarget = t.relatedTarget))
+                  : (this.type = t),
+                  e && B.extend(this, e),
+                  (this.timeStamp = (t && t.timeStamp) || Date.now()),
+                  (this[B.expando] = !0);
+              }),
+              (B.Event.prototype = {
+                constructor: B.Event,
+                isDefaultPrevented: p,
+                isPropagationStopped: p,
+                isImmediatePropagationStopped: p,
+                isSimulated: !1,
+                preventDefault: function () {
+                  var t = this.originalEvent;
+                  (this.isDefaultPrevented = n), t && !this.isSimulated && t.preventDefault();
+                },
+                stopPropagation: function () {
+                  var t = this.originalEvent;
+                  (this.isPropagationStopped = n), t && !this.isSimulated && t.stopPropagation();
+                },
+                stopImmediatePropagation: function () {
+                  var t = this.originalEvent;
+                  (this.isImmediatePropagationStopped = n),
+                    t && !this.isSimulated && t.stopImmediatePropagation(),
+                    this.stopPropagation();
+                },
+              }),
+              B.each(
+                {
+                  altKey: !0,
+                  bubbles: !0,
+                  cancelable: !0,
+                  changedTouches: !0,
+                  ctrlKey: !0,
+                  detail: !0,
+                  eventPhase: !0,
+                  metaKey: !0,
+                  pageX: !0,
+                  pageY: !0,
+                  shiftKey: !0,
+                  view: !0,
+                  char: !0,
+                  code: !0,
+                  charCode: !0,
+                  key: !0,
+                  keyCode: !0,
+                  button: !0,
+                  buttons: !0,
+                  clientX: !0,
+                  clientY: !0,
+                  offsetX: !0,
+                  offsetY: !0,
+                  pointerId: !0,
+                  pointerType: !0,
+                  screenX: !0,
+                  screenY: !0,
+                  targetTouches: !0,
+                  toElement: !0,
+                  touches: !0,
+                  which: !0,
+                },
+                B.event.addProp,
+              ),
+              B.each({ focus: 'focusin', blur: 'focusout' }, function (t, e) {
+                B.event.special[t] = {
+                  setup: function () {
+                    return kt(this, t, Dt), !1;
+                  },
+                  trigger: function () {
+                    return kt(this, t), !0;
+                  },
+                  _default: function () {
+                    return !0;
+                  },
+                  delegateType: e,
+                };
+              }),
+              B.each(
+                {
+                  mouseenter: 'mouseover',
+                  mouseleave: 'mouseout',
+                  pointerenter: 'pointerover',
+                  pointerleave: 'pointerout',
+                },
+                function (t, i) {
+                  B.event.special[t] = {
+                    delegateType: i,
+                    bindType: i,
+                    handle: function (t) {
+                      var e,
+                        n = t.relatedTarget,
+                        r = t.handleObj;
+                      return (
+                        (n && (n === this || B.contains(this, n))) ||
+                          ((t.type = r.origType),
+                          (e = r.handler.apply(this, arguments)),
+                          (t.type = i)),
+                        e
+                      );
+                    },
+                  };
+                },
+              ),
+              B.fn.extend({
+                on: function (t, e, n, r) {
+                  return St(this, t, e, n, r);
+                },
+                one: function (t, e, n, r) {
+                  return St(this, t, e, n, r, 1);
+                },
+                off: function (t, e, n) {
+                  var r, i;
+                  if (t && t.preventDefault && t.handleObj)
+                    return (
+                      (r = t.handleObj),
+                      B(t.delegateTarget).off(
+                        r.namespace ? r.origType + '.' + r.namespace : r.origType,
+                        r.selector,
+                        r.handler,
+                      ),
+                      this
+                    );
+                  if ('object' != typeof t)
+                    return (
+                      (!1 !== e && 'function' != typeof e) || ((n = e), (e = void 0)),
+                      !1 === n && (n = p),
+                      this.each(function () {
+                        B.event.remove(this, t, n, e);
+                      })
+                    );
+                  for (i in t) this.off(i, e, t[i]);
+                  return this;
+                },
+              });
+            var Ft = /<script|<style|<link/i,
+              Qt = /checked\s*(?:[^=]|=\s*.checked.)/i,
+              _t = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+            function Tt(t, e) {
+              return (
+                (l(t, 'table') &&
+                  l(11 !== e.nodeType ? e : e.firstChild, 'tr') &&
+                  B(t).children('tbody')[0]) ||
+                t
+              );
+            }
+            function Rt(t) {
+              return (t.type = (null !== t.getAttribute('type')) + '/' + t.type), t;
+            }
+            function Ut(t) {
+              return (
+                'true/' === (t.type || '').slice(0, 5)
+                  ? (t.type = t.type.slice(5))
+                  : t.removeAttribute('type'),
+                t
+              );
+            }
+            function Nt(t, e) {
+              var n, r, i, o;
+              if (1 === e.nodeType) {
+                if (y.hasData(t) && (o = y.get(t).events))
+                  for (i in (y.remove(e, 'handle events'), o))
+                    for (n = 0, r = o[i].length; n < r; n++) B.event.add(e, i, o[i][n]);
+                u.hasData(t) && ((t = u.access(t)), (t = B.extend({}, t)), u.set(e, t));
+              }
+            }
+            function k(n, r, i, o) {
+              r = P(r);
+              var t,
+                e,
+                a,
+                s,
+                l,
+                u,
+                c = 0,
+                A = n.length,
+                h = A - 1,
+                p = r[0],
+                d = v(p);
+              if (d || (1 < A && 'string' == typeof p && !g.checkClone && Qt.test(p)))
+                return n.each(function (t) {
+                  var e = n.eq(t);
+                  d && (r[0] = p.call(this, t, e.html())), k(e, r, i, o);
+                });
+              if (
+                A &&
+                ((e = (t = It(r, n[0].ownerDocument, !1, n, o)).firstChild),
+                1 === t.childNodes.length && (t = e),
+                e || o)
+              ) {
+                for (s = (a = B.map(S(t, 'script'), Rt)).length; c < A; c++)
+                  (l = t),
+                    c !== h && ((l = B.clone(l, !0, !0)), s && B.merge(a, S(l, 'script'))),
+                    i.call(n[c], l, c);
+                if (s)
+                  for (u = a[a.length - 1].ownerDocument, B.map(a, Ut), c = 0; c < s; c++)
+                    (l = a[c]),
+                      Bt.test(l.type || '') &&
+                        !y.access(l, 'globalEval') &&
+                        B.contains(u, l) &&
+                        (l.src && 'module' !== (l.type || '').toLowerCase()
+                          ? B._evalUrl &&
+                            !l.noModule &&
+                            B._evalUrl(l.src, { nonce: l.nonce || l.getAttribute('nonce') }, u)
+                          : q(l.textContent.replace(_t, ''), l, u));
+              }
+              return n;
+            }
+            function Pt(t, e, n) {
+              for (var r, i = e ? B.filter(e, t) : t, o = 0; null != (r = i[o]); o++)
+                n || 1 !== r.nodeType || B.cleanData(S(r)),
+                  r.parentNode && (n && I(r) && Ct(S(r, 'script')), r.parentNode.removeChild(r));
+              return t;
+            }
+            B.extend({
+              htmlPrefilter: function (t) {
+                return t;
+              },
+              clone: function (t, e, n) {
+                var r,
+                  i,
+                  o,
+                  a,
+                  s,
+                  l,
+                  u,
+                  c = t.cloneNode(!0),
+                  A = I(t);
+                if (!(g.noCloneChecked || (1 !== t.nodeType && 11 !== t.nodeType) || B.isXMLDoc(t)))
+                  for (a = S(c), r = 0, i = (o = S(t)).length; r < i; r++)
+                    (s = o[r]),
+                      (l = a[r]),
+                      (u = void 0),
+                      'input' === (u = l.nodeName.toLowerCase()) && wt.test(s.type)
+                        ? (l.checked = s.checked)
+                        : ('input' !== u && 'textarea' !== u) || (l.defaultValue = s.defaultValue);
+                if (e)
+                  if (n)
+                    for (o = o || S(t), a = a || S(c), r = 0, i = o.length; r < i; r++)
+                      Nt(o[r], a[r]);
+                  else Nt(t, c);
+                return 0 < (a = S(c, 'script')).length && Ct(a, !A && S(t, 'script')), c;
+              },
+              cleanData: function (t) {
+                for (var e, n, r, i = B.event.special, o = 0; void 0 !== (n = t[o]); o++)
+                  if (m(n)) {
+                    if ((e = n[y.expando])) {
+                      if (e.events)
+                        for (r in e.events)
+                          i[r] ? B.event.remove(n, r) : B.removeEvent(n, r, e.handle);
+                      n[y.expando] = void 0;
+                    }
+                    n[u.expando] && (n[u.expando] = void 0);
+                  }
+              },
+            }),
+              B.fn.extend({
+                detach: function (t) {
+                  return Pt(this, t, !0);
+                },
+                remove: function (t) {
+                  return Pt(this, t);
+                },
+                text: function (t) {
+                  return A(
+                    this,
+                    function (t) {
+                      return void 0 === t
+                        ? B.text(this)
+                        : this.empty().each(function () {
+                            (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) ||
+                              (this.textContent = t);
+                          });
+                    },
+                    null,
+                    t,
+                    arguments.length,
+                  );
+                },
+                append: function () {
+                  return k(this, arguments, function (t) {
+                    (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) ||
+                      Tt(this, t).appendChild(t);
+                  });
+                },
+                prepend: function () {
+                  return k(this, arguments, function (t) {
+                    var e;
+                    (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) ||
+                      (e = Tt(this, t)).insertBefore(t, e.firstChild);
+                  });
+                },
+                before: function () {
+                  return k(this, arguments, function (t) {
+                    this.parentNode && this.parentNode.insertBefore(t, this);
+                  });
+                },
+                after: function () {
+                  return k(this, arguments, function (t) {
+                    this.parentNode && this.parentNode.insertBefore(t, this.nextSibling);
+                  });
+                },
+                empty: function () {
+                  for (var t, e = 0; null != (t = this[e]); e++)
+                    1 === t.nodeType && (B.cleanData(S(t, !1)), (t.textContent = ''));
+                  return this;
+                },
+                clone: function (t, e) {
+                  return (
+                    (t = null != t && t),
+                    (e = null == e ? t : e),
+                    this.map(function () {
+                      return B.clone(this, t, e);
+                    })
+                  );
+                },
+                html: function (t) {
+                  return A(
+                    this,
+                    function (t) {
+                      var e = this[0] || {},
+                        n = 0,
+                        r = this.length;
+                      if (void 0 === t && 1 === e.nodeType) return e.innerHTML;
+                      if (
+                        'string' == typeof t &&
+                        !Ft.test(t) &&
+                        !D[(Et.exec(t) || ['', ''])[1].toLowerCase()]
+                      ) {
+                        t = B.htmlPrefilter(t);
+                        try {
+                          for (; n < r; n++)
+                            1 === (e = this[n] || {}).nodeType &&
+                              (B.cleanData(S(e, !1)), (e.innerHTML = t));
+                          e = 0;
+                        } catch (t) {}
+                      }
+                      e && this.empty().append(t);
+                    },
+                    null,
+                    t,
+                    arguments.length,
+                  );
+                },
+                replaceWith: function () {
+                  var n = [];
+                  return k(
+                    this,
+                    arguments,
+                    function (t) {
+                      var e = this.parentNode;
+                      B.inArray(this, n) < 0 &&
+                        (B.cleanData(S(this)), e && e.replaceChild(t, this));
+                    },
+                    n,
+                  );
+                },
+              }),
+              B.each(
+                {
+                  appendTo: 'append',
+                  prependTo: 'prepend',
+                  insertBefore: 'before',
+                  insertAfter: 'after',
+                  replaceAll: 'replaceWith',
+                },
+                function (t, a) {
+                  B.fn[t] = function (t) {
+                    for (var e, n = [], r = B(t), i = r.length - 1, o = 0; o <= i; o++)
+                      (e = o === i ? this : this.clone(!0)), B(r[o])[a](e), L.apply(n, e.get());
+                    return this.pushStack(n);
+                  };
+                },
+              );
+            function Lt(t) {
+              var e = t.ownerDocument.defaultView;
+              return (e = e && e.opener ? e : w).getComputedStyle(t);
+            }
+            function Yt(t, e, n) {
+              var r,
+                i = {};
+              for (r in e) (i[r] = t.style[r]), (t.style[r] = e[r]);
+              for (r in ((n = n.call(t)), e)) t.style[r] = i[r];
+              return n;
+            }
+            var Ot,
+              Gt,
+              zt,
+              Ht,
+              jt,
+              Vt,
+              qt,
+              i,
+              Wt = new RegExp('^(' + t + ')(?!px)[a-z%]+$', 'i'),
+              Jt = new RegExp(h.join('|'), 'i');
+            function Kt() {
+              var t;
+              i &&
+                ((qt.style.cssText =
+                  'position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0'),
+                (i.style.cssText =
+                  'position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%'),
+                x.appendChild(qt).appendChild(i),
+                (t = w.getComputedStyle(i)),
+                (Ot = '1%' !== t.top),
+                (Vt = 12 === Zt(t.marginLeft)),
+                (i.style.right = '60%'),
+                (Ht = 36 === Zt(t.right)),
+                (Gt = 36 === Zt(t.width)),
+                (i.style.position = 'absolute'),
+                (zt = 12 === Zt(i.offsetWidth / 3)),
+                x.removeChild(qt),
+                (i = null));
+            }
+            function Zt(t) {
+              return Math.round(parseFloat(t));
+            }
+            function Xt(t, e, n) {
+              var r,
+                i,
+                o = t.style;
+              return (
+                (n = n || Lt(t)) &&
+                  ('' !== (i = n.getPropertyValue(e) || n[e]) || I(t) || (i = B.style(t, e)),
+                  !g.pixelBoxStyles() &&
+                    Wt.test(i) &&
+                    Jt.test(e) &&
+                    ((t = o.width),
+                    (e = o.minWidth),
+                    (r = o.maxWidth),
+                    (o.minWidth = o.maxWidth = o.width = i),
+                    (i = n.width),
+                    (o.width = t),
+                    (o.minWidth = e),
+                    (o.maxWidth = r))),
+                void 0 !== i ? i + '' : i
+              );
+            }
+            function $t(t, e) {
+              return {
+                get: function () {
+                  if (!t()) return (this.get = e).apply(this, arguments);
+                  delete this.get;
+                },
+              };
+            }
+            (qt = E.createElement('div')),
+              (i = E.createElement('div')).style &&
+                ((i.style.backgroundClip = 'content-box'),
+                (i.cloneNode(!0).style.backgroundClip = ''),
+                (g.clearCloneStyle = 'content-box' === i.style.backgroundClip),
+                B.extend(g, {
+                  boxSizingReliable: function () {
+                    return Kt(), Gt;
+                  },
+                  pixelBoxStyles: function () {
+                    return Kt(), Ht;
+                  },
+                  pixelPosition: function () {
+                    return Kt(), Ot;
+                  },
+                  reliableMarginLeft: function () {
+                    return Kt(), Vt;
+                  },
+                  scrollboxSize: function () {
+                    return Kt(), zt;
+                  },
+                  reliableTrDimensions: function () {
+                    var t, e, n;
+                    return (
+                      null == jt &&
+                        ((t = E.createElement('table')),
+                        (e = E.createElement('tr')),
+                        (n = E.createElement('div')),
+                        (t.style.cssText =
+                          'position:absolute;left:-11111px;border-collapse:separate'),
+                        (e.style.cssText = 'border:1px solid'),
+                        (e.style.height = '1px'),
+                        (n.style.height = '9px'),
+                        (n.style.display = 'block'),
+                        x.appendChild(t).appendChild(e).appendChild(n),
+                        (n = w.getComputedStyle(e)),
+                        (jt =
+                          parseInt(n.height, 10) +
+                            parseInt(n.borderTopWidth, 10) +
+                            parseInt(n.borderBottomWidth, 10) ===
+                          e.offsetHeight),
+                        x.removeChild(t)),
+                      jt
+                    );
+                  },
+                }));
+            var te = ['Webkit', 'Moz', 'ms'],
+              ee = E.createElement('div').style,
+              ne = {};
+            function re(t) {
+              var e = B.cssProps[t] || ne[t];
+              return (
+                e ||
+                (t in ee
+                  ? t
+                  : (ne[t] =
+                      (function (t) {
+                        for (var e = t[0].toUpperCase() + t.slice(1), n = te.length; n--; )
+                          if ((t = te[n] + e) in ee) return t;
+                      })(t) || t))
+              );
+            }
+            var ie = /^(none|table(?!-c[ea]).+)/,
+              oe = /^--/,
+              ae = { position: 'absolute', visibility: 'hidden', display: 'block' },
+              se = { letterSpacing: '0', fontWeight: '400' };
+            function le(t, e, n) {
+              var r = mt.exec(e);
+              return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || 'px') : e;
+            }
+            function ue(t, e, n, r, i, o) {
+              var a = 'width' === e ? 1 : 0,
+                s = 0,
+                l = 0;
+              if (n === (r ? 'border' : 'content')) return 0;
+              for (; a < 4; a += 2)
+                'margin' === n && (l += B.css(t, n + h[a], !0, i)),
+                  r
+                    ? ('content' === n && (l -= B.css(t, 'padding' + h[a], !0, i)),
+                      'margin' !== n && (l -= B.css(t, 'border' + h[a] + 'Width', !0, i)))
+                    : ((l += B.css(t, 'padding' + h[a], !0, i)),
+                      'padding' !== n
+                        ? (l += B.css(t, 'border' + h[a] + 'Width', !0, i))
+                        : (s += B.css(t, 'border' + h[a] + 'Width', !0, i)));
+              return (
+                !r &&
+                  0 <= o &&
+                  (l +=
+                    Math.max(
+                      0,
+                      Math.ceil(t['offset' + e[0].toUpperCase() + e.slice(1)] - o - l - s - 0.5),
+                    ) || 0),
+                l
+              );
+            }
+            function ce(t, e, n) {
+              var r = Lt(t),
+                i = (!g.boxSizingReliable() || n) && 'border-box' === B.css(t, 'boxSizing', !1, r),
+                o = i,
+                a = Xt(t, e, r),
+                s = 'offset' + e[0].toUpperCase() + e.slice(1);
+              if (Wt.test(a)) {
+                if (!n) return a;
+                a = 'auto';
+              }
+              return (
+                ((!g.boxSizingReliable() && i) ||
+                  (!g.reliableTrDimensions() && l(t, 'tr')) ||
+                  'auto' === a ||
+                  (!parseFloat(a) && 'inline' === B.css(t, 'display', !1, r))) &&
+                  t.getClientRects().length &&
+                  ((i = 'border-box' === B.css(t, 'boxSizing', !1, r)), (o = s in t) && (a = t[s])),
+                (a = parseFloat(a) || 0) + ue(t, e, n || (i ? 'border' : 'content'), o, r, a) + 'px'
+              );
+            }
+            function o(t, e, n, r, i) {
+              return new o.prototype.init(t, e, n, r, i);
+            }
+            B.extend({
+              cssHooks: {
+                opacity: {
+                  get: function (t, e) {
+                    if (e) return '' === (e = Xt(t, 'opacity')) ? '1' : e;
+                  },
+                },
+              },
+              cssNumber: {
+                animationIterationCount: !0,
+                columnCount: !0,
+                fillOpacity: !0,
+                flexGrow: !0,
+                flexShrink: !0,
+                fontWeight: !0,
+                gridArea: !0,
+                gridColumn: !0,
+                gridColumnEnd: !0,
+                gridColumnStart: !0,
+                gridRow: !0,
+                gridRowEnd: !0,
+                gridRowStart: !0,
+                lineHeight: !0,
+                opacity: !0,
+                order: !0,
+                orphans: !0,
+                widows: !0,
+                zIndex: !0,
+                zoom: !0,
+              },
+              cssProps: {},
+              style: function (t, e, n, r) {
+                if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
+                  var i,
+                    o,
+                    a,
+                    s = b(e),
+                    l = oe.test(e),
+                    u = t.style;
+                  if ((l || (e = re(s)), (a = B.cssHooks[e] || B.cssHooks[s]), void 0 === n))
+                    return a && 'get' in a && void 0 !== (i = a.get(t, !1, r)) ? i : u[e];
+                  'string' === (o = typeof n) &&
+                    (i = mt.exec(n)) &&
+                    i[1] &&
+                    ((n = bt(t, e, i)), (o = 'number')),
+                    null != n &&
+                      n == n &&
+                      ('number' !== o || l || (n += (i && i[3]) || (B.cssNumber[s] ? '' : 'px')),
+                      g.clearCloneStyle ||
+                        '' !== n ||
+                        0 !== e.indexOf('background') ||
+                        (u[e] = 'inherit'),
+                      (a && 'set' in a && void 0 === (n = a.set(t, n, r))) ||
+                        (l ? u.setProperty(e, n) : (u[e] = n)));
+                }
+              },
+              css: function (t, e, n, r) {
+                var i,
+                  o = b(e);
+                return (
+                  oe.test(e) || (e = re(o)),
+                  'normal' ===
+                    (i =
+                      void 0 ===
+                      (i = (o = B.cssHooks[e] || B.cssHooks[o]) && 'get' in o ? o.get(t, !0, n) : i)
+                        ? Xt(t, e, r)
+                        : i) &&
+                    e in se &&
+                    (i = se[e]),
+                  '' === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i
+                );
+              },
+            }),
+              B.each(['height', 'width'], function (t, a) {
+                B.cssHooks[a] = {
+                  get: function (t, e, n) {
+                    if (e)
+                      return !ie.test(B.css(t, 'display')) ||
+                        (t.getClientRects().length && t.getBoundingClientRect().width)
+                        ? ce(t, a, n)
+                        : Yt(t, ae, function () {
+                            return ce(t, a, n);
+                          });
+                  },
+                  set: function (t, e, n) {
+                    var r = Lt(t),
+                      i = !g.scrollboxSize() && 'absolute' === r.position,
+                      o = (i || n) && 'border-box' === B.css(t, 'boxSizing', !1, r),
+                      n = n ? ue(t, a, n, o, r) : 0;
+                    return (
+                      o &&
+                        i &&
+                        (n -= Math.ceil(
+                          t['offset' + a[0].toUpperCase() + a.slice(1)] -
+                            parseFloat(r[a]) -
+                            ue(t, a, 'border', !1, r) -
+                            0.5,
+                        )),
+                      n &&
+                        (o = mt.exec(e)) &&
+                        'px' !== (o[3] || 'px') &&
+                        ((t.style[a] = e), (e = B.css(t, a))),
+                      le(0, e, n)
+                    );
+                  },
+                };
+              }),
+              (B.cssHooks.marginLeft = $t(g.reliableMarginLeft, function (t, e) {
+                if (e)
+                  return (
+                    (parseFloat(Xt(t, 'marginLeft')) ||
+                      t.getBoundingClientRect().left -
+                        Yt(t, { marginLeft: 0 }, function () {
+                          return t.getBoundingClientRect().left;
+                        })) + 'px'
+                  );
+              })),
+              B.each({ margin: '', padding: '', border: 'Width' }, function (i, o) {
+                (B.cssHooks[i + o] = {
+                  expand: function (t) {
+                    for (
+                      var e = 0, n = {}, r = 'string' == typeof t ? t.split(' ') : [t];
+                      e < 4;
+                      e++
+                    )
+                      n[i + h[e] + o] = r[e] || r[e - 2] || r[0];
+                    return n;
+                  },
+                }),
+                  'margin' !== i && (B.cssHooks[i + o].set = le);
+              }),
+              B.fn.extend({
+                css: function (t, e) {
+                  return A(
+                    this,
+                    function (t, e, n) {
+                      var r,
+                        i,
+                        o = {},
+                        a = 0;
+                      if (Array.isArray(e)) {
+                        for (r = Lt(t), i = e.length; a < i; a++) o[e[a]] = B.css(t, e[a], !1, r);
+                        return o;
+                      }
+                      return void 0 !== n ? B.style(t, e, n) : B.css(t, e);
+                    },
+                    t,
+                    e,
+                    1 < arguments.length,
+                  );
+                },
+              }),
+              (((B.Tween = o).prototype = {
+                constructor: o,
+                init: function (t, e, n, r, i, o) {
+                  (this.elem = t),
+                    (this.prop = n),
+                    (this.easing = i || B.easing._default),
+                    (this.options = e),
+                    (this.start = this.now = this.cur()),
+                    (this.end = r),
+                    (this.unit = o || (B.cssNumber[n] ? '' : 'px'));
+                },
+                cur: function () {
+                  var t = o.propHooks[this.prop];
+                  return (t && t.get ? t : o.propHooks._default).get(this);
+                },
+                run: function (t) {
+                  var e,
+                    n = o.propHooks[this.prop];
+                  return (
+                    this.options.duration
+                      ? (this.pos = e =
+                          B.easing[this.easing](
+                            t,
+                            this.options.duration * t,
+                            0,
+                            1,
+                            this.options.duration,
+                          ))
+                      : (this.pos = e = t),
+                    (this.now = (this.end - this.start) * e + this.start),
+                    this.options.step && this.options.step.call(this.elem, this.now, this),
+                    (n && n.set ? n : o.propHooks._default).set(this),
+                    this
+                  );
+                },
+              }).init.prototype = o.prototype),
+              ((o.propHooks = {
+                _default: {
+                  get: function (t) {
+                    return 1 !== t.elem.nodeType ||
+                      (null != t.elem[t.prop] && null == t.elem.style[t.prop])
+                      ? t.elem[t.prop]
+                      : (t = B.css(t.elem, t.prop, '')) && 'auto' !== t
+                        ? t
+                        : 0;
+                  },
+                  set: function (t) {
+                    B.fx.step[t.prop]
+                      ? B.fx.step[t.prop](t)
+                      : 1 !== t.elem.nodeType ||
+                          (!B.cssHooks[t.prop] && null == t.elem.style[re(t.prop)])
+                        ? (t.elem[t.prop] = t.now)
+                        : B.style(t.elem, t.prop, t.now + t.unit);
+                  },
+                },
+              }).scrollTop = o.propHooks.scrollLeft =
+                {
+                  set: function (t) {
+                    t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now);
+                  },
+                }),
+              (B.easing = {
+                linear: function (t) {
+                  return t;
+                },
+                swing: function (t) {
+                  return 0.5 - Math.cos(t * Math.PI) / 2;
+                },
+                _default: 'swing',
+              }),
+              (B.fx = o.prototype.init),
+              (B.fx.step = {});
+            var F,
+              Ae,
+              a,
+              Q,
+              he = /^(?:toggle|show|hide)$/,
+              pe = /queueHooks$/;
+            function de() {
+              Ae &&
+                (!1 === E.hidden && w.requestAnimationFrame
+                  ? w.requestAnimationFrame(de)
+                  : w.setTimeout(de, B.fx.interval),
+                B.fx.tick());
+            }
+            function fe() {
+              return (
+                w.setTimeout(function () {
+                  F = void 0;
+                }),
+                (F = Date.now())
+              );
+            }
+            function ge(t, e) {
+              var n,
+                r = 0,
+                i = { height: t };
+              for (e = e ? 1 : 0; r < 4; r += 2 - e)
+                i['margin' + (n = h[r])] = i['padding' + n] = t;
+              return e && (i.opacity = i.width = t), i;
+            }
+            function me(t, e, n) {
+              for (
+                var r, i = (_.tweeners[e] || []).concat(_.tweeners['*']), o = 0, a = i.length;
+                o < a;
+                o++
+              )
+                if ((r = i[o].call(n, e, t))) return r;
+            }
+            function _(i, t, e) {
+              var n,
+                o,
+                r,
+                a,
+                s,
+                l,
+                u,
+                c = 0,
+                A = _.prefilters.length,
+                h = B.Deferred().always(function () {
+                  delete p.elem;
+                }),
+                p = function () {
+                  if (!o) {
+                    for (
+                      var t = F || fe(),
+                        t = Math.max(0, d.startTime + d.duration - t),
+                        e = 1 - (t / d.duration || 0),
+                        n = 0,
+                        r = d.tweens.length;
+                      n < r;
+                      n++
+                    )
+                      d.tweens[n].run(e);
+                    if ((h.notifyWith(i, [d, e, t]), e < 1 && r)) return t;
+                    r || h.notifyWith(i, [d, 1, 0]), h.resolveWith(i, [d]);
+                  }
+                  return !1;
+                },
+                d = h.promise({
+                  elem: i,
+                  props: B.extend({}, t),
+                  opts: B.extend(!0, { specialEasing: {}, easing: B.easing._default }, e),
+                  originalProperties: t,
+                  originalOptions: e,
+                  startTime: F || fe(),
+                  duration: e.duration,
+                  tweens: [],
+                  createTween: function (t, e) {
+                    e = B.Tween(i, d.opts, t, e, d.opts.specialEasing[t] || d.opts.easing);
+                    return d.tweens.push(e), e;
+                  },
+                  stop: function (t) {
+                    var e = 0,
+                      n = t ? d.tweens.length : 0;
+                    if (!o) {
+                      for (o = !0; e < n; e++) d.tweens[e].run(1);
+                      t
+                        ? (h.notifyWith(i, [d, 1, 0]), h.resolveWith(i, [d, t]))
+                        : h.rejectWith(i, [d, t]);
+                    }
+                    return this;
+                  },
+                }),
+                f = d.props,
+                g = f,
+                m = d.opts.specialEasing;
+              for (r in g)
+                if (
+                  ((s = m[(a = b(r))]),
+                  (l = g[r]),
+                  Array.isArray(l) && ((s = l[1]), (l = g[r] = l[0])),
+                  r !== a && ((g[a] = l), delete g[r]),
+                  (u = B.cssHooks[a]) && 'expand' in u)
+                )
+                  for (r in ((l = u.expand(l)), delete g[a], l))
+                    r in g || ((g[r] = l[r]), (m[r] = s));
+                else m[a] = s;
+              for (; c < A; c++)
+                if ((n = _.prefilters[c].call(d, i, f, d.opts)))
+                  return (
+                    v(n.stop) && (B._queueHooks(d.elem, d.opts.queue).stop = n.stop.bind(n)), n
+                  );
+              return (
+                B.map(f, me, d),
+                v(d.opts.start) && d.opts.start.call(i, d),
+                d
+                  .progress(d.opts.progress)
+                  .done(d.opts.done, d.opts.complete)
+                  .fail(d.opts.fail)
+                  .always(d.opts.always),
+                B.fx.timer(B.extend(p, { elem: i, anim: d, queue: d.opts.queue })),
+                d
+              );
+            }
+            (B.Animation = B.extend(_, {
+              tweeners: {
+                '*': [
+                  function (t, e) {
+                    var n = this.createTween(t, e);
+                    return bt(n.elem, t, mt.exec(e), n), n;
+                  },
+                ],
+              },
+              tweener: function (t, e) {
+                for (
+                  var n, r = 0, i = (t = v(t) ? ((e = t), ['*']) : t.match(C)).length;
+                  r < i;
+                  r++
+                )
+                  (n = t[r]), (_.tweeners[n] = _.tweeners[n] || []), _.tweeners[n].unshift(e);
+              },
+              prefilters: [
+                function (t, e, n) {
+                  var r,
+                    i,
+                    o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c = 'width' in e || 'height' in e,
+                    A = this,
+                    h = {},
+                    p = t.style,
+                    d = t.nodeType && gt(t),
+                    f = y.get(t, 'fxshow');
+                  for (r in (n.queue ||
+                    (null == (a = B._queueHooks(t, 'fx')).unqueued &&
+                      ((a.unqueued = 0),
+                      (s = a.empty.fire),
+                      (a.empty.fire = function () {
+                        a.unqueued || s();
+                      })),
+                    a.unqueued++,
+                    A.always(function () {
+                      A.always(function () {
+                        a.unqueued--, B.queue(t, 'fx').length || a.empty.fire();
+                      });
+                    })),
+                  e))
+                    if (((i = e[r]), he.test(i))) {
+                      if ((delete e[r], (o = o || 'toggle' === i), i === (d ? 'hide' : 'show'))) {
+                        if ('show' !== i || !f || void 0 === f[r]) continue;
+                        d = !0;
+                      }
+                      h[r] = (f && f[r]) || B.style(t, r);
+                    }
+                  if ((l = !B.isEmptyObject(e)) || !B.isEmptyObject(h))
+                    for (r in (c &&
+                      1 === t.nodeType &&
+                      ((n.overflow = [p.overflow, p.overflowX, p.overflowY]),
+                      null == (u = f && f.display) && (u = y.get(t, 'display')),
+                      'none' === (c = B.css(t, 'display')) &&
+                        (u
+                          ? (c = u)
+                          : (M([t], !0),
+                            (u = t.style.display || u),
+                            (c = B.css(t, 'display')),
+                            M([t]))),
+                      ('inline' === c || ('inline-block' === c && null != u)) &&
+                        'none' === B.css(t, 'float') &&
+                        (l ||
+                          (A.done(function () {
+                            p.display = u;
+                          }),
+                          null == u && ((c = p.display), (u = 'none' === c ? '' : c))),
+                        (p.display = 'inline-block'))),
+                    n.overflow &&
+                      ((p.overflow = 'hidden'),
+                      A.always(function () {
+                        (p.overflow = n.overflow[0]),
+                          (p.overflowX = n.overflow[1]),
+                          (p.overflowY = n.overflow[2]);
+                      })),
+                    (l = !1),
+                    h))
+                      l ||
+                        (f
+                          ? 'hidden' in f && (d = f.hidden)
+                          : (f = y.access(t, 'fxshow', { display: u })),
+                        o && (f.hidden = !d),
+                        d && M([t], !0),
+                        A.done(function () {
+                          for (r in (d || M([t]), y.remove(t, 'fxshow'), h)) B.style(t, r, h[r]);
+                        })),
+                        (l = me(d ? f[r] : 0, r, A)),
+                        r in f || ((f[r] = l.start), d && ((l.end = l.start), (l.start = 0)));
+                },
+              ],
+              prefilter: function (t, e) {
+                e ? _.prefilters.unshift(t) : _.prefilters.push(t);
+              },
+            })),
+              (B.speed = function (t, e, n) {
+                var r =
+                  t && 'object' == typeof t
+                    ? B.extend({}, t)
+                    : {
+                        complete: n || (!n && e) || (v(t) && t),
+                        duration: t,
+                        easing: (n && e) || (e && !v(e) && e),
+                      };
+                return (
+                  B.fx.off
+                    ? (r.duration = 0)
+                    : 'number' != typeof r.duration &&
+                      (r.duration in B.fx.speeds
+                        ? (r.duration = B.fx.speeds[r.duration])
+                        : (r.duration = B.fx.speeds._default)),
+                  (null != r.queue && !0 !== r.queue) || (r.queue = 'fx'),
+                  (r.old = r.complete),
+                  (r.complete = function () {
+                    v(r.old) && r.old.call(this), r.queue && B.dequeue(this, r.queue);
+                  }),
+                  r
+                );
+              }),
+              B.fn.extend({
+                fadeTo: function (t, e, n, r) {
+                  return this.filter(gt)
+                    .css('opacity', 0)
+                    .show()
+                    .end()
+                    .animate({ opacity: e }, t, n, r);
+                },
+                animate: function (e, t, n, r) {
+                  function i() {
+                    var t = _(this, B.extend({}, e), a);
+                    (o || y.get(this, 'finish')) && t.stop(!0);
+                  }
+                  var o = B.isEmptyObject(e),
+                    a = B.speed(t, n, r);
+                  return (
+                    (i.finish = i), o || !1 === a.queue ? this.each(i) : this.queue(a.queue, i)
+                  );
+                },
+                stop: function (i, t, o) {
+                  function a(t) {
+                    var e = t.stop;
+                    delete t.stop, e(o);
+                  }
+                  return (
+                    'string' != typeof i && ((o = t), (t = i), (i = void 0)),
+                    t && this.queue(i || 'fx', []),
+                    this.each(function () {
+                      var t = !0,
+                        e = null != i && i + 'queueHooks',
+                        n = B.timers,
+                        r = y.get(this);
+                      if (e) r[e] && r[e].stop && a(r[e]);
+                      else for (e in r) r[e] && r[e].stop && pe.test(e) && a(r[e]);
+                      for (e = n.length; e--; )
+                        n[e].elem !== this ||
+                          (null != i && n[e].queue !== i) ||
+                          (n[e].anim.stop(o), (t = !1), n.splice(e, 1));
+                      (!t && o) || B.dequeue(this, i);
+                    })
+                  );
+                },
+                finish: function (a) {
+                  return (
+                    !1 !== a && (a = a || 'fx'),
+                    this.each(function () {
+                      var t,
+                        e = y.get(this),
+                        n = e[a + 'queue'],
+                        r = e[a + 'queueHooks'],
+                        i = B.timers,
+                        o = n ? n.length : 0;
+                      for (
+                        e.finish = !0,
+                          B.queue(this, a, []),
+                          r && r.stop && r.stop.call(this, !0),
+                          t = i.length;
+                        t--;
+
+                      )
+                        i[t].elem === this &&
+                          i[t].queue === a &&
+                          (i[t].anim.stop(!0), i.splice(t, 1));
+                      for (t = 0; t < o; t++) n[t] && n[t].finish && n[t].finish.call(this);
+                      delete e.finish;
+                    })
+                  );
+                },
+              }),
+              B.each(['toggle', 'show', 'hide'], function (t, r) {
+                var i = B.fn[r];
+                B.fn[r] = function (t, e, n) {
+                  return null == t || 'boolean' == typeof t
+                    ? i.apply(this, arguments)
+                    : this.animate(ge(r, !0), t, e, n);
+                };
+              }),
+              B.each(
+                {
+                  slideDown: ge('show'),
+                  slideUp: ge('hide'),
+                  slideToggle: ge('toggle'),
+                  fadeIn: { opacity: 'show' },
+                  fadeOut: { opacity: 'hide' },
+                  fadeToggle: { opacity: 'toggle' },
+                },
+                function (t, r) {
+                  B.fn[t] = function (t, e, n) {
+                    return this.animate(r, t, e, n);
+                  };
+                },
+              ),
+              (B.timers = []),
+              (B.fx.tick = function () {
+                var t,
+                  e = 0,
+                  n = B.timers;
+                for (F = Date.now(); e < n.length; e++)
+                  (t = n[e])() || n[e] !== t || n.splice(e--, 1);
+                n.length || B.fx.stop(), (F = void 0);
+              }),
+              (B.fx.timer = function (t) {
+                B.timers.push(t), B.fx.start();
+              }),
+              (B.fx.interval = 13),
+              (B.fx.start = function () {
+                Ae || ((Ae = !0), de());
+              }),
+              (B.fx.stop = function () {
+                Ae = null;
+              }),
+              (B.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
+              (B.fn.delay = function (r, t) {
+                return (
+                  (r = (B.fx && B.fx.speeds[r]) || r),
+                  this.queue((t = t || 'fx'), function (t, e) {
+                    var n = w.setTimeout(t, r);
+                    e.stop = function () {
+                      w.clearTimeout(n);
+                    };
+                  })
+                );
+              }),
+              (a = E.createElement('input')),
+              (Q = E.createElement('select').appendChild(E.createElement('option'))),
+              (a.type = 'checkbox'),
+              (g.checkOn = '' !== a.value),
+              (g.optSelected = Q.selected),
+              ((a = E.createElement('input')).value = 't'),
+              (a.type = 'radio'),
+              (g.radioValue = 't' === a.value);
+            var ve,
+              be = B.expr.attrHandle,
+              ye =
+                (B.fn.extend({
+                  attr: function (t, e) {
+                    return A(this, B.attr, t, e, 1 < arguments.length);
+                  },
+                  removeAttr: function (t) {
+                    return this.each(function () {
+                      B.removeAttr(this, t);
+                    });
+                  },
+                }),
+                B.extend({
+                  attr: function (t, e, n) {
+                    var r,
+                      i,
+                      o = t.nodeType;
+                    if (3 !== o && 8 !== o && 2 !== o)
+                      return void 0 === t.getAttribute
+                        ? B.prop(t, e, n)
+                        : ((1 === o && B.isXMLDoc(t)) ||
+                            (i =
+                              B.attrHooks[e.toLowerCase()] ||
+                              (B.expr.match.bool.test(e) ? ve : void 0)),
+                          void 0 !== n
+                            ? null === n
+                              ? void B.removeAttr(t, e)
+                              : i && 'set' in i && void 0 !== (r = i.set(t, n, e))
+                                ? r
+                                : (t.setAttribute(e, n + ''), n)
+                            : !(i && 'get' in i && null !== (r = i.get(t, e))) &&
+                                null == (r = B.find.attr(t, e))
+                              ? void 0
+                              : r);
+                  },
+                  attrHooks: {
+                    type: {
+                      set: function (t, e) {
+                        var n;
+                        if (!g.radioValue && 'radio' === e && l(t, 'input'))
+                          return (n = t.value), t.setAttribute('type', e), n && (t.value = n), e;
+                      },
+                    },
+                  },
+                  removeAttr: function (t, e) {
+                    var n,
+                      r = 0,
+                      i = e && e.match(C);
+                    if (i && 1 === t.nodeType) for (; (n = i[r++]); ) t.removeAttribute(n);
+                  },
+                }),
+                (ve = {
+                  set: function (t, e, n) {
+                    return !1 === e ? B.removeAttr(t, n) : t.setAttribute(n, n), n;
+                  },
+                }),
+                B.each(B.expr.match.bool.source.match(/\w+/g), function (t, e) {
+                  var a = be[e] || B.find.attr;
+                  be[e] = function (t, e, n) {
+                    var r,
+                      i,
+                      o = e.toLowerCase();
+                    return (
+                      n ||
+                        ((i = be[o]),
+                        (be[o] = r),
+                        (r = null != a(t, e, n) ? o : null),
+                        (be[o] = i)),
+                      r
+                    );
+                  };
+                }),
+                /^(?:input|select|textarea|button)$/i),
+              we = /^(?:a|area)$/i;
+            function T(t) {
+              return (t.match(C) || []).join(' ');
+            }
+            function R(t) {
+              return (t.getAttribute && t.getAttribute('class')) || '';
+            }
+            function Ee(t) {
+              return Array.isArray(t) ? t : ('string' == typeof t && t.match(C)) || [];
+            }
+            B.fn.extend({
+              prop: function (t, e) {
+                return A(this, B.prop, t, e, 1 < arguments.length);
+              },
+              removeProp: function (t) {
+                return this.each(function () {
+                  delete this[B.propFix[t] || t];
+                });
+              },
+            }),
+              B.extend({
+                prop: function (t, e, n) {
+                  var r,
+                    i,
+                    o = t.nodeType;
+                  if (3 !== o && 8 !== o && 2 !== o)
+                    return (
+                      (1 === o && B.isXMLDoc(t)) || ((e = B.propFix[e] || e), (i = B.propHooks[e])),
+                      void 0 !== n
+                        ? i && 'set' in i && void 0 !== (r = i.set(t, n, e))
+                          ? r
+                          : (t[e] = n)
+                        : i && 'get' in i && null !== (r = i.get(t, e))
+                          ? r
+                          : t[e]
+                    );
+                },
+                propHooks: {
+                  tabIndex: {
+                    get: function (t) {
+                      var e = B.find.attr(t, 'tabindex');
+                      return e
+                        ? parseInt(e, 10)
+                        : ye.test(t.nodeName) || (we.test(t.nodeName) && t.href)
+                          ? 0
+                          : -1;
+                    },
+                  },
+                },
+                propFix: { for: 'htmlFor', class: 'className' },
+              }),
+              g.optSelected ||
+                (B.propHooks.selected = {
+                  get: function (t) {
+                    t = t.parentNode;
+                    return t && t.parentNode && t.parentNode.selectedIndex, null;
+                  },
+                  set: function (t) {
+                    t = t.parentNode;
+                    t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
+                  },
+                }),
+              B.each(
+                [
+                  'tabIndex',
+                  'readOnly',
+                  'maxLength',
+                  'cellSpacing',
+                  'cellPadding',
+                  'rowSpan',
+                  'colSpan',
+                  'useMap',
+                  'frameBorder',
+                  'contentEditable',
+                ],
+                function () {
+                  B.propFix[this.toLowerCase()] = this;
+                },
+              ),
+              B.fn.extend({
+                addClass: function (e) {
+                  var t,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s = 0;
+                  if (v(e))
+                    return this.each(function (t) {
+                      B(this).addClass(e.call(this, t, R(this)));
+                    });
+                  if ((t = Ee(e)).length)
+                    for (; (n = this[s++]); )
+                      if (((a = R(n)), (r = 1 === n.nodeType && ' ' + T(a) + ' '))) {
+                        for (o = 0; (i = t[o++]); ) r.indexOf(' ' + i + ' ') < 0 && (r += i + ' ');
+                        a !== (a = T(r)) && n.setAttribute('class', a);
+                      }
+                  return this;
+                },
+                removeClass: function (e) {
+                  var t,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s = 0;
+                  if (v(e))
+                    return this.each(function (t) {
+                      B(this).removeClass(e.call(this, t, R(this)));
+                    });
+                  if (!arguments.length) return this.attr('class', '');
+                  if ((t = Ee(e)).length)
+                    for (; (n = this[s++]); )
+                      if (((a = R(n)), (r = 1 === n.nodeType && ' ' + T(a) + ' '))) {
+                        for (o = 0; (i = t[o++]); )
+                          for (; -1 < r.indexOf(' ' + i + ' '); ) r = r.replace(' ' + i + ' ', ' ');
+                        a !== (a = T(r)) && n.setAttribute('class', a);
+                      }
+                  return this;
+                },
+                toggleClass: function (i, e) {
+                  var o = typeof i,
+                    a = 'string' == o || Array.isArray(i);
+                  return 'boolean' == typeof e && a
+                    ? e
+                      ? this.addClass(i)
+                      : this.removeClass(i)
+                    : v(i)
+                      ? this.each(function (t) {
+                          B(this).toggleClass(i.call(this, t, R(this), e), e);
+                        })
+                      : this.each(function () {
+                          var t, e, n, r;
+                          if (a)
+                            for (e = 0, n = B(this), r = Ee(i); (t = r[e++]); )
+                              n.hasClass(t) ? n.removeClass(t) : n.addClass(t);
+                          else
+                            (void 0 !== i && 'boolean' != o) ||
+                              ((t = R(this)) && y.set(this, '__className__', t),
+                              this.setAttribute &&
+                                this.setAttribute(
+                                  'class',
+                                  (!t && !1 !== i && y.get(this, '__className__')) || '',
+                                ));
+                        });
+                },
+                hasClass: function (t) {
+                  for (var e, n = 0, r = ' ' + t + ' '; (e = this[n++]); )
+                    if (1 === e.nodeType && -1 < (' ' + T(R(e)) + ' ').indexOf(r)) return !0;
+                  return !1;
+                },
+              });
+            function Be(t) {
+              t.stopPropagation();
+            }
+            var Ce = /\r/g,
+              xe =
+                (B.fn.extend({
+                  val: function (e) {
+                    var n,
+                      t,
+                      r,
+                      i = this[0];
+                    return arguments.length
+                      ? ((r = v(e)),
+                        this.each(function (t) {
+                          1 === this.nodeType &&
+                            (null == (t = r ? e.call(this, t, B(this).val()) : e)
+                              ? (t = '')
+                              : 'number' == typeof t
+                                ? (t += '')
+                                : Array.isArray(t) &&
+                                  (t = B.map(t, function (t) {
+                                    return null == t ? '' : t + '';
+                                  })),
+                            ((n =
+                              B.valHooks[this.type] || B.valHooks[this.nodeName.toLowerCase()]) &&
+                              'set' in n &&
+                              void 0 !== n.set(this, t, 'value')) ||
+                              (this.value = t));
+                        }))
+                      : i
+                        ? (n = B.valHooks[i.type] || B.valHooks[i.nodeName.toLowerCase()]) &&
+                          'get' in n &&
+                          void 0 !== (t = n.get(i, 'value'))
+                          ? t
+                          : 'string' == typeof (t = i.value)
+                            ? t.replace(Ce, '')
+                            : null == t
+                              ? ''
+                              : t
+                        : void 0;
+                  },
+                }),
+                B.extend({
+                  valHooks: {
+                    option: {
+                      get: function (t) {
+                        var e = B.find.attr(t, 'value');
+                        return null != e ? e : T(B.text(t));
+                      },
+                    },
+                    select: {
+                      get: function (t) {
+                        for (
+                          var e,
+                            n = t.options,
+                            r = t.selectedIndex,
+                            i = 'select-one' === t.type,
+                            o = i ? null : [],
+                            a = i ? r + 1 : n.length,
+                            s = r < 0 ? a : i ? r : 0;
+                          s < a;
+                          s++
+                        )
+                          if (
+                            ((e = n[s]).selected || s === r) &&
+                            !e.disabled &&
+                            (!e.parentNode.disabled || !l(e.parentNode, 'optgroup'))
+                          ) {
+                            if (((e = B(e).val()), i)) return e;
+                            o.push(e);
+                          }
+                        return o;
+                      },
+                      set: function (t, e) {
+                        for (var n, r, i = t.options, o = B.makeArray(e), a = i.length; a--; )
+                          ((r = i[a]).selected = -1 < B.inArray(B.valHooks.option.get(r), o)) &&
+                            (n = !0);
+                        return n || (t.selectedIndex = -1), o;
+                      },
+                    },
+                  },
+                }),
+                B.each(['radio', 'checkbox'], function () {
+                  (B.valHooks[this] = {
+                    set: function (t, e) {
+                      if (Array.isArray(e)) return (t.checked = -1 < B.inArray(B(t).val(), e));
+                    },
+                  }),
+                    g.checkOn ||
+                      (B.valHooks[this].get = function (t) {
+                        return null === t.getAttribute('value') ? 'on' : t.value;
+                      });
+                }),
+                (g.focusin = 'onfocusin' in w),
+                /^(?:focusinfocus|focusoutblur)$/),
+              Ie =
+                (B.extend(B.event, {
+                  trigger: function (t, e, n, r) {
+                    var i,
+                      o,
+                      a,
+                      s,
+                      l,
+                      u,
+                      c,
+                      A = [n || E],
+                      h = z.call(t, 'type') ? t.type : t,
+                      p = z.call(t, 'namespace') ? t.namespace.split('.') : [],
+                      d = (c = o = n = n || E);
+                    if (
+                      3 !== n.nodeType &&
+                      8 !== n.nodeType &&
+                      !xe.test(h + B.event.triggered) &&
+                      (-1 < h.indexOf('.') && ((h = (p = h.split('.')).shift()), p.sort()),
+                      (s = h.indexOf(':') < 0 && 'on' + h),
+                      ((t = t[B.expando]
+                        ? t
+                        : new B.Event(h, 'object' == typeof t && t)).isTrigger = r ? 2 : 3),
+                      (t.namespace = p.join('.')),
+                      (t.rnamespace = t.namespace
+                        ? new RegExp('(^|\\.)' + p.join('\\.(?:.*\\.|)') + '(\\.|$)')
+                        : null),
+                      (t.result = void 0),
+                      t.target || (t.target = n),
+                      (e = null == e ? [t] : B.makeArray(e, [t])),
+                      (u = B.event.special[h] || {}),
+                      r || !u.trigger || !1 !== u.trigger.apply(n, e))
+                    ) {
+                      if (!r && !u.noBubble && !f(n)) {
+                        for (
+                          a = u.delegateType || h, xe.test(a + h) || (d = d.parentNode);
+                          d;
+                          d = d.parentNode
+                        )
+                          A.push(d), (o = d);
+                        o === (n.ownerDocument || E) &&
+                          A.push(o.defaultView || o.parentWindow || w);
+                      }
+                      for (i = 0; (d = A[i++]) && !t.isPropagationStopped(); )
+                        (c = d),
+                          (t.type = 1 < i ? a : u.bindType || h),
+                          (l =
+                            (y.get(d, 'events') || Object.create(null))[t.type] &&
+                            y.get(d, 'handle')) && l.apply(d, e),
+                          (l = s && d[s]) &&
+                            l.apply &&
+                            m(d) &&
+                            ((t.result = l.apply(d, e)), !1 === t.result && t.preventDefault());
+                      return (
+                        (t.type = h),
+                        r ||
+                          t.isDefaultPrevented() ||
+                          (u._default && !1 !== u._default.apply(A.pop(), e)) ||
+                          !m(n) ||
+                          (s &&
+                            v(n[h]) &&
+                            !f(n) &&
+                            ((o = n[s]) && (n[s] = null),
+                            (B.event.triggered = h),
+                            t.isPropagationStopped() && c.addEventListener(h, Be),
+                            n[h](),
+                            t.isPropagationStopped() && c.removeEventListener(h, Be),
+                            (B.event.triggered = void 0),
+                            o && (n[s] = o))),
+                        t.result
+                      );
+                    }
+                  },
+                  simulate: function (t, e, n) {
+                    n = B.extend(new B.Event(), n, { type: t, isSimulated: !0 });
+                    B.event.trigger(n, null, e);
+                  },
+                }),
+                B.fn.extend({
+                  trigger: function (t, e) {
+                    return this.each(function () {
+                      B.event.trigger(t, e, this);
+                    });
+                  },
+                  triggerHandler: function (t, e) {
+                    var n = this[0];
+                    if (n) return B.event.trigger(t, e, n, !0);
+                  },
+                }),
+                g.focusin ||
+                  B.each({ focus: 'focusin', blur: 'focusout' }, function (n, r) {
+                    function i(t) {
+                      B.event.simulate(r, t.target, B.event.fix(t));
+                    }
+                    B.event.special[r] = {
+                      setup: function () {
+                        var t = this.ownerDocument || this.document || this,
+                          e = y.access(t, r);
+                        e || t.addEventListener(n, i, !0), y.access(t, r, (e || 0) + 1);
+                      },
+                      teardown: function () {
+                        var t = this.ownerDocument || this.document || this,
+                          e = y.access(t, r) - 1;
+                        e ? y.access(t, r, e) : (t.removeEventListener(n, i, !0), y.remove(t, r));
+                      },
+                    };
+                  }),
+                w.location),
+              Me = { guid: Date.now() },
+              De = /\?/,
+              Se =
+                ((B.parseXML = function (t) {
+                  var e, n;
+                  if (!t || 'string' != typeof t) return null;
+                  try {
+                    e = new w.DOMParser().parseFromString(t, 'text/xml');
+                  } catch (t) {}
+                  return (
+                    (n = e && e.getElementsByTagName('parsererror')[0]),
+                    (e && !n) ||
+                      B.error(
+                        'Invalid XML: ' +
+                          (n
+                            ? B.map(n.childNodes, function (t) {
+                                return t.textContent;
+                              }).join('\n')
+                            : t),
+                      ),
+                    e
+                  );
+                }),
+                /\[\]$/),
+              ke = /\r?\n/g,
+              Fe = /^(?:submit|button|image|reset|file)$/i,
+              Qe = /^(?:input|select|textarea|keygen)/i;
+            (B.param = function (t, e) {
+              function n(t, e) {
+                (e = v(e) ? e() : e),
+                  (i[i.length] =
+                    encodeURIComponent(t) + '=' + encodeURIComponent(null == e ? '' : e));
+              }
+              var r,
+                i = [];
+              if (null == t) return '';
+              if (Array.isArray(t) || (t.jquery && !B.isPlainObject(t)))
+                B.each(t, function () {
+                  n(this.name, this.value);
+                });
+              else
+                for (r in t)
+                  !(function n(r, t, i, o) {
+                    if (Array.isArray(t))
+                      B.each(t, function (t, e) {
+                        i || Se.test(r)
+                          ? o(r, e)
+                          : n(
+                              r + '[' + ('object' == typeof e && null != e ? t : '') + ']',
+                              e,
+                              i,
+                              o,
+                            );
+                      });
+                    else if (i || 'object' !== d(t)) o(r, t);
+                    else for (var e in t) n(r + '[' + e + ']', t[e], i, o);
+                  })(r, t[r], e, n);
+              return i.join('&');
+            }),
+              B.fn.extend({
+                serialize: function () {
+                  return B.param(this.serializeArray());
+                },
+                serializeArray: function () {
+                  return this.map(function () {
+                    var t = B.prop(this, 'elements');
+                    return t ? B.makeArray(t) : this;
+                  })
+                    .filter(function () {
+                      var t = this.type;
+                      return (
+                        this.name &&
+                        !B(this).is(':disabled') &&
+                        Qe.test(this.nodeName) &&
+                        !Fe.test(t) &&
+                        (this.checked || !wt.test(t))
+                      );
+                    })
+                    .map(function (t, e) {
+                      var n = B(this).val();
+                      return null == n
+                        ? null
+                        : Array.isArray(n)
+                          ? B.map(n, function (t) {
+                              return { name: e.name, value: t.replace(ke, '\r\n') };
+                            })
+                          : { name: e.name, value: n.replace(ke, '\r\n') };
+                    })
+                    .get();
+                },
+              });
+            var _e = /%20/g,
+              Te = /#.*$/,
+              Re = /([?&])_=[^&]*/,
+              Ue = /^(.*?):[ \t]*([^\r\n]*)$/gm,
+              Ne = /^(?:GET|HEAD)$/,
+              Pe = /^\/\//,
+              Le = {},
+              Ye = {},
+              Oe = '*/'.concat('*'),
+              Ge = E.createElement('a');
+            function ze(o) {
+              return function (t, e) {
+                'string' != typeof t && ((e = t), (t = '*'));
+                var n,
+                  r = 0,
+                  i = t.toLowerCase().match(C) || [];
+                if (v(e))
+                  for (; (n = i[r++]); )
+                    '+' === n[0]
+                      ? ((n = n.slice(1) || '*'), (o[n] = o[n] || []).unshift(e))
+                      : (o[n] = o[n] || []).push(e);
+              };
+            }
+            function He(e, r, i, o) {
+              var a = {},
+                s = e === Ye;
+              function l(t) {
+                var n;
+                return (
+                  (a[t] = !0),
+                  B.each(e[t] || [], function (t, e) {
+                    e = e(r, i, o);
+                    return 'string' != typeof e || s || a[e]
+                      ? s
+                        ? !(n = e)
+                        : void 0
+                      : (r.dataTypes.unshift(e), l(e), !1);
+                  }),
+                  n
+                );
+              }
+              return l(r.dataTypes[0]) || (!a['*'] && l('*'));
+            }
+            function je(t, e) {
+              var n,
+                r,
+                i = B.ajaxSettings.flatOptions || {};
+              for (n in e) void 0 !== e[n] && ((i[n] ? t : (r = r || {}))[n] = e[n]);
+              return r && B.extend(!0, t, r), t;
+            }
+            (Ge.href = Ie.href),
+              B.extend({
+                active: 0,
+                lastModified: {},
+                etag: {},
+                ajaxSettings: {
+                  url: Ie.href,
+                  type: 'GET',
+                  isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
+                    Ie.protocol,
+                  ),
+                  global: !0,
+                  processData: !0,
+                  async: !0,
+                  contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
+                  accepts: {
+                    '*': Oe,
+                    text: 'text/plain',
+                    html: 'text/html',
+                    xml: 'application/xml, text/xml',
+                    json: 'application/json, text/javascript',
+                  },
+                  contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ },
+                  responseFields: {
+                    xml: 'responseXML',
+                    text: 'responseText',
+                    json: 'responseJSON',
+                  },
+                  converters: {
+                    '* text': String,
+                    'text html': !0,
+                    'text json': JSON.parse,
+                    'text xml': B.parseXML,
+                  },
+                  flatOptions: { url: !0, context: !0 },
+                },
+                ajaxSetup: function (t, e) {
+                  return e ? je(je(t, B.ajaxSettings), e) : je(B.ajaxSettings, t);
+                },
+                ajaxPrefilter: ze(Le),
+                ajaxTransport: ze(Ye),
+                ajax: function (t, e) {
+                  'object' == typeof t && ((e = t), (t = void 0));
+                  var l,
+                    u,
+                    c,
+                    n,
+                    A,
+                    h,
+                    p,
+                    r,
+                    d = B.ajaxSetup({}, (e = e || {})),
+                    f = d.context || d,
+                    g = d.context && (f.nodeType || f.jquery) ? B(f) : B.event,
+                    m = B.Deferred(),
+                    v = B.Callbacks('once memory'),
+                    b = d.statusCode || {},
+                    i = {},
+                    o = {},
+                    a = 'canceled',
+                    y = {
+                      readyState: 0,
+                      getResponseHeader: function (t) {
+                        var e;
+                        if (h) {
+                          if (!n)
+                            for (n = {}; (e = Ue.exec(c)); )
+                              n[e[1].toLowerCase() + ' '] = (
+                                n[e[1].toLowerCase() + ' '] || []
+                              ).concat(e[2]);
+                          e = n[t.toLowerCase() + ' '];
+                        }
+                        return null == e ? null : e.join(', ');
+                      },
+                      getAllResponseHeaders: function () {
+                        return h ? c : null;
+                      },
+                      setRequestHeader: function (t, e) {
+                        return (
+                          null == h &&
+                            ((t = o[t.toLowerCase()] = o[t.toLowerCase()] || t), (i[t] = e)),
+                          this
+                        );
+                      },
+                      overrideMimeType: function (t) {
+                        return null == h && (d.mimeType = t), this;
+                      },
+                      statusCode: function (t) {
+                        if (t)
+                          if (h) y.always(t[y.status]);
+                          else for (var e in t) b[e] = [b[e], t[e]];
+                        return this;
+                      },
+                      abort: function (t) {
+                        t = t || a;
+                        return l && l.abort(t), s(0, t), this;
+                      },
+                    };
+                  if (
+                    (m.promise(y),
+                    (d.url = ((t || d.url || Ie.href) + '').replace(Pe, Ie.protocol + '//')),
+                    (d.type = e.method || e.type || d.method || d.type),
+                    (d.dataTypes = (d.dataType || '*').toLowerCase().match(C) || ['']),
+                    null == d.crossDomain)
+                  ) {
+                    t = E.createElement('a');
+                    try {
+                      (t.href = d.url),
+                        (t.href = t.href),
+                        (d.crossDomain =
+                          Ge.protocol + '//' + Ge.host != t.protocol + '//' + t.host);
+                    } catch (t) {
+                      d.crossDomain = !0;
+                    }
+                  }
+                  if (
+                    (d.data &&
+                      d.processData &&
+                      'string' != typeof d.data &&
+                      (d.data = B.param(d.data, d.traditional)),
+                    He(Le, d, e, y),
+                    !h)
+                  ) {
+                    for (r in ((p = B.event && d.global) &&
+                      0 == B.active++ &&
+                      B.event.trigger('ajaxStart'),
+                    (d.type = d.type.toUpperCase()),
+                    (d.hasContent = !Ne.test(d.type)),
+                    (u = d.url.replace(Te, '')),
+                    d.hasContent
+                      ? d.data &&
+                        d.processData &&
+                        0 === (d.contentType || '').indexOf('application/x-www-form-urlencoded') &&
+                        (d.data = d.data.replace(_e, '+'))
+                      : ((t = d.url.slice(u.length)),
+                        d.data &&
+                          (d.processData || 'string' == typeof d.data) &&
+                          ((u += (De.test(u) ? '&' : '?') + d.data), delete d.data),
+                        !1 === d.cache &&
+                          ((u = u.replace(Re, '$1')),
+                          (t = (De.test(u) ? '&' : '?') + '_=' + Me.guid++ + t)),
+                        (d.url = u + t)),
+                    d.ifModified &&
+                      (B.lastModified[u] &&
+                        y.setRequestHeader('If-Modified-Since', B.lastModified[u]),
+                      B.etag[u] && y.setRequestHeader('If-None-Match', B.etag[u])),
+                    ((d.data && d.hasContent && !1 !== d.contentType) || e.contentType) &&
+                      y.setRequestHeader('Content-Type', d.contentType),
+                    y.setRequestHeader(
+                      'Accept',
+                      d.dataTypes[0] && d.accepts[d.dataTypes[0]]
+                        ? d.accepts[d.dataTypes[0]] +
+                            ('*' !== d.dataTypes[0] ? ', ' + Oe + '; q=0.01' : '')
+                        : d.accepts['*'],
+                    ),
+                    d.headers))
+                      y.setRequestHeader(r, d.headers[r]);
+                    if (d.beforeSend && (!1 === d.beforeSend.call(f, y, d) || h)) return y.abort();
+                    if (
+                      ((a = 'abort'),
+                      v.add(d.complete),
+                      y.done(d.success),
+                      y.fail(d.error),
+                      (l = He(Ye, d, e, y)))
+                    ) {
+                      if (((y.readyState = 1), p && g.trigger('ajaxSend', [y, d]), h)) return y;
+                      d.async &&
+                        0 < d.timeout &&
+                        (A = w.setTimeout(function () {
+                          y.abort('timeout');
+                        }, d.timeout));
+                      try {
+                        (h = !1), l.send(i, s);
+                      } catch (t) {
+                        if (h) throw t;
+                        s(-1, t);
+                      }
+                    } else s(-1, 'No Transport');
+                  }
+                  return y;
+                  function s(t, e, n, r) {
+                    var i,
+                      o,
+                      a,
+                      s = e;
+                    h ||
+                      ((h = !0),
+                      A && w.clearTimeout(A),
+                      (l = void 0),
+                      (c = r || ''),
+                      (y.readyState = 0 < t ? 4 : 0),
+                      (r = (200 <= t && t < 300) || 304 === t),
+                      n &&
+                        (a = (function (t, e, n) {
+                          for (var r, i, o, a, s = t.contents, l = t.dataTypes; '*' === l[0]; )
+                            l.shift(),
+                              void 0 === r &&
+                                (r = t.mimeType || e.getResponseHeader('Content-Type'));
+                          if (r)
+                            for (i in s)
+                              if (s[i] && s[i].test(r)) {
+                                l.unshift(i);
+                                break;
+                              }
+                          if (l[0] in n) o = l[0];
+                          else {
+                            for (i in n) {
+                              if (!l[0] || t.converters[i + ' ' + l[0]]) {
+                                o = i;
+                                break;
+                              }
+                              a = a || i;
+                            }
+                            o = o || a;
+                          }
+                          if (o) return o !== l[0] && l.unshift(o), n[o];
+                        })(d, y, n)),
+                      !r &&
+                        -1 < B.inArray('script', d.dataTypes) &&
+                        B.inArray('json', d.dataTypes) < 0 &&
+                        (d.converters['text script'] = function () {}),
+                      (a = (function (t, e, n, r) {
+                        var i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u = {},
+                          c = t.dataTypes.slice();
+                        if (c[1]) for (a in t.converters) u[a.toLowerCase()] = t.converters[a];
+                        for (o = c.shift(); o; )
+                          if (
+                            (t.responseFields[o] && (n[t.responseFields[o]] = e),
+                            !l && r && t.dataFilter && (e = t.dataFilter(e, t.dataType)),
+                            (l = o),
+                            (o = c.shift()))
+                          )
+                            if ('*' === o) o = l;
+                            else if ('*' !== l && l !== o) {
+                              if (!(a = u[l + ' ' + o] || u['* ' + o]))
+                                for (i in u)
+                                  if (
+                                    (s = i.split(' '))[1] === o &&
+                                    (a = u[l + ' ' + s[0]] || u['* ' + s[0]])
+                                  ) {
+                                    !0 === a
+                                      ? (a = u[i])
+                                      : !0 !== u[i] && ((o = s[0]), c.unshift(s[1]));
+                                    break;
+                                  }
+                              if (!0 !== a)
+                                if (a && t.throws) e = a(e);
+                                else
+                                  try {
+                                    e = a(e);
+                                  } catch (t) {
+                                    return {
+                                      state: 'parsererror',
+                                      error: a ? t : 'No conversion from ' + l + ' to ' + o,
+                                    };
+                                  }
+                            }
+                        return { state: 'success', data: e };
+                      })(d, a, y, r)),
+                      r
+                        ? (d.ifModified &&
+                            ((n = y.getResponseHeader('Last-Modified')) && (B.lastModified[u] = n),
+                            (n = y.getResponseHeader('etag')) && (B.etag[u] = n)),
+                          204 === t || 'HEAD' === d.type
+                            ? (s = 'nocontent')
+                            : 304 === t
+                              ? (s = 'notmodified')
+                              : ((s = a.state), (i = a.data), (r = !(o = a.error))))
+                        : ((o = s), (!t && s) || ((s = 'error'), t < 0 && (t = 0))),
+                      (y.status = t),
+                      (y.statusText = (e || s) + ''),
+                      r ? m.resolveWith(f, [i, s, y]) : m.rejectWith(f, [y, s, o]),
+                      y.statusCode(b),
+                      (b = void 0),
+                      p && g.trigger(r ? 'ajaxSuccess' : 'ajaxError', [y, d, r ? i : o]),
+                      v.fireWith(f, [y, s]),
+                      p &&
+                        (g.trigger('ajaxComplete', [y, d]),
+                        --B.active || B.event.trigger('ajaxStop')));
+                  }
+                },
+                getJSON: function (t, e, n) {
+                  return B.get(t, e, n, 'json');
+                },
+                getScript: function (t, e) {
+                  return B.get(t, void 0, e, 'script');
+                },
+              }),
+              B.each(['get', 'post'], function (t, i) {
+                B[i] = function (t, e, n, r) {
+                  return (
+                    v(e) && ((r = r || n), (n = e), (e = void 0)),
+                    B.ajax(
+                      B.extend(
+                        { url: t, type: i, dataType: r, data: e, success: n },
+                        B.isPlainObject(t) && t,
+                      ),
+                    )
+                  );
+                };
+              }),
+              B.ajaxPrefilter(function (t) {
+                for (var e in t.headers)
+                  'content-type' === e.toLowerCase() && (t.contentType = t.headers[e] || '');
+              }),
+              (B._evalUrl = function (t, e, n) {
+                return B.ajax({
+                  url: t,
+                  type: 'GET',
+                  dataType: 'script',
+                  cache: !0,
+                  async: !1,
+                  global: !1,
+                  converters: { 'text script': function () {} },
+                  dataFilter: function (t) {
+                    B.globalEval(t, e, n);
+                  },
+                });
+              }),
+              B.fn.extend({
+                wrapAll: function (t) {
+                  return (
+                    this[0] &&
+                      (v(t) && (t = t.call(this[0])),
+                      (t = B(t, this[0].ownerDocument).eq(0).clone(!0)),
+                      this[0].parentNode && t.insertBefore(this[0]),
+                      t
+                        .map(function () {
+                          for (var t = this; t.firstElementChild; ) t = t.firstElementChild;
+                          return t;
+                        })
+                        .append(this)),
+                    this
+                  );
+                },
+                wrapInner: function (n) {
+                  return v(n)
+                    ? this.each(function (t) {
+                        B(this).wrapInner(n.call(this, t));
+                      })
+                    : this.each(function () {
+                        var t = B(this),
+                          e = t.contents();
+                        e.length ? e.wrapAll(n) : t.append(n);
+                      });
+                },
+                wrap: function (e) {
+                  var n = v(e);
+                  return this.each(function (t) {
+                    B(this).wrapAll(n ? e.call(this, t) : e);
+                  });
+                },
+                unwrap: function (t) {
+                  return (
+                    this.parent(t)
+                      .not('body')
+                      .each(function () {
+                        B(this).replaceWith(this.childNodes);
+                      }),
+                    this
+                  );
+                },
+              }),
+              (B.expr.pseudos.hidden = function (t) {
+                return !B.expr.pseudos.visible(t);
+              }),
+              (B.expr.pseudos.visible = function (t) {
+                return !!(t.offsetWidth || t.offsetHeight || t.getClientRects().length);
+              }),
+              (B.ajaxSettings.xhr = function () {
+                try {
+                  return new w.XMLHttpRequest();
+                } catch (t) {}
+              });
+            var Ve = { 0: 200, 1223: 204 },
+              qe = B.ajaxSettings.xhr(),
+              We =
+                ((g.cors = !!qe && 'withCredentials' in qe),
+                (g.ajax = qe = !!qe),
+                B.ajaxTransport(function (i) {
+                  var o, a;
+                  if (g.cors || (qe && !i.crossDomain))
+                    return {
+                      send: function (t, e) {
+                        var n,
+                          r = i.xhr();
+                        if ((r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields))
+                          for (n in i.xhrFields) r[n] = i.xhrFields[n];
+                        for (n in (i.mimeType &&
+                          r.overrideMimeType &&
+                          r.overrideMimeType(i.mimeType),
+                        i.crossDomain ||
+                          t['X-Requested-With'] ||
+                          (t['X-Requested-With'] = 'XMLHttpRequest'),
+                        t))
+                          r.setRequestHeader(n, t[n]);
+                        (o = function (t) {
+                          return function () {
+                            o &&
+                              ((o =
+                                a =
+                                r.onload =
+                                r.onerror =
+                                r.onabort =
+                                r.ontimeout =
+                                r.onreadystatechange =
+                                  null),
+                              'abort' === t
+                                ? r.abort()
+                                : 'error' === t
+                                  ? 'number' != typeof r.status
+                                    ? e(0, 'error')
+                                    : e(r.status, r.statusText)
+                                  : e(
+                                      Ve[r.status] || r.status,
+                                      r.statusText,
+                                      'text' !== (r.responseType || 'text') ||
+                                        'string' != typeof r.responseText
+                                        ? { binary: r.response }
+                                        : { text: r.responseText },
+                                      r.getAllResponseHeaders(),
+                                    ));
+                          };
+                        }),
+                          (r.onload = o()),
+                          (a = r.onerror = r.ontimeout = o('error')),
+                          void 0 !== r.onabort
+                            ? (r.onabort = a)
+                            : (r.onreadystatechange = function () {
+                                4 === r.readyState &&
+                                  w.setTimeout(function () {
+                                    o && a();
+                                  });
+                              }),
+                          (o = o('abort'));
+                        try {
+                          r.send((i.hasContent && i.data) || null);
+                        } catch (t) {
+                          if (o) throw t;
+                        }
+                      },
+                      abort: function () {
+                        o && o();
+                      },
+                    };
+                }),
+                B.ajaxPrefilter(function (t) {
+                  t.crossDomain && (t.contents.script = !1);
+                }),
+                B.ajaxSetup({
+                  accepts: {
+                    script:
+                      'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript',
+                  },
+                  contents: { script: /\b(?:java|ecma)script\b/ },
+                  converters: {
+                    'text script': function (t) {
+                      return B.globalEval(t), t;
+                    },
+                  },
+                }),
+                B.ajaxPrefilter('script', function (t) {
+                  void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = 'GET');
+                }),
+                B.ajaxTransport('script', function (n) {
+                  var r, i;
+                  if (n.crossDomain || n.scriptAttrs)
+                    return {
+                      send: function (t, e) {
+                        (r = B('<script>')
+                          .attr(n.scriptAttrs || {})
+                          .prop({ charset: n.scriptCharset, src: n.url })
+                          .on(
+                            'load error',
+                            (i = function (t) {
+                              r.remove(),
+                                (i = null),
+                                t && e('error' === t.type ? 404 : 200, t.type);
+                            }),
+                          )),
+                          E.head.appendChild(r[0]);
+                      },
+                      abort: function () {
+                        i && i();
+                      },
+                    };
+                }),
+                []),
+              Je = /(=)\?(?=&|$)|\?\?/,
+              Ke =
+                (B.ajaxSetup({
+                  jsonp: 'callback',
+                  jsonpCallback: function () {
+                    var t = We.pop() || B.expando + '_' + Me.guid++;
+                    return (this[t] = !0), t;
+                  },
+                }),
+                B.ajaxPrefilter('json jsonp', function (t, e, n) {
+                  var r,
+                    i,
+                    o,
+                    a =
+                      !1 !== t.jsonp &&
+                      (Je.test(t.url)
+                        ? 'url'
+                        : 'string' == typeof t.data &&
+                          0 ===
+                            (t.contentType || '').indexOf('application/x-www-form-urlencoded') &&
+                          Je.test(t.data) &&
+                          'data');
+                  if (a || 'jsonp' === t.dataTypes[0])
+                    return (
+                      (r = t.jsonpCallback =
+                        v(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback),
+                      a
+                        ? (t[a] = t[a].replace(Je, '$1' + r))
+                        : !1 !== t.jsonp &&
+                          (t.url += (De.test(t.url) ? '&' : '?') + t.jsonp + '=' + r),
+                      (t.converters['script json'] = function () {
+                        return o || B.error(r + ' was not called'), o[0];
+                      }),
+                      (t.dataTypes[0] = 'json'),
+                      (i = w[r]),
+                      (w[r] = function () {
+                        o = arguments;
+                      }),
+                      n.always(function () {
+                        void 0 === i ? B(w).removeProp(r) : (w[r] = i),
+                          t[r] && ((t.jsonpCallback = e.jsonpCallback), We.push(r)),
+                          o && v(i) && i(o[0]),
+                          (o = i = void 0);
+                      }),
+                      'script'
+                    );
+                }),
+                (g.createHTMLDocument =
+                  (((t = E.implementation.createHTMLDocument('').body).innerHTML =
+                    '<form></form><form></form>'),
+                  2 === t.childNodes.length)),
+                (B.parseHTML = function (t, e, n) {
+                  return 'string' != typeof t
+                    ? []
+                    : ('boolean' == typeof e && ((n = e), (e = !1)),
+                      e ||
+                        (g.createHTMLDocument
+                          ? (((r = (e = E.implementation.createHTMLDocument('')).createElement(
+                              'base',
+                            )).href = E.location.href),
+                            e.head.appendChild(r))
+                          : (e = E)),
+                      (r = !n && []),
+                      (n = Z.exec(t))
+                        ? [e.createElement(n[1])]
+                        : ((n = It([t], e, r)),
+                          r && r.length && B(r).remove(),
+                          B.merge([], n.childNodes)));
+                  var r;
+                }),
+                (B.fn.load = function (t, e, n) {
+                  var r,
+                    i,
+                    o,
+                    a = this,
+                    s = t.indexOf(' ');
+                  return (
+                    -1 < s && ((r = T(t.slice(s))), (t = t.slice(0, s))),
+                    v(e) ? ((n = e), (e = void 0)) : e && 'object' == typeof e && (i = 'POST'),
+                    0 < a.length &&
+                      B.ajax({ url: t, type: i || 'GET', dataType: 'html', data: e })
+                        .done(function (t) {
+                          (o = arguments),
+                            a.html(r ? B('<div>').append(B.parseHTML(t)).find(r) : t);
+                        })
+                        .always(
+                          n &&
+                            function (t, e) {
+                              a.each(function () {
+                                n.apply(this, o || [t.responseText, e, t]);
+                              });
+                            },
+                        ),
+                    this
+                  );
+                }),
+                (B.expr.pseudos.animated = function (e) {
+                  return B.grep(B.timers, function (t) {
+                    return e === t.elem;
+                  }).length;
+                }),
+                (B.offset = {
+                  setOffset: function (t, e, n) {
+                    var r,
+                      i,
+                      o,
+                      a,
+                      s = B.css(t, 'position'),
+                      l = B(t),
+                      u = {};
+                    'static' === s && (t.style.position = 'relative'),
+                      (o = l.offset()),
+                      (r = B.css(t, 'top')),
+                      (a = B.css(t, 'left')),
+                      (s =
+                        ('absolute' === s || 'fixed' === s) && -1 < (r + a).indexOf('auto')
+                          ? ((i = (s = l.position()).top), s.left)
+                          : ((i = parseFloat(r) || 0), parseFloat(a) || 0)),
+                      null != (e = v(e) ? e.call(t, n, B.extend({}, o)) : e).top &&
+                        (u.top = e.top - o.top + i),
+                      null != e.left && (u.left = e.left - o.left + s),
+                      'using' in e ? e.using.call(t, u) : l.css(u);
+                  },
+                }),
+                B.fn.extend({
+                  offset: function (e) {
+                    if (arguments.length)
+                      return void 0 === e
+                        ? this
+                        : this.each(function (t) {
+                            B.offset.setOffset(this, e, t);
+                          });
+                    var t,
+                      n = this[0];
+                    return n
+                      ? n.getClientRects().length
+                        ? ((t = n.getBoundingClientRect()),
+                          (n = n.ownerDocument.defaultView),
+                          { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset })
+                        : { top: 0, left: 0 }
+                      : void 0;
+                  },
+                  position: function () {
+                    if (this[0]) {
+                      var t,
+                        e,
+                        n,
+                        r = this[0],
+                        i = { top: 0, left: 0 };
+                      if ('fixed' === B.css(r, 'position')) e = r.getBoundingClientRect();
+                      else {
+                        for (
+                          e = this.offset(),
+                            n = r.ownerDocument,
+                            t = r.offsetParent || n.documentElement;
+                          t &&
+                          (t === n.body || t === n.documentElement) &&
+                          'static' === B.css(t, 'position');
+
+                        )
+                          t = t.parentNode;
+                        t &&
+                          t !== r &&
+                          1 === t.nodeType &&
+                          (((i = B(t).offset()).top += B.css(t, 'borderTopWidth', !0)),
+                          (i.left += B.css(t, 'borderLeftWidth', !0)));
+                      }
+                      return {
+                        top: e.top - i.top - B.css(r, 'marginTop', !0),
+                        left: e.left - i.left - B.css(r, 'marginLeft', !0),
+                      };
+                    }
+                  },
+                  offsetParent: function () {
+                    return this.map(function () {
+                      for (var t = this.offsetParent; t && 'static' === B.css(t, 'position'); )
+                        t = t.offsetParent;
+                      return t || x;
+                    });
+                  },
+                }),
+                B.each({ scrollLeft: 'pageXOffset', scrollTop: 'pageYOffset' }, function (e, i) {
+                  var o = 'pageYOffset' === i;
+                  B.fn[e] = function (t) {
+                    return A(
+                      this,
+                      function (t, e, n) {
+                        var r;
+                        if (
+                          (f(t) ? (r = t) : 9 === t.nodeType && (r = t.defaultView), void 0 === n)
+                        )
+                          return r ? r[i] : t[e];
+                        r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : (t[e] = n);
+                      },
+                      e,
+                      t,
+                      arguments.length,
+                    );
+                  };
+                }),
+                B.each(['top', 'left'], function (t, n) {
+                  B.cssHooks[n] = $t(g.pixelPosition, function (t, e) {
+                    if (e) return (e = Xt(t, n)), Wt.test(e) ? B(t).position()[n] + 'px' : e;
+                  });
+                }),
+                B.each({ Height: 'height', Width: 'width' }, function (a, s) {
+                  B.each({ padding: 'inner' + a, content: s, '': 'outer' + a }, function (r, o) {
+                    B.fn[o] = function (t, e) {
+                      var n = arguments.length && (r || 'boolean' != typeof t),
+                        i = r || (!0 === t || !0 === e ? 'margin' : 'border');
+                      return A(
+                        this,
+                        function (t, e, n) {
+                          var r;
+                          return f(t)
+                            ? 0 === o.indexOf('outer')
+                              ? t['inner' + a]
+                              : t.document.documentElement['client' + a]
+                            : 9 === t.nodeType
+                              ? ((r = t.documentElement),
+                                Math.max(
+                                  t.body['scroll' + a],
+                                  r['scroll' + a],
+                                  t.body['offset' + a],
+                                  r['offset' + a],
+                                  r['client' + a],
+                                ))
+                              : void 0 === n
+                                ? B.css(t, e, i)
+                                : B.style(t, e, n, i);
+                        },
+                        s,
+                        n ? t : void 0,
+                        n,
+                      );
+                    };
+                  });
+                }),
+                B.each(
+                  ['ajaxStart', 'ajaxStop', 'ajaxComplete', 'ajaxError', 'ajaxSuccess', 'ajaxSend'],
+                  function (t, e) {
+                    B.fn[e] = function (t) {
+                      return this.on(e, t);
+                    };
+                  },
+                ),
+                B.fn.extend({
+                  bind: function (t, e, n) {
+                    return this.on(t, null, e, n);
+                  },
+                  unbind: function (t, e) {
+                    return this.off(t, null, e);
+                  },
+                  delegate: function (t, e, n, r) {
+                    return this.on(e, t, n, r);
+                  },
+                  undelegate: function (t, e, n) {
+                    return 1 === arguments.length ? this.off(t, '**') : this.off(e, t || '**', n);
+                  },
+                  hover: function (t, e) {
+                    return this.mouseenter(t).mouseleave(e || t);
+                  },
+                }),
+                B.each(
+                  'blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu'.split(
+                    ' ',
+                  ),
+                  function (t, n) {
+                    B.fn[n] = function (t, e) {
+                      return 0 < arguments.length ? this.on(n, null, t, e) : this.trigger(n);
+                    };
+                  },
+                ),
+                /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g),
+              Ze =
+                ((B.proxy = function (t, e) {
+                  var n, r;
+                  if (('string' == typeof e && ((r = t[e]), (e = t), (t = r)), v(t)))
+                    return (
+                      (n = s.call(arguments, 2)),
+                      ((r = function () {
+                        return t.apply(e || this, n.concat(s.call(arguments)));
+                      }).guid = t.guid =
+                        t.guid || B.guid++),
+                      r
+                    );
+                }),
+                (B.holdReady = function (t) {
+                  t ? B.readyWait++ : B.ready(!0);
+                }),
+                (B.isArray = Array.isArray),
+                (B.parseJSON = JSON.parse),
+                (B.nodeName = l),
+                (B.isFunction = v),
+                (B.isWindow = f),
+                (B.camelCase = b),
+                (B.type = d),
+                (B.now = Date.now),
+                (B.isNumeric = function (t) {
+                  var e = B.type(t);
+                  return ('number' === e || 'string' === e) && !isNaN(t - parseFloat(t));
+                }),
+                (B.trim = function (t) {
+                  return null == t ? '' : (t + '').replace(Ke, '');
+                }),
+                w.jQuery),
+              Xe = w.$;
+            return (
+              (B.noConflict = function (t) {
+                return w.$ === B && (w.$ = Xe), t && w.jQuery === B && (w.jQuery = Ze), B;
+              }),
+              void 0 === U && (w.jQuery = w.$ = B),
+              B
+            );
+          });
+        },
+        {},
+      ],
+      41: [
+        function (u, o, a) {
+          !function (d, r, A, t, e, n, i, p) {
+            !function () {
+              !(function (t) {
+                'object' == typeof a && void 0 !== o
+                  ? (o.exports = t())
+                  : (('undefined' != typeof window
+                      ? window
+                      : void 0 !== r
+                        ? r
+                        : 'undefined' != typeof self
+                          ? self
+                          : this
+                    ).JSZip = t());
+              })(function () {
+                return (function r(i, o, a) {
+                  function s(e, t) {
+                    if (!o[e]) {
+                      if (!i[e]) {
+                        var n = 'function' == typeof u && u;
+                        if (!t && n) return n(e, !0);
+                        if (l) return l(e, !0);
+                        t = new Error("Cannot find module '" + e + "'");
+                        throw ((t.code = 'MODULE_NOT_FOUND'), t);
+                      }
+                      n = o[e] = { exports: {} };
+                      i[e][0].call(
+                        n.exports,
+                        function (t) {
+                          return s(i[e][1][t] || t);
+                        },
+                        n,
+                        n.exports,
+                        r,
+                        i,
+                        o,
+                        a,
+                      );
+                    }
+                    return o[e].exports;
+                  }
+                  for (var l = 'function' == typeof u && u, t = 0; t < a.length; t++) s(a[t]);
+                  return s;
+                })(
+                  {
+                    1: [
+                      function (t, e, n) {
+                        'use strict';
+                        var A = t('./utils'),
+                          c = t('./support'),
+                          h = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+                        (n.encode = function (t) {
+                          for (
+                            var e,
+                              n,
+                              r,
+                              i,
+                              o,
+                              a,
+                              s = [],
+                              l = 0,
+                              u = t.length,
+                              c = 'string' !== A.getTypeOf(t);
+                            l < t.length;
+
+                          )
+                            (a = u - l),
+                              (r = c
+                                ? ((e = t[l++]), (n = l < u ? t[l++] : 0), l < u ? t[l++] : 0)
+                                : ((e = t.charCodeAt(l++)),
+                                  (n = l < u ? t.charCodeAt(l++) : 0),
+                                  l < u ? t.charCodeAt(l++) : 0)),
+                              (i = ((3 & e) << 4) | (n >> 4)),
+                              (o = 1 < a ? ((15 & n) << 2) | (r >> 6) : 64),
+                              (a = 2 < a ? 63 & r : 64),
+                              s.push(h.charAt(e >> 2) + h.charAt(i) + h.charAt(o) + h.charAt(a));
+                          return s.join('');
+                        }),
+                          (n.decode = function (t) {
+                            var e,
+                              n,
+                              r,
+                              i,
+                              o,
+                              a = 0,
+                              s = 0;
+                            if ('data:' === t.substr(0, 'data:'.length))
+                              throw new Error('Invalid base64 input, it looks like a data url.');
+                            var l,
+                              u = (3 * (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, '')).length) / 4;
+                            if (
+                              (t.charAt(t.length - 1) === h.charAt(64) && u--,
+                              t.charAt(t.length - 2) === h.charAt(64) && u--,
+                              u % 1 != 0)
+                            )
+                              throw new Error('Invalid base64 input, bad content length.');
+                            for (l = new (c.uint8array ? Uint8Array : Array)(0 | u); a < t.length; )
+                              (e =
+                                (h.indexOf(t.charAt(a++)) << 2) |
+                                ((i = h.indexOf(t.charAt(a++))) >> 4)),
+                                (n = ((15 & i) << 4) | ((i = h.indexOf(t.charAt(a++))) >> 2)),
+                                (r = ((3 & i) << 6) | (o = h.indexOf(t.charAt(a++)))),
+                                (l[s++] = e),
+                                64 !== i && (l[s++] = n),
+                                64 !== o && (l[s++] = r);
+                            return l;
+                          });
+                      },
+                      { './support': 30, './utils': 32 },
+                    ],
+                    2: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./external'),
+                          i = t('./stream/DataWorker'),
+                          o = t('./stream/Crc32Probe'),
+                          a = t('./stream/DataLengthProbe');
+                        function s(t, e, n, r, i) {
+                          (this.compressedSize = t),
+                            (this.uncompressedSize = e),
+                            (this.crc32 = n),
+                            (this.compression = r),
+                            (this.compressedContent = i);
+                        }
+                        (s.prototype = {
+                          getContentWorker: function () {
+                            var t = new i(r.Promise.resolve(this.compressedContent))
+                                .pipe(this.compression.uncompressWorker())
+                                .pipe(new a('data_length')),
+                              e = this;
+                            return (
+                              t.on('end', function () {
+                                if (this.streamInfo.data_length !== e.uncompressedSize)
+                                  throw new Error('Bug : uncompressed data size mismatch');
+                              }),
+                              t
+                            );
+                          },
+                          getCompressedWorker: function () {
+                            return new i(r.Promise.resolve(this.compressedContent))
+                              .withStreamInfo('compressedSize', this.compressedSize)
+                              .withStreamInfo('uncompressedSize', this.uncompressedSize)
+                              .withStreamInfo('crc32', this.crc32)
+                              .withStreamInfo('compression', this.compression);
+                          },
+                        }),
+                          (s.createWorkerFrom = function (t, e, n) {
+                            return t
+                              .pipe(new o())
+                              .pipe(new a('uncompressedSize'))
+                              .pipe(e.compressWorker(n))
+                              .pipe(new a('compressedSize'))
+                              .withStreamInfo('compression', e);
+                          }),
+                          (e.exports = s);
+                      },
+                      {
+                        './external': 6,
+                        './stream/Crc32Probe': 25,
+                        './stream/DataLengthProbe': 26,
+                        './stream/DataWorker': 27,
+                      },
+                    ],
+                    3: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./stream/GenericWorker');
+                        (n.STORE = {
+                          magic: '\0\0',
+                          compressWorker: function (t) {
+                            return new r('STORE compression');
+                          },
+                          uncompressWorker: function () {
+                            return new r('STORE decompression');
+                          },
+                        }),
+                          (n.DEFLATE = t('./flate'));
+                      },
+                      { './flate': 7, './stream/GenericWorker': 28 },
+                    ],
+                    4: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./utils'),
+                          a = (function () {
+                            for (var t = [], e = 0; e < 256; e++) {
+                              for (var n = e, r = 0; r < 8; r++)
+                                n = 1 & n ? 3988292384 ^ (n >>> 1) : n >>> 1;
+                              t[e] = n;
+                            }
+                            return t;
+                          })();
+                        e.exports = function (t, e) {
+                          return void 0 !== t && t.length
+                            ? ('string' !== r.getTypeOf(t)
+                                ? function (t, e, n) {
+                                    var r = a,
+                                      i = 0 + n;
+                                    t ^= -1;
+                                    for (var o = 0; o < i; o++) t = (t >>> 8) ^ r[255 & (t ^ e[o])];
+                                    return -1 ^ t;
+                                  }
+                                : function (t, e, n) {
+                                    var r = a,
+                                      i = 0 + n;
+                                    t ^= -1;
+                                    for (var o = 0; o < i; o++)
+                                      t = (t >>> 8) ^ r[255 & (t ^ e.charCodeAt(o))];
+                                    return -1 ^ t;
+                                  })(0 | e, t, t.length)
+                            : 0;
+                        };
+                      },
+                      { './utils': 32 },
+                    ],
+                    5: [
+                      function (t, e, n) {
+                        'use strict';
+                        (n.base64 = !1),
+                          (n.binary = !1),
+                          (n.dir = !1),
+                          (n.createFolders = !0),
+                          (n.date = null),
+                          (n.compression = null),
+                          (n.compressionOptions = null),
+                          (n.comment = null),
+                          (n.unixPermissions = null),
+                          (n.dosPermissions = null);
+                      },
+                      {},
+                    ],
+                    6: [
+                      function (t, e, n) {
+                        'use strict';
+                        t = 'undefined' != typeof Promise ? Promise : t('lie');
+                        e.exports = { Promise: t };
+                      },
+                      { lie: 37 },
+                    ],
+                    7: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r =
+                            'undefined' != typeof Uint8Array &&
+                            'undefined' != typeof Uint16Array &&
+                            'undefined' != typeof Uint32Array,
+                          i = t('pako'),
+                          o = t('./utils'),
+                          a = t('./stream/GenericWorker'),
+                          s = r ? 'uint8array' : 'array';
+                        function l(t, e) {
+                          a.call(this, 'FlateWorker/' + t),
+                            (this._pako = null),
+                            (this._pakoAction = t),
+                            (this._pakoOptions = e),
+                            (this.meta = {});
+                        }
+                        (n.magic = '\b\0'),
+                          o.inherits(l, a),
+                          (l.prototype.processChunk = function (t) {
+                            (this.meta = t.meta),
+                              null === this._pako && this._createPako(),
+                              this._pako.push(o.transformTo(s, t.data), !1);
+                          }),
+                          (l.prototype.flush = function () {
+                            a.prototype.flush.call(this),
+                              null === this._pako && this._createPako(),
+                              this._pako.push([], !0);
+                          }),
+                          (l.prototype.cleanUp = function () {
+                            a.prototype.cleanUp.call(this), (this._pako = null);
+                          }),
+                          (l.prototype._createPako = function () {
+                            this._pako = new i[this._pakoAction]({
+                              raw: !0,
+                              level: this._pakoOptions.level || -1,
+                            });
+                            var e = this;
+                            this._pako.onData = function (t) {
+                              e.push({ data: t, meta: e.meta });
+                            };
+                          }),
+                          (n.compressWorker = function (t) {
+                            return new l('Deflate', t);
+                          }),
+                          (n.uncompressWorker = function () {
+                            return new l('Inflate', {});
+                          });
+                      },
+                      { './stream/GenericWorker': 28, './utils': 32, pako: 38 },
+                    ],
+                    8: [
+                      function (t, e, n) {
+                        'use strict';
+                        function v(t, e) {
+                          for (var n = '', r = 0; r < e; r++)
+                            (n += String.fromCharCode(255 & t)), (t >>>= 8);
+                          return n;
+                        }
+                        function r(t, e, n, r, i, o) {
+                          var a = t.file,
+                            s = t.compression,
+                            l = o !== y.utf8encode,
+                            u = b.transformTo('string', o(a.name)),
+                            c = b.transformTo('string', y.utf8encode(a.name)),
+                            A = a.comment,
+                            o = b.transformTo('string', o(A)),
+                            h = b.transformTo('string', y.utf8encode(A)),
+                            p = c.length !== a.name.length,
+                            A = h.length !== A.length,
+                            d = '',
+                            f = a.dir,
+                            g = a.date,
+                            m = { crc32: 0, compressedSize: 0, uncompressedSize: 0 },
+                            n =
+                              ((e && !n) ||
+                                ((m.crc32 = t.crc32),
+                                (m.compressedSize = t.compressedSize),
+                                (m.uncompressedSize = t.uncompressedSize)),
+                              0),
+                            t = (e && (n |= 8), l || (!p && !A) || (n |= 2048), 0),
+                            e = 0,
+                            g =
+                              (f && (t |= 16),
+                              'UNIX' === i
+                                ? ((e = 798),
+                                  (t |=
+                                    (65535 & ((l = a.unixPermissions) ? l : f ? 16893 : 33204)) <<
+                                    16))
+                                : ((e = 20), (t |= 63 & (a.dosPermissions || 0))),
+                              (i = g.getUTCHours()),
+                              (i =
+                                (i = ((i <<= 6) | g.getUTCMinutes()) << 5) |
+                                (g.getUTCSeconds() / 2)),
+                              (l = g.getUTCFullYear() - 1980),
+                              (l = (l = ((l <<= 4) | (g.getUTCMonth() + 1)) << 5) | g.getUTCDate()),
+                              p &&
+                                ((f = v(1, 1) + v(w(u), 4) + c), (d += 'up' + v(f.length, 2) + f)),
+                              A &&
+                                ((a = v(1, 1) + v(w(o), 4) + h), (d += 'uc' + v(a.length, 2) + a)),
+                              ''),
+                            g =
+                              (g =
+                                (g =
+                                  (g =
+                                    (g =
+                                      (g =
+                                        (g =
+                                          (g = (g = (g += '\n\0') + v(n, 2)) + s.magic) + v(i, 2)) +
+                                        v(l, 2)) + v(m.crc32, 4)) + v(m.compressedSize, 4)) +
+                                  v(m.uncompressedSize, 4)) + v(u.length, 2)) + v(d.length, 2);
+                          return {
+                            fileRecord: E.LOCAL_FILE_HEADER + g + u + d,
+                            dirRecord:
+                              E.CENTRAL_FILE_HEADER +
+                              v(e, 2) +
+                              g +
+                              v(o.length, 2) +
+                              '\0\0\0\0' +
+                              v(t, 4) +
+                              v(r, 4) +
+                              u +
+                              d +
+                              o,
+                          };
+                        }
+                        var b = t('../utils'),
+                          i = t('../stream/GenericWorker'),
+                          y = t('../utf8'),
+                          w = t('../crc32'),
+                          E = t('../signature');
+                        function o(t, e, n, r) {
+                          i.call(this, 'ZipFileWorker'),
+                            (this.bytesWritten = 0),
+                            (this.zipComment = e),
+                            (this.zipPlatform = n),
+                            (this.encodeFileName = r),
+                            (this.streamFiles = t),
+                            (this.accumulate = !1),
+                            (this.contentBuffer = []),
+                            (this.dirRecords = []),
+                            (this.currentSourceOffset = 0),
+                            (this.entriesCount = 0),
+                            (this.currentFile = null),
+                            (this._sources = []);
+                        }
+                        b.inherits(o, i),
+                          (o.prototype.push = function (t) {
+                            var e = t.meta.percent || 0,
+                              n = this.entriesCount,
+                              r = this._sources.length;
+                            this.accumulate
+                              ? this.contentBuffer.push(t)
+                              : ((this.bytesWritten += t.data.length),
+                                i.prototype.push.call(this, {
+                                  data: t.data,
+                                  meta: {
+                                    currentFile: this.currentFile,
+                                    percent: n ? (e + 100 * (n - r - 1)) / n : 100,
+                                  },
+                                }));
+                          }),
+                          (o.prototype.openedSource = function (t) {
+                            (this.currentSourceOffset = this.bytesWritten),
+                              (this.currentFile = t.file.name);
+                            var e = this.streamFiles && !t.file.dir;
+                            e
+                              ? ((t = r(
+                                  t,
+                                  e,
+                                  !1,
+                                  this.currentSourceOffset,
+                                  this.zipPlatform,
+                                  this.encodeFileName,
+                                )),
+                                this.push({ data: t.fileRecord, meta: { percent: 0 } }))
+                              : (this.accumulate = !0);
+                          }),
+                          (o.prototype.closedSource = function (t) {
+                            this.accumulate = !1;
+                            var e = this.streamFiles && !t.file.dir,
+                              n = r(
+                                t,
+                                e,
+                                !0,
+                                this.currentSourceOffset,
+                                this.zipPlatform,
+                                this.encodeFileName,
+                              );
+                            if ((this.dirRecords.push(n.dirRecord), e))
+                              this.push({
+                                data:
+                                  ((e = t),
+                                  E.DATA_DESCRIPTOR +
+                                    v(e.crc32, 4) +
+                                    v(e.compressedSize, 4) +
+                                    v(e.uncompressedSize, 4)),
+                                meta: { percent: 100 },
+                              });
+                            else
+                              for (
+                                this.push({ data: n.fileRecord, meta: { percent: 0 } });
+                                this.contentBuffer.length;
+
+                              )
+                                this.push(this.contentBuffer.shift());
+                            this.currentFile = null;
+                          }),
+                          (o.prototype.flush = function () {
+                            for (var t = this.bytesWritten, e = 0; e < this.dirRecords.length; e++)
+                              this.push({ data: this.dirRecords[e], meta: { percent: 100 } });
+                            var n = this.bytesWritten - t,
+                              n = (function (t, e, n, r, i) {
+                                i = b.transformTo('string', i(r));
+                                return (
+                                  E.CENTRAL_DIRECTORY_END +
+                                  '\0\0\0\0' +
+                                  v(t, 2) +
+                                  v(t, 2) +
+                                  v(e, 4) +
+                                  v(n, 4) +
+                                  v(i.length, 2) +
+                                  i
+                                );
+                              })(
+                                this.dirRecords.length,
+                                n,
+                                t,
+                                this.zipComment,
+                                this.encodeFileName,
+                              );
+                            this.push({ data: n, meta: { percent: 100 } });
+                          }),
+                          (o.prototype.prepareNextSource = function () {
+                            (this.previous = this._sources.shift()),
+                              this.openedSource(this.previous.streamInfo),
+                              this.isPaused ? this.previous.pause() : this.previous.resume();
+                          }),
+                          (o.prototype.registerPrevious = function (t) {
+                            this._sources.push(t);
+                            var e = this;
+                            return (
+                              t.on('data', function (t) {
+                                e.processChunk(t);
+                              }),
+                              t.on('end', function () {
+                                e.closedSource(e.previous.streamInfo),
+                                  e._sources.length ? e.prepareNextSource() : e.end();
+                              }),
+                              t.on('error', function (t) {
+                                e.error(t);
+                              }),
+                              this
+                            );
+                          }),
+                          (o.prototype.resume = function () {
+                            return (
+                              !!i.prototype.resume.call(this) &&
+                              (!this.previous && this._sources.length
+                                ? (this.prepareNextSource(), !0)
+                                : this.previous || this._sources.length || this.generatedError
+                                  ? void 0
+                                  : (this.end(), !0))
+                            );
+                          }),
+                          (o.prototype.error = function (t) {
+                            var e = this._sources;
+                            if (!i.prototype.error.call(this, t)) return !1;
+                            for (var n = 0; n < e.length; n++)
+                              try {
+                                e[n].error(t);
+                              } catch (t) {}
+                            return !0;
+                          }),
+                          (o.prototype.lock = function () {
+                            i.prototype.lock.call(this);
+                            for (var t = this._sources, e = 0; e < t.length; e++) t[e].lock();
+                          }),
+                          (e.exports = o);
+                      },
+                      {
+                        '../crc32': 4,
+                        '../signature': 23,
+                        '../stream/GenericWorker': 28,
+                        '../utf8': 31,
+                        '../utils': 32,
+                      },
+                    ],
+                    9: [
+                      function (t, e, n) {
+                        'use strict';
+                        var u = t('../compressions'),
+                          r = t('./ZipFileWorker');
+                        n.generateWorker = function (t, a, e) {
+                          var s = new r(a.streamFiles, e, a.platform, a.encodeFileName),
+                            l = 0;
+                          try {
+                            t.forEach(function (t, e) {
+                              l++;
+                              var n = (function (t, e) {
+                                  (t = t || e), (e = u[t]);
+                                  if (e) return e;
+                                  throw new Error(t + ' is not a valid compression method !');
+                                })(e.options.compression, a.compression),
+                                r = e.options.compressionOptions || a.compressionOptions || {},
+                                i = e.dir,
+                                o = e.date;
+                              e._compressWorker(n, r)
+                                .withStreamInfo('file', {
+                                  name: t,
+                                  dir: i,
+                                  date: o,
+                                  comment: e.comment || '',
+                                  unixPermissions: e.unixPermissions,
+                                  dosPermissions: e.dosPermissions,
+                                })
+                                .pipe(s);
+                            }),
+                              (s.entriesCount = l);
+                          } catch (t) {
+                            s.error(t);
+                          }
+                          return s;
+                        };
+                      },
+                      { '../compressions': 3, './ZipFileWorker': 8 },
+                    ],
+                    10: [
+                      function (t, e, n) {
+                        'use strict';
+                        function r() {
+                          if (!(this instanceof r)) return new r();
+                          if (arguments.length)
+                            throw new Error(
+                              'The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.',
+                            );
+                          (this.files = Object.create(null)),
+                            (this.comment = null),
+                            (this.root = ''),
+                            (this.clone = function () {
+                              var t,
+                                e = new r();
+                              for (t in this) 'function' != typeof this[t] && (e[t] = this[t]);
+                              return e;
+                            });
+                        }
+                        ((r.prototype = t('./object')).loadAsync = t('./load')),
+                          (r.support = t('./support')),
+                          (r.defaults = t('./defaults')),
+                          (r.version = '3.10.0'),
+                          (r.loadAsync = function (t, e) {
+                            return new r().loadAsync(t, e);
+                          }),
+                          (r.external = t('./external')),
+                          (e.exports = r);
+                      },
+                      {
+                        './defaults': 5,
+                        './external': 6,
+                        './load': 11,
+                        './object': 15,
+                        './support': 30,
+                      },
+                    ],
+                    11: [
+                      function (t, e, n) {
+                        'use strict';
+                        var l = t('./utils'),
+                          i = t('./external'),
+                          r = t('./utf8'),
+                          o = t('./zipEntries'),
+                          u = t('./stream/Crc32Probe'),
+                          c = t('./nodejsUtils');
+                        e.exports = function (t, a) {
+                          var s = this;
+                          return (
+                            (a = l.extend(a || {}, {
+                              base64: !1,
+                              checkCRC32: !1,
+                              optimizedBinaryString: !1,
+                              createFolders: !1,
+                              decodeFileName: r.utf8decode,
+                            })),
+                            c.isNode && c.isStream(t)
+                              ? i.Promise.reject(
+                                  new Error("JSZip can't accept a stream when loading a zip file."),
+                                )
+                              : l
+                                  .prepareContent(
+                                    'the loaded zip file',
+                                    t,
+                                    !0,
+                                    a.optimizedBinaryString,
+                                    a.base64,
+                                  )
+                                  .then(function (t) {
+                                    var e = new o(a);
+                                    return e.load(t), e;
+                                  })
+                                  .then(function (t) {
+                                    var e = [i.Promise.resolve(t)],
+                                      n = t.files;
+                                    if (a.checkCRC32)
+                                      for (var r = 0; r < n.length; r++)
+                                        e.push(
+                                          (function (r) {
+                                            return new i.Promise(function (t, e) {
+                                              var n = r.decompressed
+                                                .getContentWorker()
+                                                .pipe(new u());
+                                              n.on('error', function (t) {
+                                                e(t);
+                                              })
+                                                .on('end', function () {
+                                                  n.streamInfo.crc32 !== r.decompressed.crc32
+                                                    ? e(new Error('Corrupted zip : CRC32 mismatch'))
+                                                    : t();
+                                                })
+                                                .resume();
+                                            });
+                                          })(n[r]),
+                                        );
+                                    return i.Promise.all(e);
+                                  })
+                                  .then(function (t) {
+                                    for (var t = t.shift(), e = t.files, n = 0; n < e.length; n++) {
+                                      var r = e[n],
+                                        i = r.fileNameStr,
+                                        o = l.resolve(r.fileNameStr);
+                                      s.file(o, r.decompressed, {
+                                        binary: !0,
+                                        optimizedBinaryString: !0,
+                                        date: r.date,
+                                        dir: r.dir,
+                                        comment: r.fileCommentStr.length ? r.fileCommentStr : null,
+                                        unixPermissions: r.unixPermissions,
+                                        dosPermissions: r.dosPermissions,
+                                        createFolders: a.createFolders,
+                                      }),
+                                        r.dir || (s.file(o).unsafeOriginalName = i);
+                                    }
+                                    return t.zipComment.length && (s.comment = t.zipComment), s;
+                                  })
+                          );
+                        };
+                      },
+                      {
+                        './external': 6,
+                        './nodejsUtils': 14,
+                        './stream/Crc32Probe': 25,
+                        './utf8': 31,
+                        './utils': 32,
+                        './zipEntries': 33,
+                      },
+                    ],
+                    12: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('../utils'),
+                          i = t('../stream/GenericWorker');
+                        function o(t, e) {
+                          i.call(this, 'Nodejs stream input adapter for ' + t),
+                            (this._upstreamEnded = !1),
+                            this._bindStream(e);
+                        }
+                        r.inherits(o, i),
+                          (o.prototype._bindStream = function (t) {
+                            var e = this;
+                            (this._stream = t).pause(),
+                              t
+                                .on('data', function (t) {
+                                  e.push({ data: t, meta: { percent: 0 } });
+                                })
+                                .on('error', function (t) {
+                                  e.isPaused ? (this.generatedError = t) : e.error(t);
+                                })
+                                .on('end', function () {
+                                  e.isPaused ? (e._upstreamEnded = !0) : e.end();
+                                });
+                          }),
+                          (o.prototype.pause = function () {
+                            return !!i.prototype.pause.call(this) && (this._stream.pause(), !0);
+                          }),
+                          (o.prototype.resume = function () {
+                            return (
+                              !!i.prototype.resume.call(this) &&
+                              (this._upstreamEnded ? this.end() : this._stream.resume(), !0)
+                            );
+                          }),
+                          (e.exports = o);
+                      },
+                      { '../stream/GenericWorker': 28, '../utils': 32 },
+                    ],
+                    13: [
+                      function (t, e, n) {
+                        'use strict';
+                        var i = t('readable-stream').Readable;
+                        function r(t, e, n) {
+                          i.call(this, e), (this._helper = t);
+                          var r = this;
+                          t.on('data', function (t, e) {
+                            r.push(t) || r._helper.pause(), n && n(e);
+                          })
+                            .on('error', function (t) {
+                              r.emit('error', t);
+                            })
+                            .on('end', function () {
+                              r.push(null);
+                            });
+                        }
+                        t('../utils').inherits(r, i),
+                          (r.prototype._read = function () {
+                            this._helper.resume();
+                          }),
+                          (e.exports = r);
+                      },
+                      { '../utils': 32, 'readable-stream': 16 },
+                    ],
+                    14: [
+                      function (t, e, n) {
+                        'use strict';
+                        e.exports = {
+                          isNode: void 0 !== A,
+                          newBufferFrom: function (t, e) {
+                            if (A.from && A.from !== Uint8Array.from) return A.from(t, e);
+                            if ('number' == typeof t)
+                              throw new Error('The "data" argument must not be a number');
+                            return new A(t, e);
+                          },
+                          allocBuffer: function (t) {
+                            if (A.alloc) return A.alloc(t);
+                            t = new A(t);
+                            return t.fill(0), t;
+                          },
+                          isBuffer: function (t) {
+                            return A.isBuffer(t);
+                          },
+                          isStream: function (t) {
+                            return (
+                              t &&
+                              'function' == typeof t.on &&
+                              'function' == typeof t.pause &&
+                              'function' == typeof t.resume
+                            );
+                          },
+                        };
+                      },
+                      {},
+                    ],
+                    15: [
+                      function (t, e, n) {
+                        'use strict';
+                        function i(t, e, n) {
+                          var r = l.getTypeOf(e),
+                            i = l.extend(n || {}, A),
+                            o =
+                              ((i.date = i.date || new Date()),
+                              null !== i.compression &&
+                                (i.compression = i.compression.toUpperCase()),
+                              'string' == typeof i.unixPermissions &&
+                                (i.unixPermissions = parseInt(i.unixPermissions, 8)),
+                              i.unixPermissions && 16384 & i.unixPermissions && (i.dir = !0),
+                              i.dosPermissions && 16 & i.dosPermissions && (i.dir = !0),
+                              i.dir && (t = m(t)),
+                              i.createFolders && (o = a(t)) && s.call(this, o, !0),
+                              'string' === r && !1 === i.binary && !1 === i.base64),
+                            r =
+                              ((n && void 0 !== n.binary) || (i.binary = !o),
+                              ((e instanceof h && 0 === e.uncompressedSize) ||
+                                i.dir ||
+                                !e ||
+                                0 === e.length) &&
+                                ((i.base64 = !1),
+                                (i.binary = !0),
+                                (e = ''),
+                                (i.compression = 'STORE')),
+                              e instanceof h || e instanceof u
+                                ? e
+                                : f.isNode && f.isStream(e)
+                                  ? new g(t, e)
+                                  : l.prepareContent(
+                                      t,
+                                      e,
+                                      i.binary,
+                                      i.optimizedBinaryString,
+                                      i.base64,
+                                    )),
+                            n = new p(t, r, i);
+                          this.files[t] = n;
+                        }
+                        function a(t) {
+                          var e = (t =
+                            '/' === t.slice(-1) ? t.substring(0, t.length - 1) : t).lastIndexOf(
+                            '/',
+                          );
+                          return 0 < e ? t.substring(0, e) : '';
+                        }
+                        function s(t, e) {
+                          return (
+                            (e = void 0 !== e ? e : A.createFolders),
+                            (t = m(t)),
+                            this.files[t] || i.call(this, t, null, { dir: !0, createFolders: e }),
+                            this.files[t]
+                          );
+                        }
+                        var o = t('./utf8'),
+                          l = t('./utils'),
+                          u = t('./stream/GenericWorker'),
+                          c = t('./stream/StreamHelper'),
+                          A = t('./defaults'),
+                          h = t('./compressedObject'),
+                          p = t('./zipObject'),
+                          d = t('./generate'),
+                          f = t('./nodejsUtils'),
+                          g = t('./nodejs/NodejsStreamInputAdapter'),
+                          m = function (t) {
+                            return '/' !== t.slice(-1) && (t += '/'), t;
+                          };
+                        function v(t) {
+                          return '[object RegExp]' === Object.prototype.toString.call(t);
+                        }
+                        e.exports = {
+                          load: function () {
+                            throw new Error(
+                              'This method has been removed in JSZip 3.0, please check the upgrade guide.',
+                            );
+                          },
+                          forEach: function (t) {
+                            var e, n, r;
+                            for (e in this.files)
+                              (r = this.files[e]),
+                                (n = e.slice(this.root.length, e.length)) &&
+                                  e.slice(0, this.root.length) === this.root &&
+                                  t(n, r);
+                          },
+                          filter: function (n) {
+                            var r = [];
+                            return (
+                              this.forEach(function (t, e) {
+                                n(t, e) && r.push(e);
+                              }),
+                              r
+                            );
+                          },
+                          file: function (t, e, n) {
+                            if (1 !== arguments.length)
+                              return (t = this.root + t), i.call(this, t, e, n), this;
+                            var r;
+                            if (v(t))
+                              return (
+                                (r = t),
+                                this.filter(function (t, e) {
+                                  return !e.dir && r.test(t);
+                                })
+                              );
+                            e = this.files[this.root + t];
+                            return e && !e.dir ? e : null;
+                          },
+                          folder: function (n) {
+                            if (!n) return this;
+                            if (v(n))
+                              return this.filter(function (t, e) {
+                                return e.dir && n.test(t);
+                              });
+                            var t = this.root + n,
+                              t = s.call(this, t),
+                              e = this.clone();
+                            return (e.root = t.name), e;
+                          },
+                          remove: function (n) {
+                            n = this.root + n;
+                            var t = this.files[n];
+                            if (
+                              (t || ('/' !== n.slice(-1) && (n += '/'), (t = this.files[n])),
+                              t && !t.dir)
+                            )
+                              delete this.files[n];
+                            else
+                              for (
+                                var e = this.filter(function (t, e) {
+                                    return e.name.slice(0, n.length) === n;
+                                  }),
+                                  r = 0;
+                                r < e.length;
+                                r++
+                              )
+                                delete this.files[e[r].name];
+                            return this;
+                          },
+                          generate: function (t) {
+                            throw new Error(
+                              'This method has been removed in JSZip 3.0, please check the upgrade guide.',
+                            );
+                          },
+                          generateInternalStream: function (t) {
+                            var e = {};
+                            try {
+                              if (
+                                (((e = l.extend(t || {}, {
+                                  streamFiles: !1,
+                                  compression: 'STORE',
+                                  compressionOptions: null,
+                                  type: '',
+                                  platform: 'DOS',
+                                  comment: null,
+                                  mimeType: 'application/zip',
+                                  encodeFileName: o.utf8encode,
+                                })).type = e.type.toLowerCase()),
+                                (e.compression = e.compression.toUpperCase()),
+                                'binarystring' === e.type && (e.type = 'string'),
+                                !e.type)
+                              )
+                                throw new Error('No output type specified.');
+                              l.checkSupport(e.type),
+                                ('darwin' !== e.platform &&
+                                  'freebsd' !== e.platform &&
+                                  'linux' !== e.platform &&
+                                  'sunos' !== e.platform) ||
+                                  (e.platform = 'UNIX'),
+                                'win32' === e.platform && (e.platform = 'DOS');
+                              var n = e.comment || this.comment || '',
+                                r = d.generateWorker(this, e, n);
+                            } catch (t) {
+                              (r = new u('error')).error(t);
+                            }
+                            return new c(r, e.type || 'string', e.mimeType);
+                          },
+                          generateAsync: function (t, e) {
+                            return this.generateInternalStream(t).accumulate(e);
+                          },
+                          generateNodeStream: function (t, e) {
+                            return (
+                              (t = t || {}).type || (t.type = 'nodebuffer'),
+                              this.generateInternalStream(t).toNodejsStream(e)
+                            );
+                          },
+                        };
+                      },
+                      {
+                        './compressedObject': 2,
+                        './defaults': 5,
+                        './generate': 9,
+                        './nodejs/NodejsStreamInputAdapter': 12,
+                        './nodejsUtils': 14,
+                        './stream/GenericWorker': 28,
+                        './stream/StreamHelper': 29,
+                        './utf8': 31,
+                        './utils': 32,
+                        './zipObject': 35,
+                      },
+                    ],
+                    16: [
+                      function (t, e, n) {
+                        e.exports = t('stream');
+                      },
+                      { stream: void 0 },
+                    ],
+                    17: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./DataReader');
+                        function i(t) {
+                          r.call(this, t);
+                          for (var e = 0; e < this.data.length; e++) t[e] = 255 & t[e];
+                        }
+                        t('../utils').inherits(i, r),
+                          (i.prototype.byteAt = function (t) {
+                            return this.data[this.zero + t];
+                          }),
+                          (i.prototype.lastIndexOfSignature = function (t) {
+                            for (
+                              var e = t.charCodeAt(0),
+                                n = t.charCodeAt(1),
+                                r = t.charCodeAt(2),
+                                i = t.charCodeAt(3),
+                                o = this.length - 4;
+                              0 <= o;
+                              --o
+                            )
+                              if (
+                                this.data[o] === e &&
+                                this.data[o + 1] === n &&
+                                this.data[o + 2] === r &&
+                                this.data[o + 3] === i
+                              )
+                                return o - this.zero;
+                            return -1;
+                          }),
+                          (i.prototype.readAndCheckSignature = function (t) {
+                            var e = t.charCodeAt(0),
+                              n = t.charCodeAt(1),
+                              r = t.charCodeAt(2),
+                              t = t.charCodeAt(3),
+                              i = this.readData(4);
+                            return e === i[0] && n === i[1] && r === i[2] && t === i[3];
+                          }),
+                          (i.prototype.readData = function (t) {
+                            if ((this.checkOffset(t), 0 === t)) return [];
+                            var e = this.data.slice(
+                              this.zero + this.index,
+                              this.zero + this.index + t,
+                            );
+                            return (this.index += t), e;
+                          }),
+                          (e.exports = i);
+                      },
+                      { '../utils': 32, './DataReader': 18 },
+                    ],
+                    18: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('../utils');
+                        function i(t) {
+                          (this.data = t),
+                            (this.length = t.length),
+                            (this.index = 0),
+                            (this.zero = 0);
+                        }
+                        (i.prototype = {
+                          checkOffset: function (t) {
+                            this.checkIndex(this.index + t);
+                          },
+                          checkIndex: function (t) {
+                            if (this.length < this.zero + t || t < 0)
+                              throw new Error(
+                                'End of data reached (data length = ' +
+                                  this.length +
+                                  ', asked index = ' +
+                                  t +
+                                  '). Corrupted zip ?',
+                              );
+                          },
+                          setIndex: function (t) {
+                            this.checkIndex(t), (this.index = t);
+                          },
+                          skip: function (t) {
+                            this.setIndex(this.index + t);
+                          },
+                          byteAt: function (t) {},
+                          readInt: function (t) {
+                            var e,
+                              n = 0;
+                            for (this.checkOffset(t), e = this.index + t - 1; e >= this.index; e--)
+                              n = (n << 8) + this.byteAt(e);
+                            return (this.index += t), n;
+                          },
+                          readString: function (t) {
+                            return r.transformTo('string', this.readData(t));
+                          },
+                          readData: function (t) {},
+                          lastIndexOfSignature: function (t) {},
+                          readAndCheckSignature: function (t) {},
+                          readDate: function () {
+                            var t = this.readInt(4);
+                            return new Date(
+                              Date.UTC(
+                                1980 + ((t >> 25) & 127),
+                                ((t >> 21) & 15) - 1,
+                                (t >> 16) & 31,
+                                (t >> 11) & 31,
+                                (t >> 5) & 63,
+                                (31 & t) << 1,
+                              ),
+                            );
+                          },
+                        }),
+                          (e.exports = i);
+                      },
+                      { '../utils': 32 },
+                    ],
+                    19: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./Uint8ArrayReader');
+                        function i(t) {
+                          r.call(this, t);
+                        }
+                        t('../utils').inherits(i, r),
+                          (i.prototype.readData = function (t) {
+                            this.checkOffset(t);
+                            var e = this.data.slice(
+                              this.zero + this.index,
+                              this.zero + this.index + t,
+                            );
+                            return (this.index += t), e;
+                          }),
+                          (e.exports = i);
+                      },
+                      { '../utils': 32, './Uint8ArrayReader': 21 },
+                    ],
+                    20: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./DataReader');
+                        function i(t) {
+                          r.call(this, t);
+                        }
+                        t('../utils').inherits(i, r),
+                          (i.prototype.byteAt = function (t) {
+                            return this.data.charCodeAt(this.zero + t);
+                          }),
+                          (i.prototype.lastIndexOfSignature = function (t) {
+                            return this.data.lastIndexOf(t) - this.zero;
+                          }),
+                          (i.prototype.readAndCheckSignature = function (t) {
+                            return t === this.readData(4);
+                          }),
+                          (i.prototype.readData = function (t) {
+                            this.checkOffset(t);
+                            var e = this.data.slice(
+                              this.zero + this.index,
+                              this.zero + this.index + t,
+                            );
+                            return (this.index += t), e;
+                          }),
+                          (e.exports = i);
+                      },
+                      { '../utils': 32, './DataReader': 18 },
+                    ],
+                    21: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./ArrayReader');
+                        function i(t) {
+                          r.call(this, t);
+                        }
+                        t('../utils').inherits(i, r),
+                          (i.prototype.readData = function (t) {
+                            if ((this.checkOffset(t), 0 === t)) return new Uint8Array(0);
+                            var e = this.data.subarray(
+                              this.zero + this.index,
+                              this.zero + this.index + t,
+                            );
+                            return (this.index += t), e;
+                          }),
+                          (e.exports = i);
+                      },
+                      { '../utils': 32, './ArrayReader': 17 },
+                    ],
+                    22: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('../utils'),
+                          i = t('../support'),
+                          o = t('./ArrayReader'),
+                          a = t('./StringReader'),
+                          s = t('./NodeBufferReader'),
+                          l = t('./Uint8ArrayReader');
+                        e.exports = function (t) {
+                          var e = r.getTypeOf(t);
+                          return (
+                            r.checkSupport(e),
+                            'string' !== e || i.uint8array
+                              ? 'nodebuffer' === e
+                                ? new s(t)
+                                : i.uint8array
+                                  ? new l(r.transformTo('uint8array', t))
+                                  : new o(r.transformTo('array', t))
+                              : new a(t)
+                          );
+                        };
+                      },
+                      {
+                        '../support': 30,
+                        '../utils': 32,
+                        './ArrayReader': 17,
+                        './NodeBufferReader': 19,
+                        './StringReader': 20,
+                        './Uint8ArrayReader': 21,
+                      },
+                    ],
+                    23: [
+                      function (t, e, n) {
+                        'use strict';
+                        (n.LOCAL_FILE_HEADER = 'PK'),
+                          (n.CENTRAL_FILE_HEADER = 'PK'),
+                          (n.CENTRAL_DIRECTORY_END = 'PK'),
+                          (n.ZIP64_CENTRAL_DIRECTORY_LOCATOR = 'PK'),
+                          (n.ZIP64_CENTRAL_DIRECTORY_END = 'PK'),
+                          (n.DATA_DESCRIPTOR = 'PK\b');
+                      },
+                      {},
+                    ],
+                    24: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./GenericWorker'),
+                          i = t('../utils');
+                        function o(t) {
+                          r.call(this, 'ConvertWorker to ' + t), (this.destType = t);
+                        }
+                        i.inherits(o, r),
+                          (o.prototype.processChunk = function (t) {
+                            this.push({ data: i.transformTo(this.destType, t.data), meta: t.meta });
+                          }),
+                          (e.exports = o);
+                      },
+                      { '../utils': 32, './GenericWorker': 28 },
+                    ],
+                    25: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./GenericWorker'),
+                          i = t('../crc32');
+                        function o() {
+                          r.call(this, 'Crc32Probe'), this.withStreamInfo('crc32', 0);
+                        }
+                        t('../utils').inherits(o, r),
+                          (o.prototype.processChunk = function (t) {
+                            (this.streamInfo.crc32 = i(t.data, this.streamInfo.crc32 || 0)),
+                              this.push(t);
+                          }),
+                          (e.exports = o);
+                      },
+                      { '../crc32': 4, '../utils': 32, './GenericWorker': 28 },
+                    ],
+                    26: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('../utils'),
+                          i = t('./GenericWorker');
+                        function o(t) {
+                          i.call(this, 'DataLengthProbe for ' + t),
+                            (this.propName = t),
+                            this.withStreamInfo(t, 0);
+                        }
+                        r.inherits(o, i),
+                          (o.prototype.processChunk = function (t) {
+                            var e;
+                            t &&
+                              ((e = this.streamInfo[this.propName] || 0),
+                              (this.streamInfo[this.propName] = e + t.data.length)),
+                              i.prototype.processChunk.call(this, t);
+                          }),
+                          (e.exports = o);
+                      },
+                      { '../utils': 32, './GenericWorker': 28 },
+                    ],
+                    27: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('../utils'),
+                          i = t('./GenericWorker');
+                        function o(t) {
+                          i.call(this, 'DataWorker');
+                          var e = this;
+                          (this.dataIsReady = !1),
+                            (this.index = 0),
+                            (this.max = 0),
+                            (this.data = null),
+                            (this.type = ''),
+                            (this._tickScheduled = !1),
+                            t.then(
+                              function (t) {
+                                (e.dataIsReady = !0),
+                                  (e.data = t),
+                                  (e.max = (t && t.length) || 0),
+                                  (e.type = r.getTypeOf(t)),
+                                  e.isPaused || e._tickAndRepeat();
+                              },
+                              function (t) {
+                                e.error(t);
+                              },
+                            );
+                        }
+                        r.inherits(o, i),
+                          (o.prototype.cleanUp = function () {
+                            i.prototype.cleanUp.call(this), (this.data = null);
+                          }),
+                          (o.prototype.resume = function () {
+                            return (
+                              !!i.prototype.resume.call(this) &&
+                              (!this._tickScheduled &&
+                                this.dataIsReady &&
+                                ((this._tickScheduled = !0),
+                                r.delay(this._tickAndRepeat, [], this)),
+                              !0)
+                            );
+                          }),
+                          (o.prototype._tickAndRepeat = function () {
+                            (this._tickScheduled = !1),
+                              this.isPaused ||
+                                this.isFinished ||
+                                (this._tick(),
+                                this.isFinished ||
+                                  (r.delay(this._tickAndRepeat, [], this),
+                                  (this._tickScheduled = !0)));
+                          }),
+                          (o.prototype._tick = function () {
+                            if (this.isPaused || this.isFinished) return !1;
+                            var t = null,
+                              e = Math.min(this.max, this.index + 16384);
+                            if (this.index >= this.max) return this.end();
+                            switch (this.type) {
+                              case 'string':
+                                t = this.data.substring(this.index, e);
+                                break;
+                              case 'uint8array':
+                                t = this.data.subarray(this.index, e);
+                                break;
+                              case 'array':
+                              case 'nodebuffer':
+                                t = this.data.slice(this.index, e);
+                            }
+                            return (
+                              (this.index = e),
+                              this.push({
+                                data: t,
+                                meta: { percent: this.max ? (this.index / this.max) * 100 : 0 },
+                              })
+                            );
+                          }),
+                          (e.exports = o);
+                      },
+                      { '../utils': 32, './GenericWorker': 28 },
+                    ],
+                    28: [
+                      function (t, e, n) {
+                        'use strict';
+                        function r(t) {
+                          (this.name = t || 'default'),
+                            (this.streamInfo = {}),
+                            (this.generatedError = null),
+                            (this.extraStreamInfo = {}),
+                            (this.isPaused = !0),
+                            (this.isFinished = !1),
+                            (this.isLocked = !1),
+                            (this._listeners = { data: [], end: [], error: [] }),
+                            (this.previous = null);
+                        }
+                        (r.prototype = {
+                          push: function (t) {
+                            this.emit('data', t);
+                          },
+                          end: function () {
+                            if (this.isFinished) return !1;
+                            this.flush();
+                            try {
+                              this.emit('end'), this.cleanUp(), (this.isFinished = !0);
+                            } catch (t) {
+                              this.emit('error', t);
+                            }
+                            return !0;
+                          },
+                          error: function (t) {
+                            return (
+                              !this.isFinished &&
+                              (this.isPaused
+                                ? (this.generatedError = t)
+                                : ((this.isFinished = !0),
+                                  this.emit('error', t),
+                                  this.previous && this.previous.error(t),
+                                  this.cleanUp()),
+                              !0)
+                            );
+                          },
+                          on: function (t, e) {
+                            return this._listeners[t].push(e), this;
+                          },
+                          cleanUp: function () {
+                            (this.streamInfo = this.generatedError = this.extraStreamInfo = null),
+                              (this._listeners = []);
+                          },
+                          emit: function (t, e) {
+                            if (this._listeners[t])
+                              for (var n = 0; n < this._listeners[t].length; n++)
+                                this._listeners[t][n].call(this, e);
+                          },
+                          pipe: function (t) {
+                            return t.registerPrevious(this);
+                          },
+                          registerPrevious: function (t) {
+                            if (this.isLocked)
+                              throw new Error("The stream '" + this + "' has already been used.");
+                            (this.streamInfo = t.streamInfo),
+                              this.mergeStreamInfo(),
+                              (this.previous = t);
+                            var e = this;
+                            return (
+                              t.on('data', function (t) {
+                                e.processChunk(t);
+                              }),
+                              t.on('end', function () {
+                                e.end();
+                              }),
+                              t.on('error', function (t) {
+                                e.error(t);
+                              }),
+                              this
+                            );
+                          },
+                          pause: function () {
+                            return (
+                              !this.isPaused &&
+                              !this.isFinished &&
+                              ((this.isPaused = !0), this.previous && this.previous.pause(), !0)
+                            );
+                          },
+                          resume: function () {
+                            if (!this.isPaused || this.isFinished) return !1;
+                            var t = (this.isPaused = !1);
+                            return (
+                              this.generatedError && (this.error(this.generatedError), (t = !0)),
+                              this.previous && this.previous.resume(),
+                              !t
+                            );
+                          },
+                          flush: function () {},
+                          processChunk: function (t) {
+                            this.push(t);
+                          },
+                          withStreamInfo: function (t, e) {
+                            return (this.extraStreamInfo[t] = e), this.mergeStreamInfo(), this;
+                          },
+                          mergeStreamInfo: function () {
+                            for (var t in this.extraStreamInfo)
+                              this.extraStreamInfo.hasOwnProperty(t) &&
+                                (this.streamInfo[t] = this.extraStreamInfo[t]);
+                          },
+                          lock: function () {
+                            if (this.isLocked)
+                              throw new Error("The stream '" + this + "' has already been used.");
+                            (this.isLocked = !0), this.previous && this.previous.lock();
+                          },
+                          toString: function () {
+                            var t = 'Worker ' + this.name;
+                            return this.previous ? this.previous + ' -> ' + t : t;
+                          },
+                        }),
+                          (e.exports = r);
+                      },
+                      {},
+                    ],
+                    29: [
+                      function (t, e, n) {
+                        'use strict';
+                        var u = t('../utils'),
+                          i = t('./ConvertWorker'),
+                          o = t('./GenericWorker'),
+                          c = t('../base64'),
+                          r = t('../support'),
+                          a = t('../external'),
+                          s = null;
+                        if (r.nodestream)
+                          try {
+                            s = t('../nodejs/NodejsStreamOutputAdapter');
+                          } catch (t) {}
+                        function l(t, e, n) {
+                          var r = e;
+                          switch (e) {
+                            case 'blob':
+                            case 'arraybuffer':
+                              r = 'uint8array';
+                              break;
+                            case 'base64':
+                              r = 'string';
+                          }
+                          try {
+                            (this._internalType = r),
+                              (this._outputType = e),
+                              (this._mimeType = n),
+                              u.checkSupport(r),
+                              (this._worker = t.pipe(new i(r))),
+                              t.lock();
+                          } catch (t) {
+                            (this._worker = new o('error')), this._worker.error(t);
+                          }
+                        }
+                        (l.prototype = {
+                          accumulate: function (t) {
+                            return (
+                              (s = this),
+                              (l = t),
+                              new a.Promise(function (e, n) {
+                                var r = [],
+                                  i = s._internalType,
+                                  o = s._outputType,
+                                  a = s._mimeType;
+                                s.on('data', function (t, e) {
+                                  r.push(t), l && l(e);
+                                })
+                                  .on('error', function (t) {
+                                    (r = []), n(t);
+                                  })
+                                  .on('end', function () {
+                                    try {
+                                      var t = (function (t, e, n) {
+                                        switch (t) {
+                                          case 'blob':
+                                            return u.newBlob(u.transformTo('arraybuffer', e), n);
+                                          case 'base64':
+                                            return c.encode(e);
+                                          default:
+                                            return u.transformTo(t, e);
+                                        }
+                                      })(
+                                        o,
+                                        (function (t, e) {
+                                          for (var n = 0, r = null, i = 0, o = 0; o < e.length; o++)
+                                            i += e[o].length;
+                                          switch (t) {
+                                            case 'string':
+                                              return e.join('');
+                                            case 'array':
+                                              return Array.prototype.concat.apply([], e);
+                                            case 'uint8array':
+                                              for (r = new Uint8Array(i), o = 0; o < e.length; o++)
+                                                r.set(e[o], n), (n += e[o].length);
+                                              return r;
+                                            case 'nodebuffer':
+                                              return A.concat(e);
+                                            default:
+                                              throw new Error(
+                                                "concat : unsupported type '" + t + "'",
+                                              );
+                                          }
+                                        })(i, r),
+                                        a,
+                                      );
+                                      e(t);
+                                    } catch (t) {
+                                      n(t);
+                                    }
+                                    r = [];
+                                  })
+                                  .resume();
+                              })
+                            );
+                            var s, l;
+                          },
+                          on: function (t, e) {
+                            var n = this;
+                            return (
+                              'data' === t
+                                ? this._worker.on(t, function (t) {
+                                    e.call(n, t.data, t.meta);
+                                  })
+                                : this._worker.on(t, function () {
+                                    u.delay(e, arguments, n);
+                                  }),
+                              this
+                            );
+                          },
+                          resume: function () {
+                            return u.delay(this._worker.resume, [], this._worker), this;
+                          },
+                          pause: function () {
+                            return this._worker.pause(), this;
+                          },
+                          toNodejsStream: function (t) {
+                            if ((u.checkSupport('nodestream'), 'nodebuffer' !== this._outputType))
+                              throw new Error(
+                                this._outputType + ' is not supported by this method',
+                              );
+                            return new s(
+                              this,
+                              { objectMode: 'nodebuffer' !== this._outputType },
+                              t,
+                            );
+                          },
+                        }),
+                          (e.exports = l);
+                      },
+                      {
+                        '../base64': 1,
+                        '../external': 6,
+                        '../nodejs/NodejsStreamOutputAdapter': 13,
+                        '../support': 30,
+                        '../utils': 32,
+                        './ConvertWorker': 24,
+                        './GenericWorker': 28,
+                      },
+                    ],
+                    30: [
+                      function (t, e, n) {
+                        'use strict';
+                        if (
+                          ((n.base64 = !0),
+                          (n.array = !0),
+                          (n.string = !0),
+                          (n.arraybuffer =
+                            'undefined' != typeof ArrayBuffer && 'undefined' != typeof Uint8Array),
+                          (n.nodebuffer = void 0 !== A),
+                          (n.uint8array = 'undefined' != typeof Uint8Array),
+                          'undefined' == typeof ArrayBuffer)
+                        )
+                          n.blob = !1;
+                        else {
+                          var r = new ArrayBuffer(0);
+                          try {
+                            n.blob = 0 === new Blob([r], { type: 'application/zip' }).size;
+                          } catch (t) {
+                            try {
+                              var i = new (self.BlobBuilder ||
+                                self.WebKitBlobBuilder ||
+                                self.MozBlobBuilder ||
+                                self.MSBlobBuilder)();
+                              i.append(r), (n.blob = 0 === i.getBlob('application/zip').size);
+                            } catch (t) {
+                              n.blob = !1;
+                            }
+                          }
+                        }
+                        try {
+                          n.nodestream = !!t('readable-stream').Readable;
+                        } catch (t) {
+                          n.nodestream = !1;
+                        }
+                      },
+                      { 'readable-stream': 16 },
+                    ],
+                    31: [
+                      function (t, e, i) {
+                        'use strict';
+                        for (
+                          var l = t('./utils'),
+                            u = t('./support'),
+                            c = t('./nodejsUtils'),
+                            n = t('./stream/GenericWorker'),
+                            A = new Array(256),
+                            r = 0;
+                          r < 256;
+                          r++
+                        )
+                          A[r] =
+                            252 <= r
+                              ? 6
+                              : 248 <= r
+                                ? 5
+                                : 240 <= r
+                                  ? 4
+                                  : 224 <= r
+                                    ? 3
+                                    : 192 <= r
+                                      ? 2
+                                      : 1;
+                        function o() {
+                          n.call(this, 'utf-8 decode'), (this.leftOver = null);
+                        }
+                        function a() {
+                          n.call(this, 'utf-8 encode');
+                        }
+                        (A[254] = A[254] = 1),
+                          (i.utf8encode = function (t) {
+                            if (u.nodebuffer) return c.newBufferFrom(t, 'utf-8');
+                            for (var e, n, r, i, o = t, a = o.length, s = 0, l = 0; l < a; l++)
+                              55296 == (64512 & (n = o.charCodeAt(l))) &&
+                                l + 1 < a &&
+                                56320 == (64512 & (r = o.charCodeAt(l + 1))) &&
+                                ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), l++),
+                                (s += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4);
+                            for (
+                              e = new (u.uint8array ? Uint8Array : Array)(s), l = i = 0;
+                              i < s;
+                              l++
+                            )
+                              55296 == (64512 & (n = o.charCodeAt(l))) &&
+                                l + 1 < a &&
+                                56320 == (64512 & (r = o.charCodeAt(l + 1))) &&
+                                ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), l++),
+                                n < 128
+                                  ? (e[i++] = n)
+                                  : (n < 2048
+                                      ? (e[i++] = 192 | (n >>> 6))
+                                      : (n < 65536
+                                          ? (e[i++] = 224 | (n >>> 12))
+                                          : ((e[i++] = 240 | (n >>> 18)),
+                                            (e[i++] = 128 | ((n >>> 12) & 63))),
+                                        (e[i++] = 128 | ((n >>> 6) & 63))),
+                                    (e[i++] = 128 | (63 & n)));
+                            return e;
+                          }),
+                          (i.utf8decode = function (t) {
+                            if (u.nodebuffer)
+                              return l.transformTo('nodebuffer', t).toString('utf-8');
+                            for (
+                              var e,
+                                n,
+                                r,
+                                i = (t = l.transformTo(u.uint8array ? 'uint8array' : 'array', t)),
+                                o = i.length,
+                                a = new Array(2 * o),
+                                s = (e = 0);
+                              s < o;
+
+                            )
+                              if ((n = i[s++]) < 128) a[e++] = n;
+                              else if (4 < (r = A[n])) (a[e++] = 65533), (s += r - 1);
+                              else {
+                                for (n &= 2 === r ? 31 : 3 === r ? 15 : 7; 1 < r && s < o; )
+                                  (n = (n << 6) | (63 & i[s++])), r--;
+                                1 < r
+                                  ? (a[e++] = 65533)
+                                  : n < 65536
+                                    ? (a[e++] = n)
+                                    : ((n -= 65536),
+                                      (a[e++] = 55296 | ((n >> 10) & 1023)),
+                                      (a[e++] = 56320 | (1023 & n)));
+                              }
+                            return (
+                              a.length !== e &&
+                                (a.subarray ? (a = a.subarray(0, e)) : (a.length = e)),
+                              l.applyFromCharCode(a)
+                            );
+                          }),
+                          l.inherits(o, n),
+                          (o.prototype.processChunk = function (t) {
+                            var e = l.transformTo(u.uint8array ? 'uint8array' : 'array', t.data),
+                              n =
+                                (this.leftOver &&
+                                  this.leftOver.length &&
+                                  (u.uint8array
+                                    ? ((n = e),
+                                      (e = new Uint8Array(n.length + this.leftOver.length)).set(
+                                        this.leftOver,
+                                        0,
+                                      ),
+                                      e.set(n, this.leftOver.length))
+                                    : (e = this.leftOver.concat(e)),
+                                  (this.leftOver = null)),
+                                (function (t, e) {
+                                  for (
+                                    var n = (e = (e = e || t.length) > t.length ? t.length : e) - 1;
+                                    0 <= n && 128 == (192 & t[n]);
+
+                                  )
+                                    n--;
+                                  return !(n < 0) && 0 !== n && n + A[t[n]] > e ? n : e;
+                                })(e)),
+                              r = e;
+                            n !== e.length &&
+                              (u.uint8array
+                                ? ((r = e.subarray(0, n)),
+                                  (this.leftOver = e.subarray(n, e.length)))
+                                : ((r = e.slice(0, n)), (this.leftOver = e.slice(n, e.length)))),
+                              this.push({ data: i.utf8decode(r), meta: t.meta });
+                          }),
+                          (o.prototype.flush = function () {
+                            this.leftOver &&
+                              this.leftOver.length &&
+                              (this.push({ data: i.utf8decode(this.leftOver), meta: {} }),
+                              (this.leftOver = null));
+                          }),
+                          (i.Utf8DecodeWorker = o),
+                          l.inherits(a, n),
+                          (a.prototype.processChunk = function (t) {
+                            this.push({ data: i.utf8encode(t.data), meta: t.meta });
+                          }),
+                          (i.Utf8EncodeWorker = a);
+                      },
+                      {
+                        './nodejsUtils': 14,
+                        './stream/GenericWorker': 28,
+                        './support': 30,
+                        './utils': 32,
+                      },
+                    ],
+                    32: [
+                      function (t, e, a) {
+                        'use strict';
+                        var s = t('./support'),
+                          l = t('./base64'),
+                          n = t('./nodejsUtils'),
+                          u = t('./external');
+                        function r(t) {
+                          return t;
+                        }
+                        function c(t, e) {
+                          for (var n = 0; n < t.length; ++n) e[n] = 255 & t.charCodeAt(n);
+                          return e;
+                        }
+                        t('setimmediate'),
+                          (a.newBlob = function (e, n) {
+                            a.checkSupport('blob');
+                            try {
+                              return new Blob([e], { type: n });
+                            } catch (t) {
+                              try {
+                                var r = new (self.BlobBuilder ||
+                                  self.WebKitBlobBuilder ||
+                                  self.MozBlobBuilder ||
+                                  self.MSBlobBuilder)();
+                                return r.append(e), r.getBlob(n);
+                              } catch (t) {
+                                throw new Error("Bug : can't construct the Blob.");
+                              }
+                            }
+                          });
+                        var i = {
+                          stringifyByChunk: function (t, e, n) {
+                            var r = [],
+                              i = 0,
+                              o = t.length;
+                            if (o <= n) return String.fromCharCode.apply(null, t);
+                            for (; i < o; )
+                              'array' === e || 'nodebuffer' === e
+                                ? r.push(
+                                    String.fromCharCode.apply(null, t.slice(i, Math.min(i + n, o))),
+                                  )
+                                : r.push(
+                                    String.fromCharCode.apply(
+                                      null,
+                                      t.subarray(i, Math.min(i + n, o)),
+                                    ),
+                                  ),
+                                (i += n);
+                            return r.join('');
+                          },
+                          stringifyByChar: function (t) {
+                            for (var e = '', n = 0; n < t.length; n++)
+                              e += String.fromCharCode(t[n]);
+                            return e;
+                          },
+                          applyCanBeUsed: {
+                            uint8array: (function () {
+                              try {
+                                return (
+                                  s.uint8array &&
+                                  1 === String.fromCharCode.apply(null, new Uint8Array(1)).length
+                                );
+                              } catch (t) {
+                                return !1;
+                              }
+                            })(),
+                            nodebuffer: (function () {
+                              try {
+                                return (
+                                  s.nodebuffer &&
+                                  1 === String.fromCharCode.apply(null, n.allocBuffer(1)).length
+                                );
+                              } catch (t) {
+                                return !1;
+                              }
+                            })(),
+                          },
+                        };
+                        function o(t) {
+                          var e = 65536,
+                            n = a.getTypeOf(t),
+                            r = !0;
+                          if (
+                            ('uint8array' === n
+                              ? (r = i.applyCanBeUsed.uint8array)
+                              : 'nodebuffer' === n && (r = i.applyCanBeUsed.nodebuffer),
+                            r)
+                          )
+                            for (; 1 < e; )
+                              try {
+                                return i.stringifyByChunk(t, n, e);
+                              } catch (t) {
+                                e = Math.floor(e / 2);
+                              }
+                          return i.stringifyByChar(t);
+                        }
+                        function A(t, e) {
+                          for (var n = 0; n < t.length; n++) e[n] = t[n];
+                          return e;
+                        }
+                        a.applyFromCharCode = o;
+                        var h = {};
+                        (h.string = {
+                          string: r,
+                          array: function (t) {
+                            return c(t, new Array(t.length));
+                          },
+                          arraybuffer: function (t) {
+                            return h.string.uint8array(t).buffer;
+                          },
+                          uint8array: function (t) {
+                            return c(t, new Uint8Array(t.length));
+                          },
+                          nodebuffer: function (t) {
+                            return c(t, n.allocBuffer(t.length));
+                          },
+                        }),
+                          (h.array = {
+                            string: o,
+                            array: r,
+                            arraybuffer: function (t) {
+                              return new Uint8Array(t).buffer;
+                            },
+                            uint8array: function (t) {
+                              return new Uint8Array(t);
+                            },
+                            nodebuffer: function (t) {
+                              return n.newBufferFrom(t);
+                            },
+                          }),
+                          (h.arraybuffer = {
+                            string: function (t) {
+                              return o(new Uint8Array(t));
+                            },
+                            array: function (t) {
+                              return A(new Uint8Array(t), new Array(t.byteLength));
+                            },
+                            arraybuffer: r,
+                            uint8array: function (t) {
+                              return new Uint8Array(t);
+                            },
+                            nodebuffer: function (t) {
+                              return n.newBufferFrom(new Uint8Array(t));
+                            },
+                          }),
+                          (h.uint8array = {
+                            string: o,
+                            array: function (t) {
+                              return A(t, new Array(t.length));
+                            },
+                            arraybuffer: function (t) {
+                              return t.buffer;
+                            },
+                            uint8array: r,
+                            nodebuffer: function (t) {
+                              return n.newBufferFrom(t);
+                            },
+                          }),
+                          (h.nodebuffer = {
+                            string: o,
+                            array: function (t) {
+                              return A(t, new Array(t.length));
+                            },
+                            arraybuffer: function (t) {
+                              return h.nodebuffer.uint8array(t).buffer;
+                            },
+                            uint8array: function (t) {
+                              return A(t, new Uint8Array(t.length));
+                            },
+                            nodebuffer: r,
+                          }),
+                          (a.transformTo = function (t, e) {
+                            if (((e = e || ''), !t)) return e;
+                            a.checkSupport(t);
+                            var n = a.getTypeOf(e);
+                            return h[n][t](e);
+                          }),
+                          (a.resolve = function (t) {
+                            for (var e = t.split('/'), n = [], r = 0; r < e.length; r++) {
+                              var i = e[r];
+                              '.' === i ||
+                                ('' === i && 0 !== r && r !== e.length - 1) ||
+                                ('..' === i ? n.pop() : n.push(i));
+                            }
+                            return n.join('/');
+                          }),
+                          (a.getTypeOf = function (t) {
+                            return 'string' == typeof t
+                              ? 'string'
+                              : '[object Array]' === Object.prototype.toString.call(t)
+                                ? 'array'
+                                : s.nodebuffer && n.isBuffer(t)
+                                  ? 'nodebuffer'
+                                  : s.uint8array && t instanceof Uint8Array
+                                    ? 'uint8array'
+                                    : s.arraybuffer && t instanceof ArrayBuffer
+                                      ? 'arraybuffer'
+                                      : void 0;
+                          }),
+                          (a.checkSupport = function (t) {
+                            if (!s[t.toLowerCase()])
+                              throw new Error(t + ' is not supported by this platform');
+                          }),
+                          (a.MAX_VALUE_16BITS = 65535),
+                          (a.MAX_VALUE_32BITS = -1),
+                          (a.pretty = function (t) {
+                            for (var e, n = '', r = 0; r < (t || '').length; r++)
+                              n +=
+                                '\\x' +
+                                ((e = t.charCodeAt(r)) < 16 ? '0' : '') +
+                                e.toString(16).toUpperCase();
+                            return n;
+                          }),
+                          (a.delay = function (t, e, n) {
+                            p(function () {
+                              t.apply(n || null, e || []);
+                            });
+                          }),
+                          (a.inherits = function (t, e) {
+                            function n() {}
+                            (n.prototype = e.prototype), (t.prototype = new n());
+                          }),
+                          (a.extend = function () {
+                            for (var t, e = {}, n = 0; n < arguments.length; n++)
+                              for (t in arguments[n])
+                                arguments[n].hasOwnProperty(t) &&
+                                  void 0 === e[t] &&
+                                  (e[t] = arguments[n][t]);
+                            return e;
+                          }),
+                          (a.prepareContent = function (n, t, r, i, o) {
+                            return u.Promise.resolve(t)
+                              .then(function (r) {
+                                return s.blob &&
+                                  (r instanceof Blob ||
+                                    -1 !==
+                                      ['[object File]', '[object Blob]'].indexOf(
+                                        Object.prototype.toString.call(r),
+                                      )) &&
+                                  'undefined' != typeof FileReader
+                                  ? new u.Promise(function (e, n) {
+                                      var t = new FileReader();
+                                      (t.onload = function (t) {
+                                        e(t.target.result);
+                                      }),
+                                        (t.onerror = function (t) {
+                                          n(t.target.error);
+                                        }),
+                                        t.readAsArrayBuffer(r);
+                                    })
+                                  : r;
+                              })
+                              .then(function (t) {
+                                var e = a.getTypeOf(t);
+                                return e
+                                  ? ('arraybuffer' === e
+                                      ? (t = a.transformTo('uint8array', t))
+                                      : 'string' === e &&
+                                        (o
+                                          ? (t = l.decode(t))
+                                          : r &&
+                                            !0 !== i &&
+                                            (t = c(
+                                              (e = t),
+                                              new (s.uint8array ? Uint8Array : Array)(e.length),
+                                            ))),
+                                    t)
+                                  : u.Promise.reject(
+                                      new Error(
+                                        "Can't read the data of '" +
+                                          n +
+                                          "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?",
+                                      ),
+                                    );
+                              });
+                          });
+                      },
+                      {
+                        './base64': 1,
+                        './external': 6,
+                        './nodejsUtils': 14,
+                        './support': 30,
+                        setimmediate: 54,
+                      },
+                    ],
+                    33: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./reader/readerFor'),
+                          i = t('./utils'),
+                          o = t('./signature'),
+                          a = t('./zipEntry'),
+                          s = (t('./utf8'), t('./support'));
+                        function l(t) {
+                          (this.files = []), (this.loadOptions = t);
+                        }
+                        (l.prototype = {
+                          checkSignature: function (t) {
+                            var e;
+                            if (!this.reader.readAndCheckSignature(t))
+                              throw (
+                                ((this.reader.index -= 4),
+                                (e = this.reader.readString(4)),
+                                new Error(
+                                  'Corrupted zip or bug: unexpected signature (' +
+                                    i.pretty(e) +
+                                    ', expected ' +
+                                    i.pretty(t) +
+                                    ')',
+                                ))
+                              );
+                          },
+                          isSignature: function (t, e) {
+                            var n = this.reader.index,
+                              t = (this.reader.setIndex(t), this.reader.readString(4) === e);
+                            return this.reader.setIndex(n), t;
+                          },
+                          readBlockEndOfCentral: function () {
+                            (this.diskNumber = this.reader.readInt(2)),
+                              (this.diskWithCentralDirStart = this.reader.readInt(2)),
+                              (this.centralDirRecordsOnThisDisk = this.reader.readInt(2)),
+                              (this.centralDirRecords = this.reader.readInt(2)),
+                              (this.centralDirSize = this.reader.readInt(4)),
+                              (this.centralDirOffset = this.reader.readInt(4)),
+                              (this.zipCommentLength = this.reader.readInt(2));
+                            var t = this.reader.readData(this.zipCommentLength),
+                              e = s.uint8array ? 'uint8array' : 'array',
+                              e = i.transformTo(e, t);
+                            this.zipComment = this.loadOptions.decodeFileName(e);
+                          },
+                          readBlockZip64EndOfCentral: function () {
+                            (this.zip64EndOfCentralSize = this.reader.readInt(8)),
+                              this.reader.skip(4),
+                              (this.diskNumber = this.reader.readInt(4)),
+                              (this.diskWithCentralDirStart = this.reader.readInt(4)),
+                              (this.centralDirRecordsOnThisDisk = this.reader.readInt(8)),
+                              (this.centralDirRecords = this.reader.readInt(8)),
+                              (this.centralDirSize = this.reader.readInt(8)),
+                              (this.centralDirOffset = this.reader.readInt(8)),
+                              (this.zip64ExtensibleData = {});
+                            for (var t, e, n, r = this.zip64EndOfCentralSize - 44; 0 < r; )
+                              (t = this.reader.readInt(2)),
+                                (e = this.reader.readInt(4)),
+                                (n = this.reader.readData(e)),
+                                (this.zip64ExtensibleData[t] = { id: t, length: e, value: n });
+                          },
+                          readBlockZip64EndOfCentralLocator: function () {
+                            if (
+                              ((this.diskWithZip64CentralDirStart = this.reader.readInt(4)),
+                              (this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8)),
+                              (this.disksCount = this.reader.readInt(4)),
+                              1 < this.disksCount)
+                            )
+                              throw new Error('Multi-volumes zip are not supported');
+                          },
+                          readLocalFiles: function () {
+                            for (var t, e = 0; e < this.files.length; e++)
+                              (t = this.files[e]),
+                                this.reader.setIndex(t.localHeaderOffset),
+                                this.checkSignature(o.LOCAL_FILE_HEADER),
+                                t.readLocalPart(this.reader),
+                                t.handleUTF8(),
+                                t.processAttributes();
+                          },
+                          readCentralDir: function () {
+                            var t;
+                            for (
+                              this.reader.setIndex(this.centralDirOffset);
+                              this.reader.readAndCheckSignature(o.CENTRAL_FILE_HEADER);
+
+                            )
+                              (t = new a({ zip64: this.zip64 }, this.loadOptions)).readCentralPart(
+                                this.reader,
+                              ),
+                                this.files.push(t);
+                            if (
+                              this.centralDirRecords !== this.files.length &&
+                              0 !== this.centralDirRecords &&
+                              0 === this.files.length
+                            )
+                              throw new Error(
+                                'Corrupted zip or bug: expected ' +
+                                  this.centralDirRecords +
+                                  ' records in central dir, got ' +
+                                  this.files.length,
+                              );
+                          },
+                          readEndOfCentral: function () {
+                            var t = this.reader.lastIndexOfSignature(o.CENTRAL_DIRECTORY_END);
+                            if (t < 0)
+                              throw this.isSignature(0, o.LOCAL_FILE_HEADER)
+                                ? new Error("Corrupted zip: can't find end of central directory")
+                                : new Error(
+                                    "Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html",
+                                  );
+                            this.reader.setIndex(t);
+                            var e = t;
+                            if (
+                              (this.checkSignature(o.CENTRAL_DIRECTORY_END),
+                              this.readBlockEndOfCentral(),
+                              this.diskNumber === i.MAX_VALUE_16BITS ||
+                                this.diskWithCentralDirStart === i.MAX_VALUE_16BITS ||
+                                this.centralDirRecordsOnThisDisk === i.MAX_VALUE_16BITS ||
+                                this.centralDirRecords === i.MAX_VALUE_16BITS ||
+                                this.centralDirSize === i.MAX_VALUE_32BITS ||
+                                this.centralDirOffset === i.MAX_VALUE_32BITS)
+                            ) {
+                              if (
+                                ((this.zip64 = !0),
+                                (t = this.reader.lastIndexOfSignature(
+                                  o.ZIP64_CENTRAL_DIRECTORY_LOCATOR,
+                                )) < 0)
+                              )
+                                throw new Error(
+                                  "Corrupted zip: can't find the ZIP64 end of central directory locator",
+                                );
+                              if (
+                                (this.reader.setIndex(t),
+                                this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR),
+                                this.readBlockZip64EndOfCentralLocator(),
+                                !this.isSignature(
+                                  this.relativeOffsetEndOfZip64CentralDir,
+                                  o.ZIP64_CENTRAL_DIRECTORY_END,
+                                ) &&
+                                  ((this.relativeOffsetEndOfZip64CentralDir =
+                                    this.reader.lastIndexOfSignature(
+                                      o.ZIP64_CENTRAL_DIRECTORY_END,
+                                    )),
+                                  this.relativeOffsetEndOfZip64CentralDir < 0))
+                              )
+                                throw new Error(
+                                  "Corrupted zip: can't find the ZIP64 end of central directory",
+                                );
+                              this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),
+                                this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_END),
+                                this.readBlockZip64EndOfCentral();
+                            }
+                            (t = this.centralDirOffset + this.centralDirSize),
+                              (t =
+                                e -
+                                (t = this.zip64 ? t + 20 + (12 + this.zip64EndOfCentralSize) : t));
+                            if (0 < t)
+                              this.isSignature(e, o.CENTRAL_FILE_HEADER) || (this.reader.zero = t);
+                            else if (t < 0)
+                              throw new Error('Corrupted zip: missing ' + Math.abs(t) + ' bytes.');
+                          },
+                          prepareReader: function (t) {
+                            this.reader = r(t);
+                          },
+                          load: function (t) {
+                            this.prepareReader(t),
+                              this.readEndOfCentral(),
+                              this.readCentralDir(),
+                              this.readLocalFiles();
+                          },
+                        }),
+                          (e.exports = l);
+                      },
+                      {
+                        './reader/readerFor': 22,
+                        './signature': 23,
+                        './support': 30,
+                        './utf8': 31,
+                        './utils': 32,
+                        './zipEntry': 34,
+                      },
+                    ],
+                    34: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = t('./reader/readerFor'),
+                          i = t('./utils'),
+                          o = t('./compressedObject'),
+                          a = t('./crc32'),
+                          s = t('./utf8'),
+                          l = t('./compressions'),
+                          u = t('./support');
+                        function c(t, e) {
+                          (this.options = t), (this.loadOptions = e);
+                        }
+                        (c.prototype = {
+                          isEncrypted: function () {
+                            return 1 == (1 & this.bitFlag);
+                          },
+                          useUTF8: function () {
+                            return 2048 == (2048 & this.bitFlag);
+                          },
+                          readLocalPart: function (t) {
+                            var e;
+                            if (
+                              (t.skip(22),
+                              (this.fileNameLength = t.readInt(2)),
+                              (e = t.readInt(2)),
+                              (this.fileName = t.readData(this.fileNameLength)),
+                              t.skip(e),
+                              -1 === this.compressedSize || -1 === this.uncompressedSize)
+                            )
+                              throw new Error(
+                                "Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)",
+                              );
+                            if (
+                              null ===
+                              (e = (function (t) {
+                                for (var e in l)
+                                  if (l.hasOwnProperty(e) && l[e].magic === t) return l[e];
+                                return null;
+                              })(this.compressionMethod))
+                            )
+                              throw new Error(
+                                'Corrupted zip : compression ' +
+                                  i.pretty(this.compressionMethod) +
+                                  ' unknown (inner file : ' +
+                                  i.transformTo('string', this.fileName) +
+                                  ')',
+                              );
+                            this.decompressed = new o(
+                              this.compressedSize,
+                              this.uncompressedSize,
+                              this.crc32,
+                              e,
+                              t.readData(this.compressedSize),
+                            );
+                          },
+                          readCentralPart: function (t) {
+                            (this.versionMadeBy = t.readInt(2)),
+                              t.skip(2),
+                              (this.bitFlag = t.readInt(2)),
+                              (this.compressionMethod = t.readString(2)),
+                              (this.date = t.readDate()),
+                              (this.crc32 = t.readInt(4)),
+                              (this.compressedSize = t.readInt(4)),
+                              (this.uncompressedSize = t.readInt(4));
+                            var e = t.readInt(2);
+                            if (
+                              ((this.extraFieldsLength = t.readInt(2)),
+                              (this.fileCommentLength = t.readInt(2)),
+                              (this.diskNumberStart = t.readInt(2)),
+                              (this.internalFileAttributes = t.readInt(2)),
+                              (this.externalFileAttributes = t.readInt(4)),
+                              (this.localHeaderOffset = t.readInt(4)),
+                              this.isEncrypted())
+                            )
+                              throw new Error('Encrypted zip are not supported');
+                            t.skip(e),
+                              this.readExtraFields(t),
+                              this.parseZIP64ExtraField(t),
+                              (this.fileComment = t.readData(this.fileCommentLength));
+                          },
+                          processAttributes: function () {
+                            (this.unixPermissions = null), (this.dosPermissions = null);
+                            var t = this.versionMadeBy >> 8;
+                            (this.dir = !!(16 & this.externalFileAttributes)),
+                              0 == t && (this.dosPermissions = 63 & this.externalFileAttributes),
+                              3 == t &&
+                                (this.unixPermissions =
+                                  (this.externalFileAttributes >> 16) & 65535),
+                              this.dir || '/' !== this.fileNameStr.slice(-1) || (this.dir = !0);
+                          },
+                          parseZIP64ExtraField: function (t) {
+                            var e;
+                            this.extraFields[1] &&
+                              ((e = r(this.extraFields[1].value)),
+                              this.uncompressedSize === i.MAX_VALUE_32BITS &&
+                                (this.uncompressedSize = e.readInt(8)),
+                              this.compressedSize === i.MAX_VALUE_32BITS &&
+                                (this.compressedSize = e.readInt(8)),
+                              this.localHeaderOffset === i.MAX_VALUE_32BITS &&
+                                (this.localHeaderOffset = e.readInt(8)),
+                              this.diskNumberStart === i.MAX_VALUE_32BITS &&
+                                (this.diskNumberStart = e.readInt(4)));
+                          },
+                          readExtraFields: function (t) {
+                            var e,
+                              n,
+                              r,
+                              i = t.index + this.extraFieldsLength;
+                            for (this.extraFields || (this.extraFields = {}); t.index + 4 < i; )
+                              (e = t.readInt(2)),
+                                (n = t.readInt(2)),
+                                (r = t.readData(n)),
+                                (this.extraFields[e] = { id: e, length: n, value: r });
+                            t.setIndex(i);
+                          },
+                          handleUTF8: function () {
+                            var t,
+                              e = u.uint8array ? 'uint8array' : 'array';
+                            this.useUTF8()
+                              ? ((this.fileNameStr = s.utf8decode(this.fileName)),
+                                (this.fileCommentStr = s.utf8decode(this.fileComment)))
+                              : (null !== (t = this.findExtraFieldUnicodePath())
+                                  ? (this.fileNameStr = t)
+                                  : ((t = i.transformTo(e, this.fileName)),
+                                    (this.fileNameStr = this.loadOptions.decodeFileName(t))),
+                                null !== (t = this.findExtraFieldUnicodeComment())
+                                  ? (this.fileCommentStr = t)
+                                  : ((t = i.transformTo(e, this.fileComment)),
+                                    (this.fileCommentStr = this.loadOptions.decodeFileName(t))));
+                          },
+                          findExtraFieldUnicodePath: function () {
+                            var t,
+                              e = this.extraFields[28789];
+                            return !e ||
+                              1 !== (t = r(e.value)).readInt(1) ||
+                              a(this.fileName) !== t.readInt(4)
+                              ? null
+                              : s.utf8decode(t.readData(e.length - 5));
+                          },
+                          findExtraFieldUnicodeComment: function () {
+                            var t,
+                              e = this.extraFields[25461];
+                            return !e ||
+                              1 !== (t = r(e.value)).readInt(1) ||
+                              a(this.fileComment) !== t.readInt(4)
+                              ? null
+                              : s.utf8decode(t.readData(e.length - 5));
+                          },
+                        }),
+                          (e.exports = c);
+                      },
+                      {
+                        './compressedObject': 2,
+                        './compressions': 3,
+                        './crc32': 4,
+                        './reader/readerFor': 22,
+                        './support': 30,
+                        './utf8': 31,
+                        './utils': 32,
+                      },
+                    ],
+                    35: [
+                      function (t, e, n) {
+                        'use strict';
+                        function r(t, e, n) {
+                          (this.name = t),
+                            (this.dir = n.dir),
+                            (this.date = n.date),
+                            (this.comment = n.comment),
+                            (this.unixPermissions = n.unixPermissions),
+                            (this.dosPermissions = n.dosPermissions),
+                            (this._data = e),
+                            (this._dataBinary = n.binary),
+                            (this.options = {
+                              compression: n.compression,
+                              compressionOptions: n.compressionOptions,
+                            });
+                        }
+                        var o = t('./stream/StreamHelper'),
+                          i = t('./stream/DataWorker'),
+                          a = t('./utf8'),
+                          s = t('./compressedObject'),
+                          l = t('./stream/GenericWorker');
+                        r.prototype = {
+                          internalStream: function (t) {
+                            var e = null,
+                              n = 'string';
+                            try {
+                              if (!t) throw new Error('No output type specified.');
+                              var r = 'string' === (n = t.toLowerCase()) || 'text' === n,
+                                i =
+                                  (('binarystring' !== n && 'text' !== n) || (n = 'string'),
+                                  (e = this._decompressWorker()),
+                                  !this._dataBinary);
+                              i && !r && (e = e.pipe(new a.Utf8EncodeWorker())),
+                                !i && r && (e = e.pipe(new a.Utf8DecodeWorker()));
+                            } catch (t) {
+                              (e = new l('error')).error(t);
+                            }
+                            return new o(e, n, '');
+                          },
+                          async: function (t, e) {
+                            return this.internalStream(t).accumulate(e);
+                          },
+                          nodeStream: function (t, e) {
+                            return this.internalStream(t || 'nodebuffer').toNodejsStream(e);
+                          },
+                          _compressWorker: function (t, e) {
+                            if (this._data instanceof s && this._data.compression.magic === t.magic)
+                              return this._data.getCompressedWorker();
+                            var n = this._decompressWorker();
+                            return (
+                              this._dataBinary || (n = n.pipe(new a.Utf8EncodeWorker())),
+                              s.createWorkerFrom(n, t, e)
+                            );
+                          },
+                          _decompressWorker: function () {
+                            return this._data instanceof s
+                              ? this._data.getContentWorker()
+                              : this._data instanceof l
+                                ? this._data
+                                : new i(this._data);
+                          },
+                        };
+                        for (
+                          var u = [
+                              'asText',
+                              'asBinary',
+                              'asNodeBuffer',
+                              'asUint8Array',
+                              'asArrayBuffer',
+                            ],
+                            c = function () {
+                              throw new Error(
+                                'This method has been removed in JSZip 3.0, please check the upgrade guide.',
+                              );
+                            },
+                            A = 0;
+                          A < u.length;
+                          A++
+                        )
+                          r.prototype[u[A]] = c;
+                        e.exports = r;
+                      },
+                      {
+                        './compressedObject': 2,
+                        './stream/DataWorker': 27,
+                        './stream/GenericWorker': 28,
+                        './stream/StreamHelper': 29,
+                        './utf8': 31,
+                      },
+                    ],
+                    36: [
+                      function (t, u, e) {
+                        !function (e) {
+                          'use strict';
+                          var r,
+                            t,
+                            n,
+                            i,
+                            o = e.MutationObserver || e.WebKitMutationObserver,
+                            a = o
+                              ? ((t = 0),
+                                (o = new o(l)),
+                                (n = e.document.createTextNode('')),
+                                o.observe(n, { characterData: !0 }),
+                                function () {
+                                  n.data = t = ++t % 2;
+                                })
+                              : e.setImmediate || void 0 === e.MessageChannel
+                                ? 'document' in e &&
+                                  'onreadystatechange' in e.document.createElement('script')
+                                  ? function () {
+                                      var t = e.document.createElement('script');
+                                      (t.onreadystatechange = function () {
+                                        l(),
+                                          (t.onreadystatechange = null),
+                                          t.parentNode.removeChild(t),
+                                          (t = null);
+                                      }),
+                                        e.document.documentElement.appendChild(t);
+                                    }
+                                  : function () {
+                                      setTimeout(l, 0);
+                                    }
+                                : (((i = new e.MessageChannel()).port1.onmessage = l),
+                                  function () {
+                                    i.port2.postMessage(0);
+                                  }),
+                            s = [];
+                          function l() {
+                            var t, e;
+                            r = !0;
+                            for (var n = s.length; n; ) {
+                              for (e = s, s = [], t = -1; ++t < n; ) e[t]();
+                              n = s.length;
+                            }
+                            r = !1;
+                          }
+                          u.exports = function (t) {
+                            1 !== s.push(t) || r || a();
+                          };
+                        }.call(
+                          this,
+                          void 0 !== r
+                            ? r
+                            : 'undefined' != typeof self
+                              ? self
+                              : 'undefined' != typeof window
+                                ? window
+                                : {},
+                        );
+                      },
+                      {},
+                    ],
+                    37: [
+                      function (t, e, n) {
+                        'use strict';
+                        var i = t('immediate');
+                        function l() {}
+                        var u = {},
+                          o = ['REJECTED'],
+                          a = ['FULFILLED'],
+                          r = ['PENDING'];
+                        function s(t) {
+                          if ('function' != typeof t)
+                            throw new TypeError('resolver must be a function');
+                          (this.state = r),
+                            (this.queue = []),
+                            (this.outcome = void 0),
+                            t !== l && p(this, t);
+                        }
+                        function c(t, e, n) {
+                          (this.promise = t),
+                            'function' == typeof e &&
+                              ((this.onFulfilled = e),
+                              (this.callFulfilled = this.otherCallFulfilled)),
+                            'function' == typeof n &&
+                              ((this.onRejected = n), (this.callRejected = this.otherCallRejected));
+                        }
+                        function A(e, n, r) {
+                          i(function () {
+                            var t;
+                            try {
+                              t = n(r);
+                            } catch (t) {
+                              return u.reject(e, t);
+                            }
+                            t === e
+                              ? u.reject(e, new TypeError('Cannot resolve promise with itself'))
+                              : u.resolve(e, t);
+                          });
+                        }
+                        function h(t) {
+                          var e = t && t.then;
+                          if (
+                            t &&
+                            ('object' == typeof t || 'function' == typeof t) &&
+                            'function' == typeof e
+                          )
+                            return function () {
+                              e.apply(t, arguments);
+                            };
+                        }
+                        function p(e, t) {
+                          var n = !1;
+                          function r(t) {
+                            n || ((n = !0), u.reject(e, t));
+                          }
+                          function i(t) {
+                            n || ((n = !0), u.resolve(e, t));
+                          }
+                          var o = d(function () {
+                            t(i, r);
+                          });
+                          'error' === o.status && r(o.value);
+                        }
+                        function d(t, e) {
+                          var n = {};
+                          try {
+                            (n.value = t(e)), (n.status = 'success');
+                          } catch (t) {
+                            (n.status = 'error'), (n.value = t);
+                          }
+                          return n;
+                        }
+                        ((e.exports = s).prototype.finally = function (e) {
+                          if ('function' != typeof e) return this;
+                          var n = this.constructor;
+                          return this.then(
+                            function (t) {
+                              return n.resolve(e()).then(function () {
+                                return t;
+                              });
+                            },
+                            function (t) {
+                              return n.resolve(e()).then(function () {
+                                throw t;
+                              });
+                            },
+                          );
+                        }),
+                          (s.prototype.catch = function (t) {
+                            return this.then(null, t);
+                          }),
+                          (s.prototype.then = function (t, e) {
+                            if (
+                              ('function' != typeof t && this.state === a) ||
+                              ('function' != typeof e && this.state === o)
+                            )
+                              return this;
+                            var n = new this.constructor(l);
+                            return (
+                              this.state !== r
+                                ? A(n, this.state === a ? t : e, this.outcome)
+                                : this.queue.push(new c(n, t, e)),
+                              n
+                            );
+                          }),
+                          (c.prototype.callFulfilled = function (t) {
+                            u.resolve(this.promise, t);
+                          }),
+                          (c.prototype.otherCallFulfilled = function (t) {
+                            A(this.promise, this.onFulfilled, t);
+                          }),
+                          (c.prototype.callRejected = function (t) {
+                            u.reject(this.promise, t);
+                          }),
+                          (c.prototype.otherCallRejected = function (t) {
+                            A(this.promise, this.onRejected, t);
+                          }),
+                          (u.resolve = function (t, e) {
+                            var n = d(h, e);
+                            if ('error' === n.status) return u.reject(t, n.value);
+                            n = n.value;
+                            if (n) p(t, n);
+                            else {
+                              (t.state = a), (t.outcome = e);
+                              for (var r = -1, i = t.queue.length; ++r < i; )
+                                t.queue[r].callFulfilled(e);
+                            }
+                            return t;
+                          }),
+                          (u.reject = function (t, e) {
+                            (t.state = o), (t.outcome = e);
+                            for (var n = -1, r = t.queue.length; ++n < r; )
+                              t.queue[n].callRejected(e);
+                            return t;
+                          }),
+                          (s.resolve = function (t) {
+                            return t instanceof this ? t : u.resolve(new this(l), t);
+                          }),
+                          (s.reject = function (t) {
+                            var e = new this(l);
+                            return u.reject(e, t);
+                          }),
+                          (s.all = function (t) {
+                            var n = this;
+                            if ('[object Array]' !== Object.prototype.toString.call(t))
+                              return this.reject(new TypeError('must be an array'));
+                            var r = t.length,
+                              i = !1;
+                            if (!r) return this.resolve([]);
+                            for (var o = new Array(r), a = 0, e = -1, s = new this(l); ++e < r; )
+                              !(function (t, e) {
+                                n.resolve(t).then(
+                                  function (t) {
+                                    (o[e] = t), ++a !== r || i || ((i = !0), u.resolve(s, o));
+                                  },
+                                  function (t) {
+                                    i || ((i = !0), u.reject(s, t));
+                                  },
+                                );
+                              })(t[e], e);
+                            return s;
+                          }),
+                          (s.race = function (t) {
+                            if ('[object Array]' !== Object.prototype.toString.call(t))
+                              return this.reject(new TypeError('must be an array'));
+                            var e = t.length,
+                              n = !1;
+                            if (!e) return this.resolve([]);
+                            for (var r, i = -1, o = new this(l); ++i < e; )
+                              (r = t[i]),
+                                this.resolve(r).then(
+                                  function (t) {
+                                    n || ((n = !0), u.resolve(o, t));
+                                  },
+                                  function (t) {
+                                    n || ((n = !0), u.reject(o, t));
+                                  },
+                                );
+                            return o;
+                          });
+                      },
+                      { immediate: 36 },
+                    ],
+                    38: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r = {};
+                        (0, t('./lib/utils/common').assign)(
+                          r,
+                          t('./lib/deflate'),
+                          t('./lib/inflate'),
+                          t('./lib/zlib/constants'),
+                        ),
+                          (e.exports = r);
+                      },
+                      {
+                        './lib/deflate': 39,
+                        './lib/inflate': 40,
+                        './lib/utils/common': 41,
+                        './lib/zlib/constants': 44,
+                      },
+                    ],
+                    39: [
+                      function (t, e, n) {
+                        'use strict';
+                        var a = t('./zlib/deflate'),
+                          s = t('./utils/common'),
+                          l = t('./utils/strings'),
+                          r = t('./zlib/messages'),
+                          i = t('./zlib/zstream'),
+                          u = Object.prototype.toString;
+                        function o(t) {
+                          if (!(this instanceof o)) return new o(t);
+                          this.options = s.assign(
+                            {
+                              level: -1,
+                              method: 8,
+                              chunkSize: 16384,
+                              windowBits: 15,
+                              memLevel: 8,
+                              strategy: 0,
+                              to: '',
+                            },
+                            t || {},
+                          );
+                          var t = this.options,
+                            e =
+                              (t.raw && 0 < t.windowBits
+                                ? (t.windowBits = -t.windowBits)
+                                : t.gzip &&
+                                  0 < t.windowBits &&
+                                  t.windowBits < 16 &&
+                                  (t.windowBits += 16),
+                              (this.err = 0),
+                              (this.msg = ''),
+                              (this.ended = !1),
+                              (this.chunks = []),
+                              (this.strm = new i()),
+                              (this.strm.avail_out = 0),
+                              a.deflateInit2(
+                                this.strm,
+                                t.level,
+                                t.method,
+                                t.windowBits,
+                                t.memLevel,
+                                t.strategy,
+                              ));
+                          if (0 !== e) throw new Error(r[e]);
+                          if ((t.header && a.deflateSetHeader(this.strm, t.header), t.dictionary)) {
+                            t =
+                              'string' == typeof t.dictionary
+                                ? l.string2buf(t.dictionary)
+                                : '[object ArrayBuffer]' === u.call(t.dictionary)
+                                  ? new Uint8Array(t.dictionary)
+                                  : t.dictionary;
+                            if (0 !== (e = a.deflateSetDictionary(this.strm, t)))
+                              throw new Error(r[e]);
+                            this._dict_set = !0;
+                          }
+                        }
+                        function c(t, e) {
+                          e = new o(e);
+                          if ((e.push(t, !0), e.err)) throw e.msg || r[e.err];
+                          return e.result;
+                        }
+                        (o.prototype.push = function (t, e) {
+                          var n,
+                            r,
+                            i = this.strm,
+                            o = this.options.chunkSize;
+                          if (this.ended) return !1;
+                          (r = e === ~~e ? e : !0 === e ? 4 : 0),
+                            'string' == typeof t
+                              ? (i.input = l.string2buf(t))
+                              : '[object ArrayBuffer]' === u.call(t)
+                                ? (i.input = new Uint8Array(t))
+                                : (i.input = t),
+                            (i.next_in = 0),
+                            (i.avail_in = i.input.length);
+                          do {
+                            if (
+                              (0 === i.avail_out &&
+                                ((i.output = new s.Buf8(o)), (i.next_out = 0), (i.avail_out = o)),
+                              1 !== (n = a.deflate(i, r)) && 0 !== n)
+                            )
+                              return this.onEnd(n), !(this.ended = !0);
+                          } while (
+                            ((0 !== i.avail_out && (0 !== i.avail_in || (4 !== r && 2 !== r))) ||
+                              ('string' === this.options.to
+                                ? this.onData(l.buf2binstring(s.shrinkBuf(i.output, i.next_out)))
+                                : this.onData(s.shrinkBuf(i.output, i.next_out))),
+                            (0 < i.avail_in || 0 === i.avail_out) && 1 !== n)
+                          );
+                          return 4 === r
+                            ? ((n = a.deflateEnd(this.strm)),
+                              this.onEnd(n),
+                              (this.ended = !0),
+                              0 === n)
+                            : 2 !== r || (this.onEnd(0), !(i.avail_out = 0));
+                        }),
+                          (o.prototype.onData = function (t) {
+                            this.chunks.push(t);
+                          }),
+                          (o.prototype.onEnd = function (t) {
+                            0 === t &&
+                              ('string' === this.options.to
+                                ? (this.result = this.chunks.join(''))
+                                : (this.result = s.flattenChunks(this.chunks))),
+                              (this.chunks = []),
+                              (this.err = t),
+                              (this.msg = this.strm.msg);
+                          }),
+                          (n.Deflate = o),
+                          (n.deflate = c),
+                          (n.deflateRaw = function (t, e) {
+                            return ((e = e || {}).raw = !0), c(t, e);
+                          }),
+                          (n.gzip = function (t, e) {
+                            return ((e = e || {}).gzip = !0), c(t, e);
+                          });
+                      },
+                      {
+                        './utils/common': 41,
+                        './utils/strings': 42,
+                        './zlib/deflate': 46,
+                        './zlib/messages': 51,
+                        './zlib/zstream': 53,
+                      },
+                    ],
+                    40: [
+                      function (t, e, n) {
+                        'use strict';
+                        var A = t('./zlib/inflate'),
+                          h = t('./utils/common'),
+                          p = t('./utils/strings'),
+                          d = t('./zlib/constants'),
+                          r = t('./zlib/messages'),
+                          i = t('./zlib/zstream'),
+                          o = t('./zlib/gzheader'),
+                          f = Object.prototype.toString;
+                        function a(t) {
+                          if (!(this instanceof a)) return new a(t);
+                          this.options = h.assign(
+                            { chunkSize: 16384, windowBits: 0, to: '' },
+                            t || {},
+                          );
+                          var e = this.options,
+                            t =
+                              (e.raw &&
+                                0 <= e.windowBits &&
+                                e.windowBits < 16 &&
+                                ((e.windowBits = -e.windowBits),
+                                0 === e.windowBits && (e.windowBits = -15)),
+                              !(0 <= e.windowBits && e.windowBits < 16) ||
+                                (t && t.windowBits) ||
+                                (e.windowBits += 32),
+                              15 < e.windowBits &&
+                                e.windowBits < 48 &&
+                                0 == (15 & e.windowBits) &&
+                                (e.windowBits |= 15),
+                              (this.err = 0),
+                              (this.msg = ''),
+                              (this.ended = !1),
+                              (this.chunks = []),
+                              (this.strm = new i()),
+                              (this.strm.avail_out = 0),
+                              A.inflateInit2(this.strm, e.windowBits));
+                          if (t !== d.Z_OK) throw new Error(r[t]);
+                          (this.header = new o()), A.inflateGetHeader(this.strm, this.header);
+                        }
+                        function s(t, e) {
+                          e = new a(e);
+                          if ((e.push(t, !0), e.err)) throw e.msg || r[e.err];
+                          return e.result;
+                        }
+                        (a.prototype.push = function (t, e) {
+                          var n,
+                            r,
+                            i,
+                            o,
+                            a,
+                            s = this.strm,
+                            l = this.options.chunkSize,
+                            u = this.options.dictionary,
+                            c = !1;
+                          if (this.ended) return !1;
+                          (r = e === ~~e ? e : !0 === e ? d.Z_FINISH : d.Z_NO_FLUSH),
+                            'string' == typeof t
+                              ? (s.input = p.binstring2buf(t))
+                              : '[object ArrayBuffer]' === f.call(t)
+                                ? (s.input = new Uint8Array(t))
+                                : (s.input = t),
+                            (s.next_in = 0),
+                            (s.avail_in = s.input.length);
+                          do {
+                            if (
+                              (0 === s.avail_out &&
+                                ((s.output = new h.Buf8(l)), (s.next_out = 0), (s.avail_out = l)),
+                              (n = A.inflate(s, d.Z_NO_FLUSH)) === d.Z_NEED_DICT &&
+                                u &&
+                                ((a =
+                                  'string' == typeof u
+                                    ? p.string2buf(u)
+                                    : '[object ArrayBuffer]' === f.call(u)
+                                      ? new Uint8Array(u)
+                                      : u),
+                                (n = A.inflateSetDictionary(this.strm, a))),
+                              n === d.Z_BUF_ERROR && !0 === c && ((n = d.Z_OK), (c = !1)),
+                              n !== d.Z_STREAM_END && n !== d.Z_OK)
+                            )
+                              return this.onEnd(n), !(this.ended = !0);
+                          } while (
+                            (!s.next_out ||
+                              (0 !== s.avail_out &&
+                                n !== d.Z_STREAM_END &&
+                                (0 !== s.avail_in || (r !== d.Z_FINISH && r !== d.Z_SYNC_FLUSH))) ||
+                              ('string' === this.options.to
+                                ? ((a = p.utf8border(s.output, s.next_out)),
+                                  (i = s.next_out - a),
+                                  (o = p.buf2string(s.output, a)),
+                                  (s.next_out = i),
+                                  (s.avail_out = l - i),
+                                  i && h.arraySet(s.output, s.output, a, i, 0),
+                                  this.onData(o))
+                                : this.onData(h.shrinkBuf(s.output, s.next_out))),
+                            0 === s.avail_in && 0 === s.avail_out && (c = !0),
+                            (0 < s.avail_in || 0 === s.avail_out) && n !== d.Z_STREAM_END)
+                          );
+                          return (r = n === d.Z_STREAM_END ? d.Z_FINISH : r) === d.Z_FINISH
+                            ? ((n = A.inflateEnd(this.strm)),
+                              this.onEnd(n),
+                              (this.ended = !0),
+                              n === d.Z_OK)
+                            : r !== d.Z_SYNC_FLUSH || (this.onEnd(d.Z_OK), !(s.avail_out = 0));
+                        }),
+                          (a.prototype.onData = function (t) {
+                            this.chunks.push(t);
+                          }),
+                          (a.prototype.onEnd = function (t) {
+                            t === d.Z_OK &&
+                              ('string' === this.options.to
+                                ? (this.result = this.chunks.join(''))
+                                : (this.result = h.flattenChunks(this.chunks))),
+                              (this.chunks = []),
+                              (this.err = t),
+                              (this.msg = this.strm.msg);
+                          }),
+                          (n.Inflate = a),
+                          (n.inflate = s),
+                          (n.inflateRaw = function (t, e) {
+                            return ((e = e || {}).raw = !0), s(t, e);
+                          }),
+                          (n.ungzip = s);
+                      },
+                      {
+                        './utils/common': 41,
+                        './utils/strings': 42,
+                        './zlib/constants': 44,
+                        './zlib/gzheader': 47,
+                        './zlib/inflate': 49,
+                        './zlib/messages': 51,
+                        './zlib/zstream': 53,
+                      },
+                    ],
+                    41: [
+                      function (t, e, n) {
+                        'use strict';
+                        var r =
+                            'undefined' != typeof Uint8Array &&
+                            'undefined' != typeof Uint16Array &&
+                            'undefined' != typeof Int32Array,
+                          i =
+                            ((n.assign = function (t) {
+                              for (var e = Array.prototype.slice.call(arguments, 1); e.length; ) {
+                                var n = e.shift();
+                                if (n) {
+                                  if ('object' != typeof n)
+                                    throw new TypeError(n + 'must be non-object');
+                                  for (var r in n) n.hasOwnProperty(r) && (t[r] = n[r]);
+                                }
+                              }
+                              return t;
+                            }),
+                            (n.shrinkBuf = function (t, e) {
+                              return t.length === e
+                                ? t
+                                : t.subarray
+                                  ? t.subarray(0, e)
+                                  : ((t.length = e), t);
+                            }),
+                            {
+                              arraySet: function (t, e, n, r, i) {
+                                if (e.subarray && t.subarray) t.set(e.subarray(n, n + r), i);
+                                else for (var o = 0; o < r; o++) t[i + o] = e[n + o];
+                              },
+                              flattenChunks: function (t) {
+                                for (var e, n, r, i, o = (e = 0), a = t.length; o < a; o++)
+                                  e += t[o].length;
+                                for (i = new Uint8Array(e), o = n = 0, a = t.length; o < a; o++)
+                                  (r = t[o]), i.set(r, n), (n += r.length);
+                                return i;
+                              },
+                            }),
+                          o = {
+                            arraySet: function (t, e, n, r, i) {
+                              for (var o = 0; o < r; o++) t[i + o] = e[n + o];
+                            },
+                            flattenChunks: function (t) {
+                              return [].concat.apply([], t);
+                            },
+                          };
+                        (n.setTyped = function (t) {
+                          t
+                            ? ((n.Buf8 = Uint8Array),
+                              (n.Buf16 = Uint16Array),
+                              (n.Buf32 = Int32Array),
+                              n.assign(n, i))
+                            : ((n.Buf8 = Array),
+                              (n.Buf16 = Array),
+                              (n.Buf32 = Array),
+                              n.assign(n, o));
+                        }),
+                          n.setTyped(r);
+                      },
+                      {},
+                    ],
+                    42: [
+                      function (t, e, n) {
+                        'use strict';
+                        var l = t('./common'),
+                          i = !0,
+                          o = !0;
+                        try {
+                          String.fromCharCode.apply(null, [0]);
+                        } catch (t) {
+                          i = !1;
+                        }
+                        try {
+                          String.fromCharCode.apply(null, new Uint8Array(1));
+                        } catch (t) {
+                          o = !1;
+                        }
+                        for (var u = new l.Buf8(256), r = 0; r < 256; r++)
+                          u[r] =
+                            252 <= r
+                              ? 6
+                              : 248 <= r
+                                ? 5
+                                : 240 <= r
+                                  ? 4
+                                  : 224 <= r
+                                    ? 3
+                                    : 192 <= r
+                                      ? 2
+                                      : 1;
+                        function c(t, e) {
+                          if (e < 65537 && ((t.subarray && o) || (!t.subarray && i)))
+                            return String.fromCharCode.apply(null, l.shrinkBuf(t, e));
+                          for (var n = '', r = 0; r < e; r++) n += String.fromCharCode(t[r]);
+                          return n;
+                        }
+                        (u[254] = u[254] = 1),
+                          (n.string2buf = function (t) {
+                            for (var e, n, r, i, o = t.length, a = 0, s = 0; s < o; s++)
+                              55296 == (64512 & (n = t.charCodeAt(s))) &&
+                                s + 1 < o &&
+                                56320 == (64512 & (r = t.charCodeAt(s + 1))) &&
+                                ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), s++),
+                                (a += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4);
+                            for (e = new l.Buf8(a), s = i = 0; i < a; s++)
+                              55296 == (64512 & (n = t.charCodeAt(s))) &&
+                                s + 1 < o &&
+                                56320 == (64512 & (r = t.charCodeAt(s + 1))) &&
+                                ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), s++),
+                                n < 128
+                                  ? (e[i++] = n)
+                                  : (n < 2048
+                                      ? (e[i++] = 192 | (n >>> 6))
+                                      : (n < 65536
+                                          ? (e[i++] = 224 | (n >>> 12))
+                                          : ((e[i++] = 240 | (n >>> 18)),
+                                            (e[i++] = 128 | ((n >>> 12) & 63))),
+                                        (e[i++] = 128 | ((n >>> 6) & 63))),
+                                    (e[i++] = 128 | (63 & n)));
+                            return e;
+                          }),
+                          (n.buf2binstring = function (t) {
+                            return c(t, t.length);
+                          }),
+                          (n.binstring2buf = function (t) {
+                            for (var e = new l.Buf8(t.length), n = 0, r = e.length; n < r; n++)
+                              e[n] = t.charCodeAt(n);
+                            return e;
+                          }),
+                          (n.buf2string = function (t, e) {
+                            for (
+                              var n, r, i, o = e || t.length, a = new Array(2 * o), s = (n = 0);
+                              s < o;
+
+                            )
+                              if ((r = t[s++]) < 128) a[n++] = r;
+                              else if (4 < (i = u[r])) (a[n++] = 65533), (s += i - 1);
+                              else {
+                                for (r &= 2 === i ? 31 : 3 === i ? 15 : 7; 1 < i && s < o; )
+                                  (r = (r << 6) | (63 & t[s++])), i--;
+                                1 < i
+                                  ? (a[n++] = 65533)
+                                  : r < 65536
+                                    ? (a[n++] = r)
+                                    : ((r -= 65536),
+                                      (a[n++] = 55296 | ((r >> 10) & 1023)),
+                                      (a[n++] = 56320 | (1023 & r)));
+                              }
+                            return c(a, n);
+                          }),
+                          (n.utf8border = function (t, e) {
+                            for (
+                              var n = (e = (e = e || t.length) > t.length ? t.length : e) - 1;
+                              0 <= n && 128 == (192 & t[n]);
+
+                            )
+                              n--;
+                            return !(n < 0) && 0 !== n && n + u[t[n]] > e ? n : e;
+                          });
+                      },
+                      { './common': 41 },
+                    ],
+                    43: [
+                      function (t, e, n) {
+                        'use strict';
+                        e.exports = function (t, e, n, r) {
+                          for (
+                            var i = (65535 & t) | 0, o = ((t >>> 16) & 65535) | 0, a = 0;
+                            0 !== n;
+
+                          ) {
+                            for (
+                              n -= a = 2e3 < n ? 2e3 : n;
+                              (o = (o + (i = (i + e[r++]) | 0)) | 0), --a;
+
+                            );
+                            (i %= 65521), (o %= 65521);
+                          }
+                          return i | (o << 16) | 0;
+                        };
+                      },
+                      {},
+                    ],
+                    44: [
+                      function (t, e, n) {
+                        'use strict';
+                        e.exports = {
+                          Z_NO_FLUSH: 0,
+                          Z_PARTIAL_FLUSH: 1,
+                          Z_SYNC_FLUSH: 2,
+                          Z_FULL_FLUSH: 3,
+                          Z_FINISH: 4,
+                          Z_BLOCK: 5,
+                          Z_TREES: 6,
+                          Z_OK: 0,
+                          Z_STREAM_END: 1,
+                          Z_NEED_DICT: 2,
+                          Z_ERRNO: -1,
+                          Z_STREAM_ERROR: -2,
+                          Z_DATA_ERROR: -3,
+                          Z_BUF_ERROR: -5,
+                          Z_NO_COMPRESSION: 0,
+                          Z_BEST_SPEED: 1,
+                          Z_BEST_COMPRESSION: 9,
+                          Z_DEFAULT_COMPRESSION: -1,
+                          Z_FILTERED: 1,
+                          Z_HUFFMAN_ONLY: 2,
+                          Z_RLE: 3,
+                          Z_FIXED: 4,
+                          Z_DEFAULT_STRATEGY: 0,
+                          Z_BINARY: 0,
+                          Z_TEXT: 1,
+                          Z_UNKNOWN: 2,
+                          Z_DEFLATED: 8,
+                        };
+                      },
+                      {},
+                    ],
+                    45: [
+                      function (t, e, n) {
+                        'use strict';
+                        var s = (function () {
+                          for (var t = [], e = 0; e < 256; e++) {
+                            for (var n = e, r = 0; r < 8; r++)
+                              n = 1 & n ? 3988292384 ^ (n >>> 1) : n >>> 1;
+                            t[e] = n;
+                          }
+                          return t;
+                        })();
+                        e.exports = function (t, e, n, r) {
+                          var i = s,
+                            o = r + n;
+                          t ^= -1;
+                          for (var a = r; a < o; a++) t = (t >>> 8) ^ i[255 & (t ^ e[a])];
+                          return -1 ^ t;
+                        };
+                      },
+                      {},
+                    ],
+                    46: [
+                      function (t, U, e) {
+                        'use strict';
+                        var s,
+                          A = t('../utils/common'),
+                          l = t('./trees'),
+                          h = t('./adler32'),
+                          p = t('./crc32'),
+                          n = t('./messages'),
+                          u = 0,
+                          c = 0,
+                          d = -2,
+                          r = 2,
+                          f = 8,
+                          i = 286,
+                          o = 30,
+                          a = 19,
+                          N = 2 * i + 1,
+                          P = 15,
+                          g = 3,
+                          m = 258,
+                          v = m + g + 1,
+                          b = 42,
+                          y = 113;
+                        function w(t, e) {
+                          return (t.msg = n[e]), e;
+                        }
+                        function E(t) {
+                          return (t << 1) - (4 < t ? 9 : 0);
+                        }
+                        function B(t) {
+                          for (var e = t.length; 0 <= --e; ) t[e] = 0;
+                        }
+                        function C(t) {
+                          var e = t.state,
+                            n = e.pending;
+                          0 !== (n = n > t.avail_out ? t.avail_out : n) &&
+                            (A.arraySet(t.output, e.pending_buf, e.pending_out, n, t.next_out),
+                            (t.next_out += n),
+                            (e.pending_out += n),
+                            (t.total_out += n),
+                            (t.avail_out -= n),
+                            (e.pending -= n),
+                            0 === e.pending && (e.pending_out = 0));
+                        }
+                        function x(t, e) {
+                          l._tr_flush_block(
+                            t,
+                            0 <= t.block_start ? t.block_start : -1,
+                            t.strstart - t.block_start,
+                            e,
+                          ),
+                            (t.block_start = t.strstart),
+                            C(t.strm);
+                        }
+                        function I(t, e) {
+                          t.pending_buf[t.pending++] = e;
+                        }
+                        function M(t, e) {
+                          (t.pending_buf[t.pending++] = (e >>> 8) & 255),
+                            (t.pending_buf[t.pending++] = 255 & e);
+                        }
+                        function D(t, e) {
+                          var n,
+                            r,
+                            i = t.max_chain_length,
+                            o = t.strstart,
+                            a = t.prev_length,
+                            s = t.nice_match,
+                            l = t.strstart > t.w_size - v ? t.strstart - (t.w_size - v) : 0,
+                            u = t.window,
+                            c = t.w_mask,
+                            A = t.prev,
+                            h = t.strstart + m,
+                            p = u[o + a - 1],
+                            d = u[o + a];
+                          t.prev_length >= t.good_match && (i >>= 2),
+                            s > t.lookahead && (s = t.lookahead);
+                          do {
+                            if (
+                              u[(n = e) + a] === d &&
+                              u[n + a - 1] === p &&
+                              u[n] === u[o] &&
+                              u[++n] === u[o + 1]
+                            ) {
+                              for (
+                                o += 2, n++;
+                                u[++o] === u[++n] &&
+                                u[++o] === u[++n] &&
+                                u[++o] === u[++n] &&
+                                u[++o] === u[++n] &&
+                                u[++o] === u[++n] &&
+                                u[++o] === u[++n] &&
+                                u[++o] === u[++n] &&
+                                u[++o] === u[++n] &&
+                                o < h;
+
+                              );
+                              if (((r = m - (h - o)), (o = h - m), a < r)) {
+                                if (((t.match_start = e), s <= (a = r))) break;
+                                (p = u[o + a - 1]), (d = u[o + a]);
+                              }
+                            }
+                          } while ((e = A[e & c]) > l && 0 != --i);
+                          return a <= t.lookahead ? a : t.lookahead;
+                        }
+                        function S(t) {
+                          var e,
+                            n,
+                            r,
+                            i,
+                            o,
+                            a,
+                            s,
+                            l,
+                            u,
+                            c = t.w_size;
+                          do {
+                            if (
+                              ((l = t.window_size - t.lookahead - t.strstart),
+                              t.strstart >= c + (c - v))
+                            ) {
+                              for (
+                                A.arraySet(t.window, t.window, c, c, 0),
+                                  t.match_start -= c,
+                                  t.strstart -= c,
+                                  t.block_start -= c,
+                                  e = n = t.hash_size;
+                                (r = t.head[--e]), (t.head[e] = c <= r ? r - c : 0), --n;
+
+                              );
+                              for (
+                                e = n = c;
+                                (r = t.prev[--e]), (t.prev[e] = c <= r ? r - c : 0), --n;
+
+                              );
+                              l += c;
+                            }
+                            if (0 === t.strm.avail_in) break;
+                            if (
+                              ((o = t.strm),
+                              (a = t.window),
+                              (s = t.strstart + t.lookahead),
+                              (u = void 0),
+                              (n =
+                                0 === (u = (l = l) < (u = o.avail_in) ? l : u)
+                                  ? 0
+                                  : ((o.avail_in -= u),
+                                    A.arraySet(a, o.input, o.next_in, u, s),
+                                    1 === o.state.wrap
+                                      ? (o.adler = h(o.adler, a, u, s))
+                                      : 2 === o.state.wrap && (o.adler = p(o.adler, a, u, s)),
+                                    (o.next_in += u),
+                                    (o.total_in += u),
+                                    u)),
+                              (t.lookahead += n),
+                              t.lookahead + t.insert >= g)
+                            )
+                              for (
+                                i = t.strstart - t.insert,
+                                  t.ins_h = t.window[i],
+                                  t.ins_h =
+                                    ((t.ins_h << t.hash_shift) ^ t.window[i + 1]) & t.hash_mask;
+                                t.insert &&
+                                ((t.ins_h =
+                                  ((t.ins_h << t.hash_shift) ^ t.window[i + g - 1]) & t.hash_mask),
+                                (t.prev[i & t.w_mask] = t.head[t.ins_h]),
+                                (t.head[t.ins_h] = i),
+                                i++,
+                                t.insert--,
+                                !(t.lookahead + t.insert < g));
+
+                              );
+                          } while (t.lookahead < v && 0 !== t.strm.avail_in);
+                        }
+                        function k(t, e) {
+                          for (var n, r; ; ) {
+                            if (t.lookahead < v) {
+                              if ((S(t), t.lookahead < v && e === u)) return 1;
+                              if (0 === t.lookahead) break;
+                            }
+                            if (
+                              ((n = 0),
+                              t.lookahead >= g &&
+                                ((t.ins_h =
+                                  ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) &
+                                  t.hash_mask),
+                                (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]),
+                                (t.head[t.ins_h] = t.strstart)),
+                              0 !== n &&
+                                t.strstart - n <= t.w_size - v &&
+                                (t.match_length = D(t, n)),
+                              t.match_length >= g)
+                            )
+                              if (
+                                ((r = l._tr_tally(
+                                  t,
+                                  t.strstart - t.match_start,
+                                  t.match_length - g,
+                                )),
+                                (t.lookahead -= t.match_length),
+                                t.match_length <= t.max_lazy_match && t.lookahead >= g)
+                              ) {
+                                for (
+                                  t.match_length--;
+                                  t.strstart++,
+                                    (t.ins_h =
+                                      ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) &
+                                      t.hash_mask),
+                                    (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]),
+                                    (t.head[t.ins_h] = t.strstart),
+                                    0 != --t.match_length;
+
+                                );
+                                t.strstart++;
+                              } else
+                                (t.strstart += t.match_length),
+                                  (t.match_length = 0),
+                                  (t.ins_h = t.window[t.strstart]),
+                                  (t.ins_h =
+                                    ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + 1]) &
+                                    t.hash_mask);
+                            else
+                              (r = l._tr_tally(t, 0, t.window[t.strstart])),
+                                t.lookahead--,
+                                t.strstart++;
+                            if (r && (x(t, !1), 0 === t.strm.avail_out)) return 1;
+                          }
+                          return (
+                            (t.insert = t.strstart < g - 1 ? t.strstart : g - 1),
+                            4 === e
+                              ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4)
+                              : t.last_lit && (x(t, !1), 0 === t.strm.avail_out)
+                                ? 1
+                                : 2
+                          );
+                        }
+                        function F(t, e) {
+                          for (var n, r, i; ; ) {
+                            if (t.lookahead < v) {
+                              if ((S(t), t.lookahead < v && e === u)) return 1;
+                              if (0 === t.lookahead) break;
+                            }
+                            if (
+                              ((n = 0),
+                              t.lookahead >= g &&
+                                ((t.ins_h =
+                                  ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) &
+                                  t.hash_mask),
+                                (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]),
+                                (t.head[t.ins_h] = t.strstart)),
+                              (t.prev_length = t.match_length),
+                              (t.prev_match = t.match_start),
+                              (t.match_length = g - 1),
+                              0 !== n &&
+                                t.prev_length < t.max_lazy_match &&
+                                t.strstart - n <= t.w_size - v &&
+                                ((t.match_length = D(t, n)),
+                                t.match_length <= 5 &&
+                                  (1 === t.strategy ||
+                                    (t.match_length === g && 4096 < t.strstart - t.match_start)) &&
+                                  (t.match_length = g - 1)),
+                              t.prev_length >= g && t.match_length <= t.prev_length)
+                            ) {
+                              for (
+                                i = t.strstart + t.lookahead - g,
+                                  r = l._tr_tally(
+                                    t,
+                                    t.strstart - 1 - t.prev_match,
+                                    t.prev_length - g,
+                                  ),
+                                  t.lookahead -= t.prev_length - 1,
+                                  t.prev_length -= 2;
+                                ++t.strstart <= i &&
+                                  ((t.ins_h =
+                                    ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) &
+                                    t.hash_mask),
+                                  (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]),
+                                  (t.head[t.ins_h] = t.strstart)),
+                                  0 != --t.prev_length;
+
+                              );
+                              if (
+                                ((t.match_available = 0),
+                                (t.match_length = g - 1),
+                                t.strstart++,
+                                r && (x(t, !1), 0 === t.strm.avail_out))
+                              )
+                                return 1;
+                            } else if (t.match_available) {
+                              if (
+                                ((r = l._tr_tally(t, 0, t.window[t.strstart - 1])) && x(t, !1),
+                                t.strstart++,
+                                t.lookahead--,
+                                0 === t.strm.avail_out)
+                              )
+                                return 1;
+                            } else (t.match_available = 1), t.strstart++, t.lookahead--;
+                          }
+                          return (
+                            t.match_available &&
+                              ((r = l._tr_tally(t, 0, t.window[t.strstart - 1])),
+                              (t.match_available = 0)),
+                            (t.insert = t.strstart < g - 1 ? t.strstart : g - 1),
+                            4 === e
+                              ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4)
+                              : t.last_lit && (x(t, !1), 0 === t.strm.avail_out)
+                                ? 1
+                                : 2
+                          );
+                        }
+                        function Q(t, e, n, r, i) {
+                          (this.good_length = t),
+                            (this.max_lazy = e),
+                            (this.nice_length = n),
+                            (this.max_chain = r),
+                            (this.func = i);
+                        }
+                        function L() {
+                          (this.strm = null),
+                            (this.status = 0),
+                            (this.pending_buf = null),
+                            (this.pending_buf_size = 0),
+                            (this.pending_out = 0),
+                            (this.pending = 0),
+                            (this.wrap = 0),
+                            (this.gzhead = null),
+                            (this.gzindex = 0),
+                            (this.method = f),
+                            (this.last_flush = -1),
+                            (this.w_size = 0),
+                            (this.w_bits = 0),
+                            (this.w_mask = 0),
+                            (this.window = null),
+                            (this.window_size = 0),
+                            (this.prev = null),
+                            (this.head = null),
+                            (this.ins_h = 0),
+                            (this.hash_size = 0),
+                            (this.hash_bits = 0),
+                            (this.hash_mask = 0),
+                            (this.hash_shift = 0),
+                            (this.block_start = 0),
+                            (this.match_length = 0),
+                            (this.prev_match = 0),
+                            (this.match_available = 0),
+                            (this.strstart = 0),
+                            (this.match_start = 0),
+                            (this.lookahead = 0),
+                            (this.prev_length = 0),
+                            (this.max_chain_length = 0),
+                            (this.max_lazy_match = 0),
+                            (this.level = 0),
+                            (this.strategy = 0),
+                            (this.good_match = 0),
+                            (this.nice_match = 0),
+                            (this.dyn_ltree = new A.Buf16(2 * N)),
+                            (this.dyn_dtree = new A.Buf16(2 * (2 * o + 1))),
+                            (this.bl_tree = new A.Buf16(2 * (2 * a + 1))),
+                            B(this.dyn_ltree),
+                            B(this.dyn_dtree),
+                            B(this.bl_tree),
+                            (this.l_desc = null),
+                            (this.d_desc = null),
+                            (this.bl_desc = null),
+                            (this.bl_count = new A.Buf16(P + 1)),
+                            (this.heap = new A.Buf16(2 * i + 1)),
+                            B(this.heap),
+                            (this.heap_len = 0),
+                            (this.heap_max = 0),
+                            (this.depth = new A.Buf16(2 * i + 1)),
+                            B(this.depth),
+                            (this.l_buf = 0),
+                            (this.lit_bufsize = 0),
+                            (this.last_lit = 0),
+                            (this.d_buf = 0),
+                            (this.opt_len = 0),
+                            (this.static_len = 0),
+                            (this.matches = 0),
+                            (this.insert = 0),
+                            (this.bi_buf = 0),
+                            (this.bi_valid = 0);
+                        }
+                        function _(t) {
+                          var e;
+                          return t && t.state
+                            ? ((t.total_in = t.total_out = 0),
+                              (t.data_type = r),
+                              ((e = t.state).pending = 0),
+                              (e.pending_out = 0),
+                              e.wrap < 0 && (e.wrap = -e.wrap),
+                              (e.status = e.wrap ? b : y),
+                              (t.adler = 2 === e.wrap ? 0 : 1),
+                              (e.last_flush = u),
+                              l._tr_init(e),
+                              c)
+                            : w(t, d);
+                        }
+                        function T(t) {
+                          var e = _(t);
+                          return (
+                            e === c &&
+                              (((t = t.state).window_size = 2 * t.w_size),
+                              B(t.head),
+                              (t.max_lazy_match = s[t.level].max_lazy),
+                              (t.good_match = s[t.level].good_length),
+                              (t.nice_match = s[t.level].nice_length),
+                              (t.max_chain_length = s[t.level].max_chain),
+                              (t.strstart = 0),
+                              (t.block_start = 0),
+                              (t.lookahead = 0),
+                              (t.insert = 0),
+                              (t.match_length = t.prev_length = g - 1),
+                              (t.match_available = 0),
+                              (t.ins_h = 0)),
+                            e
+                          );
+                        }
+                        function R(t, e, n, r, i, o) {
+                          if (!t) return d;
+                          var a = 1;
+                          if (
+                            (-1 === e && (e = 6),
+                            r < 0 ? ((a = 0), (r = -r)) : 15 < r && ((a = 2), (r -= 16)),
+                            i < 1 ||
+                              9 < i ||
+                              n !== f ||
+                              r < 8 ||
+                              15 < r ||
+                              e < 0 ||
+                              9 < e ||
+                              o < 0 ||
+                              4 < o)
+                          )
+                            return w(t, d);
+                          8 === r && (r = 9);
+                          var s = new L();
+                          return (
+                            ((t.state = s).strm = t),
+                            (s.wrap = a),
+                            (s.gzhead = null),
+                            (s.w_bits = r),
+                            (s.w_size = 1 << s.w_bits),
+                            (s.w_mask = s.w_size - 1),
+                            (s.hash_bits = i + 7),
+                            (s.hash_size = 1 << s.hash_bits),
+                            (s.hash_mask = s.hash_size - 1),
+                            (s.hash_shift = ~~((s.hash_bits + g - 1) / g)),
+                            (s.window = new A.Buf8(2 * s.w_size)),
+                            (s.head = new A.Buf16(s.hash_size)),
+                            (s.prev = new A.Buf16(s.w_size)),
+                            (s.lit_bufsize = 1 << (i + 6)),
+                            (s.pending_buf_size = 4 * s.lit_bufsize),
+                            (s.pending_buf = new A.Buf8(s.pending_buf_size)),
+                            (s.d_buf = +s.lit_bufsize),
+                            (s.l_buf = 3 * s.lit_bufsize),
+                            (s.level = e),
+                            (s.strategy = o),
+                            (s.method = n),
+                            T(t)
+                          );
+                        }
+                        (s = [
+                          new Q(0, 0, 0, 0, function (t, e) {
+                            var n = 65535;
+                            for (n > t.pending_buf_size - 5 && (n = t.pending_buf_size - 5); ; ) {
+                              if (t.lookahead <= 1) {
+                                if ((S(t), 0 === t.lookahead && e === u)) return 1;
+                                if (0 === t.lookahead) break;
+                              }
+                              (t.strstart += t.lookahead), (t.lookahead = 0);
+                              var r = t.block_start + n;
+                              if (
+                                (0 === t.strstart || t.strstart >= r) &&
+                                ((t.lookahead = t.strstart - r),
+                                (t.strstart = r),
+                                x(t, !1),
+                                0 === t.strm.avail_out)
+                              )
+                                return 1;
+                              if (
+                                t.strstart - t.block_start >= t.w_size - v &&
+                                (x(t, !1), 0 === t.strm.avail_out)
+                              )
+                                return 1;
+                            }
+                            return (
+                              (t.insert = 0),
+                              4 === e
+                                ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4)
+                                : (t.strstart > t.block_start && (x(t, !1), t.strm.avail_out), 1)
+                            );
+                          }),
+                          new Q(4, 4, 8, 4, k),
+                          new Q(4, 5, 16, 8, k),
+                          new Q(4, 6, 32, 32, k),
+                          new Q(4, 4, 16, 16, F),
+                          new Q(8, 16, 32, 32, F),
+                          new Q(8, 16, 128, 128, F),
+                          new Q(8, 32, 128, 256, F),
+                          new Q(32, 128, 258, 1024, F),
+                          new Q(32, 258, 258, 4096, F),
+                        ]),
+                          (e.deflateInit = function (t, e) {
+                            return R(t, e, f, 15, 8, 0);
+                          }),
+                          (e.deflateInit2 = R),
+                          (e.deflateReset = T),
+                          (e.deflateResetKeep = _),
+                          (e.deflateSetHeader = function (t, e) {
+                            return !t || !t.state || 2 !== t.state.wrap
+                              ? d
+                              : ((t.state.gzhead = e), c);
+                          }),
+                          (e.deflate = function (t, e) {
+                            var n, r, i, o;
+                            if (!t || !t.state || 5 < e || e < 0) return t ? w(t, d) : d;
+                            if (
+                              ((r = t.state),
+                              !t.output ||
+                                (!t.input && 0 !== t.avail_in) ||
+                                (666 === r.status && 4 !== e))
+                            )
+                              return w(t, 0 === t.avail_out ? -5 : d);
+                            if (
+                              ((r.strm = t),
+                              (n = r.last_flush),
+                              (r.last_flush = e),
+                              r.status === b &&
+                                (2 === r.wrap
+                                  ? ((t.adler = 0),
+                                    I(r, 31),
+                                    I(r, 139),
+                                    I(r, 8),
+                                    r.gzhead
+                                      ? (I(
+                                          r,
+                                          (r.gzhead.text ? 1 : 0) +
+                                            (r.gzhead.hcrc ? 2 : 0) +
+                                            (r.gzhead.extra ? 4 : 0) +
+                                            (r.gzhead.name ? 8 : 0) +
+                                            (r.gzhead.comment ? 16 : 0),
+                                        ),
+                                        I(r, 255 & r.gzhead.time),
+                                        I(r, (r.gzhead.time >> 8) & 255),
+                                        I(r, (r.gzhead.time >> 16) & 255),
+                                        I(r, (r.gzhead.time >> 24) & 255),
+                                        I(
+                                          r,
+                                          9 === r.level
+                                            ? 2
+                                            : 2 <= r.strategy || r.level < 2
+                                              ? 4
+                                              : 0,
+                                        ),
+                                        I(r, 255 & r.gzhead.os),
+                                        r.gzhead.extra &&
+                                          r.gzhead.extra.length &&
+                                          (I(r, 255 & r.gzhead.extra.length),
+                                          I(r, (r.gzhead.extra.length >> 8) & 255)),
+                                        r.gzhead.hcrc &&
+                                          (t.adler = p(t.adler, r.pending_buf, r.pending, 0)),
+                                        (r.gzindex = 0),
+                                        (r.status = 69))
+                                      : (I(r, 0),
+                                        I(r, 0),
+                                        I(r, 0),
+                                        I(r, 0),
+                                        I(r, 0),
+                                        I(
+                                          r,
+                                          9 === r.level
+                                            ? 2
+                                            : 2 <= r.strategy || r.level < 2
+                                              ? 4
+                                              : 0,
+                                        ),
+                                        I(r, 3),
+                                        (r.status = y)))
+                                  : ((a = (f + ((r.w_bits - 8) << 4)) << 8),
+                                    (a |=
+                                      (2 <= r.strategy || r.level < 2
+                                        ? 0
+                                        : r.level < 6
+                                          ? 1
+                                          : 6 === r.level
+                                            ? 2
+                                            : 3) << 6),
+                                    0 !== r.strstart && (a |= 32),
+                                    (a += 31 - (a % 31)),
+                                    (r.status = y),
+                                    M(r, a),
+                                    0 !== r.strstart &&
+                                      (M(r, t.adler >>> 16), M(r, 65535 & t.adler)),
+                                    (t.adler = 1))),
+                              69 === r.status)
+                            )
+                              if (r.gzhead.extra) {
+                                for (
+                                  i = r.pending;
+                                  r.gzindex < (65535 & r.gzhead.extra.length) &&
+                                  (r.pending !== r.pending_buf_size ||
+                                    (r.gzhead.hcrc &&
+                                      r.pending > i &&
+                                      (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)),
+                                    C(t),
+                                    (i = r.pending),
+                                    r.pending !== r.pending_buf_size));
+
+                                )
+                                  I(r, 255 & r.gzhead.extra[r.gzindex]), r.gzindex++;
+                                r.gzhead.hcrc &&
+                                  r.pending > i &&
+                                  (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)),
+                                  r.gzindex === r.gzhead.extra.length &&
+                                    ((r.gzindex = 0), (r.status = 73));
+                              } else r.status = 73;
+                            if (73 === r.status)
+                              if (r.gzhead.name) {
+                                i = r.pending;
+                                do {
+                                  if (
+                                    r.pending === r.pending_buf_size &&
+                                    (r.gzhead.hcrc &&
+                                      r.pending > i &&
+                                      (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)),
+                                    C(t),
+                                    (i = r.pending),
+                                    r.pending === r.pending_buf_size)
+                                  ) {
+                                    o = 1;
+                                    break;
+                                  }
+                                } while (
+                                  ((o =
+                                    r.gzindex < r.gzhead.name.length
+                                      ? 255 & r.gzhead.name.charCodeAt(r.gzindex++)
+                                      : 0),
+                                  I(r, o),
+                                  0 !== o)
+                                );
+                                r.gzhead.hcrc &&
+                                  r.pending > i &&
+                                  (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)),
+                                  0 === o && ((r.gzindex = 0), (r.status = 91));
+                              } else r.status = 91;
+                            if (91 === r.status)
+                              if (r.gzhead.comment) {
+                                i = r.pending;
+                                do {
+                                  if (
+                                    r.pending === r.pending_buf_size &&
+                                    (r.gzhead.hcrc &&
+                                      r.pending > i &&
+                                      (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)),
+                                    C(t),
+                                    (i = r.pending),
+                                    r.pending === r.pending_buf_size)
+                                  ) {
+                                    o = 1;
+                                    break;
+                                  }
+                                } while (
+                                  ((o =
+                                    r.gzindex < r.gzhead.comment.length
+                                      ? 255 & r.gzhead.comment.charCodeAt(r.gzindex++)
+                                      : 0),
+                                  I(r, o),
+                                  0 !== o)
+                                );
+                                r.gzhead.hcrc &&
+                                  r.pending > i &&
+                                  (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)),
+                                  0 === o && (r.status = 103);
+                              } else r.status = 103;
+                            if (
+                              (103 === r.status &&
+                                (r.gzhead.hcrc
+                                  ? (r.pending + 2 > r.pending_buf_size && C(t),
+                                    r.pending + 2 <= r.pending_buf_size &&
+                                      (I(r, 255 & t.adler),
+                                      I(r, (t.adler >> 8) & 255),
+                                      (t.adler = 0),
+                                      (r.status = y)))
+                                  : (r.status = y)),
+                              0 !== r.pending)
+                            ) {
+                              if ((C(t), 0 === t.avail_out)) return (r.last_flush = -1), c;
+                            } else if (0 === t.avail_in && E(e) <= E(n) && 4 !== e) return w(t, -5);
+                            if (666 === r.status && 0 !== t.avail_in) return w(t, -5);
+                            if (
+                              0 !== t.avail_in ||
+                              0 !== r.lookahead ||
+                              (e !== u && 666 !== r.status)
+                            ) {
+                              var a =
+                                2 === r.strategy
+                                  ? (function (t, e) {
+                                      for (var n; ; ) {
+                                        if (0 === t.lookahead && (S(t), 0 === t.lookahead)) {
+                                          if (e === u) return 1;
+                                          break;
+                                        }
+                                        if (
+                                          ((t.match_length = 0),
+                                          (n = l._tr_tally(t, 0, t.window[t.strstart])),
+                                          t.lookahead--,
+                                          t.strstart++,
+                                          n && (x(t, !1), 0 === t.strm.avail_out))
+                                        )
+                                          return 1;
+                                      }
+                                      return (
+                                        (t.insert = 0),
+                                        4 === e
+                                          ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4)
+                                          : t.last_lit && (x(t, !1), 0 === t.strm.avail_out)
+                                            ? 1
+                                            : 2
+                                      );
+                                    })(r, e)
+                                  : 3 === r.strategy
+                                    ? (function (t, e) {
+                                        for (var n, r, i, o, a = t.window; ; ) {
+                                          if (t.lookahead <= m) {
+                                            if ((S(t), t.lookahead <= m && e === u)) return 1;
+                                            if (0 === t.lookahead) break;
+                                          }
+                                          if (
+                                            ((t.match_length = 0),
+                                            t.lookahead >= g &&
+                                              0 < t.strstart &&
+                                              (r = a[(i = t.strstart - 1)]) === a[++i] &&
+                                              r === a[++i] &&
+                                              r === a[++i])
+                                          ) {
+                                            for (
+                                              o = t.strstart + m;
+                                              r === a[++i] &&
+                                              r === a[++i] &&
+                                              r === a[++i] &&
+                                              r === a[++i] &&
+                                              r === a[++i] &&
+                                              r === a[++i] &&
+                                              r === a[++i] &&
+                                              r === a[++i] &&
+                                              i < o;
+
+                                            );
+                                            (t.match_length = m - (o - i)),
+                                              t.match_length > t.lookahead &&
+                                                (t.match_length = t.lookahead);
+                                          }
+                                          if (
+                                            (t.match_length >= g
+                                              ? ((n = l._tr_tally(t, 1, t.match_length - g)),
+                                                (t.lookahead -= t.match_length),
+                                                (t.strstart += t.match_length),
+                                                (t.match_length = 0))
+                                              : ((n = l._tr_tally(t, 0, t.window[t.strstart])),
+                                                t.lookahead--,
+                                                t.strstart++),
+                                            n && (x(t, !1), 0 === t.strm.avail_out))
+                                          )
+                                            return 1;
+                                        }
+                                        return (
+                                          (t.insert = 0),
+                                          4 === e
+                                            ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4)
+                                            : t.last_lit && (x(t, !1), 0 === t.strm.avail_out)
+                                              ? 1
+                                              : 2
+                                        );
+                                      })(r, e)
+                                    : s[r.level].func(r, e);
+                              if (((3 !== a && 4 !== a) || (r.status = 666), 1 === a || 3 === a))
+                                return 0 === t.avail_out && (r.last_flush = -1), c;
+                              if (
+                                2 === a &&
+                                (1 === e
+                                  ? l._tr_align(r)
+                                  : 5 !== e &&
+                                    (l._tr_stored_block(r, 0, 0, !1),
+                                    3 === e &&
+                                      (B(r.head),
+                                      0 === r.lookahead &&
+                                        ((r.strstart = 0), (r.block_start = 0), (r.insert = 0)))),
+                                C(t),
+                                0 === t.avail_out)
+                              )
+                                return (r.last_flush = -1), c;
+                            }
+                            return 4 !== e
+                              ? c
+                              : r.wrap <= 0
+                                ? 1
+                                : (2 === r.wrap
+                                    ? (I(r, 255 & t.adler),
+                                      I(r, (t.adler >> 8) & 255),
+                                      I(r, (t.adler >> 16) & 255),
+                                      I(r, (t.adler >> 24) & 255),
+                                      I(r, 255 & t.total_in),
+                                      I(r, (t.total_in >> 8) & 255),
+                                      I(r, (t.total_in >> 16) & 255),
+                                      I(r, (t.total_in >> 24) & 255))
+                                    : (M(r, t.adler >>> 16), M(r, 65535 & t.adler)),
+                                  C(t),
+                                  0 < r.wrap && (r.wrap = -r.wrap),
+                                  0 !== r.pending ? c : 1);
+                          }),
+                          (e.deflateEnd = function (t) {
+                            var e;
+                            return t && t.state
+                              ? (e = t.state.status) !== b &&
+                                69 !== e &&
+                                73 !== e &&
+                                91 !== e &&
+                                103 !== e &&
+                                e !== y &&
+                                666 !== e
+                                ? w(t, d)
+                                : ((t.state = null), e === y ? w(t, -3) : c)
+                              : d;
+                          }),
+                          (e.deflateSetDictionary = function (t, e) {
+                            var n,
+                              r,
+                              i,
+                              o,
+                              a,
+                              s,
+                              l,
+                              u = e.length;
+                            if (!t || !t.state) return d;
+                            if (
+                              2 === (o = (n = t.state).wrap) ||
+                              (1 === o && n.status !== b) ||
+                              n.lookahead
+                            )
+                              return d;
+                            for (
+                              1 === o && (t.adler = h(t.adler, e, u, 0)),
+                                n.wrap = 0,
+                                u >= n.w_size &&
+                                  (0 === o &&
+                                    (B(n.head),
+                                    (n.strstart = 0),
+                                    (n.block_start = 0),
+                                    (n.insert = 0)),
+                                  (l = new A.Buf8(n.w_size)),
+                                  A.arraySet(l, e, u - n.w_size, n.w_size, 0),
+                                  (e = l),
+                                  (u = n.w_size)),
+                                l = t.avail_in,
+                                a = t.next_in,
+                                s = t.input,
+                                t.avail_in = u,
+                                t.next_in = 0,
+                                t.input = e,
+                                S(n);
+                              n.lookahead >= g;
+
+                            ) {
+                              for (
+                                r = n.strstart, i = n.lookahead - (g - 1);
+                                (n.ins_h =
+                                  ((n.ins_h << n.hash_shift) ^ n.window[r + g - 1]) & n.hash_mask),
+                                  (n.prev[r & n.w_mask] = n.head[n.ins_h]),
+                                  (n.head[n.ins_h] = r),
+                                  r++,
+                                  --i;
+
+                              );
+                              (n.strstart = r), (n.lookahead = g - 1), S(n);
+                            }
+                            return (
+                              (n.strstart += n.lookahead),
+                              (n.block_start = n.strstart),
+                              (n.insert = n.lookahead),
+                              (n.lookahead = 0),
+                              (n.match_length = n.prev_length = g - 1),
+                              (n.match_available = 0),
+                              (t.next_in = a),
+                              (t.input = s),
+                              (t.avail_in = l),
+                              (n.wrap = o),
+                              c
+                            );
+                          }),
+                          (e.deflateInfo = 'pako deflate (from Nodeca project)');
+                      },
+                      {
+                        '../utils/common': 41,
+                        './adler32': 43,
+                        './crc32': 45,
+                        './messages': 51,
+                        './trees': 52,
+                      },
+                    ],
+                    47: [
+                      function (t, e, n) {
+                        'use strict';
+                        e.exports = function () {
+                          (this.text = 0),
+                            (this.time = 0),
+                            (this.xflags = 0),
+                            (this.os = 0),
+                            (this.extra = null),
+                            (this.extra_len = 0),
+                            (this.name = ''),
+                            (this.comment = ''),
+                            (this.hcrc = 0),
+                            (this.done = !1);
+                        };
+                      },
+                      {},
+                    ],
+                    48: [
+                      function (t, e, n) {
+                        'use strict';
+                        e.exports = function (t, e) {
+                          var n,
+                            r,
+                            i,
+                            o,
+                            a,
+                            s,
+                            l = t.state,
+                            u = t.next_in,
+                            c = t.input,
+                            A = u + (t.avail_in - 5),
+                            h = t.next_out,
+                            p = t.output,
+                            d = h - (e - t.avail_out),
+                            f = h + (t.avail_out - 257),
+                            g = l.dmax,
+                            m = l.wsize,
+                            v = l.whave,
+                            b = l.wnext,
+                            y = l.window,
+                            w = l.hold,
+                            E = l.bits,
+                            B = l.lencode,
+                            C = l.distcode,
+                            x = (1 << l.lenbits) - 1,
+                            I = (1 << l.distbits) - 1;
+                          t: do {
+                            for (
+                              E < 15 &&
+                                ((w += c[u++] << E), (E += 8), (w += c[u++] << E), (E += 8)),
+                                n = B[w & x];
+                              ;
+
+                            ) {
+                              if (((w >>>= r = n >>> 24), (E -= r), 0 == (r = (n >>> 16) & 255)))
+                                p[h++] = 65535 & n;
+                              else {
+                                if (!(16 & r)) {
+                                  if (0 == (64 & r)) {
+                                    n = B[(65535 & n) + (w & ((1 << r) - 1))];
+                                    continue;
+                                  }
+                                  if (32 & r) {
+                                    l.mode = 12;
+                                    break t;
+                                  }
+                                  (t.msg = 'invalid literal/length code'), (l.mode = 30);
+                                  break t;
+                                }
+                                for (
+                                  i = 65535 & n,
+                                    (r &= 15) &&
+                                      (E < r && ((w += c[u++] << E), (E += 8)),
+                                      (i += w & ((1 << r) - 1)),
+                                      (w >>>= r),
+                                      (E -= r)),
+                                    E < 15 &&
+                                      ((w += c[u++] << E), (E += 8), (w += c[u++] << E), (E += 8)),
+                                    n = C[w & I];
+                                  ;
+
+                                ) {
+                                  if (
+                                    ((w >>>= r = n >>> 24),
+                                    (E -= r),
+                                    !(16 & (r = (n >>> 16) & 255)))
+                                  ) {
+                                    if (0 == (64 & r)) {
+                                      n = C[(65535 & n) + (w & ((1 << r) - 1))];
+                                      continue;
+                                    }
+                                    (t.msg = 'invalid distance code'), (l.mode = 30);
+                                    break t;
+                                  }
+                                  if (
+                                    ((o = 65535 & n),
+                                    E < (r &= 15) &&
+                                      ((w += c[u++] << E),
+                                      (E += 8) < r && ((w += c[u++] << E), (E += 8))),
+                                    g < (o += w & ((1 << r) - 1)))
+                                  ) {
+                                    (t.msg = 'invalid distance too far back'), (l.mode = 30);
+                                    break t;
+                                  }
+                                  if (((w >>>= r), (E -= r), (r = h - d) < o)) {
+                                    if (v < (r = o - r) && l.sane) {
+                                      (t.msg = 'invalid distance too far back'), (l.mode = 30);
+                                      break t;
+                                    }
+                                    if (((s = y), (a = 0) === b)) {
+                                      if (((a += m - r), r < i)) {
+                                        for (i -= r; (p[h++] = y[a++]), --r; );
+                                        (a = h - o), (s = p);
+                                      }
+                                    } else if (b < r) {
+                                      if (((a += m + b - r), (r -= b) < i)) {
+                                        for (i -= r; (p[h++] = y[a++]), --r; );
+                                        if (((a = 0), b < i)) {
+                                          for (i -= r = b; (p[h++] = y[a++]), --r; );
+                                          (a = h - o), (s = p);
+                                        }
+                                      }
+                                    } else if (((a += b - r), r < i)) {
+                                      for (i -= r; (p[h++] = y[a++]), --r; );
+                                      (a = h - o), (s = p);
+                                    }
+                                    for (; 2 < i; )
+                                      (p[h++] = s[a++]),
+                                        (p[h++] = s[a++]),
+                                        (p[h++] = s[a++]),
+                                        (i -= 3);
+                                    i && ((p[h++] = s[a++]), 1 < i && (p[h++] = s[a++]));
+                                  } else {
+                                    for (
+                                      a = h - o;
+                                      (p[h++] = p[a++]),
+                                        (p[h++] = p[a++]),
+                                        (p[h++] = p[a++]),
+                                        2 < (i -= 3);
+
+                                    );
+                                    i && ((p[h++] = p[a++]), 1 < i && (p[h++] = p[a++]));
+                                  }
+                                  break;
+                                }
+                              }
+                              break;
+                            }
+                          } while (u < A && h < f);
+                          (u -= i = E >> 3),
+                            (w &= (1 << (E -= i << 3)) - 1),
+                            (t.next_in = u),
+                            (t.next_out = h),
+                            (t.avail_in = u < A ? A - u + 5 : 5 - (u - A)),
+                            (t.avail_out = h < f ? f - h + 257 : 257 - (h - f)),
+                            (l.hold = w),
+                            (l.bits = E);
+                        };
+                      },
+                      {},
+                    ],
+                    49: [
+                      function (t, e, n) {
+                        'use strict';
+                        var F = t('../utils/common'),
+                          Q = t('./adler32'),
+                          _ = t('./crc32'),
+                          T = t('./inffast'),
+                          R = t('./inftrees'),
+                          U = 0,
+                          N = -2,
+                          P = 1,
+                          r = 852,
+                          i = 592;
+                        function L(t) {
+                          return (
+                            ((t >>> 24) & 255) +
+                            ((t >>> 8) & 65280) +
+                            ((65280 & t) << 8) +
+                            ((255 & t) << 24)
+                          );
+                        }
+                        function o() {
+                          (this.mode = 0),
+                            (this.last = !1),
+                            (this.wrap = 0),
+                            (this.havedict = !1),
+                            (this.flags = 0),
+                            (this.dmax = 0),
+                            (this.check = 0),
+                            (this.total = 0),
+                            (this.head = null),
+                            (this.wbits = 0),
+                            (this.wsize = 0),
+                            (this.whave = 0),
+                            (this.wnext = 0),
+                            (this.window = null),
+                            (this.hold = 0),
+                            (this.bits = 0),
+                            (this.length = 0),
+                            (this.offset = 0),
+                            (this.extra = 0),
+                            (this.lencode = null),
+                            (this.distcode = null),
+                            (this.lenbits = 0),
+                            (this.distbits = 0),
+                            (this.ncode = 0),
+                            (this.nlen = 0),
+                            (this.ndist = 0),
+                            (this.have = 0),
+                            (this.next = null),
+                            (this.lens = new F.Buf16(320)),
+                            (this.work = new F.Buf16(288)),
+                            (this.lendyn = null),
+                            (this.distdyn = null),
+                            (this.sane = 0),
+                            (this.back = 0),
+                            (this.was = 0);
+                        }
+                        function a(t) {
+                          var e;
+                          return t && t.state
+                            ? ((e = t.state),
+                              (t.total_in = t.total_out = e.total = 0),
+                              (t.msg = ''),
+                              e.wrap && (t.adler = 1 & e.wrap),
+                              (e.mode = P),
+                              (e.last = 0),
+                              (e.havedict = 0),
+                              (e.dmax = 32768),
+                              (e.head = null),
+                              (e.hold = 0),
+                              (e.bits = 0),
+                              (e.lencode = e.lendyn = new F.Buf32(r)),
+                              (e.distcode = e.distdyn = new F.Buf32(i)),
+                              (e.sane = 1),
+                              (e.back = -1),
+                              U)
+                            : N;
+                        }
+                        function s(t) {
+                          var e;
+                          return t && t.state
+                            ? (((e = t.state).wsize = 0), (e.whave = 0), (e.wnext = 0), a(t))
+                            : N;
+                        }
+                        function l(t, e) {
+                          var n, r;
+                          return t && t.state
+                            ? ((r = t.state),
+                              e < 0
+                                ? ((n = 0), (e = -e))
+                                : ((n = 1 + (e >> 4)), e < 48 && (e &= 15)),
+                              e && (e < 8 || 15 < e)
+                                ? N
+                                : (null !== r.window && r.wbits !== e && (r.window = null),
+                                  (r.wrap = n),
+                                  (r.wbits = e),
+                                  s(t)))
+                            : N;
+                        }
+                        function u(t, e) {
+                          var n;
+                          return t
+                            ? ((n = new o()),
+                              ((t.state = n).window = null),
+                              (n = l(t, e)) !== U && (t.state = null),
+                              n)
+                            : N;
+                        }
+                        var Y,
+                          O,
+                          G = !0;
+                        function z(t, e, n, r) {
+                          var i,
+                            t = t.state;
+                          return (
+                            null === t.window &&
+                              ((t.wsize = 1 << t.wbits),
+                              (t.wnext = 0),
+                              (t.whave = 0),
+                              (t.window = new F.Buf8(t.wsize))),
+                            r >= t.wsize
+                              ? (F.arraySet(t.window, e, n - t.wsize, t.wsize, 0),
+                                (t.wnext = 0),
+                                (t.whave = t.wsize))
+                              : (r < (i = t.wsize - t.wnext) && (i = r),
+                                F.arraySet(t.window, e, n - r, i, t.wnext),
+                                (r -= i)
+                                  ? (F.arraySet(t.window, e, n - r, r, 0),
+                                    (t.wnext = r),
+                                    (t.whave = t.wsize))
+                                  : ((t.wnext += i),
+                                    t.wnext === t.wsize && (t.wnext = 0),
+                                    t.whave < t.wsize && (t.whave += i))),
+                            0
+                          );
+                        }
+                        (n.inflateReset = s),
+                          (n.inflateReset2 = l),
+                          (n.inflateResetKeep = a),
+                          (n.inflateInit = function (t) {
+                            return u(t, 15);
+                          }),
+                          (n.inflateInit2 = u),
+                          (n.inflate = function (t, e) {
+                            var n,
+                              r,
+                              i,
+                              o,
+                              a,
+                              s,
+                              l,
+                              u,
+                              c,
+                              A,
+                              h,
+                              p,
+                              d,
+                              f,
+                              g,
+                              m,
+                              v,
+                              b,
+                              y,
+                              w,
+                              E,
+                              B,
+                              C,
+                              x,
+                              I = 0,
+                              M = new F.Buf8(4),
+                              D = [
+                                16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,
+                              ];
+                            if (!t || !t.state || !t.output || (!t.input && 0 !== t.avail_in))
+                              return N;
+                            12 === (n = t.state).mode && (n.mode = 13),
+                              (a = t.next_out),
+                              (i = t.output),
+                              (l = t.avail_out),
+                              (o = t.next_in),
+                              (r = t.input),
+                              (s = t.avail_in),
+                              (u = n.hold),
+                              (c = n.bits),
+                              (A = s),
+                              (h = l),
+                              (B = U);
+                            t: for (;;)
+                              switch (n.mode) {
+                                case P:
+                                  if (0 === n.wrap) {
+                                    n.mode = 13;
+                                    break;
+                                  }
+                                  for (; c < 16; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  if (2 & n.wrap && 35615 === u) {
+                                    (M[(n.check = 0)] = 255 & u),
+                                      (M[1] = (u >>> 8) & 255),
+                                      (n.check = _(n.check, M, 2, 0)),
+                                      (c = u = 0),
+                                      (n.mode = 2);
+                                    break;
+                                  }
+                                  if (
+                                    ((n.flags = 0),
+                                    n.head && (n.head.done = !1),
+                                    !(1 & n.wrap) || (((255 & u) << 8) + (u >> 8)) % 31)
+                                  ) {
+                                    (t.msg = 'incorrect header check'), (n.mode = 30);
+                                    break;
+                                  }
+                                  if (8 != (15 & u)) {
+                                    (t.msg = 'unknown compression method'), (n.mode = 30);
+                                    break;
+                                  }
+                                  if (((c -= 4), (E = 8 + (15 & (u >>>= 4))), 0 === n.wbits))
+                                    n.wbits = E;
+                                  else if (E > n.wbits) {
+                                    (t.msg = 'invalid window size'), (n.mode = 30);
+                                    break;
+                                  }
+                                  (n.dmax = 1 << E),
+                                    (t.adler = n.check = 1),
+                                    (n.mode = 512 & u ? 10 : 12),
+                                    (c = u = 0);
+                                  break;
+                                case 2:
+                                  for (; c < 16; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  if (((n.flags = u), 8 != (255 & n.flags))) {
+                                    (t.msg = 'unknown compression method'), (n.mode = 30);
+                                    break;
+                                  }
+                                  if (57344 & n.flags) {
+                                    (t.msg = 'unknown header flags set'), (n.mode = 30);
+                                    break;
+                                  }
+                                  n.head && (n.head.text = (u >> 8) & 1),
+                                    512 & n.flags &&
+                                      ((M[0] = 255 & u),
+                                      (M[1] = (u >>> 8) & 255),
+                                      (n.check = _(n.check, M, 2, 0))),
+                                    (c = u = 0),
+                                    (n.mode = 3);
+                                case 3:
+                                  for (; c < 32; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  n.head && (n.head.time = u),
+                                    512 & n.flags &&
+                                      ((M[0] = 255 & u),
+                                      (M[1] = (u >>> 8) & 255),
+                                      (M[2] = (u >>> 16) & 255),
+                                      (M[3] = (u >>> 24) & 255),
+                                      (n.check = _(n.check, M, 4, 0))),
+                                    (c = u = 0),
+                                    (n.mode = 4);
+                                case 4:
+                                  for (; c < 16; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  n.head && ((n.head.xflags = 255 & u), (n.head.os = u >> 8)),
+                                    512 & n.flags &&
+                                      ((M[0] = 255 & u),
+                                      (M[1] = (u >>> 8) & 255),
+                                      (n.check = _(n.check, M, 2, 0))),
+                                    (c = u = 0),
+                                    (n.mode = 5);
+                                case 5:
+                                  if (1024 & n.flags) {
+                                    for (; c < 16; ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    (n.length = u),
+                                      n.head && (n.head.extra_len = u),
+                                      512 & n.flags &&
+                                        ((M[0] = 255 & u),
+                                        (M[1] = (u >>> 8) & 255),
+                                        (n.check = _(n.check, M, 2, 0))),
+                                      (c = u = 0);
+                                  } else n.head && (n.head.extra = null);
+                                  n.mode = 6;
+                                case 6:
+                                  if (
+                                    1024 & n.flags &&
+                                    ((p = s < (p = n.length) ? s : p) &&
+                                      (n.head &&
+                                        ((E = n.head.extra_len - n.length),
+                                        n.head.extra ||
+                                          (n.head.extra = new Array(n.head.extra_len)),
+                                        F.arraySet(n.head.extra, r, o, p, E)),
+                                      512 & n.flags && (n.check = _(n.check, r, p, o)),
+                                      (s -= p),
+                                      (o += p),
+                                      (n.length -= p)),
+                                    n.length)
+                                  )
+                                    break t;
+                                  (n.length = 0), (n.mode = 7);
+                                case 7:
+                                  if (2048 & n.flags) {
+                                    if (0 === s) break t;
+                                    for (
+                                      p = 0;
+                                      (E = r[o + p++]),
+                                        n.head &&
+                                          E &&
+                                          n.length < 65536 &&
+                                          (n.head.name += String.fromCharCode(E)),
+                                        E && p < s;
+
+                                    );
+                                    if (
+                                      (512 & n.flags && (n.check = _(n.check, r, p, o)),
+                                      (s -= p),
+                                      (o += p),
+                                      E)
+                                    )
+                                      break t;
+                                  } else n.head && (n.head.name = null);
+                                  (n.length = 0), (n.mode = 8);
+                                case 8:
+                                  if (4096 & n.flags) {
+                                    if (0 === s) break t;
+                                    for (
+                                      p = 0;
+                                      (E = r[o + p++]),
+                                        n.head &&
+                                          E &&
+                                          n.length < 65536 &&
+                                          (n.head.comment += String.fromCharCode(E)),
+                                        E && p < s;
+
+                                    );
+                                    if (
+                                      (512 & n.flags && (n.check = _(n.check, r, p, o)),
+                                      (s -= p),
+                                      (o += p),
+                                      E)
+                                    )
+                                      break t;
+                                  } else n.head && (n.head.comment = null);
+                                  n.mode = 9;
+                                case 9:
+                                  if (512 & n.flags) {
+                                    for (; c < 16; ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    if (u !== (65535 & n.check)) {
+                                      (t.msg = 'header crc mismatch'), (n.mode = 30);
+                                      break;
+                                    }
+                                    c = u = 0;
+                                  }
+                                  n.head &&
+                                    ((n.head.hcrc = (n.flags >> 9) & 1), (n.head.done = !0)),
+                                    (t.adler = n.check = 0),
+                                    (n.mode = 12);
+                                  break;
+                                case 10:
+                                  for (; c < 32; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  (t.adler = n.check = L(u)), (c = u = 0), (n.mode = 11);
+                                case 11:
+                                  if (0 === n.havedict)
+                                    return (
+                                      (t.next_out = a),
+                                      (t.avail_out = l),
+                                      (t.next_in = o),
+                                      (t.avail_in = s),
+                                      (n.hold = u),
+                                      (n.bits = c),
+                                      2
+                                    );
+                                  (t.adler = n.check = 1), (n.mode = 12);
+                                case 12:
+                                  if (5 === e || 6 === e) break t;
+                                case 13:
+                                  if (n.last) {
+                                    (u >>>= 7 & c), (c -= 7 & c), (n.mode = 27);
+                                    break;
+                                  }
+                                  for (; c < 3; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  switch (((n.last = 1 & u), --c, 3 & (u >>>= 1))) {
+                                    case 0:
+                                      n.mode = 14;
+                                      break;
+                                    case 1:
+                                      S = k = void 0;
+                                      var S,
+                                        k = n;
+                                      if (G) {
+                                        for (
+                                          Y = new F.Buf32(512), O = new F.Buf32(32), S = 0;
+                                          S < 144;
+
+                                        )
+                                          k.lens[S++] = 8;
+                                        for (; S < 256; ) k.lens[S++] = 9;
+                                        for (; S < 280; ) k.lens[S++] = 7;
+                                        for (; S < 288; ) k.lens[S++] = 8;
+                                        for (
+                                          R(1, k.lens, 0, 288, Y, 0, k.work, { bits: 9 }), S = 0;
+                                          S < 32;
+
+                                        )
+                                          k.lens[S++] = 5;
+                                        R(2, k.lens, 0, 32, O, 0, k.work, { bits: 5 }), (G = !1);
+                                      }
+                                      if (
+                                        ((k.lencode = Y),
+                                        (k.lenbits = 9),
+                                        (k.distcode = O),
+                                        (k.distbits = 5),
+                                        (n.mode = 20),
+                                        6 !== e)
+                                      )
+                                        break;
+                                      (u >>>= 2), (c -= 2);
+                                      break t;
+                                    case 2:
+                                      n.mode = 17;
+                                      break;
+                                    case 3:
+                                      (t.msg = 'invalid block type'), (n.mode = 30);
+                                  }
+                                  (u >>>= 2), (c -= 2);
+                                  break;
+                                case 14:
+                                  for (u >>>= 7 & c, c -= 7 & c; c < 32; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  if ((65535 & u) != ((u >>> 16) ^ 65535)) {
+                                    (t.msg = 'invalid stored block lengths'), (n.mode = 30);
+                                    break;
+                                  }
+                                  if (((n.length = 65535 & u), (c = u = 0), (n.mode = 15), 6 === e))
+                                    break t;
+                                case 15:
+                                  n.mode = 16;
+                                case 16:
+                                  if ((p = n.length)) {
+                                    if (0 === (p = l < (p = s < p ? s : p) ? l : p)) break t;
+                                    F.arraySet(i, r, o, p, a),
+                                      (s -= p),
+                                      (o += p),
+                                      (l -= p),
+                                      (a += p),
+                                      (n.length -= p);
+                                    break;
+                                  }
+                                  n.mode = 12;
+                                  break;
+                                case 17:
+                                  for (; c < 14; ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  if (
+                                    ((n.nlen = 257 + (31 & u)),
+                                    (u >>>= 5),
+                                    (c -= 5),
+                                    (n.ndist = 1 + (31 & u)),
+                                    (u >>>= 5),
+                                    (c -= 5),
+                                    (n.ncode = 4 + (15 & u)),
+                                    (u >>>= 4),
+                                    (c -= 4),
+                                    286 < n.nlen || 30 < n.ndist)
+                                  ) {
+                                    (t.msg = 'too many length or distance symbols'), (n.mode = 30);
+                                    break;
+                                  }
+                                  (n.have = 0), (n.mode = 18);
+                                case 18:
+                                  for (; n.have < n.ncode; ) {
+                                    for (; c < 3; ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    (n.lens[D[n.have++]] = 7 & u), (u >>>= 3), (c -= 3);
+                                  }
+                                  for (; n.have < 19; ) n.lens[D[n.have++]] = 0;
+                                  if (
+                                    ((n.lencode = n.lendyn),
+                                    (n.lenbits = 7),
+                                    (C = { bits: n.lenbits }),
+                                    (B = R(0, n.lens, 0, 19, n.lencode, 0, n.work, C)),
+                                    (n.lenbits = C.bits),
+                                    B)
+                                  ) {
+                                    (t.msg = 'invalid code lengths set'), (n.mode = 30);
+                                    break;
+                                  }
+                                  (n.have = 0), (n.mode = 19);
+                                case 19:
+                                  for (; n.have < n.nlen + n.ndist; ) {
+                                    for (
+                                      ;
+                                      (m =
+                                        ((I = n.lencode[u & ((1 << n.lenbits) - 1)]) >>> 16) & 255),
+                                        (v = 65535 & I),
+                                        !((g = I >>> 24) <= c);
+
+                                    ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    if (v < 16) (u >>>= g), (c -= g), (n.lens[n.have++] = v);
+                                    else {
+                                      if (16 === v) {
+                                        for (x = g + 2; c < x; ) {
+                                          if (0 === s) break t;
+                                          s--, (u += r[o++] << c), (c += 8);
+                                        }
+                                        if (((u >>>= g), (c -= g), 0 === n.have)) {
+                                          (t.msg = 'invalid bit length repeat'), (n.mode = 30);
+                                          break;
+                                        }
+                                        (E = n.lens[n.have - 1]),
+                                          (p = 3 + (3 & u)),
+                                          (u >>>= 2),
+                                          (c -= 2);
+                                      } else if (17 === v) {
+                                        for (x = g + 3; c < x; ) {
+                                          if (0 === s) break t;
+                                          s--, (u += r[o++] << c), (c += 8);
+                                        }
+                                        (E = 0),
+                                          (p = 3 + (7 & (u >>>= g))),
+                                          (u >>>= 3),
+                                          (c = c - g - 3);
+                                      } else {
+                                        for (x = g + 7; c < x; ) {
+                                          if (0 === s) break t;
+                                          s--, (u += r[o++] << c), (c += 8);
+                                        }
+                                        (E = 0),
+                                          (p = 11 + (127 & (u >>>= g))),
+                                          (u >>>= 7),
+                                          (c = c - g - 7);
+                                      }
+                                      if (n.have + p > n.nlen + n.ndist) {
+                                        (t.msg = 'invalid bit length repeat'), (n.mode = 30);
+                                        break;
+                                      }
+                                      for (; p--; ) n.lens[n.have++] = E;
+                                    }
+                                  }
+                                  if (30 === n.mode) break;
+                                  if (0 === n.lens[256]) {
+                                    (t.msg = 'invalid code -- missing end-of-block'), (n.mode = 30);
+                                    break;
+                                  }
+                                  if (
+                                    ((n.lenbits = 9),
+                                    (C = { bits: n.lenbits }),
+                                    (B = R(1, n.lens, 0, n.nlen, n.lencode, 0, n.work, C)),
+                                    (n.lenbits = C.bits),
+                                    B)
+                                  ) {
+                                    (t.msg = 'invalid literal/lengths set'), (n.mode = 30);
+                                    break;
+                                  }
+                                  if (
+                                    ((n.distbits = 6),
+                                    (n.distcode = n.distdyn),
+                                    (C = { bits: n.distbits }),
+                                    (B = R(2, n.lens, n.nlen, n.ndist, n.distcode, 0, n.work, C)),
+                                    (n.distbits = C.bits),
+                                    B)
+                                  ) {
+                                    (t.msg = 'invalid distances set'), (n.mode = 30);
+                                    break;
+                                  }
+                                  if (((n.mode = 20), 6 === e)) break t;
+                                case 20:
+                                  n.mode = 21;
+                                case 21:
+                                  if (6 <= s && 258 <= l) {
+                                    (t.next_out = a),
+                                      (t.avail_out = l),
+                                      (t.next_in = o),
+                                      (t.avail_in = s),
+                                      (n.hold = u),
+                                      (n.bits = c),
+                                      T(t, h),
+                                      (a = t.next_out),
+                                      (i = t.output),
+                                      (l = t.avail_out),
+                                      (o = t.next_in),
+                                      (r = t.input),
+                                      (s = t.avail_in),
+                                      (u = n.hold),
+                                      (c = n.bits),
+                                      12 === n.mode && (n.back = -1);
+                                    break;
+                                  }
+                                  for (
+                                    n.back = 0;
+                                    (m =
+                                      ((I = n.lencode[u & ((1 << n.lenbits) - 1)]) >>> 16) & 255),
+                                      (v = 65535 & I),
+                                      !((g = I >>> 24) <= c);
+
+                                  ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  if (m && 0 == (240 & m)) {
+                                    for (
+                                      b = g, y = m, w = v;
+                                      (m =
+                                        ((I = n.lencode[w + ((u & ((1 << (b + y)) - 1)) >> b)]) >>>
+                                          16) &
+                                        255),
+                                        (v = 65535 & I),
+                                        !(b + (g = I >>> 24) <= c);
+
+                                    ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    (u >>>= b), (c -= b), (n.back += b);
+                                  }
+                                  if (
+                                    ((u >>>= g), (c -= g), (n.back += g), (n.length = v), 0 === m)
+                                  ) {
+                                    n.mode = 26;
+                                    break;
+                                  }
+                                  if (32 & m) {
+                                    (n.back = -1), (n.mode = 12);
+                                    break;
+                                  }
+                                  if (64 & m) {
+                                    (t.msg = 'invalid literal/length code'), (n.mode = 30);
+                                    break;
+                                  }
+                                  (n.extra = 15 & m), (n.mode = 22);
+                                case 22:
+                                  if (n.extra) {
+                                    for (x = n.extra; c < x; ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    (n.length += u & ((1 << n.extra) - 1)),
+                                      (u >>>= n.extra),
+                                      (c -= n.extra),
+                                      (n.back += n.extra);
+                                  }
+                                  (n.was = n.length), (n.mode = 23);
+                                case 23:
+                                  for (
+                                    ;
+                                    (m =
+                                      ((I = n.distcode[u & ((1 << n.distbits) - 1)]) >>> 16) & 255),
+                                      (v = 65535 & I),
+                                      !((g = I >>> 24) <= c);
+
+                                  ) {
+                                    if (0 === s) break t;
+                                    s--, (u += r[o++] << c), (c += 8);
+                                  }
+                                  if (0 == (240 & m)) {
+                                    for (
+                                      b = g, y = m, w = v;
+                                      (m =
+                                        ((I = n.distcode[w + ((u & ((1 << (b + y)) - 1)) >> b)]) >>>
+                                          16) &
+                                        255),
+                                        (v = 65535 & I),
+                                        !(b + (g = I >>> 24) <= c);
+
+                                    ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    (u >>>= b), (c -= b), (n.back += b);
+                                  }
+                                  if (((u >>>= g), (c -= g), (n.back += g), 64 & m)) {
+                                    (t.msg = 'invalid distance code'), (n.mode = 30);
+                                    break;
+                                  }
+                                  (n.offset = v), (n.extra = 15 & m), (n.mode = 24);
+                                case 24:
+                                  if (n.extra) {
+                                    for (x = n.extra; c < x; ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    (n.offset += u & ((1 << n.extra) - 1)),
+                                      (u >>>= n.extra),
+                                      (c -= n.extra),
+                                      (n.back += n.extra);
+                                  }
+                                  if (n.offset > n.dmax) {
+                                    (t.msg = 'invalid distance too far back'), (n.mode = 30);
+                                    break;
+                                  }
+                                  n.mode = 25;
+                                case 25:
+                                  if (0 === l) break t;
+                                  if (n.offset > (p = h - l)) {
+                                    if ((p = n.offset - p) > n.whave && n.sane) {
+                                      (t.msg = 'invalid distance too far back'), (n.mode = 30);
+                                      break;
+                                    }
+                                    (d = p > n.wnext ? ((p -= n.wnext), n.wsize - p) : n.wnext - p),
+                                      p > n.length && (p = n.length),
+                                      (f = n.window);
+                                  } else (f = i), (d = a - n.offset), (p = n.length);
+                                  for (
+                                    l -= p = l < p ? l : p, n.length -= p;
+                                    (i[a++] = f[d++]), --p;
+
+                                  );
+                                  0 === n.length && (n.mode = 21);
+                                  break;
+                                case 26:
+                                  if (0 === l) break t;
+                                  (i[a++] = n.length), l--, (n.mode = 21);
+                                  break;
+                                case 27:
+                                  if (n.wrap) {
+                                    for (; c < 32; ) {
+                                      if (0 === s) break t;
+                                      s--, (u |= r[o++] << c), (c += 8);
+                                    }
+                                    if (
+                                      ((h -= l),
+                                      (t.total_out += h),
+                                      (n.total += h),
+                                      h &&
+                                        (t.adler = n.check =
+                                          (n.flags ? _ : Q)(n.check, i, h, a - h)),
+                                      (h = l),
+                                      (n.flags ? u : L(u)) !== n.check)
+                                    ) {
+                                      (t.msg = 'incorrect data check'), (n.mode = 30);
+                                      break;
+                                    }
+                                    c = u = 0;
+                                  }
+                                  n.mode = 28;
+                                case 28:
+                                  if (n.wrap && n.flags) {
+                                    for (; c < 32; ) {
+                                      if (0 === s) break t;
+                                      s--, (u += r[o++] << c), (c += 8);
+                                    }
+                                    if (u !== (4294967295 & n.total)) {
+                                      (t.msg = 'incorrect length check'), (n.mode = 30);
+                                      break;
+                                    }
+                                    c = u = 0;
+                                  }
+                                  n.mode = 29;
+                                case 29:
+                                  B = 1;
+                                  break t;
+                                case 30:
+                                  B = -3;
+                                  break t;
+                                case 31:
+                                  return -4;
+                                default:
+                                  return N;
+                              }
+                            return (
+                              (t.next_out = a),
+                              (t.avail_out = l),
+                              (t.next_in = o),
+                              (t.avail_in = s),
+                              (n.hold = u),
+                              (n.bits = c),
+                              (n.wsize ||
+                                (h !== t.avail_out && n.mode < 30 && (n.mode < 27 || 4 !== e))) &&
+                              z(t, t.output, t.next_out, h - t.avail_out)
+                                ? ((n.mode = 31), -4)
+                                : ((A -= t.avail_in),
+                                  (h -= t.avail_out),
+                                  (t.total_in += A),
+                                  (t.total_out += h),
+                                  (n.total += h),
+                                  n.wrap &&
+                                    h &&
+                                    (t.adler = n.check =
+                                      (n.flags ? _ : Q)(n.check, i, h, t.next_out - h)),
+                                  (t.data_type =
+                                    n.bits +
+                                    (n.last ? 64 : 0) +
+                                    (12 === n.mode ? 128 : 0) +
+                                    (20 === n.mode || 15 === n.mode ? 256 : 0)),
+                                  (B = ((0 == A && 0 === h) || 4 === e) && B === U ? -5 : B))
+                            );
+                          }),
+                          (n.inflateEnd = function (t) {
+                            if (!t || !t.state) return N;
+                            var e = t.state;
+                            return e.window && (e.window = null), (t.state = null), U;
+                          }),
+                          (n.inflateGetHeader = function (t, e) {
+                            return !t || !t.state || 0 == (2 & (t = t.state).wrap)
+                              ? N
+                              : (((t.head = e).done = !1), U);
+                          }),
+                          (n.inflateSetDictionary = function (t, e) {
+                            var n,
+                              r = e.length;
+                            return !t || !t.state || (0 !== (n = t.state).wrap && 11 !== n.mode)
+                              ? N
+                              : 11 === n.mode && Q(1, e, r, 0) !== n.check
+                                ? -3
+                                : z(t, e, r, r)
+                                  ? ((n.mode = 31), -4)
+                                  : ((n.havedict = 1), U);
+                          }),
+                          (n.inflateInfo = 'pako inflate (from Nodeca project)');
+                      },
+                      {
+                        '../utils/common': 41,
+                        './adler32': 43,
+                        './crc32': 45,
+                        './inffast': 48,
+                        './inftrees': 50,
+                      },
+                    ],
+                    50: [
+                      function (t, e, n) {
+                        'use strict';
+                        var T = t('../utils/common'),
+                          R = [
+                            3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59,
+                            67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0,
+                          ],
+                          U = [
+                            16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19,
+                            19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78,
+                          ],
+                          N = [
+                            1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385,
+                            513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577,
+                            0, 0,
+                          ],
+                          P = [
+                            16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23,
+                            24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64,
+                          ];
+                        e.exports = function (t, e, n, r, i, o, a, s) {
+                          for (
+                            var l,
+                              u,
+                              c,
+                              A,
+                              h,
+                              p,
+                              d,
+                              f,
+                              g,
+                              m = s.bits,
+                              v = 0,
+                              b = 0,
+                              y = 0,
+                              w = 0,
+                              E = 0,
+                              B = 0,
+                              C = 0,
+                              x = 0,
+                              I = 0,
+                              M = 0,
+                              D = null,
+                              S = 0,
+                              k = new T.Buf16(16),
+                              F = new T.Buf16(16),
+                              Q = null,
+                              _ = 0,
+                              v = 0;
+                            v <= 15;
+                            v++
+                          )
+                            k[v] = 0;
+                          for (b = 0; b < r; b++) k[e[n + b]]++;
+                          for (E = m, w = 15; 1 <= w && 0 === k[w]; w--);
+                          if ((w < E && (E = w), 0 === w))
+                            return (i[o++] = 20971520), (i[o++] = 20971520), (s.bits = 1), 0;
+                          for (y = 1; y < w && 0 === k[y]; y++);
+                          for (E < y && (E = y), v = x = 1; v <= 15; v++)
+                            if ((x = (x << 1) - k[v]) < 0) return -1;
+                          if (0 < x && (0 === t || 1 !== w)) return -1;
+                          for (F[1] = 0, v = 1; v < 15; v++) F[v + 1] = F[v] + k[v];
+                          for (b = 0; b < r; b++) 0 !== e[n + b] && (a[F[e[n + b]]++] = b);
+                          if (
+                            ((p =
+                              0 === t
+                                ? ((D = Q = a), 19)
+                                : 1 === t
+                                  ? ((D = R), (S -= 257), (Q = U), (_ -= 257), 256)
+                                  : ((D = N), (Q = P), -1)),
+                            (v = y),
+                            (h = o),
+                            (C = b = M = 0),
+                            (c = -1),
+                            (A = (I = 1 << (B = E)) - 1),
+                            (1 === t && 852 < I) || (2 === t && 592 < I))
+                          )
+                            return 1;
+                          for (;;) {
+                            for (
+                              g =
+                                a[b] < p
+                                  ? ((f = 0), a[b])
+                                  : a[b] > p
+                                    ? ((f = Q[_ + a[b]]), D[S + a[b]])
+                                    : ((f = 96), 0),
+                                l = 1 << (d = v - C),
+                                y = u = 1 << B;
+                              (i[h + (M >> C) + (u -= l)] = (d << 24) | (f << 16) | g | 0), 0 !== u;
+
+                            );
+                            for (l = 1 << (v - 1); M & l; ) l >>= 1;
+                            if ((0 !== l ? (M = (M & (l - 1)) + l) : (M = 0), b++, 0 == --k[v])) {
+                              if (v === w) break;
+                              v = e[n + a[b]];
+                            }
+                            if (E < v && (M & A) !== c) {
+                              for (
+                                h += y, x = 1 << (B = v - (C = 0 === C ? E : C));
+                                B + C < w && !((x -= k[B + C]) <= 0);
+
+                              )
+                                B++, (x <<= 1);
+                              if (((I += 1 << B), (1 === t && 852 < I) || (2 === t && 592 < I)))
+                                return 1;
+                              i[(c = M & A)] = (E << 24) | (B << 16) | (h - o) | 0;
+                            }
+                          }
+                          return (
+                            0 !== M && (i[h + M] = ((v - C) << 24) | (64 << 16) | 0),
+                            (s.bits = E),
+                            0
+                          );
+                        };
+                      },
+                      { '../utils/common': 41 },
+                    ],
+                    51: [
+                      function (t, e, n) {
+                        'use strict';
+                        e.exports = {
+                          2: 'need dictionary',
+                          1: 'stream end',
+                          0: '',
+                          '-1': 'file error',
+                          '-2': 'stream error',
+                          '-3': 'data error',
+                          '-4': 'insufficient memory',
+                          '-5': 'buffer error',
+                          '-6': 'incompatible version',
+                        };
+                      },
+                      {},
+                    ],
+                    52: [
+                      function (t, U, e) {
+                        'use strict';
+                        var i = t('../utils/common');
+                        function n(t) {
+                          for (var e = t.length; 0 <= --e; ) t[e] = 0;
+                        }
+                        var r = 16,
+                          l = [
+                            0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4,
+                            5, 5, 5, 5, 0,
+                          ],
+                          u = [
+                            0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10,
+                            10, 11, 11, 12, 12, 13, 13,
+                          ],
+                          s = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7],
+                          c = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],
+                          A = new Array(576),
+                          h = (n(A), new Array(60)),
+                          p = (n(h), new Array(512)),
+                          d = (n(p), new Array(256)),
+                          f = (n(d), new Array(29));
+                        n(f);
+                        var g,
+                          m,
+                          v,
+                          b = new Array(30);
+                        function y(t, e, n, r, i) {
+                          (this.static_tree = t),
+                            (this.extra_bits = e),
+                            (this.extra_base = n),
+                            (this.elems = r),
+                            (this.max_length = i),
+                            (this.has_stree = t && t.length);
+                        }
+                        function w(t, e) {
+                          (this.dyn_tree = t), (this.max_code = 0), (this.stat_desc = e);
+                        }
+                        function E(t) {
+                          return t < 256 ? p[t] : p[256 + (t >>> 7)];
+                        }
+                        function o(t, e) {
+                          (t.pending_buf[t.pending++] = 255 & e),
+                            (t.pending_buf[t.pending++] = (e >>> 8) & 255);
+                        }
+                        function B(t, e, n) {
+                          t.bi_valid > r - n
+                            ? ((t.bi_buf |= (e << t.bi_valid) & 65535),
+                              o(t, t.bi_buf),
+                              (t.bi_buf = e >> (r - t.bi_valid)),
+                              (t.bi_valid += n - r))
+                            : ((t.bi_buf |= (e << t.bi_valid) & 65535), (t.bi_valid += n));
+                        }
+                        function C(t, e, n) {
+                          B(t, n[2 * e], n[2 * e + 1]);
+                        }
+                        function x(t, e) {
+                          for (var n = 0; (n |= 1 & t), (t >>>= 1), (n <<= 1), 0 < --e; );
+                          return n >>> 1;
+                        }
+                        function I(t, e, n) {
+                          for (var r, i = new Array(16), o = 0, a = 1; a <= 15; a++)
+                            i[a] = o = (o + n[a - 1]) << 1;
+                          for (r = 0; r <= e; r++) {
+                            var s = t[2 * r + 1];
+                            0 !== s && (t[2 * r] = x(i[s]++, s));
+                          }
+                        }
+                        function M(t) {
+                          for (var e = 0; e < 286; e++) t.dyn_ltree[2 * e] = 0;
+                          for (e = 0; e < 30; e++) t.dyn_dtree[2 * e] = 0;
+                          for (e = 0; e < 19; e++) t.bl_tree[2 * e] = 0;
+                          (t.dyn_ltree[512] = 1),
+                            (t.opt_len = t.static_len = 0),
+                            (t.last_lit = t.matches = 0);
+                        }
+                        function D(t) {
+                          8 < t.bi_valid
+                            ? o(t, t.bi_buf)
+                            : 0 < t.bi_valid && (t.pending_buf[t.pending++] = t.bi_buf),
+                            (t.bi_buf = 0),
+                            (t.bi_valid = 0);
+                        }
+                        function a(t, e, n, r) {
+                          var i = 2 * e,
+                            o = 2 * n;
+                          return t[i] < t[o] || (t[i] === t[o] && r[e] <= r[n]);
+                        }
+                        function S(t, e, n) {
+                          for (
+                            var r = t.heap[n], i = n << 1;
+                            i <= t.heap_len &&
+                            (i < t.heap_len && a(e, t.heap[i + 1], t.heap[i], t.depth) && i++,
+                            !a(e, r, t.heap[i], t.depth));
+
+                          )
+                            (t.heap[n] = t.heap[i]), (n = i), (i <<= 1);
+                          t.heap[n] = r;
+                        }
+                        function k(t, e, n) {
+                          var r,
+                            i,
+                            o,
+                            a,
+                            s = 0;
+                          if (0 !== t.last_lit)
+                            for (
+                              ;
+                              (r =
+                                (t.pending_buf[t.d_buf + 2 * s] << 8) |
+                                t.pending_buf[t.d_buf + 2 * s + 1]),
+                                (i = t.pending_buf[t.l_buf + s]),
+                                s++,
+                                0 == r
+                                  ? C(t, i, e)
+                                  : (C(t, (o = d[i]) + 256 + 1, e),
+                                    0 !== (a = l[o]) && B(t, (i -= f[o]), a),
+                                    C(t, (o = E(--r)), n),
+                                    0 !== (a = u[o]) && B(t, (r -= b[o]), a)),
+                                s < t.last_lit;
+
+                            );
+                          C(t, 256, e);
+                        }
+                        function F(t, e) {
+                          var n,
+                            r,
+                            i,
+                            o = e.dyn_tree,
+                            a = e.stat_desc.static_tree,
+                            s = e.stat_desc.has_stree,
+                            l = e.stat_desc.elems,
+                            u = -1;
+                          for (t.heap_len = 0, t.heap_max = 573, n = 0; n < l; n++)
+                            0 !== o[2 * n]
+                              ? ((t.heap[++t.heap_len] = u = n), (t.depth[n] = 0))
+                              : (o[2 * n + 1] = 0);
+                          for (; t.heap_len < 2; )
+                            (o[2 * (i = t.heap[++t.heap_len] = u < 2 ? ++u : 0)] = 1),
+                              (t.depth[i] = 0),
+                              t.opt_len--,
+                              s && (t.static_len -= a[2 * i + 1]);
+                          for (e.max_code = u, n = t.heap_len >> 1; 1 <= n; n--) S(t, o, n);
+                          for (
+                            i = l;
+                            (n = t.heap[1]),
+                              (t.heap[1] = t.heap[t.heap_len--]),
+                              S(t, o, 1),
+                              (r = t.heap[1]),
+                              (t.heap[--t.heap_max] = n),
+                              (t.heap[--t.heap_max] = r),
+                              (o[2 * i] = o[2 * n] + o[2 * r]),
+                              (t.depth[i] =
+                                (t.depth[n] >= t.depth[r] ? t.depth[n] : t.depth[r]) + 1),
+                              (o[2 * n + 1] = o[2 * r + 1] = i),
+                              (t.heap[1] = i++),
+                              S(t, o, 1),
+                              2 <= t.heap_len;
+
+                          );
+                          t.heap[--t.heap_max] = t.heap[1];
+                          for (
+                            var c,
+                              A,
+                              h,
+                              p,
+                              d,
+                              f = t,
+                              g = e.dyn_tree,
+                              m = e.max_code,
+                              v = e.stat_desc.static_tree,
+                              b = e.stat_desc.has_stree,
+                              y = e.stat_desc.extra_bits,
+                              w = e.stat_desc.extra_base,
+                              E = e.stat_desc.max_length,
+                              B = 0,
+                              C = 0;
+                            C <= 15;
+                            C++
+                          )
+                            f.bl_count[C] = 0;
+                          for (g[2 * f.heap[f.heap_max] + 1] = 0, c = f.heap_max + 1; c < 573; c++)
+                            E < (C = g[2 * g[2 * (A = f.heap[c]) + 1] + 1] + 1) && ((C = E), B++),
+                              (g[2 * A + 1] = C),
+                              m < A ||
+                                (f.bl_count[C]++,
+                                (p = 0),
+                                w <= A && (p = y[A - w]),
+                                (d = g[2 * A]),
+                                (f.opt_len += d * (C + p)),
+                                b && (f.static_len += d * (v[2 * A + 1] + p)));
+                          if (0 !== B) {
+                            do {
+                              for (C = E - 1; 0 === f.bl_count[C]; ) C--;
+                            } while (
+                              (f.bl_count[C]--,
+                              (f.bl_count[C + 1] += 2),
+                              f.bl_count[E]--,
+                              0 < (B -= 2))
+                            );
+                            for (C = E; 0 !== C; C--)
+                              for (A = f.bl_count[C]; 0 !== A; )
+                                m < (h = f.heap[--c]) ||
+                                  (g[2 * h + 1] !== C &&
+                                    ((f.opt_len += (C - g[2 * h + 1]) * g[2 * h]),
+                                    (g[2 * h + 1] = C)),
+                                  A--);
+                          }
+                          I(o, u, t.bl_count);
+                        }
+                        function Q(t, e, n) {
+                          var r,
+                            i,
+                            o = -1,
+                            a = e[1],
+                            s = 0,
+                            l = 7,
+                            u = 4;
+                          for (
+                            0 === a && ((l = 138), (u = 3)), e[2 * (n + 1) + 1] = 65535, r = 0;
+                            r <= n;
+                            r++
+                          )
+                            (i = a),
+                              (a = e[2 * (r + 1) + 1]),
+                              (++s < l && i === a) ||
+                                (s < u
+                                  ? (t.bl_tree[2 * i] += s)
+                                  : 0 !== i
+                                    ? (i !== o && t.bl_tree[2 * i]++, t.bl_tree[32]++)
+                                    : s <= 10
+                                      ? t.bl_tree[34]++
+                                      : t.bl_tree[36]++,
+                                (o = i),
+                                (u =
+                                  (s = 0) === a
+                                    ? ((l = 138), 3)
+                                    : i === a
+                                      ? ((l = 6), 3)
+                                      : ((l = 7), 4)));
+                        }
+                        function _(t, e, n) {
+                          var r,
+                            i,
+                            o = -1,
+                            a = e[1],
+                            s = 0,
+                            l = 7,
+                            u = 4;
+                          for (0 === a && ((l = 138), (u = 3)), r = 0; r <= n; r++)
+                            if (((i = a), (a = e[2 * (r + 1) + 1]), !(++s < l && i === a))) {
+                              if (s < u) for (; C(t, i, t.bl_tree), 0 != --s; );
+                              else
+                                0 !== i
+                                  ? (i !== o && (C(t, i, t.bl_tree), s--),
+                                    C(t, 16, t.bl_tree),
+                                    B(t, s - 3, 2))
+                                  : s <= 10
+                                    ? (C(t, 17, t.bl_tree), B(t, s - 3, 3))
+                                    : (C(t, 18, t.bl_tree), B(t, s - 11, 7));
+                              (o = i),
+                                (u =
+                                  (s = 0) === a
+                                    ? ((l = 138), 3)
+                                    : i === a
+                                      ? ((l = 6), 3)
+                                      : ((l = 7), 4));
+                            }
+                        }
+                        n(b);
+                        var T = !1;
+                        function R(t, e, n, r) {
+                          B(t, 0 + (r ? 1 : 0), 3),
+                            (r = e),
+                            (e = n),
+                            D((n = t)),
+                            o(n, e),
+                            o(n, ~e),
+                            i.arraySet(n.pending_buf, n.window, r, e, n.pending),
+                            (n.pending += e);
+                        }
+                        (e._tr_init = function (t) {
+                          if (!T) {
+                            for (var e, n, r, i, o = new Array(16), a = (r = 0); a < 28; a++)
+                              for (f[a] = r, e = 0; e < 1 << l[a]; e++) d[r++] = a;
+                            for (d[r - 1] = a, a = i = 0; a < 16; a++)
+                              for (b[a] = i, e = 0; e < 1 << u[a]; e++) p[i++] = a;
+                            for (i >>= 7; a < 30; a++)
+                              for (b[a] = i << 7, e = 0; e < 1 << (u[a] - 7); e++) p[256 + i++] = a;
+                            for (n = 0; n <= 15; n++) o[n] = 0;
+                            for (e = 0; e <= 143; ) (A[2 * e + 1] = 8), e++, o[8]++;
+                            for (; e <= 255; ) (A[2 * e + 1] = 9), e++, o[9]++;
+                            for (; e <= 279; ) (A[2 * e + 1] = 7), e++, o[7]++;
+                            for (; e <= 287; ) (A[2 * e + 1] = 8), e++, o[8]++;
+                            for (I(A, 287, o), e = 0; e < 30; e++)
+                              (h[2 * e + 1] = 5), (h[2 * e] = x(e, 5));
+                            (g = new y(A, l, 257, 286, 15)),
+                              (m = new y(h, u, 0, 30, 15)),
+                              (v = new y(new Array(0), s, 0, 19, 7)),
+                              (T = !0);
+                          }
+                          (t.l_desc = new w(t.dyn_ltree, g)),
+                            (t.d_desc = new w(t.dyn_dtree, m)),
+                            (t.bl_desc = new w(t.bl_tree, v)),
+                            (t.bi_buf = 0),
+                            (t.bi_valid = 0),
+                            M(t);
+                        }),
+                          (e._tr_stored_block = R),
+                          (e._tr_flush_block = function (t, e, n, r) {
+                            var i,
+                              o,
+                              a,
+                              s = 0;
+                            if (
+                              (0 < t.level
+                                ? (2 === t.strm.data_type &&
+                                    (t.strm.data_type = (function (t) {
+                                      for (var e = 4093624447, n = 0; n <= 31; n++, e >>>= 1)
+                                        if (1 & e && 0 !== t.dyn_ltree[2 * n]) return 0;
+                                      if (
+                                        0 !== t.dyn_ltree[18] ||
+                                        0 !== t.dyn_ltree[20] ||
+                                        0 !== t.dyn_ltree[26]
+                                      )
+                                        return 1;
+                                      for (n = 32; n < 256; n++)
+                                        if (0 !== t.dyn_ltree[2 * n]) return 1;
+                                      return 0;
+                                    })(t)),
+                                  F(t, t.l_desc),
+                                  F(t, t.d_desc),
+                                  (s = (function (t) {
+                                    var e;
+                                    for (
+                                      Q(t, t.dyn_ltree, t.l_desc.max_code),
+                                        Q(t, t.dyn_dtree, t.d_desc.max_code),
+                                        F(t, t.bl_desc),
+                                        e = 18;
+                                      3 <= e && 0 === t.bl_tree[2 * c[e] + 1];
+                                      e--
+                                    );
+                                    return (t.opt_len += 3 * (e + 1) + 5 + 5 + 4), e;
+                                  })(t)),
+                                  (i = (t.opt_len + 3 + 7) >>> 3),
+                                  (o = (t.static_len + 3 + 7) >>> 3) <= i && (i = o))
+                                : (i = o = n + 5),
+                              n + 4 <= i && -1 !== e)
+                            )
+                              R(t, e, n, r);
+                            else if (4 === t.strategy || o === i)
+                              B(t, 2 + (r ? 1 : 0), 3), k(t, A, h);
+                            else {
+                              B(t, 4 + (r ? 1 : 0), 3);
+                              var l = t,
+                                u =
+                                  ((e = t.l_desc.max_code + 1), (n = t.d_desc.max_code + 1), s + 1);
+                              for (
+                                B(l, e - 257, 5), B(l, n - 1, 5), B(l, u - 4, 4), a = 0;
+                                a < u;
+                                a++
+                              )
+                                B(l, l.bl_tree[2 * c[a] + 1], 3);
+                              _(l, l.dyn_ltree, e - 1),
+                                _(l, l.dyn_dtree, n - 1),
+                                k(t, t.dyn_ltree, t.dyn_dtree);
+                            }
+                            M(t), r && D(t);
+                          }),
+                          (e._tr_tally = function (t, e, n) {
+                            return (
+                              (t.pending_buf[t.d_buf + 2 * t.last_lit] = (e >>> 8) & 255),
+                              (t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e),
+                              (t.pending_buf[t.l_buf + t.last_lit] = 255 & n),
+                              t.last_lit++,
+                              0 === e
+                                ? t.dyn_ltree[2 * n]++
+                                : (t.matches++,
+                                  e--,
+                                  t.dyn_ltree[2 * (d[n] + 256 + 1)]++,
+                                  t.dyn_dtree[2 * E(e)]++),
+                              t.last_lit === t.lit_bufsize - 1
+                            );
+                          }),
+                          (e._tr_align = function (t) {
+                            B(t, 2, 3),
+                              C(t, 256, A),
+                              16 === (t = t).bi_valid
+                                ? (o(t, t.bi_buf), (t.bi_buf = 0), (t.bi_valid = 0))
+                                : 8 <= t.bi_valid &&
+                                  ((t.pending_buf[t.pending++] = 255 & t.bi_buf),
+                                  (t.bi_buf >>= 8),
+                                  (t.bi_valid -= 8));
+                          });
+                      },
+                      { '../utils/common': 41 },
+                    ],
+                    53: [
+                      function (t, e, n) {
+                        'use strict';
+                        e.exports = function () {
+                          (this.input = null),
+                            (this.next_in = 0),
+                            (this.avail_in = 0),
+                            (this.total_in = 0),
+                            (this.output = null),
+                            (this.next_out = 0),
+                            (this.avail_out = 0),
+                            (this.total_out = 0),
+                            (this.msg = ''),
+                            (this.state = null),
+                            (this.data_type = 2),
+                            (this.adler = 0);
+                        };
+                      },
+                      {},
+                    ],
+                    54: [
+                      function (t, e, n) {
+                        !function (t) {
+                          !(function (n, i) {
+                            'use strict';
+                            var r, e, o, a, s, l, u, t, c;
+                            function A(t) {
+                              delete s[t];
+                            }
+                            function h(t) {
+                              if (l) setTimeout(h, 0, t);
+                              else {
+                                var e = s[t];
+                                if (e) {
+                                  l = !0;
+                                  try {
+                                    var n = e.callback,
+                                      r = e.args;
+                                    switch (r.length) {
+                                      case 0:
+                                        n();
+                                        break;
+                                      case 1:
+                                        n(r[0]);
+                                        break;
+                                      case 2:
+                                        n(r[0], r[1]);
+                                        break;
+                                      case 3:
+                                        n(r[0], r[1], r[2]);
+                                        break;
+                                      default:
+                                        n.apply(i, r);
+                                    }
+                                  } finally {
+                                    A(t), (l = !1);
+                                  }
+                                }
+                              }
+                            }
+                            function p(t) {
+                              t.source === n &&
+                                'string' == typeof t.data &&
+                                0 === t.data.indexOf(o) &&
+                                h(+t.data.slice(o.length));
+                            }
+                            n.setImmediate ||
+                              ((a = 1),
+                              (l = !(s = {})),
+                              (u = n.document),
+                              (t =
+                                (t = Object.getPrototypeOf && Object.getPrototypeOf(n)) &&
+                                t.setTimeout
+                                  ? t
+                                  : n),
+                              (c =
+                                '[object process]' === {}.toString.call(n.process)
+                                  ? function (t) {
+                                      d.nextTick(function () {
+                                        h(t);
+                                      });
+                                    }
+                                  : (function () {
+                                        var t, e;
+                                        if (n.postMessage && !n.importScripts)
+                                          return (
+                                            (t = !0),
+                                            (e = n.onmessage),
+                                            (n.onmessage = function () {
+                                              t = !1;
+                                            }),
+                                            n.postMessage('', '*'),
+                                            (n.onmessage = e),
+                                            t
+                                          );
+                                      })()
+                                    ? ((o = 'setImmediate$' + Math.random() + '$'),
+                                      n.addEventListener
+                                        ? n.addEventListener('message', p, !1)
+                                        : n.attachEvent('onmessage', p),
+                                      function (t) {
+                                        n.postMessage(o + t, '*');
+                                      })
+                                    : n.MessageChannel
+                                      ? (((e = new MessageChannel()).port1.onmessage = function (
+                                          t,
+                                        ) {
+                                          h(t.data);
+                                        }),
+                                        function (t) {
+                                          e.port2.postMessage(t);
+                                        })
+                                      : u && 'onreadystatechange' in u.createElement('script')
+                                        ? ((r = u.documentElement),
+                                          function (t) {
+                                            var e = u.createElement('script');
+                                            (e.onreadystatechange = function () {
+                                              h(t),
+                                                (e.onreadystatechange = null),
+                                                r.removeChild(e),
+                                                (e = null);
+                                            }),
+                                              r.appendChild(e);
+                                          })
+                                        : function (t) {
+                                            setTimeout(h, 0, t);
+                                          }),
+                              (t.setImmediate = function (t) {
+                                'function' != typeof t && (t = new Function('' + t));
+                                for (
+                                  var e = new Array(arguments.length - 1), n = 0;
+                                  n < e.length;
+                                  n++
+                                )
+                                  e[n] = arguments[n + 1];
+                                return (s[a] = { callback: t, args: e }), c(a), a++;
+                              }),
+                              (t.clearImmediate = A));
+                          })('undefined' == typeof self ? (void 0 === t ? this : t) : self);
+                        }.call(
+                          this,
+                          void 0 !== r
+                            ? r
+                            : 'undefined' != typeof self
+                              ? self
+                              : 'undefined' != typeof window
+                                ? window
+                                : {},
+                        );
+                      },
+                      {},
+                    ],
+                  },
+                  {},
+                  [10],
+                )(10);
+              });
+            }.call(this);
+          }.call(
+            this,
+            u('_process'),
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+            u('buffer').Buffer,
+            arguments[3],
+            arguments[4],
+            arguments[5],
+            arguments[6],
+            u('timers').setImmediate,
+          );
+        },
+        { _process: 46, buffer: 26, timers: 68 },
+      ],
+      42: [
+        function (t, Wp, Jp) {
+          !function (jp, Vp, qp) {
+            !function () {
+              function t() {
+                'use strict';
+                var Q,
+                  _,
+                  T,
+                  R,
+                  U,
+                  N,
+                  L,
+                  Y,
+                  O,
+                  G,
+                  z,
+                  H,
+                  j,
+                  V,
+                  q,
+                  W,
+                  J =
+                    'undefined' != typeof window && window && window.Promise
+                      ? window.Promise
+                      : void 0 !== Vp && Vp && Vp.Promise
+                        ? Vp.Promise
+                        : ((function (t) {
+                            function u(t) {
+                              return 'function' == typeof t;
+                            }
+                            var n,
+                              e =
+                                Array.isArray ||
+                                function (t) {
+                                  return '[object Array]' === Object.prototype.toString.call(t);
+                                },
+                              r = e,
+                              i = 0,
+                              a = function (t, e) {
+                                (A[i] = t), (A[i + 1] = e), 2 === (i += 2) && (n ? n(h) : N());
+                              };
+                            var e = ('undefined' != typeof window ? window : void 0) || {},
+                              e = e.MutationObserver || e.WebKitMutationObserver,
+                              o =
+                                'undefined' == typeof self &&
+                                void 0 !== jp &&
+                                '[object process]' === {}.toString.call(jp),
+                              U =
+                                'undefined' != typeof Uint8ClampedArray &&
+                                'undefined' != typeof importScripts &&
+                                'undefined' != typeof MessageChannel;
+                            var s,
+                              l,
+                              c,
+                              A = new Array(1e3);
+                            function h() {
+                              for (var t = 0; t < i; t += 2)
+                                (0, A[t])(A[t + 1]), (A[t] = void 0), (A[t + 1] = void 0);
+                              i = 0;
+                            }
+                            var N = o
+                                ? function () {
+                                    jp.nextTick(h);
+                                  }
+                                : e
+                                  ? ((l = 0),
+                                    (o = new e(h)),
+                                    (c = document.createTextNode('')),
+                                    o.observe(c, { characterData: !0 }),
+                                    function () {
+                                      c.data = l = ++l % 2;
+                                    })
+                                  : U
+                                    ? (((s = new MessageChannel()).port1.onmessage = h),
+                                      function () {
+                                        s.port2.postMessage(0);
+                                      })
+                                    : function () {
+                                        setTimeout(h, 1);
+                                      },
+                              p = function (t, e) {
+                                var n,
+                                  r = this,
+                                  i = new this.constructor(g),
+                                  o = (void 0 === i[f] && Q(i), r._state);
+                                return (
+                                  o
+                                    ? ((n = arguments[o - 1]),
+                                      a(function () {
+                                        k(o, i, n, r._result);
+                                      }))
+                                    : I(r, i, t, e),
+                                  i
+                                );
+                              };
+                            var d = function (t) {
+                                if (t && 'object' == typeof t && t.constructor === this) return t;
+                                var e = new this(g);
+                                return B(e, t), e;
+                              },
+                              f = Math.random().toString(36).substring(16);
+                            function g() {}
+                            var m = void 0,
+                              v = 1,
+                              b = 2,
+                              y = new D();
+                            function w(t) {
+                              try {
+                                return t.then;
+                              } catch (t) {
+                                return (y.error = t), y;
+                              }
+                            }
+                            function P(t, r, i) {
+                              a(function (e) {
+                                var n = !1,
+                                  t = (function (t, e, n, r) {
+                                    try {
+                                      t.call(e, n, r);
+                                    } catch (t) {
+                                      return t;
+                                    }
+                                  })(
+                                    i,
+                                    r,
+                                    function (t) {
+                                      n || ((n = !0), (r !== t ? B : C)(e, t));
+                                    },
+                                    function (t) {
+                                      n || ((n = !0), x(e, t));
+                                    },
+                                    e._label,
+                                  );
+                                !n && t && ((n = !0), x(e, t));
+                              }, t);
+                            }
+                            function E(t, e, n) {
+                              var r, i;
+                              e.constructor === t.constructor &&
+                              n === p &&
+                              constructor.resolve === d
+                                ? ((r = t),
+                                  (i = e)._state === v
+                                    ? C(r, i._result)
+                                    : i._state === b
+                                      ? x(r, i._result)
+                                      : I(
+                                          i,
+                                          void 0,
+                                          function (t) {
+                                            B(r, t);
+                                          },
+                                          function (t) {
+                                            x(r, t);
+                                          },
+                                        ))
+                                : n === y
+                                  ? x(t, y.error)
+                                  : void 0 !== n && u(n)
+                                    ? P(t, e, n)
+                                    : C(t, e);
+                            }
+                            function B(t, e) {
+                              var n;
+                              t === e
+                                ? x(t, new TypeError('You cannot resolve a promise with itself'))
+                                : 'function' == typeof (n = e) ||
+                                    ('object' == typeof n && null !== n)
+                                  ? E(t, e, w(e))
+                                  : C(t, e);
+                            }
+                            function L(t) {
+                              t._onerror && t._onerror(t._result), M(t);
+                            }
+                            function C(t, e) {
+                              t._state === m &&
+                                ((t._result = e),
+                                (t._state = v),
+                                0 !== t._subscribers.length && a(M, t));
+                            }
+                            function x(t, e) {
+                              t._state === m && ((t._state = b), (t._result = e), a(L, t));
+                            }
+                            function I(t, e, n, r) {
+                              var i = t._subscribers,
+                                o = i.length;
+                              (t._onerror = null),
+                                (i[o] = e),
+                                (i[o + v] = n),
+                                (i[o + b] = r),
+                                0 === o && t._state && a(M, t);
+                            }
+                            function M(t) {
+                              var e = t._subscribers,
+                                n = t._state;
+                              if (0 !== e.length) {
+                                for (var r, i, o = t._result, a = 0; a < e.length; a += 3)
+                                  (r = e[a]), (i = e[a + n]), r ? k(n, r, i, o) : i(o);
+                                t._subscribers.length = 0;
+                              }
+                            }
+                            function D() {
+                              this.error = null;
+                            }
+                            var S = new D();
+                            function k(t, e, n, r) {
+                              var i,
+                                o,
+                                a,
+                                s,
+                                l = u(n);
+                              if (l) {
+                                if (
+                                  ((i = (function (t, e) {
+                                    try {
+                                      return t(e);
+                                    } catch (t) {
+                                      return (S.error = t), S;
+                                    }
+                                  })(n, r)) === S
+                                    ? ((s = !0), (o = i.error), (i = null))
+                                    : (a = !0),
+                                  e === i)
+                                )
+                                  return void x(
+                                    e,
+                                    new TypeError(
+                                      'A promises callback cannot return that same promise.',
+                                    ),
+                                  );
+                              } else (i = r), (a = !0);
+                              e._state === m &&
+                                (l && a
+                                  ? B(e, i)
+                                  : s
+                                    ? x(e, o)
+                                    : t === v
+                                      ? C(e, i)
+                                      : t === b && x(e, i));
+                            }
+                            var F = 0;
+                            function Q(t) {
+                              (t[f] = F++),
+                                (t._state = void 0),
+                                (t._result = void 0),
+                                (t._subscribers = []);
+                            }
+                            function Y(i) {
+                              var o = this;
+                              return r(i)
+                                ? new o(function (t, e) {
+                                    for (var n = i.length, r = 0; r < n; r++)
+                                      o.resolve(i[r]).then(t, e);
+                                  })
+                                : new o(function (t, e) {
+                                    e(new TypeError('You must pass an array to race.'));
+                                  });
+                            }
+                            function O(t) {
+                              var e = new this(g);
+                              return x(e, t), e;
+                            }
+                            var _ = T;
+                            function T(t) {
+                              if (
+                                ((this[f] = F++),
+                                (this._result = this._state = void 0),
+                                (this._subscribers = []),
+                                g !== t)
+                              ) {
+                                if ('function' != typeof t)
+                                  throw new TypeError(
+                                    'You must pass a resolver function as the first argument to the promise constructor',
+                                  );
+                                if (!(this instanceof T))
+                                  throw new TypeError(
+                                    "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.",
+                                  );
+                                var e = this;
+                                try {
+                                  t(
+                                    function (t) {
+                                      B(e, t);
+                                    },
+                                    function (t) {
+                                      x(e, t);
+                                    },
+                                  );
+                                } catch (t) {
+                                  x(e, t);
+                                }
+                              }
+                            }
+                            (T.all = function (t) {
+                              return new G(this, t).promise;
+                            }),
+                              (T.race = Y),
+                              (T.resolve = d),
+                              (T.reject = O),
+                              (T._setScheduler = function (t) {
+                                n = t;
+                              }),
+                              (T._setAsap = function (t) {
+                                a = t;
+                              }),
+                              (T._asap = a),
+                              (T.prototype = {
+                                constructor: T,
+                                then: p,
+                                catch: function (t) {
+                                  return this.then(null, t);
+                                },
+                              });
+                            var G = R;
+                            function R(t, e) {
+                              (this._instanceConstructor = t),
+                                (this.promise = new t(g)),
+                                this.promise[f] || Q(this.promise),
+                                Array.isArray(e)
+                                  ? ((this._input = e),
+                                    (this.length = e.length),
+                                    (this._remaining = e.length),
+                                    (this._result = new Array(this.length)),
+                                    0 === this.length
+                                      ? C(this.promise, this._result)
+                                      : ((this.length = this.length || 0),
+                                        this._enumerate(),
+                                        0 === this._remaining && C(this.promise, this._result)))
+                                  : x(
+                                      this.promise,
+                                      new Error('Array Methods must be provided an Array'),
+                                    );
+                            }
+                            (R.prototype._enumerate = function () {
+                              for (
+                                var t = this.length, e = this._input, n = 0;
+                                this._state === m && n < t;
+                                n++
+                              )
+                                this._eachEntry(e[n], n);
+                            }),
+                              (R.prototype._eachEntry = function (e, t) {
+                                var n,
+                                  r,
+                                  i = this._instanceConstructor,
+                                  o = i.resolve;
+                                o === d
+                                  ? (n = w(e)) === p && e._state !== m
+                                    ? this._settledAt(e._state, t, e._result)
+                                    : 'function' != typeof n
+                                      ? (this._remaining--, (this._result[t] = e))
+                                      : i === _
+                                        ? (E((r = new i(g)), e, n), this._willSettleAt(r, t))
+                                        : this._willSettleAt(
+                                            new i(function (t) {
+                                              t(e);
+                                            }),
+                                            t,
+                                          )
+                                  : this._willSettleAt(o(e), t);
+                              }),
+                              (R.prototype._settledAt = function (t, e, n) {
+                                var r = this.promise;
+                                r._state === m &&
+                                  (this._remaining--, t === b ? x(r, n) : (this._result[e] = n)),
+                                  0 === this._remaining && C(r, this._result);
+                              }),
+                              (R.prototype._willSettleAt = function (t, e) {
+                                var n = this;
+                                I(
+                                  t,
+                                  void 0,
+                                  function (t) {
+                                    n._settledAt(v, e, t);
+                                  },
+                                  function (t) {
+                                    n._settledAt(b, e, t);
+                                  },
+                                );
+                              });
+                            (e = function () {
+                              var t;
+                              if (void 0 !== Vp) t = Vp;
+                              else if ('undefined' != typeof self) t = self;
+                              else
+                                try {
+                                  t = Function('return this')();
+                                } catch (t) {
+                                  throw new Error(
+                                    'polyfill failed because global object is unavailable in this environment',
+                                  );
+                                }
+                              var e = t.Promise;
+                              (e &&
+                                '[object Promise]' ===
+                                  Object.prototype.toString.call(e.resolve()) &&
+                                !e.cast) ||
+                                (t.Promise = _);
+                            }),
+                              (o = { Promise: _, polyfill: e });
+                            e(), (t.ES6Promise = o);
+                          })((J = {})),
+                          J.ES6Promise.Promise),
+                  t = {},
+                  t =
+                    (!function (U, t, f) {
+                      var e = { function: !0, object: !0 };
+                      function N(t) {
+                        return t && t.Object === Object ? t : null;
+                      }
+                      var n = e[typeof Jp] && Jp && !Jp.nodeType ? Jp : null,
+                        r = e[typeof Wp] && Wp && !Wp.nodeType ? Wp : null,
+                        i = N(n && r && 'object' == typeof Vp && Vp),
+                        o = N(e[typeof self] && self),
+                        a = N(e[typeof window] && window),
+                        r = r && r.exports === n ? n : null,
+                        n = N(e[typeof this] && this),
+                        l =
+                          i || (a !== (n && n.window) && a) || o || n || Function('return this')(),
+                        s = { internals: {}, config: { Promise: t }, helpers: {} },
+                        u = (s.helpers.noop = function () {}),
+                        c = (s.helpers.identity = function (t) {
+                          return t;
+                        }),
+                        e = (s.helpers.defaultNow = Date.now),
+                        P = (s.helpers.defaultComparer = function (t, e) {
+                          return Dt(t, e);
+                        }),
+                        L = (s.helpers.defaultSubComparer = function (t, e) {
+                          return e < t ? 1 : t < e ? -1 : 0;
+                        }),
+                        Y =
+                          ((s.helpers.defaultKeySerializer = function (t) {
+                            return t.toString();
+                          }),
+                          (s.helpers.defaultError = function (t) {
+                            throw t;
+                          })),
+                        d = (s.helpers.isPromise = function (t) {
+                          return (
+                            !!t && 'function' != typeof t.subscribe && 'function' == typeof t.then
+                          );
+                        }),
+                        g =
+                          (s.helpers.isFunction =
+                          a =
+                            (a = function (t) {
+                              return 'function' == typeof t || !1;
+                            })(/x/)
+                              ? function (t) {
+                                  return (
+                                    'function' == typeof t &&
+                                    '[object Function]' == toString.call(t)
+                                  );
+                                }
+                              : a);
+                      function A(t) {
+                        for (var e = t.length, n = new Array(e), r = 0; r < e; r++) n[r] = t[r];
+                        return n;
+                      }
+                      var m = { e: {} };
+                      var v = (s.internals.tryCatch = function (t) {
+                        if (g(t))
+                          return (
+                            (e = t),
+                            function () {
+                              try {
+                                return e.apply(this, arguments);
+                              } catch (t) {
+                                return (m.e = t), m;
+                              }
+                            }
+                          );
+                        throw new TypeError('fn must be a function');
+                        var e;
+                      });
+                      function h(t) {
+                        throw t;
+                      }
+                      var O,
+                        G = (s.config.longStackSupport = !1),
+                        o = v(function () {
+                          throw new Error();
+                        })(),
+                        G = !!o.e && !!o.e.stack,
+                        z = V(),
+                        H = 'From previous event:';
+                      function j(t, e) {
+                        if (
+                          G &&
+                          e.stack &&
+                          'object' == typeof t &&
+                          null !== t &&
+                          t.stack &&
+                          -1 === t.stack.indexOf(H)
+                        ) {
+                          for (var n = [], r = e; r; r = r.source) r.stack && n.unshift(r.stack);
+                          n.unshift(t.stack);
+                          e = n.join('\n' + H + '\n');
+                          t.stack = (function (t) {
+                            for (var e = t.split('\n'), n = [], r = 0, i = e.length; r < i; r++) {
+                              var o = e[r];
+                              !(function (t) {
+                                t = q(t);
+                                if (!t) return;
+                                var e = t[0],
+                                  t = t[1];
+                                return e === O && z <= t && t <= al;
+                              })(o) &&
+                                !(function (t) {
+                                  return (
+                                    -1 !== t.indexOf('(module.js:') || -1 !== t.indexOf('(node.js:')
+                                  );
+                                })(o) &&
+                                o &&
+                                n.push(o);
+                            }
+                            return n.join('\n');
+                          })(e);
+                        }
+                      }
+                      function V() {
+                        if (G)
+                          try {
+                            throw new Error();
+                          } catch (t) {
+                            var e = t.stack.split('\n'),
+                              e = q(0 < e[0].indexOf('@') ? e[1] : e[2]);
+                            return e ? ((O = e[0]), e[1]) : void 0;
+                          }
+                      }
+                      function q(t) {
+                        var e = /at .+ \((.+):(\d+):(?:\d+)\)$/.exec(t);
+                        if (e) return [e[1], Number(e[2])];
+                        e = /at ([^ ]+):(\d+):(?:\d+)$/.exec(t);
+                        if (e) return [e[1], Number(e[2])];
+                        e = /.*@(.+):(\d+)$/.exec(t);
+                        return e ? [e[1], Number(e[2])] : void 0;
+                      }
+                      var W,
+                        J,
+                        K,
+                        Z,
+                        n = (s.EmptyError = function () {
+                          (this.message = 'Sequence contains no elements.'), Error.call(this);
+                        }),
+                        X =
+                          (((n.prototype = Object.create(Error.prototype)).name = 'EmptyError'),
+                          (s.ObjectDisposedError = function () {
+                            (this.message = 'Object has been disposed'), Error.call(this);
+                          })),
+                        $ =
+                          (((X.prototype = Object.create(Error.prototype)).name =
+                            'ObjectDisposedError'),
+                          (s.ArgumentOutOfRangeError = function () {
+                            (this.message = 'Argument out of range'), Error.call(this);
+                          })),
+                        tt =
+                          ((($.prototype = Object.create(Error.prototype)).name =
+                            'ArgumentOutOfRangeError'),
+                          (s.NotSupportedError = function (t) {
+                            (this.message = t || 'This operation is not supported'),
+                              Error.call(this);
+                          })),
+                        et =
+                          (((tt.prototype = Object.create(Error.prototype)).name =
+                            'NotSupportedError'),
+                          (s.NotImplementedError = function (t) {
+                            (this.message = t || 'This operation is not implemented'),
+                              Error.call(this);
+                          })),
+                        t =
+                          (((et.prototype = Object.create(Error.prototype)).name =
+                            'NotImplementedError'),
+                          (s.helpers.notImplemented = function () {
+                            throw new et();
+                          })),
+                        p =
+                          ((s.helpers.notSupported = function () {
+                            throw new tt();
+                          }),
+                          ('function' == typeof Symbol && Symbol.iterator) || '_es6shim_iterator_'),
+                        nt =
+                          (l.Set &&
+                            'function' == typeof new l.Set()['@@iterator'] &&
+                            (p = '@@iterator'),
+                          (s.doneEnumerator = { done: !0, value: f })),
+                        rt = (s.helpers.isIterable = function (t) {
+                          return t && t[p] !== f;
+                        }),
+                        it = (s.helpers.isArrayLike = function (t) {
+                          return t && t.length !== f;
+                        }),
+                        ot =
+                          ((s.helpers.iterator = p),
+                          (s.internals.bindCallback = function (r, i, t) {
+                            if (void 0 === i) return r;
+                            switch (t) {
+                              case 0:
+                                return function () {
+                                  return r.call(i);
+                                };
+                              case 1:
+                                return function (t) {
+                                  return r.call(i, t);
+                                };
+                              case 2:
+                                return function (t, e) {
+                                  return r.call(i, t, e);
+                                };
+                              case 3:
+                                return function (t, e, n) {
+                                  return r.call(i, t, e, n);
+                                };
+                            }
+                            return function () {
+                              return r.apply(i, arguments);
+                            };
+                          })),
+                        at = '[object Arguments]',
+                        st = '[object Array]',
+                        lt = '[object Boolean]',
+                        ut = '[object Date]',
+                        ct = '[object Error]',
+                        At = '[object Number]',
+                        ht = '[object Object]',
+                        pt = '[object RegExp]',
+                        dt = '[object String]',
+                        b = {},
+                        a =
+                          ((b['[object Float32Array]'] =
+                            b['[object Float64Array]'] =
+                            b['[object Int8Array]'] =
+                            b['[object Int16Array]'] =
+                            b['[object Int32Array]'] =
+                            b['[object Uint8Array]'] =
+                            b['[object Uint8ClampedArray]'] =
+                            b['[object Uint16Array]'] =
+                            b['[object Uint32Array]'] =
+                              !0),
+                          (b[at] =
+                            b[st] =
+                            b['[object ArrayBuffer]'] =
+                            b[lt] =
+                            b[ut] =
+                            b[ct] =
+                            b['[object Function]'] =
+                            b['[object Map]'] =
+                            b[At] =
+                            b[ht] =
+                            b[pt] =
+                            b['[object Set]'] =
+                            b[dt] =
+                            b['[object WeakMap]'] =
+                              !1),
+                          Object.prototype),
+                        ft = a.hasOwnProperty,
+                        gt = a.toString,
+                        mt = Math.pow(2, 53) - 1,
+                        vt =
+                          Object.keys ||
+                          ((W = Object.prototype.hasOwnProperty),
+                          (J = !{ toString: null }.propertyIsEnumerable('toString')),
+                          (Z = (K = [
+                            'toString',
+                            'toLocaleString',
+                            'valueOf',
+                            'hasOwnProperty',
+                            'isPrototypeOf',
+                            'propertyIsEnumerable',
+                            'constructor',
+                          ]).length),
+                          function (t) {
+                            if ('object' != typeof t && ('function' != typeof t || null === t))
+                              throw new TypeError('Object.keys called on non-object');
+                            var e,
+                              n,
+                              r = [];
+                            for (e in t) W.call(t, e) && r.push(e);
+                            if (J) for (n = 0; n < Z; n++) W.call(t, K[n]) && r.push(K[n]);
+                            return r;
+                          });
+                      function bt(t, e, n, r, i, o) {
+                        var a = vt(t),
+                          s = a.length;
+                        if (s !== vt(e).length && !r) return !1;
+                        for (var l = s; l--; )
+                          if (((c = a[l]), !(r ? c in e : ft.call(e, c)))) return !1;
+                        for (var u = r; ++l < s; ) {
+                          var c,
+                            A = t[(c = a[l])],
+                            h = e[c];
+                          if (void 0 !== f || !n(A, h, r, i, o)) return !1;
+                          u = u || 'constructor' === c;
+                        }
+                        if (!u) {
+                          var p = t.constructor,
+                            d = e.constructor;
+                          if (
+                            p !== d &&
+                            'constructor' in t &&
+                            'constructor' in e &&
+                            !(
+                              'function' == typeof p &&
+                              p instanceof p &&
+                              'function' == typeof d &&
+                              d instanceof d
+                            )
+                          )
+                            return !1;
+                        }
+                        return !0;
+                      }
+                      var yt = (s.internals.isObject = function (t) {
+                        var e = typeof t;
+                        return !!t && ('object' == e || 'function' == e);
+                      });
+                      function wt(t) {
+                        return !!t && 'object' == typeof t;
+                      }
+                      function Et(t) {
+                        return 'number' == typeof t && -1 < t && t % 1 == 0 && t <= mt;
+                      }
+                      var Bt = (function () {
+                        try {
+                          Object({ toString: 0 } + '');
+                        } catch (t) {
+                          return function () {
+                            return !1;
+                          };
+                        }
+                        return function (t) {
+                          return 'function' != typeof t.toString && 'string' == typeof (t + '');
+                        };
+                      })();
+                      var Ct =
+                        Array.isArray ||
+                        function (t) {
+                          return wt(t) && Et(t.length) && gt.call(t) === st;
+                        };
+                      function xt(t, e, n, r, i, o) {
+                        var a = -1,
+                          s = t.length,
+                          l = e.length;
+                        if (s !== l && !(r && s < l)) return !1;
+                        for (; ++a < s; ) {
+                          var u = t[a],
+                            c = e[a];
+                          if (void 0 !== f) return !1;
+                          if (r) {
+                            if (
+                              !(function (t, e) {
+                                for (var n = -1, r = t.length; ++n < r; )
+                                  if (e(t[n], n, t)) return 1;
+                              })(e, function (t) {
+                                return u === t || n(u, t, r, i, o);
+                              })
+                            )
+                              return !1;
+                          } else if (u !== c && !n(u, c, r, i, o)) return !1;
+                        }
+                        return !0;
+                      }
+                      function It(t, e, n, r, i, o) {
+                        var a = Ct(t),
+                          s = Ct(e),
+                          l = st,
+                          u = st,
+                          c =
+                            (a ||
+                              ((l = gt.call(t)) === at
+                                ? (l = ht)
+                                : l !== ht && (a = wt((c = t)) && Et(c.length) && !!b[gt.call(c)])),
+                            s || ((u = gt.call(e)) === at && (u = ht)),
+                            l === ht && !Bt(t)),
+                          s = u === ht && !Bt(e),
+                          u = l === u;
+                        if (u && !a && !c) {
+                          var A = t,
+                            h = e;
+                          switch (l) {
+                            case lt:
+                            case ut:
+                              return +A == +h;
+                            case ct:
+                              return A.name === h.name && A.message === h.message;
+                            case At:
+                              return A !== +A ? h !== +h : A === +h;
+                            case pt:
+                            case dt:
+                              return A === h + '';
+                          }
+                          return !1;
+                        }
+                        if (!r) {
+                          (l = c && ft.call(t, '__wrapped__')),
+                            (s = s && ft.call(e, '__wrapped__'));
+                          if (l || s) return n(l ? t.value() : t, s ? e.value() : e, r, i, o);
+                        }
+                        if (!u) return !1;
+                        o = o || [];
+                        for (var p = (i = i || []).length; p--; ) if (i[p] === t) return o[p] === e;
+                        i.push(t), o.push(e);
+                        l = (a ? xt : bt)(t, e, n, r, i, o);
+                        return i.pop(), o.pop(), l;
+                      }
+                      function Mt(t, e, n, r, i) {
+                        return (
+                          t === e ||
+                          (null == t || null == e || (!yt(t) && !wt(e))
+                            ? t != t && e != e
+                            : It(t, e, Mt, n, r, i))
+                        );
+                      }
+                      var Dt = (s.internals.isEqual = function (t, e) {
+                          return Mt(t, e);
+                        }),
+                        o =
+                          (Array.prototype.slice,
+                          (s.internals.inherits = function (t, e) {
+                            function n() {
+                              this.constructor = t;
+                            }
+                            (n.prototype = e.prototype), (t.prototype = new n());
+                          })),
+                        n = (s.internals.addProperties = function (t) {
+                          for (var e = [], n = 1, r = arguments.length; n < r; n++)
+                            e.push(arguments[n]);
+                          for (var i = 0, o = e.length; i < o; i++) {
+                            var a,
+                              s = e[i];
+                            for (a in s) t[a] = s[a];
+                          }
+                        });
+                      s.internals.addRef = function (e, n) {
+                        return new T(function (t) {
+                          return new C(n.getDisposable(), e.subscribe(t));
+                        });
+                      };
+                      function St(t, e) {
+                        for (var n = new Array(t), r = 0; r < t; r++) n[r] = e();
+                        return n;
+                      }
+                      var kt = (s.CompositeDisposable = function () {
+                          var t,
+                            e,
+                            n = [];
+                          if (Array.isArray(arguments[0])) n = arguments[0];
+                          else
+                            for (e = arguments.length, n = new Array(e), t = 0; t < e; t++)
+                              n[t] = arguments[t];
+                          (this.disposables = n), (this.isDisposed = !1), (this.length = n.length);
+                        }),
+                        a = kt.prototype,
+                        Ft =
+                          ((a.add = function (t) {
+                            this.isDisposed
+                              ? t.dispose()
+                              : (this.disposables.push(t), this.length++);
+                          }),
+                          (a.remove = function (t) {
+                            var e,
+                              n = !1;
+                            return (
+                              this.isDisposed ||
+                                (-1 !== (e = this.disposables.indexOf(t)) &&
+                                  ((n = !0),
+                                  this.disposables.splice(e, 1),
+                                  this.length--,
+                                  t.dispose())),
+                              n
+                            );
+                          }),
+                          (a.dispose = function () {
+                            if (!this.isDisposed) {
+                              this.isDisposed = !0;
+                              for (
+                                var t = this.disposables.length, e = new Array(t), n = 0;
+                                n < t;
+                                n++
+                              )
+                                e[n] = this.disposables[n];
+                              for (this.disposables = [], n = this.length = 0; n < t; n++)
+                                e[n].dispose();
+                            }
+                          }),
+                          (s.Disposable = function (t) {
+                            (this.isDisposed = !1), (this.action = t || u);
+                          })),
+                        Qt =
+                          ((Ft.prototype.dispose = function () {
+                            this.isDisposed || (this.action(), (this.isDisposed = !0));
+                          }),
+                          (Ft.create = function (t) {
+                            return new Ft(t);
+                          })),
+                        y = (Ft.empty = { dispose: u }),
+                        _t = (Ft.isDisposable = function (t) {
+                          return t && g(t.dispose);
+                        }),
+                        w = (Ft.checkDisposed = function (t) {
+                          if (t.isDisposed) throw new X();
+                        }),
+                        Tt = (Ft._fixup = function (t) {
+                          return _t(t) ? t : y;
+                        }),
+                        E = (s.SingleAssignmentDisposable = function () {
+                          (this.isDisposed = !1), (this.current = null);
+                        }),
+                        B =
+                          ((E.prototype.getDisposable = function () {
+                            return this.current;
+                          }),
+                          (E.prototype.setDisposable = function (t) {
+                            if (this.current)
+                              throw new Error('Disposable has already been assigned');
+                            var e = this.isDisposed;
+                            e || (this.current = t), e && t && t.dispose();
+                          }),
+                          (E.prototype.dispose = function () {
+                            var t;
+                            this.isDisposed ||
+                              ((this.isDisposed = !0),
+                              (t = this.current),
+                              (this.current = null),
+                              t && t.dispose());
+                          }),
+                          (s.SerialDisposable = function () {
+                            (this.isDisposed = !1), (this.current = null);
+                          })),
+                        C =
+                          ((B.prototype.getDisposable = function () {
+                            return this.current;
+                          }),
+                          (B.prototype.setDisposable = function (t) {
+                            var e,
+                              n = this.isDisposed;
+                            n || ((e = this.current), (this.current = t)),
+                              e && e.dispose(),
+                              n && t && t.dispose();
+                          }),
+                          (B.prototype.dispose = function () {
+                            var t;
+                            this.isDisposed ||
+                              ((this.isDisposed = !0), (t = this.current), (this.current = null)),
+                              t && t.dispose();
+                          }),
+                          (s.BinaryDisposable = function (t, e) {
+                            (this._first = t), (this._second = e), (this.isDisposed = !1);
+                          })),
+                        x =
+                          ((C.prototype.dispose = function () {
+                            var t;
+                            this.isDisposed ||
+                              ((this.isDisposed = !0),
+                              (t = this._first),
+                              (this._first = null),
+                              t && t.dispose(),
+                              (t = this._second),
+                              (this._second = null),
+                              t && t.dispose());
+                          }),
+                          (s.NAryDisposable = function (t) {
+                            (this._disposables = t), (this.isDisposed = !1);
+                          }));
+                      (x.prototype.dispose = function () {
+                        if (!this.isDisposed) {
+                          this.isDisposed = !0;
+                          for (var t = 0, e = this._disposables.length; t < e; t++)
+                            this._disposables[t].dispose();
+                          this._disposables.length = 0;
+                        }
+                      }),
+                        (s.RefCountDisposable =
+                          ((Rt.prototype.dispose = function () {
+                            this.disposable.isDisposed ||
+                              this.isInnerDisposed ||
+                              ((this.isInnerDisposed = !0),
+                              this.disposable.count--,
+                              0 === this.disposable.count &&
+                                this.disposable.isPrimaryDisposed &&
+                                ((this.disposable.isDisposed = !0),
+                                this.disposable.underlyingDisposable.dispose()));
+                          }),
+                          (Ut.prototype.dispose = function () {
+                            this.isDisposed ||
+                              this.isPrimaryDisposed ||
+                              ((this.isPrimaryDisposed = !0),
+                              0 === this.count &&
+                                ((this.isDisposed = !0), this.underlyingDisposable.dispose()));
+                          }),
+                          (Ut.prototype.getDisposable = function () {
+                            return this.isDisposed ? y : new Rt(this);
+                          }),
+                          Ut));
+                      function Rt(t) {
+                        (this.disposable = t), this.disposable.count++, (this.isInnerDisposed = !1);
+                      }
+                      function Ut(t) {
+                        (this.underlyingDisposable = t),
+                          (this.isDisposed = !1),
+                          (this.isPrimaryDisposed = !1),
+                          (this.count = 0);
+                      }
+                      var Nt = (s.internals.ScheduledItem = function (t, e, n, r, i) {
+                          (this.scheduler = t),
+                            (this.state = e),
+                            (this.action = n),
+                            (this.dueTime = r),
+                            (this.comparer = i || L),
+                            (this.disposable = new E());
+                        }),
+                        a =
+                          ((Nt.prototype.invoke = function () {
+                            this.disposable.setDisposable(this.invokeCore());
+                          }),
+                          (Nt.prototype.compareTo = function (t) {
+                            return this.comparer(this.dueTime, t.dueTime);
+                          }),
+                          (Nt.prototype.isCancelled = function () {
+                            return this.disposable.isDisposed;
+                          }),
+                          (Nt.prototype.invokeCore = function () {
+                            return Tt(this.action(this.scheduler, this.state));
+                          }),
+                          (s.Scheduler =
+                            ((Pt.isScheduler = function (t) {
+                              return t instanceof Pt;
+                            }),
+                            ((a = Pt.prototype).schedule = function (t, e) {
+                              throw new et();
+                            }),
+                            (a.scheduleFuture = function (t, e, n) {
+                              return (
+                                e instanceof Date && (e -= this.now()),
+                                0 === (e = Pt.normalize(e))
+                                  ? this.schedule(t, n)
+                                  : this._scheduleFuture(t, e, n)
+                              );
+                            }),
+                            (a._scheduleFuture = function (t, e, n) {
+                              throw new et();
+                            }),
+                            (Pt.now = e),
+                            (Pt.prototype.now = e),
+                            (Pt.normalize = function (t) {
+                              return (t = t < 0 ? 0 : t);
+                            }),
+                            Pt)));
+                      function Pt() {}
+                      var Lt = a.normalize,
+                        I = a.isScheduler;
+                      function Yt(a, t) {
+                        var e = t[0],
+                          s = t[1],
+                          l = new kt();
+                        return (
+                          s(e, function n(t) {
+                            var r = !1,
+                              i = !1;
+                            var o = a.schedule(t, e);
+                            i || (l.add(o), (r = !0));
+                            function e(t, e) {
+                              return r ? l.remove(o) : (i = !0), s(e, n), y;
+                            }
+                          }),
+                          l
+                        );
+                      }
+                      function Ot(s, t) {
+                        var e = t[0],
+                          l = t[1],
+                          u = new kt();
+                        return (
+                          l(e, function n(t, e) {
+                            var r = !1,
+                              i = !1;
+                            var o = s.scheduleFuture(t, e, a);
+                            i || (u.add(o), (r = !0));
+                            function a(t, e) {
+                              return r ? u.remove(o) : (i = !0), l(e, n), y;
+                            }
+                          }),
+                          u
+                        );
+                      }
+                      ((e = a.prototype).scheduleRecursive = function (t, e) {
+                        return this.schedule([t, e], Yt);
+                      }),
+                        (e.scheduleRecursiveFuture = function (t, e, n) {
+                          return this.scheduleFuture([t, n], e, Ot);
+                        }),
+                        (a.prototype.schedulePeriodic = function (t, e, n) {
+                          if (void 0 === l.setInterval) throw new tt();
+                          e = Lt(e);
+                          var r = t,
+                            i = l.setInterval(function () {
+                              r = n(r);
+                            }, e);
+                          return Qt(function () {
+                            l.clearInterval(i);
+                          });
+                        });
+                      o(zt, (Gt = a)),
+                        (zt.prototype.schedule = function (t, e) {
+                          return Tt(e(this, t));
+                        });
+                      var Gt,
+                        e = zt;
+                      function zt() {
+                        Gt.call(this);
+                      }
+                      var Ht,
+                        jt,
+                        M = (a.immediate = new e()),
+                        e =
+                          (o(qt, (Ht = a)),
+                          (qt.prototype.schedule = function (t, e) {
+                            t = new Nt(this, t, e, this.now());
+                            return (
+                              jt
+                                ? jt.enqueue(t)
+                                : ((jt = new he(4)).enqueue(t),
+                                  (e = v(Vt)()),
+                                  (jt = null),
+                                  e === m && h(e.e)),
+                              t.disposable
+                            );
+                          }),
+                          (qt.prototype.scheduleRequired = function () {
+                            return !jt;
+                          }),
+                          qt);
+                      function Vt() {
+                        for (; 0 < jt.length; ) {
+                          var t = jt.dequeue();
+                          t.isCancelled() || t.invoke();
+                        }
+                      }
+                      function qt() {
+                        Ht.call(this);
+                      }
+                      var Wt,
+                        Jt,
+                        D = (a.currentThread = new e());
+                      s.internals.SchedulePeriodicRecursive =
+                        ((Kt.prototype.start = function () {
+                          var n,
+                            t = new E();
+                          return (
+                            (this._cancel = t).setDisposable(
+                              this._scheduler.scheduleRecursiveFuture(
+                                0,
+                                this._period,
+                                ((n = this),
+                                function (t, e) {
+                                  e(0, n._period);
+                                  e = v(n._action)(n._state);
+                                  e === m && (n._cancel.dispose(), h(e.e)), (n._state = e);
+                                }),
+                              ),
+                            ),
+                            t
+                          );
+                        }),
+                        Kt);
+                      function Kt(t, e, n, r) {
+                        (this._scheduler = t),
+                          (this._state = e),
+                          (this._period = n),
+                          (this._action = r);
+                      }
+                      var Zt,
+                        S,
+                        Xt,
+                        $t,
+                        te,
+                        ee,
+                        e = (function () {
+                          var t,
+                            e = u;
+                          if (l.setTimeout) (t = l.setTimeout), (e = l.clearTimeout);
+                          else {
+                            if (!l.WScript) throw new tt();
+                            t = function (t, e) {
+                              l.WScript.Sleep(e), t();
+                            };
+                          }
+                          return { setTimeout: t, clearTimeout: e };
+                        })(),
+                        ne = e.setTimeout,
+                        re = e.clearTimeout;
+                      function ie(t) {
+                        var e;
+                        Xt
+                          ? ne(function () {
+                              ie(t);
+                            }, 0)
+                          : (e = S[t]) &&
+                            ((Xt = !0), (e = v(e)()), Jt(t), (Xt = !1), e === m && h(e.e));
+                      }
+                      (Zt = 1),
+                        (Xt = !(S = {})),
+                        (Jt = function (t) {
+                          delete S[t];
+                        }),
+                        (e = new RegExp(
+                          '^' +
+                            String(toString)
+                              .replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
+                              .replace(/toString| for [^\]]+/g, '.*?') +
+                            '$',
+                        )),
+                        (ee =
+                          'function' == typeof (ee = i && r && i.setImmediate) &&
+                          !e.test(ee) &&
+                          ee),
+                        (Wt = g(ee)
+                          ? function (t) {
+                              var e = Zt++;
+                              return (
+                                (S[e] = t),
+                                ee(function () {
+                                  ie(e);
+                                }),
+                                e
+                              );
+                            }
+                          : void 0 !== jp && '[object process]' === {}.toString.call(jp)
+                            ? function (t) {
+                                var e = Zt++;
+                                return (
+                                  (S[e] = t),
+                                  jp.nextTick(function () {
+                                    ie(e);
+                                  }),
+                                  e
+                                );
+                              }
+                            : (function () {
+                                  var t, e;
+                                  if (l.postMessage && !l.importScripts)
+                                    return (
+                                      (t = !1),
+                                      (e = l.onmessage),
+                                      (l.onmessage = function () {
+                                        t = !0;
+                                      }),
+                                      l.postMessage('', '*'),
+                                      (l.onmessage = e),
+                                      t
+                                    );
+                                })()
+                              ? (($t = 'ms.rx.schedule' + Math.random()),
+                                l.addEventListener(
+                                  'message',
+                                  function (t) {
+                                    'string' == typeof t.data &&
+                                      t.data.substring(0, $t.length) === $t &&
+                                      ie(t.data.substring($t.length));
+                                  },
+                                  !1,
+                                ),
+                                function (t) {
+                                  var e = Zt++;
+                                  return (S[e] = t), l.postMessage($t + e, '*'), e;
+                                })
+                              : l.MessageChannel
+                                ? (((te = new l.MessageChannel()).port1.onmessage = function (t) {
+                                    ie(t.data);
+                                  }),
+                                  function (t) {
+                                    var e = Zt++;
+                                    return (S[e] = t), te.port2.postMessage(e), e;
+                                  })
+                                : 'document' in l &&
+                                    'onreadystatechange' in l.document.createElement('script')
+                                  ? function (t) {
+                                      var e = l.document.createElement('script'),
+                                        n = Zt++;
+                                      return (
+                                        (S[n] = t),
+                                        (e.onreadystatechange = function () {
+                                          ie(n),
+                                            (e.onreadystatechange = null),
+                                            e.parentNode.removeChild(e),
+                                            (e = null);
+                                        }),
+                                        l.document.documentElement.appendChild(e),
+                                        n
+                                      );
+                                    }
+                                  : function (t) {
+                                      var e = Zt++;
+                                      return (
+                                        (S[e] = t),
+                                        ne(function () {
+                                          ie(e);
+                                        }, 0),
+                                        e
+                                      );
+                                    });
+                      o(ae, (oe = a)),
+                        (le.prototype.dispose = function () {
+                          this.isDisposed || ((this.isDisposed = !0), Jt(this._id));
+                        }),
+                        (ue.prototype.dispose = function () {
+                          this.isDisposed || ((this.isDisposed = !0), re(this._id));
+                        }),
+                        (ae.prototype.schedule = function (t, e) {
+                          var n = new E(),
+                            e = Wt(se(n, e, this, t));
+                          return new C(n, new le(e));
+                        }),
+                        (ae.prototype._scheduleFuture = function (t, e, n) {
+                          if (0 === e) return this.schedule(t, n);
+                          var r = new E(),
+                            n = ne(se(r, n, this, t), e);
+                          return new C(r, new ue(n));
+                        }),
+                        (ae.prototype.scheduleLongRunning = function (t, e) {
+                          var n,
+                            r,
+                            i,
+                            o = Qt(u);
+                          return (
+                            Wt(
+                              ((n = t),
+                              (r = e),
+                              (i = o),
+                              function () {
+                                r(n, i);
+                              }),
+                            ),
+                            o
+                          );
+                        });
+                      var oe,
+                        r = ae;
+                      function ae() {
+                        oe.call(this);
+                      }
+                      function se(t, e, n, r) {
+                        return function () {
+                          t.setDisposable(Ft._fixup(e(n, r)));
+                        };
+                      }
+                      function le(t) {
+                        (this._id = t), (this.isDisposed = !1);
+                      }
+                      function ue(t) {
+                        (this._id = t), (this.isDisposed = !1);
+                      }
+                      var ce = (a.default = a.async = new r());
+                      function Ae(t, e) {
+                        (this.id = t), (this.value = e);
+                      }
+                      Ae.prototype.compareTo = function (t) {
+                        var e = this.value.compareTo(t.value);
+                        return (e = 0 === e ? this.id - t.id : e);
+                      };
+                      var he = (s.internals.PriorityQueue = function (t) {
+                          (this.items = new Array(t)), (this.length = 0);
+                        }),
+                        i = he.prototype,
+                        pe =
+                          ((i.isHigherPriority = function (t, e) {
+                            return this.items[t].compareTo(this.items[e]) < 0;
+                          }),
+                          (i.percolate = function (t) {
+                            var e, n;
+                            t >= this.length ||
+                              t < 0 ||
+                              (e = (t - 1) >> 1) < 0 ||
+                              e === t ||
+                              (this.isHigherPriority(t, e) &&
+                                ((n = this.items[t]),
+                                (this.items[t] = this.items[e]),
+                                (this.items[e] = n),
+                                this.percolate(e)));
+                          }),
+                          (i.heapify = function (t) {
+                            var e, n, r;
+                            (t = +t ? t : 0) >= this.length ||
+                              t < 0 ||
+                              ((e = 2 * t + 2),
+                              (r = 2 * (n = t) + 1) < this.length &&
+                                this.isHigherPriority(r, n) &&
+                                (n = r),
+                              (n = e < this.length && this.isHigherPriority(e, n) ? e : n) !== t &&
+                                ((r = this.items[t]),
+                                (this.items[t] = this.items[n]),
+                                (this.items[n] = r),
+                                this.heapify(n)));
+                          }),
+                          (i.peek = function () {
+                            return this.items[0].value;
+                          }),
+                          (i.removeAt = function (t) {
+                            (this.items[t] = this.items[--this.length]),
+                              (this.items[this.length] = f),
+                              this.heapify();
+                          }),
+                          (i.dequeue = function () {
+                            var t = this.peek();
+                            return this.removeAt(0), t;
+                          }),
+                          (i.enqueue = function (t) {
+                            var e = this.length++;
+                            (this.items[e] = new Ae(he.count++, t)), this.percolate(e);
+                          }),
+                          (i.remove = function (t) {
+                            for (var e = 0; e < this.length; e++)
+                              if (this.items[e].value === t) return this.removeAt(e), !0;
+                            return !1;
+                          }),
+                          (he.count = 0),
+                          (s.Notification =
+                            ((de.prototype._accept = function (t, e, n) {
+                              throw new et();
+                            }),
+                            (de.prototype._acceptObserver = function (t, e, n) {
+                              throw new et();
+                            }),
+                            (de.prototype.accept = function (t, e, n) {
+                              return t && 'object' == typeof t
+                                ? this._acceptObserver(t)
+                                : this._accept(t, e, n);
+                            }),
+                            (de.prototype.toObservable = function (t) {
+                              var e = this;
+                              return (
+                                I(t) || (t = M),
+                                new T(function (n) {
+                                  return t.schedule(e, function (t, e) {
+                                    e._acceptObserver(n), 'N' === e.kind && n.onCompleted();
+                                  });
+                                })
+                              );
+                            }),
+                            de)));
+                      function de() {}
+                      o(ge, pe),
+                        (ge.prototype._accept = function (t) {
+                          return t(this.value);
+                        }),
+                        (ge.prototype._acceptObserver = function (t) {
+                          return t.onNext(this.value);
+                        }),
+                        (ge.prototype.toString = function () {
+                          return 'OnNext(' + this.value + ')';
+                        });
+                      var fe = ge;
+                      function ge(t) {
+                        (this.value = t), (this.kind = 'N');
+                      }
+                      o(ve, pe),
+                        (ve.prototype._accept = function (t, e) {
+                          return e(this.error);
+                        }),
+                        (ve.prototype._acceptObserver = function (t) {
+                          return t.onError(this.error);
+                        }),
+                        (ve.prototype.toString = function () {
+                          return 'OnError(' + this.error + ')';
+                        });
+                      var me = ve;
+                      function ve(t) {
+                        (this.error = t), (this.kind = 'E');
+                      }
+                      o(ye, pe),
+                        (ye.prototype._accept = function (t, e, n) {
+                          return n();
+                        }),
+                        (ye.prototype._acceptObserver = function (t) {
+                          return t.onCompleted();
+                        }),
+                        (ye.prototype.toString = function () {
+                          return 'OnCompleted()';
+                        });
+                      var be = ye;
+                      function ye() {
+                        this.kind = 'C';
+                      }
+                      var we = (pe.createOnNext = function (t) {
+                          return new fe(t);
+                        }),
+                        Ee = (pe.createOnError = function (t) {
+                          return new me(t);
+                        }),
+                        Be = (pe.createOnCompleted = function () {
+                          return new be();
+                        }),
+                        e = (s.Observer = function () {}),
+                        Ce = (e.create = function (t, e, n) {
+                          return new Ie((t = t || u), (e = e || Y), (n = n || u));
+                        }),
+                        k = (s.internals.AbstractObserver =
+                          (o(F, e),
+                          (F.prototype.next = t),
+                          (F.prototype.error = t),
+                          (F.prototype.completed = t),
+                          (F.prototype.onNext = function (t) {
+                            this.isStopped || this.next(t);
+                          }),
+                          (F.prototype.onError = function (t) {
+                            this.isStopped || ((this.isStopped = !0), this.error(t));
+                          }),
+                          (F.prototype.onCompleted = function () {
+                            this.isStopped || ((this.isStopped = !0), this.completed());
+                          }),
+                          (F.prototype.dispose = function () {
+                            this.isStopped = !0;
+                          }),
+                          (F.prototype.fail = function (t) {
+                            return !this.isStopped && ((this.isStopped = !0), this.error(t), !0);
+                          }),
+                          F));
+                      function F() {
+                        this.isStopped = !1;
+                      }
+                      var xe,
+                        Ie = (s.AnonymousObserver =
+                          (o(Me, (xe = k)),
+                          (Me.prototype.next = function (t) {
+                            this._onNext(t);
+                          }),
+                          (Me.prototype.error = function (t) {
+                            this._onError(t);
+                          }),
+                          (Me.prototype.completed = function () {
+                            this._onCompleted();
+                          }),
+                          Me));
+                      function Me(t, e, n) {
+                        xe.call(this),
+                          (this._onNext = t),
+                          (this._onError = e),
+                          (this._onCompleted = n);
+                      }
+                      var Q = (s.Observable =
+                        ((a = De.prototype),
+                        (De.isObservable = function (t) {
+                          return t && g(t.subscribe);
+                        }),
+                        (a.subscribe = a.forEach =
+                          function (t, e, n) {
+                            return this._subscribe('object' == typeof t ? t : Ce(t, e, n));
+                          }),
+                        (a.subscribeOnNext = function (e, n) {
+                          return this._subscribe(
+                            Ce(
+                              void 0 !== n
+                                ? function (t) {
+                                    e.call(n, t);
+                                  }
+                                : e,
+                            ),
+                          );
+                        }),
+                        (a.subscribeOnError = function (e, n) {
+                          return this._subscribe(
+                            Ce(
+                              null,
+                              void 0 !== n
+                                ? function (t) {
+                                    e.call(n, t);
+                                  }
+                                : e,
+                            ),
+                          );
+                        }),
+                        (a.subscribeOnCompleted = function (t, e) {
+                          return this._subscribe(
+                            Ce(
+                              null,
+                              null,
+                              void 0 !== e
+                                ? function () {
+                                    t.call(e);
+                                  }
+                                : t,
+                            ),
+                          );
+                        }),
+                        De));
+                      function De() {
+                        var t, e, r, i;
+                        s.config.longStackSupport &&
+                          G &&
+                          ((t = this._subscribe),
+                          (e = v(h)(new Error()).e),
+                          (this.stack = e.stack.substring(e.stack.indexOf('\n') + 1)),
+                          (this._subscribe =
+                            ((r = this),
+                            (i = t),
+                            function (e) {
+                              var n = e.onError;
+                              return (
+                                (e.onError = function (t) {
+                                  j(t, r), n.call(e, t);
+                                }),
+                                i.call(r, e)
+                              );
+                            })));
+                      }
+                      var Se,
+                        ke = (s.internals.ScheduledObserver =
+                          (o(Fe, (Se = k)),
+                          (Fe.prototype.next = function (t) {
+                            var e, n;
+                            this.queue.push(
+                              ((e = this.observer),
+                              (n = t),
+                              function () {
+                                e.onNext(n);
+                              }),
+                            );
+                          }),
+                          (Fe.prototype.error = function (t) {
+                            var e, n;
+                            this.queue.push(
+                              ((e = this.observer),
+                              (n = t),
+                              function () {
+                                e.onError(n);
+                              }),
+                            );
+                          }),
+                          (Fe.prototype.completed = function () {
+                            var t;
+                            this.queue.push(
+                              ((t = this.observer),
+                              function () {
+                                t.onCompleted();
+                              }),
+                            );
+                          }),
+                          (Fe.prototype.ensureActive = function () {
+                            var t = !1;
+                            !this.hasFaulted &&
+                              0 < this.queue.length &&
+                              ((t = !this.isAcquired), (this.isAcquired = !0)),
+                              t &&
+                                this.disposable.setDisposable(
+                                  this.scheduler.scheduleRecursive(this, Qe),
+                                );
+                          }),
+                          (Fe.prototype.dispose = function () {
+                            Se.prototype.dispose.call(this), this.disposable.dispose();
+                          }),
+                          Fe));
+                      function Fe(t, e) {
+                        Se.call(this),
+                          (this.scheduler = t),
+                          (this.observer = e),
+                          (this.isAcquired = !1),
+                          (this.hasFaulted = !1),
+                          (this.queue = []),
+                          (this.disposable = new B());
+                      }
+                      function Qe(t, e) {
+                        if (0 < t.queue.length) {
+                          var n = t.queue.shift(),
+                            n = v(n)();
+                          if (n === m) return (t.queue = []), (t.hasFaulted = !0), h(n.e);
+                          e(t);
+                        } else t.isAcquired = !1;
+                      }
+                      var _e,
+                        r = (s.ObservableBase =
+                          (o(Re, (_e = Q)),
+                          (Re.prototype._subscribe = function (t) {
+                            var t = new Ys(t),
+                              e = [t, this];
+                            return D.scheduleRequired() ? D.schedule(e, Te) : Te(0, e), t;
+                          }),
+                          (Re.prototype.subscribeCore = t),
+                          Re));
+                      function Te(t, e) {
+                        var n = e[0],
+                          e = e[1],
+                          e = v(e.subscribeCore).call(e, n);
+                        e !== m || n.fail(m.e) || h(m.e),
+                          n.setDisposable((n = e) && g(n.dispose) ? n : g(n) ? Qt(n) : y);
+                      }
+                      function Re() {
+                        _e.call(this);
+                      }
+                      var Ue,
+                        Ne = (s.FlatMapObservable =
+                          (o(Pe, (Ue = r)),
+                          (Pe.prototype.subscribeCore = function (t) {
+                            return this.source.subscribe(
+                              new Le(t, this.selector, this.resultSelector, this),
+                            );
+                          }),
+                          o(Le, k),
+                          (Le.prototype._wrapResult = function (t, n, r) {
+                            return this.resultSelector
+                              ? t.map(function (t, e) {
+                                  return this.resultSelector(n, t, r, e);
+                                }, this)
+                              : t;
+                          }),
+                          (Le.prototype.next = function (t) {
+                            var e = this.i++,
+                              n = v(this.selector)(t, e, this.source);
+                            if (n === m) return this.o.onError(n.e);
+                            d(n) && (n = _(n)),
+                              (it(n) || rt(n)) && (n = Q.from(n)),
+                              this.o.onNext(this._wrapResult(n, t, e));
+                          }),
+                          (Le.prototype.error = function (t) {
+                            this.o.onError(t);
+                          }),
+                          (Le.prototype.completed = function () {
+                            this.o.onCompleted();
+                          }),
+                          Pe));
+                      function Pe(t, e, n, r) {
+                        (this.resultSelector = g(n) ? n : null),
+                          (this.selector = ot(
+                            g(e)
+                              ? e
+                              : function () {
+                                  return e;
+                                },
+                            r,
+                            3,
+                          )),
+                          (this.source = t),
+                          Ue.call(this);
+                      }
+                      function Le(t, e, n, r) {
+                        (this.i = 0),
+                          (this.selector = e),
+                          (this.resultSelector = n),
+                          (this.source = r),
+                          (this.o = t),
+                          k.call(this);
+                      }
+                      i = s.internals.Enumerable = function () {};
+                      function Ye(t) {
+                        (this._s = t), (this.isDisposed = !1);
+                      }
+                      Ye.prototype.dispose = function () {
+                        this.isDisposed || ((this.isDisposed = !0), (this._s.isDisposed = !0));
+                      };
+                      o(ze, (Oe = r)),
+                        (ze.prototype.subscribeCore = function (t) {
+                          var e = new B(),
+                            t = { isDisposed: !1, o: t, subscription: e, e: this.sources[p]() },
+                            n = D.scheduleRecursive(t, He);
+                          return new x([e, n, new Ye(t)]);
+                        }),
+                        o(je, k),
+                        (je.prototype.next = function (t) {
+                          this._state.o.onNext(t);
+                        }),
+                        (je.prototype.error = function (t) {
+                          this._state.o.onError(t);
+                        }),
+                        (je.prototype.completed = function () {
+                          this._recurse(this._state);
+                        });
+                      var Oe,
+                        Ge = ze;
+                      function ze(t) {
+                        (this.sources = t), Oe.call(this);
+                      }
+                      function He(t, e) {
+                        if (!t.isDisposed) {
+                          var n = v(t.e.next).call(t.e);
+                          if (n === m) return t.o.onError(n.e);
+                          if (n.done) return t.o.onCompleted();
+                          var n = n.value,
+                            r = (d(n) && (n = _(n)), new E());
+                          t.subscription.setDisposable(r),
+                            r.setDisposable(n.subscribe(new je(t, e)));
+                        }
+                      }
+                      function je(t, e) {
+                        (this._state = t), (this._recurse = e), k.call(this);
+                      }
+                      i.prototype.concat = function () {
+                        return new Ge(this);
+                      };
+                      o(We, (Ve = r)),
+                        (We.prototype.subscribeCore = function (t) {
+                          var e = new B(),
+                            t = {
+                              isDisposed: !1,
+                              e: this.sources[p](),
+                              subscription: e,
+                              lastError: null,
+                              o: t,
+                            },
+                            n = D.scheduleRecursive(t, Je);
+                          return new x([e, n, new Ye(t)]);
+                        }),
+                        o(Ke, k),
+                        (Ke.prototype.next = function (t) {
+                          this._state.o.onNext(t);
+                        }),
+                        (Ke.prototype.error = function (t) {
+                          (this._state.lastError = t), this._recurse(this._state);
+                        }),
+                        (Ke.prototype.completed = function () {
+                          this._state.o.onCompleted();
+                        });
+                      var Ve,
+                        qe = We;
+                      function We(t) {
+                        (this.sources = t), Ve.call(this);
+                      }
+                      function Je(t, e) {
+                        if (!t.isDisposed) {
+                          var n = v(t.e.next).call(t.e);
+                          if (n === m) return t.o.onError(n.e);
+                          if (n.done)
+                            return null !== t.lastError
+                              ? t.o.onError(t.lastError)
+                              : t.o.onCompleted();
+                          var n = n.value,
+                            r = (d(n) && (n = _(n)), new E());
+                          t.subscription.setDisposable(r),
+                            r.setDisposable(n.subscribe(new Ke(t, e)));
+                        }
+                      }
+                      function Ke(t, e) {
+                        (this._state = t), (this._recurse = e), k.call(this);
+                      }
+                      i.prototype.catchError = function () {
+                        return new qe(this);
+                      };
+                      o(Xe, i),
+                        (Xe.prototype[p] = function () {
+                          return new $e(this);
+                        }),
+                        ($e.prototype.next = function () {
+                          return 0 === this.l
+                            ? nt
+                            : (0 < this.l && this.l--, { done: !1, value: this.v });
+                        });
+                      var Ze = Xe;
+                      function Xe(t, e) {
+                        (this.v = t), (this.c = null == e ? -1 : e);
+                      }
+                      function $e(t) {
+                        (this.v = t.v), (this.l = t.c);
+                      }
+                      var tn = (i.repeat = function (t, e) {
+                          return new Ze(t, e);
+                        }),
+                        en =
+                          (o(nn, i),
+                          (nn.prototype[p] = function () {
+                            return new rn(this);
+                          }),
+                          (rn.prototype.next = function () {
+                            return ++this.i < this.l
+                              ? {
+                                  done: !1,
+                                  value: this.fn
+                                    ? this.fn(this.s[this.i], this.i, this.s)
+                                    : this.s[this.i],
+                                }
+                              : nt;
+                          }),
+                          nn);
+                      function nn(t, e, n) {
+                        (this.s = t), (this.fn = e ? ot(e, n, 3) : null);
+                      }
+                      function rn(t) {
+                        (this.i = -1), (this.s = t.s), (this.l = this.s.length), (this.fn = t.fn);
+                      }
+                      var on,
+                        an = (i.of = function (t, e, n) {
+                          return new en(t, e, n);
+                        }),
+                        sn =
+                          (o(ln, (on = r)),
+                          (ln.prototype.subscribeCore = function (t) {
+                            return this.source.subscribe(new un(t));
+                          }),
+                          o(un, k),
+                          (un.prototype.next = function (t) {
+                            this.a.push(t);
+                          }),
+                          (un.prototype.error = function (t) {
+                            this.o.onError(t);
+                          }),
+                          (un.prototype.completed = function () {
+                            this.o.onNext(this.a), this.o.onCompleted();
+                          }),
+                          ln);
+                      function ln(t) {
+                        (this.source = t), on.call(this);
+                      }
+                      function un(t) {
+                        (this.o = t), (this.a = []), k.call(this);
+                      }
+                      (a.toArray = function () {
+                        return new sn(this);
+                      }),
+                        (Q.create = function (t, e) {
+                          return new T(t, e);
+                        });
+                      o(hn, (cn = r)),
+                        (hn.prototype.subscribeCore = function (t) {
+                          var e = v(this._f)();
+                          return (e === m ? ir(e.e) : (e = d(e) ? _(e) : e)).subscribe(t);
+                        });
+                      var cn,
+                        An = hn;
+                      function hn(t) {
+                        (this._f = t), cn.call(this);
+                      }
+                      var pn,
+                        dn = (Q.defer = function (t) {
+                          return new An(t);
+                        }),
+                        fn =
+                          (o(gn, (pn = r)),
+                          (gn.prototype.subscribeCore = function (t) {
+                            return new mn(t, this.scheduler).run();
+                          }),
+                          (mn.prototype.run = function () {
+                            var t = this.observer;
+                            return this.scheduler === M ? vn(0, t) : this.scheduler.schedule(t, vn);
+                          }),
+                          gn);
+                      function gn(t) {
+                        (this.scheduler = t), pn.call(this);
+                      }
+                      function mn(t, e) {
+                        (this.observer = t), (this.scheduler = e);
+                      }
+                      function vn(t, e) {
+                        return e.onCompleted(), y;
+                      }
+                      var bn,
+                        yn = new fn(M),
+                        wn = (Q.empty = function (t) {
+                          return (t = I(t) ? t : M) === M ? yn : new fn(t);
+                        }),
+                        En =
+                          (o(Bn, (bn = r)),
+                          (Bn.prototype.subscribeCore = function (t) {
+                            var r,
+                              i,
+                              o,
+                              e = (function (t) {
+                                var e = t[p];
+                                if (!e && 'string' == typeof t) return new xn(t)[p]();
+                                if (!e && t.length !== f) return new Mn(t)[p]();
+                                if (e) return t[p]();
+                                throw new TypeError('Object is not iterable');
+                              })(Object(this._iterable));
+                            return this._scheduler.scheduleRecursive(
+                              0,
+                              ((r = t),
+                              (i = e),
+                              (o = this._fn),
+                              function (t, e) {
+                                var n = v(i.next).call(i);
+                                return n === m
+                                  ? r.onError(n.e)
+                                  : n.done
+                                    ? r.onCompleted()
+                                    : ((n = n.value),
+                                      g(o) && (n = v(o)(n, t)) === m
+                                        ? r.onError(n.e)
+                                        : (r.onNext(n), void e(t + 1)));
+                              }),
+                            );
+                          }),
+                          Bn);
+                      function Bn(t, e, n) {
+                        (this._iterable = t), (this._fn = e), (this._scheduler = n), bn.call(this);
+                      }
+                      var Cn = Math.pow(2, 53) - 1;
+                      function xn(t) {
+                        this._s = t;
+                      }
+                      function In(t) {
+                        (this._s = t), (this._l = t.length), (this._i = 0);
+                      }
+                      function Mn(t) {
+                        this._a = t;
+                      }
+                      function Dn(t) {
+                        (this._a = t),
+                          (this._l = (function (t) {
+                            t = +t.length;
+                            if (isNaN(t)) return 0;
+                            if (
+                              0 !== t &&
+                              (function (t) {
+                                return 'number' == typeof t && l.isFinite(t);
+                              })(t)
+                            ) {
+                              if (
+                                (t =
+                                  (function (t) {
+                                    t = +t;
+                                    if (0 == t) return t;
+                                    if (isNaN(t)) return t;
+                                    return t < 0 ? -1 : 1;
+                                  })(t) * Math.floor(Math.abs(t))) <= 0
+                              )
+                                return 0;
+                              if (Cn < t) return Cn;
+                            }
+                            return t;
+                          })(t)),
+                          (this._i = 0);
+                      }
+                      (xn.prototype[p] = function () {
+                        return new In(this._s);
+                      }),
+                        (In.prototype[p] = function () {
+                          return this;
+                        }),
+                        (In.prototype.next = function () {
+                          return this._i < this._l
+                            ? { done: !1, value: this._s.charAt(this._i++) }
+                            : nt;
+                        }),
+                        (Mn.prototype[p] = function () {
+                          return new Dn(this._a);
+                        }),
+                        (Dn.prototype[p] = function () {
+                          return this;
+                        }),
+                        (Dn.prototype.next = function () {
+                          return this._i < this._l ? { done: !1, value: this._a[this._i++] } : nt;
+                        });
+                      var Sn,
+                        kn = (Q.from = function (t, e, n, r) {
+                          if (null == t) throw new Error('iterable cannot be null.');
+                          if (e && !g(e)) throw new Error('mapFn when provided must be a function');
+                          var i;
+                          return e && (i = ot(e, n, 2)), I(r) || (r = D), new En(t, i, r);
+                        }),
+                        Fn =
+                          (o(Qn, (Sn = r)),
+                          (Qn.prototype.subscribeCore = function (t) {
+                            return this._scheduler.scheduleRecursive(
+                              0,
+                              ((n = t),
+                              (r = this._args),
+                              (i = r.length),
+                              function (t, e) {
+                                t < i ? (n.onNext(r[t]), e(t + 1)) : n.onCompleted();
+                              }),
+                            );
+                            var n, r, i;
+                          }),
+                          Qn);
+                      function Qn(t, e) {
+                        (this._args = t), (this._scheduler = e), Sn.call(this);
+                      }
+                      var _n,
+                        Tn = (Q.fromArray = function (t, e) {
+                          return I(e) || (e = D), new Fn(t, e);
+                        });
+                      function Rn() {
+                        _n.call(this);
+                      }
+                      o(Rn, (_n = r)),
+                        (Rn.prototype.subscribeCore = function (t) {
+                          return y;
+                        });
+                      var Un = new Rn(),
+                        Nn = (Q.never = function () {
+                          return Un;
+                        });
+                      function Pn(t, e) {
+                        return I(t) || (t = D), new Fn(e, t);
+                      }
+                      (Q.of = function () {
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        return new Fn(e, D);
+                      }),
+                        (Q.ofWithScheduler = function (t) {
+                          for (var e = arguments.length, n = new Array(e - 1), r = 1; r < e; r++)
+                            n[r - 1] = arguments[r];
+                          return new Fn(n, t);
+                        });
+                      o(On, (Ln = r)),
+                        (On.prototype.subscribeCore = function (t) {
+                          return this._scheduler.scheduleRecursive(
+                            0,
+                            ((r = t),
+                            (i = this._o),
+                            (o = this._keys),
+                            function (t, e) {
+                              var n;
+                              t < o.length
+                                ? ((n = o[t]), r.onNext([n, i[n]]), e(t + 1))
+                                : r.onCompleted();
+                            }),
+                          );
+                          var r, i, o;
+                        });
+                      var Ln,
+                        Yn = On;
+                      function On(t, e) {
+                        (this._o = t),
+                          (this._keys = Object.keys(t)),
+                          (this._scheduler = e),
+                          Ln.call(this);
+                      }
+                      Q.pairs = function (t, e) {
+                        return new Yn(t, (e = e || D));
+                      };
+                      o(Hn, (Gn = r)),
+                        (Hn.prototype.subscribeCore = function (t) {
+                          return this.scheduler.scheduleRecursive(
+                            0,
+                            ((n = this.start),
+                            (r = this.rangeCount),
+                            (i = t),
+                            function (t, e) {
+                              t < r ? (i.onNext(n + t), e(t + 1)) : i.onCompleted();
+                            }),
+                          );
+                          var n, r, i;
+                        });
+                      var Gn,
+                        zn = Hn;
+                      function Hn(t, e, n) {
+                        (this.start = t),
+                          (this.rangeCount = e),
+                          (this.scheduler = n),
+                          Gn.call(this);
+                      }
+                      Q.range = function (t, e, n) {
+                        return I(n) || (n = D), new zn(t, e, n);
+                      };
+                      o(qn, (jn = r)),
+                        (qn.prototype.subscribeCore = function (t) {
+                          return new Wn(t, this).run();
+                        });
+                      var jn,
+                        Vn = qn;
+                      function qn(t, e, n) {
+                        (this.value = t),
+                          (this.repeatCount = null == e ? -1 : e),
+                          (this.scheduler = n),
+                          jn.call(this);
+                      }
+                      function Wn(t, e) {
+                        (this.observer = t), (this.parent = e);
+                      }
+                      (Wn.prototype.run = function () {
+                        var n = this.observer,
+                          r = this.parent.value;
+                        return this.parent.scheduler.scheduleRecursive(
+                          this.parent.repeatCount,
+                          function (t, e) {
+                            if (((-1 === t || 0 < t) && (n.onNext(r), 0 < t && t--), 0 === t))
+                              return n.onCompleted();
+                            e(t);
+                          },
+                        );
+                      }),
+                        (Q.repeat = function (t, e, n) {
+                          return I(n) || (n = D), new Vn(t, e, n);
+                        });
+                      o(Zn, (Jn = r)),
+                        (Zn.prototype.subscribeCore = function (t) {
+                          t = [this._value, t];
+                          return this._scheduler === M ? Xn(0, t) : this._scheduler.schedule(t, Xn);
+                        });
+                      var Jn,
+                        Kn = Zn;
+                      function Zn(t, e) {
+                        (this._value = t), (this._scheduler = e), Jn.call(this);
+                      }
+                      function Xn(t, e) {
+                        var n = e[0],
+                          e = e[1];
+                        return e.onNext(n), e.onCompleted(), y;
+                      }
+                      Q.return = Q.just = function (t, e) {
+                        return I(e) || (e = M), new Kn(t, e);
+                      };
+                      o(er, ($n = r)),
+                        (er.prototype.subscribeCore = function (t) {
+                          t = [this._error, t];
+                          return this._scheduler === M ? nr(0, t) : this._scheduler.schedule(t, nr);
+                        });
+                      var $n,
+                        tr = er;
+                      function er(t, e) {
+                        (this._error = t), (this._scheduler = e), $n.call(this);
+                      }
+                      function nr(t, e) {
+                        var n = e[0];
+                        return e[1].onError(n), y;
+                      }
+                      var rr,
+                        ir = (Q.throw = function (t, e) {
+                          return I(e) || (e = M), new tr(t, e);
+                        }),
+                        or =
+                          (o(ar, (rr = r)),
+                          (ar.prototype.subscribeCore = function (t) {
+                            var e = new E(),
+                              n = new B();
+                            return (
+                              n.setDisposable(e),
+                              e.setDisposable(this.source.subscribe(new lr(t, n, this._fn))),
+                              n
+                            );
+                          }),
+                          ar);
+                      function ar(t, e) {
+                        (this.source = t), (this._fn = e), rr.call(this);
+                      }
+                      o(ur, (sr = k)),
+                        (ur.prototype.next = function (t) {
+                          this._o.onNext(t);
+                        }),
+                        (ur.prototype.completed = function () {
+                          return this._o.onCompleted();
+                        }),
+                        (ur.prototype.error = function (t) {
+                          t = v(this._fn)(t);
+                          if (t === m) return this._o.onError(t.e);
+                          d(t) && (t = _(t));
+                          var e = new E();
+                          this._s.setDisposable(e), e.setDisposable(t.subscribe(this._o));
+                        });
+                      var sr,
+                        lr = ur;
+                      function ur(t, e, n) {
+                        (this._o = t), (this._s = e), (this._fn = n), sr.call(this);
+                      }
+                      a.catch = function (t) {
+                        return g(t) ? new or(this, t) : cr([this, t]);
+                      };
+                      var cr = (Q.catch = function () {
+                        if (Array.isArray(arguments[0])) e = arguments[0];
+                        else
+                          for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                        return an(e).catchError();
+                      });
+                      function Ar() {
+                        return !1;
+                      }
+                      function hr() {
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        return e;
+                      }
+                      a.combineLatest = function () {
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        return (Array.isArray(e[0]) ? e[0] : e).unshift(this), yr.apply(this, e);
+                      };
+                      o(fr, (pr = r)),
+                        (fr.prototype.subscribeCore = function (t) {
+                          for (
+                            var e = this._params.length,
+                              n = new Array(e),
+                              r = {
+                                hasValue: St(e, Ar),
+                                hasValueAll: !1,
+                                isDone: St(e, Ar),
+                                values: new Array(e),
+                              },
+                              i = 0;
+                            i < e;
+                            i++
+                          ) {
+                            var o = this._params[i],
+                              a = new E();
+                            (n[i] = a),
+                              d(o) && (o = _(o)),
+                              a.setDisposable(o.subscribe(new mr(t, i, this._cb, r)));
+                          }
+                          return new x(n);
+                        });
+                      var pr,
+                        dr = fr;
+                      function fr(t, e) {
+                        (this._params = t), (this._cb = e), pr.call(this);
+                      }
+                      o(vr, (gr = k)),
+                        (vr.prototype.next = function (t) {
+                          if (
+                            ((this._state.values[this._i] = t),
+                            (this._state.hasValue[this._i] = !0),
+                            this._state.hasValueAll ||
+                              (this._state.hasValueAll = this._state.hasValue.every(c)))
+                          ) {
+                            t = v(this._cb).apply(null, this._state.values);
+                            if (t === m) return this._o.onError(t.e);
+                            this._o.onNext(t);
+                          } else
+                            this._state.isDone
+                              .filter(
+                                ((n = this._i),
+                                function (t, e) {
+                                  return e !== n;
+                                }),
+                              )
+                              .every(c) && this._o.onCompleted();
+                          var n;
+                        }),
+                        (vr.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (vr.prototype.completed = function () {
+                          (this._state.isDone[this._i] = !0),
+                            this._state.isDone.every(c) && this._o.onCompleted();
+                        });
+                      var gr,
+                        mr = vr;
+                      function vr(t, e, n, r) {
+                        (this._o = t),
+                          (this._i = e),
+                          (this._cb = n),
+                          (this._state = r),
+                          gr.call(this);
+                      }
+                      var br,
+                        yr = (Q.combineLatest = function () {
+                          for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                          var r = g(e[t - 1]) ? e.pop() : hr;
+                          return Array.isArray(e[0]) && (e = e[0]), new dr(e, r);
+                        }),
+                        wr =
+                          ((a.concat = function () {
+                            for (var t = [], e = 0, n = arguments.length; e < n; e++)
+                              t.push(arguments[e]);
+                            return t.unshift(this), Dr.apply(null, t);
+                          }),
+                          o(Er, (br = k)),
+                          (Er.prototype.next = function (t) {
+                            this._s.o.onNext(t);
+                          }),
+                          (Er.prototype.error = function (t) {
+                            this._s.o.onError(t);
+                          }),
+                          (Er.prototype.completed = function () {
+                            this._s.i++, this._fn(this._s);
+                          }),
+                          Er);
+                      function Er(t, e) {
+                        (this._s = t), (this._fn = e), br.call(this);
+                      }
+                      o(xr, (Br = r)),
+                        (xr.prototype.subscribeCore = function (t) {
+                          var e = new B(),
+                            n = Qt(u),
+                            t = {
+                              o: t,
+                              i: 0,
+                              subscription: e,
+                              disposable: n,
+                              sources: this._sources,
+                            },
+                            t = M.scheduleRecursive(t, Ir);
+                          return new x([e, n, t]);
+                        });
+                      var Br,
+                        Cr = xr;
+                      function xr(t) {
+                        (this._sources = t), Br.call(this);
+                      }
+                      function Ir(t, e) {
+                        if (!t.disposable.isDisposed) {
+                          if (t.i === t.sources.length) return t.o.onCompleted();
+                          var n = t.sources[t.i],
+                            r = (d(n) && (n = _(n)), new E());
+                          t.subscription.setDisposable(r),
+                            r.setDisposable(n.subscribe(new wr(t, e)));
+                        }
+                      }
+                      var Mr,
+                        Dr = (Q.concat = function () {
+                          if (Array.isArray(arguments[0])) t = arguments[0];
+                          else
+                            for (
+                              var t = new Array(arguments.length), e = 0, n = arguments.length;
+                              e < n;
+                              e++
+                            )
+                              t[e] = arguments[e];
+                          return new Cr(t);
+                        }),
+                        Sr =
+                          ((a.concatAll = function () {
+                            return this.merge(1);
+                          }),
+                          o(kr, (Mr = r)),
+                          (kr.prototype.subscribeCore = function (t) {
+                            var e = new kt();
+                            return (
+                              e.add(this.source.subscribe(new Qr(t, this.maxConcurrent, e))), e
+                            );
+                          }),
+                          kr);
+                      function kr(t, e) {
+                        (this.source = t), (this.maxConcurrent = e), Mr.call(this);
+                      }
+                      o(_r, (Fr = k)),
+                        (_r.prototype.handleSubscribe = function (t) {
+                          var e = new E();
+                          this.g.add(e),
+                            d(t) && (t = _(t)),
+                            e.setDisposable(t.subscribe(new Tr(this, e)));
+                        }),
+                        (_r.prototype.next = function (t) {
+                          this.activeCount < this.max
+                            ? (this.activeCount++, this.handleSubscribe(t))
+                            : this.q.push(t);
+                        }),
+                        (_r.prototype.error = function (t) {
+                          this.o.onError(t);
+                        }),
+                        (_r.prototype.completed = function () {
+                          (this.done = !0), 0 === this.activeCount && this.o.onCompleted();
+                        }),
+                        o(Tr, Fr),
+                        (Tr.prototype.next = function (t) {
+                          this.parent.o.onNext(t);
+                        }),
+                        (Tr.prototype.error = function (t) {
+                          this.parent.o.onError(t);
+                        }),
+                        (Tr.prototype.completed = function () {
+                          this.parent.g.remove(this.sad),
+                            0 < this.parent.q.length
+                              ? this.parent.handleSubscribe(this.parent.q.shift())
+                              : (this.parent.activeCount--,
+                                this.parent.done &&
+                                  0 === this.parent.activeCount &&
+                                  this.parent.o.onCompleted());
+                        });
+                      var Fr,
+                        Qr = _r;
+                      function _r(t, e, n) {
+                        (this.o = t),
+                          (this.max = e),
+                          (this.g = n),
+                          (this.done = !1),
+                          (this.q = []),
+                          (this.activeCount = 0),
+                          Fr.call(this);
+                      }
+                      function Tr(t, e) {
+                        (this.parent = t), (this.sad = e), Fr.call(this);
+                      }
+                      a.merge = function (t) {
+                        return 'number' != typeof t ? Ur(this, t) : new Sr(this, t);
+                      };
+                      var Rr,
+                        Ur = (Q.merge = function () {
+                          var t,
+                            e,
+                            n = [],
+                            r = arguments.length;
+                          if (arguments[0])
+                            if (I(arguments[0]))
+                              for (t = arguments[0], e = 1; e < r; e++) n.push(arguments[e]);
+                            else for (t = M, e = 0; e < r; e++) n.push(arguments[e]);
+                          else for (t = M, e = 1; e < r; e++) n.push(arguments[e]);
+                          return Pn(t, (n = Array.isArray(n[0]) ? n[0] : n)).mergeAll();
+                        }),
+                        Nr = (s.CompositeError = function (t) {
+                          (this.innerErrors = t),
+                            (this.message = 'This contains multiple errors. Check the innerErrors'),
+                            Error.call(this);
+                        }),
+                        Pr =
+                          ((Nr.prototype = Object.create(Error.prototype)),
+                          (Nr.prototype.name = 'CompositeError'),
+                          o(Lr, (Rr = r)),
+                          (Lr.prototype.subscribeCore = function (t) {
+                            var e = new kt(),
+                              n = new E(),
+                              t = { isStopped: !1, errors: [], o: t };
+                            return (
+                              e.add(n), n.setDisposable(this.source.subscribe(new Or(e, t))), e
+                            );
+                          }),
+                          Lr);
+                      function Lr(t) {
+                        (this.source = t), Rr.call(this);
+                      }
+                      o(Gr, (Yr = k)),
+                        (Gr.prototype.next = function (t) {
+                          var e = new E();
+                          this._group.add(e),
+                            d(t) && (t = _(t)),
+                            e.setDisposable(t.subscribe(new Hr(e, this._group, this._state)));
+                        }),
+                        (Gr.prototype.error = function (t) {
+                          this._state.errors.push(t),
+                            (this._state.isStopped = !0),
+                            1 === this._group.length && zr(this._state.o, this._state.errors);
+                        }),
+                        (Gr.prototype.completed = function () {
+                          (this._state.isStopped = !0),
+                            1 === this._group.length && zr(this._state.o, this._state.errors);
+                        }),
+                        o(Hr, Yr),
+                        (Hr.prototype.next = function (t) {
+                          this._state.o.onNext(t);
+                        }),
+                        (Hr.prototype.error = function (t) {
+                          this._state.errors.push(t),
+                            this._group.remove(this._inner),
+                            this._state.isStopped &&
+                              1 === this._group.length &&
+                              zr(this._state.o, this._state.errors);
+                        }),
+                        (Hr.prototype.completed = function () {
+                          this._group.remove(this._inner),
+                            this._state.isStopped &&
+                              1 === this._group.length &&
+                              zr(this._state.o, this._state.errors);
+                        });
+                      var Yr,
+                        Or = Gr;
+                      function Gr(t, e) {
+                        (this._group = t), (this._state = e), Yr.call(this);
+                      }
+                      function zr(t, e) {
+                        0 === e.length
+                          ? t.onCompleted()
+                          : 1 === e.length
+                            ? t.onError(e[0])
+                            : t.onError(new Nr(e));
+                      }
+                      function Hr(t, e, n) {
+                        (this._inner = t), (this._group = e), (this._state = n), Yr.call(this);
+                      }
+                      Q.mergeDelayError = function () {
+                        if (Array.isArray(arguments[0])) e = arguments[0];
+                        else
+                          for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                        var r = Pn(null, e);
+                        return new Pr(r);
+                      };
+                      o(qr, (jr = r)),
+                        (qr.prototype.subscribeCore = function (t) {
+                          var e = new kt(),
+                            n = new E();
+                          return e.add(n), n.setDisposable(this.source.subscribe(new Jr(t, e))), e;
+                        });
+                      var jr,
+                        Vr = qr;
+                      function qr(t) {
+                        (this.source = t), jr.call(this);
+                      }
+                      o(Kr, (Wr = k)),
+                        (Kr.prototype.next = function (t) {
+                          var e = new E();
+                          this.g.add(e),
+                            d(t) && (t = _(t)),
+                            e.setDisposable(t.subscribe(new Zr(this, e)));
+                        }),
+                        (Kr.prototype.error = function (t) {
+                          this.o.onError(t);
+                        }),
+                        (Kr.prototype.completed = function () {
+                          (this.done = !0), 1 === this.g.length && this.o.onCompleted();
+                        }),
+                        o(Zr, Wr),
+                        (Zr.prototype.next = function (t) {
+                          this.parent.o.onNext(t);
+                        }),
+                        (Zr.prototype.error = function (t) {
+                          this.parent.o.onError(t);
+                        }),
+                        (Zr.prototype.completed = function () {
+                          this.parent.g.remove(this.sad),
+                            this.parent.done &&
+                              1 === this.parent.g.length &&
+                              this.parent.o.onCompleted();
+                        });
+                      var Wr,
+                        Jr = Kr;
+                      function Kr(t, e) {
+                        (this.o = t), (this.g = e), (this.done = !1), Wr.call(this);
+                      }
+                      function Zr(t, e) {
+                        (this.parent = t), (this.sad = e), Wr.call(this);
+                      }
+                      a.mergeAll = function () {
+                        return new Vr(this);
+                      };
+                      o(ti, (Xr = r)),
+                        (ti.prototype.subscribeCore = function (t) {
+                          var e = new E(),
+                            n =
+                              (e.setDisposable(this._s.subscribe(new ni(t, this))),
+                              d(this._o) && (this._o = _(this._o)),
+                              new E());
+                          return (
+                            n.setDisposable(this._o.subscribe(new oi(t, this, n))), new C(e, n)
+                          );
+                        });
+                      var Xr,
+                        $r = ti;
+                      function ti(t, e) {
+                        (this._s = t),
+                          (this._o = d(e) ? _(e) : e),
+                          (this._open = !1),
+                          Xr.call(this);
+                      }
+                      o(ri, (ei = k)),
+                        (ri.prototype.next = function (t) {
+                          this._p._open && this._o.onNext(t);
+                        }),
+                        (ri.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (ri.prototype.onCompleted = function () {
+                          this._p._open && this._o.onCompleted();
+                        });
+                      var ei,
+                        ni = ri;
+                      function ri(t, e) {
+                        (this._o = t), (this._p = e), ei.call(this);
+                      }
+                      o(ai, (ii = k)),
+                        (ai.prototype.next = function () {
+                          (this._p._open = !0), this._r.dispose();
+                        }),
+                        (ai.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (ai.prototype.onCompleted = function () {
+                          this._r.dispose();
+                        });
+                      var ii,
+                        oi = ai;
+                      function ai(t, e, n) {
+                        (this._o = t), (this._p = e), (this._r = n), ii.call(this);
+                      }
+                      a.skipUntil = function (t) {
+                        return new $r(this, t);
+                      };
+                      o(ui, (si = r)),
+                        (ui.prototype.subscribeCore = function (t) {
+                          var e = new B(),
+                            t = this.source.subscribe(new ci(t, e));
+                          return new C(t, e);
+                        }),
+                        o(ci, k),
+                        (ci.prototype.next = function (t) {
+                          var e = new E(),
+                            n = ++this.latest;
+                          (this.hasLatest = !0),
+                            this.inner.setDisposable(e),
+                            d(t) && (t = _(t)),
+                            e.setDisposable(t.subscribe(new Ai(this, n)));
+                        }),
+                        (ci.prototype.error = function (t) {
+                          this.o.onError(t);
+                        }),
+                        (ci.prototype.completed = function () {
+                          (this.stopped = !0), this.hasLatest || this.o.onCompleted();
+                        }),
+                        o(Ai, k),
+                        (Ai.prototype.next = function (t) {
+                          this.parent.latest === this.id && this.parent.o.onNext(t);
+                        }),
+                        (Ai.prototype.error = function (t) {
+                          this.parent.latest === this.id && this.parent.o.onError(t);
+                        }),
+                        (Ai.prototype.completed = function () {
+                          this.parent.latest === this.id &&
+                            ((this.parent.hasLatest = !1),
+                            this.parent.stopped && this.parent.o.onCompleted());
+                        });
+                      var si,
+                        li = ui;
+                      function ui(t) {
+                        (this.source = t), si.call(this);
+                      }
+                      function ci(t, e) {
+                        (this.o = t),
+                          (this.inner = e),
+                          (this.stopped = !1),
+                          (this.latest = 0),
+                          (this.hasLatest = !1),
+                          k.call(this);
+                      }
+                      function Ai(t, e) {
+                        (this.parent = t), (this.id = e), k.call(this);
+                      }
+                      a.switch = a.switchLatest = function () {
+                        return new li(this);
+                      };
+                      o(di, (hi = r)),
+                        (di.prototype.subscribeCore = function (t) {
+                          return new C(this.source.subscribe(t), this.other.subscribe(new gi(t)));
+                        });
+                      var hi,
+                        pi = di;
+                      function di(t, e) {
+                        (this.source = t), (this.other = d(e) ? _(e) : e), hi.call(this);
+                      }
+                      o(mi, (fi = k)),
+                        (mi.prototype.next = function () {
+                          this._o.onCompleted();
+                        }),
+                        (mi.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (mi.prototype.onCompleted = u);
+                      var fi,
+                        gi = mi;
+                      function mi(t) {
+                        (this._o = t), fi.call(this);
+                      }
+                      function Ar() {
+                        return !1;
+                      }
+                      function hr() {
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        return e;
+                      }
+                      a.takeUntil = function (t) {
+                        return new pi(this, t);
+                      };
+                      o(yi, (vi = r)),
+                        (yi.prototype.subscribeCore = function (t) {
+                          for (
+                            var e = this._ss.length,
+                              n = { hasValue: St(e, Ar), hasValueAll: !1, values: new Array(e) },
+                              r = this._ss.length,
+                              i = new Array(r + 1),
+                              o = 0;
+                            o < r;
+                            o++
+                          ) {
+                            var a = this._ss[o],
+                              s = new E();
+                            d(a) && (a = _(a)),
+                              s.setDisposable(a.subscribe(new Ei(t, o, n))),
+                              (i[o] = s);
+                          }
+                          e = new E();
+                          return (
+                            e.setDisposable(this._s.subscribe(new xi(t, this._cb, n))),
+                            (i[r] = e),
+                            new x(i)
+                          );
+                        });
+                      var vi,
+                        bi = yi;
+                      function yi(t, e, n) {
+                        (this._s = t), (this._ss = e), (this._cb = n), vi.call(this);
+                      }
+                      o(Bi, (wi = k)),
+                        (Bi.prototype.next = function (t) {
+                          (this._state.values[this._i] = t),
+                            (this._state.hasValue[this._i] = !0),
+                            (this._state.hasValueAll = this._state.hasValue.every(c));
+                        }),
+                        (Bi.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (Bi.prototype.completed = u);
+                      var wi,
+                        Ei = Bi;
+                      function Bi(t, e, n) {
+                        (this._o = t), (this._i = e), (this._state = n), wi.call(this);
+                      }
+                      o(Ii, (Ci = k)),
+                        (Ii.prototype.next = function (t) {
+                          var t = [t].concat(this._state.values);
+                          if (this._state.hasValueAll)
+                            return (
+                              (t = v(this._cb).apply(null, t)),
+                              t === m ? this._o.onError(t.e) : void this._o.onNext(t)
+                            );
+                        }),
+                        (Ii.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (Ii.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var Ci,
+                        xi = Ii;
+                      function Ii(t, e, n) {
+                        (this._o = t), (this._cb = e), (this._state = n), Ci.call(this);
+                      }
+                      function Ar() {
+                        return !1;
+                      }
+                      function Mi() {
+                        return [];
+                      }
+                      a.withLatestFrom = function () {
+                        if (0 === arguments.length) throw new Error('invalid arguments');
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        var r = g(e[t - 1]) ? e.pop() : hr;
+                        return Array.isArray(e[0]) && (e = e[0]), new bi(this, e, r);
+                      };
+                      o(ki, (Di = r)),
+                        (ki.prototype.subscribeCore = function (t) {
+                          for (
+                            var e = this._s.length,
+                              n = new Array(e),
+                              r = St(e, Ar),
+                              i = St(e, Mi),
+                              o = 0;
+                            o < e;
+                            o++
+                          ) {
+                            var a = this._s[o],
+                              s = new E();
+                            (n[o] = s),
+                              d(a) && (a = _(a)),
+                              s.setDisposable(a.subscribe(new Qi(t, o, this, i, r)));
+                          }
+                          return new x(n);
+                        });
+                      var Di,
+                        Si = ki;
+                      function ki(t, e) {
+                        (this._s = t), (this._cb = e), Di.call(this);
+                      }
+                      o(_i, (Fi = k)),
+                        (_i.prototype.next = function (t) {
+                          if ((this._q[this._i].push(t), this._q.every(Ti))) {
+                            (t = this._q.map(Ri)), (t = v(this._p._cb).apply(null, t));
+                            if (t === m) return this._o.onError(t.e);
+                            this._o.onNext(t);
+                          } else
+                            this._d
+                              .filter(
+                                ((n = this._i),
+                                function (t, e) {
+                                  return e !== n;
+                                }),
+                              )
+                              .every(c) && this._o.onCompleted();
+                          var n;
+                        }),
+                        (_i.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (_i.prototype.completed = function () {
+                          (this._d[this._i] = !0), this._d.every(c) && this._o.onCompleted();
+                        });
+                      var Fi,
+                        Qi = _i;
+                      function _i(t, e, n, r, i) {
+                        (this._o = t),
+                          (this._i = e),
+                          (this._p = n),
+                          (this._q = r),
+                          (this._d = i),
+                          Fi.call(this);
+                      }
+                      function Ti(t) {
+                        return 0 < t.length;
+                      }
+                      function Ri(t) {
+                        return t.shift();
+                      }
+                      function Ar() {
+                        return !1;
+                      }
+                      function Mi() {
+                        return [];
+                      }
+                      function hr() {
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        return e;
+                      }
+                      (a.zip = function () {
+                        if (0 === arguments.length) throw new Error('invalid arguments');
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        var r = g(e[t - 1]) ? e.pop() : hr;
+                        return (e = Array.isArray(e[0]) ? e[0] : e).unshift(this), new Si(e, r);
+                      }),
+                        (Q.zip = function () {
+                          for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                          var r = (e = Array.isArray(e[0])
+                            ? g(e[1])
+                              ? e[0].concat(e[1])
+                              : e[0]
+                            : e).shift();
+                          return r.zip.apply(r, e);
+                        });
+                      o(Pi, (Ui = r)),
+                        (Pi.prototype.subscribeCore = function (t) {
+                          for (
+                            var e,
+                              n,
+                              r,
+                              i = this.sources,
+                              o = i.length,
+                              a = new Array(o),
+                              s = { q: St(o, Mi), done: St(o, Ar), cb: this._cb, o: t },
+                              l = 0;
+                            l < o;
+                            l++
+                          )
+                            (r = n = void 0),
+                              (n = i[(e = l)]),
+                              (r = new E()),
+                              (it(n) || rt(n)) && (n = kn(n)),
+                              (a[e] = r).setDisposable(n.subscribe(new Yi(s, e)));
+                          return new x(a);
+                        });
+                      var Ui,
+                        Ni = Pi;
+                      function Pi(t, e) {
+                        (this.sources = t), (this._cb = e), Ui.call(this);
+                      }
+                      o(Oi, (Li = k)),
+                        (Oi.prototype.next = function (t) {
+                          if ((this._s.q[this._i].push(t), this._s.q.every(Gi))) {
+                            (t = this._s.q.map(zi)), (t = v(this._s.cb).apply(null, t));
+                            if (t === m) return this._s.o.onError(t.e);
+                            this._s.o.onNext(t);
+                          } else
+                            this._s.done
+                              .filter(
+                                ((n = this._i),
+                                function (t, e) {
+                                  return e !== n;
+                                }),
+                              )
+                              .every(c) && this._s.o.onCompleted();
+                          var n;
+                        }),
+                        (Oi.prototype.error = function (t) {
+                          this._s.o.onError(t);
+                        }),
+                        (Oi.prototype.completed = function () {
+                          (this._s.done[this._i] = !0),
+                            this._s.done.every(c) && this._s.o.onCompleted();
+                        });
+                      var Li,
+                        Yi = Oi;
+                      function Oi(t, e) {
+                        (this._s = t), (this._i = e), Li.call(this);
+                      }
+                      function Gi(t) {
+                        return 0 < t.length;
+                      }
+                      function zi(t) {
+                        return t.shift();
+                      }
+                      (a.zipIterable = function () {
+                        if (0 === arguments.length) throw new Error('invalid arguments');
+                        for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                          e[n] = arguments[n];
+                        var r = g(e[t - 1]) ? e.pop() : hr;
+                        return e.unshift(this), new Ni(e, r);
+                      }),
+                        (a.asObservable = function () {
+                          return new T(
+                            function (t) {
+                              return e.subscribe(t);
+                            },
+                            (e = this),
+                          );
+                          var e;
+                        });
+                      o(Vi, (Hi = r)),
+                        (Vi.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new Wi(t));
+                        });
+                      var Hi,
+                        ji = Vi;
+                      function Vi(t) {
+                        (this.source = t), Hi.call(this);
+                      }
+                      o(Ji, (qi = k)),
+                        (Ji.prototype.next = function (t) {
+                          t.accept(this._o);
+                        }),
+                        (Ji.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (Ji.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var qi,
+                        Wi = Ji;
+                      function Ji(t) {
+                        (this._o = t), qi.call(this);
+                      }
+                      a.dematerialize = function () {
+                        return new ji(this);
+                      };
+                      o(Xi, (Ki = r)),
+                        (Xi.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new to(t, this.keyFn, this.comparer));
+                        });
+                      var Ki,
+                        Zi = Xi;
+                      function Xi(t, e, n) {
+                        (this.source = t), (this.keyFn = e), (this.comparer = n), Ki.call(this);
+                      }
+                      o(eo, ($i = k)),
+                        (eo.prototype.next = function (t) {
+                          var e,
+                            n = t;
+                          return g(this.keyFn) && (n = v(this.keyFn)(t)) === m
+                            ? this.o.onError(n.e)
+                            : this.hasCurrentKey && (e = v(this.comparer)(this.currentKey, n)) === m
+                              ? this.o.onError(e.e)
+                              : void (
+                                  (this.hasCurrentKey && e) ||
+                                  ((this.hasCurrentKey = !0),
+                                  (this.currentKey = n),
+                                  this.o.onNext(t))
+                                );
+                        }),
+                        (eo.prototype.error = function (t) {
+                          this.o.onError(t);
+                        }),
+                        (eo.prototype.completed = function () {
+                          this.o.onCompleted();
+                        });
+                      var $i,
+                        to = eo;
+                      function eo(t, e, n) {
+                        (this.o = t),
+                          (this.keyFn = e),
+                          (this.comparer = n),
+                          (this.hasCurrentKey = !1),
+                          (this.currentKey = null),
+                          $i.call(this);
+                      }
+                      a.distinctUntilChanged = function (t, e) {
+                        return new Zi(this, t, (e = e || P));
+                      };
+                      o(io, (no = r)),
+                        (io.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new oo(t, this));
+                        }),
+                        o(oo, k),
+                        (oo.prototype.next = function (t) {
+                          var e = v(this.t.onNext).call(this.t, t);
+                          e === m && this.o.onError(e.e), this.o.onNext(t);
+                        }),
+                        (oo.prototype.error = function (t) {
+                          var e = v(this.t.onError).call(this.t, t);
+                          if (e === m) return this.o.onError(e.e);
+                          this.o.onError(t);
+                        }),
+                        (oo.prototype.completed = function () {
+                          var t = v(this.t.onCompleted).call(this.t);
+                          if (t === m) return this.o.onError(t.e);
+                          this.o.onCompleted();
+                        });
+                      var no,
+                        ro = io;
+                      function io(t, e, n, r) {
+                        (this.source = t),
+                          (this._oN = e),
+                          (this._oE = n),
+                          (this._oC = r),
+                          no.call(this);
+                      }
+                      function oo(t, e) {
+                        (this.o = t),
+                          (this.t =
+                            !e._oN || g(e._oN) ? Ce(e._oN || u, e._oE || u, e._oC || u) : e._oN),
+                          (this.isStopped = !1),
+                          k.call(this);
+                      }
+                      (a.do =
+                        a.tap =
+                        a.doAction =
+                          function (t, e, n) {
+                            return new ro(this, t, e, n);
+                          }),
+                        (a.doOnNext = a.tapOnNext =
+                          function (e, n) {
+                            return this.tap(
+                              void 0 !== n
+                                ? function (t) {
+                                    e.call(n, t);
+                                  }
+                                : e,
+                            );
+                          }),
+                        (a.doOnError = a.tapOnError =
+                          function (e, n) {
+                            return this.tap(
+                              u,
+                              void 0 !== n
+                                ? function (t) {
+                                    e.call(n, t);
+                                  }
+                                : e,
+                            );
+                          }),
+                        (a.doOnCompleted = a.tapOnCompleted =
+                          function (t, e) {
+                            return this.tap(
+                              u,
+                              null,
+                              void 0 !== e
+                                ? function () {
+                                    t.call(e);
+                                  }
+                                : t,
+                            );
+                          });
+                      o(lo, (ao = r)),
+                        (lo.prototype.subscribeCore = function (t) {
+                          t = v(this.source.subscribe).call(this.source, t);
+                          return t === m && (this._fn(), h(t.e)), new uo(t, this._fn);
+                        }),
+                        (uo.prototype.dispose = function () {
+                          var t;
+                          this.isDisposed ||
+                            ((t = v(this._s.dispose).call(this._s)), this._fn(), t === m && h(t.e));
+                        });
+                      var ao,
+                        so = lo;
+                      function lo(t, e, n) {
+                        (this.source = t), (this._fn = ot(e, n, 0)), ao.call(this);
+                      }
+                      function uo(t, e) {
+                        (this.isDisposed = !1), (this._s = t), (this._fn = e);
+                      }
+                      a.finally = function (t, e) {
+                        return new so(this, t, e);
+                      };
+                      o(ho, (co = r)),
+                        (ho.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new po(t));
+                        }),
+                        (po.prototype.onNext = u),
+                        (po.prototype.onError = function (t) {
+                          this.isStopped || ((this.isStopped = !0), this.o.onError(t));
+                        }),
+                        (po.prototype.onCompleted = function () {
+                          this.isStopped || ((this.isStopped = !0), this.o.onCompleted());
+                        }),
+                        (po.prototype.dispose = function () {
+                          this.isStopped = !0;
+                        }),
+                        (po.prototype.fail = function (t) {
+                          return (
+                            !this.isStopped && ((this.isStopped = !0), this.observer.onError(t), !0)
+                          );
+                        });
+                      var co,
+                        Ao = ho;
+                      function ho(t) {
+                        (this.source = t), co.call(this);
+                      }
+                      function po(t) {
+                        (this.o = t), (this.isStopped = !1);
+                      }
+                      a.ignoreElements = function () {
+                        return new Ao(this);
+                      };
+                      o(mo, (fo = r)),
+                        (mo.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new bo(t));
+                        });
+                      var fo,
+                        go = mo;
+                      function mo(t, e) {
+                        (this.source = t), fo.call(this);
+                      }
+                      o(yo, (vo = k)),
+                        (yo.prototype.next = function (t) {
+                          this._o.onNext(we(t));
+                        }),
+                        (yo.prototype.error = function (t) {
+                          this._o.onNext(Ee(t)), this._o.onCompleted();
+                        }),
+                        (yo.prototype.completed = function () {
+                          this._o.onNext(Be()), this._o.onCompleted();
+                        });
+                      var vo,
+                        bo = yo;
+                      function yo(t) {
+                        (this._o = t), vo.call(this);
+                      }
+                      function wo(t) {
+                        return {
+                          '@@iterator': function () {
+                            return {
+                              next: function () {
+                                return { done: !1, value: t };
+                              },
+                            };
+                          },
+                        };
+                      }
+                      (a.materialize = function () {
+                        return new go(this);
+                      }),
+                        (a.repeat = function (t) {
+                          return tn(this, t).concat();
+                        }),
+                        (a.retry = function (t) {
+                          return tn(this, t).catchError();
+                        });
+                      o(Co, (Eo = r)),
+                        (Co.prototype.subscribeCore = function (o) {
+                          var t,
+                            a = new R(),
+                            s = new R(),
+                            e = this._notifier(a).subscribe(s),
+                            l = this.source['@@iterator'](),
+                            u = { isDisposed: !1 },
+                            c = new B(),
+                            n = D.scheduleRecursive(null, function (t, e) {
+                              var n, r, i;
+                              u.isDisposed ||
+                                ((n = l.next()).done
+                                  ? o.onCompleted()
+                                  : ((n = n.value),
+                                    d(n) && (n = _(n)),
+                                    (r = new E()),
+                                    (i = new E()),
+                                    c.setDisposable(new C(i, r)),
+                                    r.setDisposable(
+                                      n.subscribe(
+                                        function (t) {
+                                          o.onNext(t);
+                                        },
+                                        function (t) {
+                                          i.setDisposable(
+                                            s.subscribe(
+                                              e,
+                                              function (t) {
+                                                o.onError(t);
+                                              },
+                                              function () {
+                                                o.onCompleted();
+                                              },
+                                            ),
+                                          ),
+                                            a.onNext(t),
+                                            r.dispose();
+                                        },
+                                        function () {
+                                          o.onCompleted();
+                                        },
+                                      ),
+                                    )));
+                            });
+                          return new x([
+                            e,
+                            c,
+                            n,
+                            ((t = u),
+                            {
+                              isDisposed: !1,
+                              dispose: function () {
+                                this.isDisposed || ((this.isDisposed = !0), (t.isDisposed = !0));
+                              },
+                            }),
+                          ]);
+                        });
+                      var Eo,
+                        Bo = Co;
+                      function Co(t, e) {
+                        (this.source = t), (this._notifier = e), Eo.call(this);
+                      }
+                      function wo(t) {
+                        return {
+                          '@@iterator': function () {
+                            return {
+                              next: function () {
+                                return { done: !1, value: t };
+                              },
+                            };
+                          },
+                        };
+                      }
+                      a.retryWhen = function (t) {
+                        return new Bo(wo(this), t);
+                      };
+                      o(Mo, (xo = r)),
+                        (Mo.prototype.subscribeCore = function (o) {
+                          var t,
+                            a = new R(),
+                            s = new R(),
+                            e = this._notifier(a).subscribe(s),
+                            l = this.source['@@iterator'](),
+                            u = { isDisposed: !1 },
+                            c = new B(),
+                            n = D.scheduleRecursive(null, function (t, e) {
+                              var n, r, i;
+                              u.isDisposed ||
+                                ((n = l.next()).done
+                                  ? o.onCompleted()
+                                  : ((n = n.value),
+                                    d(n) && (n = _(n)),
+                                    (r = new E()),
+                                    (i = new E()),
+                                    c.setDisposable(new C(i, r)),
+                                    r.setDisposable(
+                                      n.subscribe(
+                                        function (t) {
+                                          o.onNext(t);
+                                        },
+                                        function (t) {
+                                          o.onError(t);
+                                        },
+                                        function () {
+                                          i.setDisposable(
+                                            s.subscribe(
+                                              e,
+                                              function (t) {
+                                                o.onError(t);
+                                              },
+                                              function () {
+                                                o.onCompleted();
+                                              },
+                                            ),
+                                          ),
+                                            a.onNext(null),
+                                            r.dispose();
+                                        },
+                                      ),
+                                    )));
+                            });
+                          return new x([
+                            e,
+                            c,
+                            n,
+                            ((t = u),
+                            {
+                              isDisposed: !1,
+                              dispose: function () {
+                                this.isDisposed || ((this.isDisposed = !0), (t.isDisposed = !0));
+                              },
+                            }),
+                          ]);
+                        });
+                      var xo,
+                        Io = Mo;
+                      function Mo(t, e) {
+                        (this.source = t), (this._notifier = e), xo.call(this);
+                      }
+                      a.repeatWhen = function (t) {
+                        return new Io(wo(this), t);
+                      };
+                      o(ko, (Do = r)),
+                        (ko.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new Qo(t, this));
+                        });
+                      var Do,
+                        So = ko;
+                      function ko(t, e, n, r) {
+                        (this.source = t),
+                          (this.accumulator = e),
+                          (this.hasSeed = n),
+                          (this.seed = r),
+                          Do.call(this);
+                      }
+                      o(_o, (Fo = k)),
+                        (_o.prototype.next = function (t) {
+                          if (
+                            (this._hv || (this._hv = !0),
+                            this._ha
+                              ? (this._a = v(this._fn)(this._a, t, this._i, this._p))
+                              : ((this._a = this._hs
+                                  ? v(this._fn)(this._s, t, this._i, this._p)
+                                  : t),
+                                (this._ha = !0)),
+                            this._a === m)
+                          )
+                            return this._o.onError(this._a.e);
+                          this._o.onNext(this._a), this._i++;
+                        }),
+                        (_o.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (_o.prototype.completed = function () {
+                          !this._hv && this._hs && this._o.onNext(this._s), this._o.onCompleted();
+                        });
+                      var Fo,
+                        Qo = _o;
+                      function _o(t, e) {
+                        (this._o = t),
+                          (this._p = e),
+                          (this._fn = e.accumulator),
+                          (this._hs = e.hasSeed),
+                          (this._s = e.seed),
+                          (this._ha = !1),
+                          (this._a = null),
+                          (this._hv = !1),
+                          (this._i = 0),
+                          Fo.call(this);
+                      }
+                      a.scan = function () {
+                        var t,
+                          e = !1,
+                          n = arguments[0];
+                        return (
+                          2 === arguments.length && ((e = !0), (t = arguments[1])),
+                          new So(this, n, e, t)
+                        );
+                      };
+                      o(Uo, (To = r)),
+                        (Uo.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new Po(t, this._c));
+                        });
+                      var To,
+                        Ro = Uo;
+                      function Uo(t, e) {
+                        (this.source = t), (this._c = e), To.call(this);
+                      }
+                      o(Lo, (No = k)),
+                        (Lo.prototype.next = function (t) {
+                          this._q.push(t),
+                            this._q.length > this._c && this._o.onNext(this._q.shift());
+                        }),
+                        (Lo.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (Lo.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var No,
+                        Po = Lo;
+                      function Lo(t, e) {
+                        (this._o = t), (this._c = e), (this._q = []), No.call(this);
+                      }
+                      (a.skipLast = function (t) {
+                        if (t < 0) throw new $();
+                        return new Ro(this, t);
+                      }),
+                        (a.startWith = function () {
+                          var t,
+                            e = 0;
+                          arguments.length && I(arguments[0])
+                            ? ((t = arguments[0]), (e = 1))
+                            : (t = M);
+                          for (var n = [], r = e, i = arguments.length; r < i; r++)
+                            n.push(arguments[r]);
+                          return Dr.apply(null, [Tn(n, t), this]);
+                        });
+                      o(Go, (Yo = k)),
+                        (Go.prototype.next = function (t) {
+                          this._q.push(t), this._q.length > this._c && this._q.shift();
+                        }),
+                        (Go.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (Go.prototype.completed = function () {
+                          for (; 0 < this._q.length; ) this._o.onNext(this._q.shift());
+                          this._o.onCompleted();
+                        });
+                      var Yo,
+                        Oo = Go;
+                      function Go(t, e) {
+                        (this._o = t), (this._c = e), (this._q = []), Yo.call(this);
+                      }
+                      (a.takeLast = function (e) {
+                        if (e < 0) throw new $();
+                        var n = this;
+                        return new T(function (t) {
+                          return n.subscribe(new Oo(t, e));
+                        }, n);
+                      }),
+                        (a.flatMapConcat = a.concatMap =
+                          function (t, e, n) {
+                            return new Ne(this, t, e, n).merge(1);
+                          });
+                      o(jo, (zo = r)),
+                        (jo.prototype.internalMap = function (t, e) {
+                          return new jo(
+                            this.source,
+                            ((r = t),
+                            (i = this),
+                            function (t, e, n) {
+                              return r.call(this, i.selector(t, e, n), e, n);
+                            }),
+                            e,
+                          );
+                          var r, i;
+                        }),
+                        (jo.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new Vo(t, this.selector, this));
+                        }),
+                        o(Vo, k),
+                        (Vo.prototype.next = function (t) {
+                          t = v(this.selector)(t, this.i++, this.source);
+                          if (t === m) return this.o.onError(t.e);
+                          this.o.onNext(t);
+                        }),
+                        (Vo.prototype.error = function (t) {
+                          this.o.onError(t);
+                        }),
+                        (Vo.prototype.completed = function () {
+                          this.o.onCompleted();
+                        });
+                      var zo,
+                        Ho = jo;
+                      function jo(t, e, n) {
+                        (this.source = t), (this.selector = ot(e, n, 3)), zo.call(this);
+                      }
+                      function Vo(t, e, n) {
+                        (this.o = t),
+                          (this.selector = e),
+                          (this.source = n),
+                          (this.i = 0),
+                          k.call(this);
+                      }
+                      (a.map = a.select =
+                        function (t, e) {
+                          var n =
+                            'function' == typeof t
+                              ? t
+                              : function () {
+                                  return t;
+                                };
+                          return this instanceof Ho ? this.internalMap(n, e) : new Ho(this, n, e);
+                        }),
+                        (a.pluck = function () {
+                          var t = arguments.length,
+                            e = new Array(t);
+                          if (0 === t) throw new Error('List of properties cannot be empty.');
+                          for (var i, o, n = 0; n < t; n++) e[n] = arguments[n];
+                          return this.map(
+                            ((i = e),
+                            (o = t),
+                            function (t) {
+                              for (var e = t, n = 0; n < o; n++) {
+                                var r = e[i[n]];
+                                if (void 0 === r) return f;
+                                e = r;
+                              }
+                              return e;
+                            }),
+                          );
+                        }),
+                        (a.flatMap =
+                          a.selectMany =
+                          a.mergeMap =
+                            function (t, e, n) {
+                              return new Ne(this, t, e, n).mergeAll();
+                            }),
+                        (a.flatMapLatest = a.switchMap =
+                          function (t, e, n) {
+                            return new Ne(this, t, e, n).switchLatest();
+                          });
+                      o(Jo, (qo = r)),
+                        (Jo.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new Ko(t, this._count));
+                        }),
+                        o(Ko, k),
+                        (Ko.prototype.next = function (t) {
+                          this._r <= 0 ? this._o.onNext(t) : this._r--;
+                        }),
+                        (Ko.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (Ko.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var qo,
+                        Wo = Jo;
+                      function Jo(t, e) {
+                        (this.source = t), (this._count = e), qo.call(this);
+                      }
+                      function Ko(t, e) {
+                        (this._o = t), (this._r = e), k.call(this);
+                      }
+                      a.skip = function (t) {
+                        if (t < 0) throw new $();
+                        return new Wo(this, t);
+                      };
+                      o($o, (Zo = r)),
+                        ($o.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new ea(t, this));
+                        });
+                      var Zo,
+                        Xo = $o;
+                      function $o(t, e) {
+                        (this.source = t), (this._fn = e), Zo.call(this);
+                      }
+                      o(na, (ta = k)),
+                        (na.prototype.next = function (t) {
+                          if (!this._r) {
+                            var e = v(this._p._fn)(t, this._i++, this._p);
+                            if (e === m) return this._o.onError(e.e);
+                            this._r = !e;
+                          }
+                          this._r && this._o.onNext(t);
+                        }),
+                        (na.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (na.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var ta,
+                        ea = na;
+                      function na(t, e) {
+                        (this._o = t), (this._p = e), (this._i = 0), (this._r = !1), ta.call(this);
+                      }
+                      a.skipWhile = function (t, e) {
+                        t = ot(t, e, 3);
+                        return new Xo(this, t);
+                      };
+                      o(oa, (ra = r)),
+                        (oa.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new aa(t, this._count));
+                        }),
+                        o(aa, k),
+                        (aa.prototype.next = function (t) {
+                          0 < this._r-- &&
+                            (this._o.onNext(t), this._r <= 0 && this._o.onCompleted());
+                        }),
+                        (aa.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (aa.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var ra,
+                        ia = oa;
+                      function oa(t, e) {
+                        (this.source = t), (this._count = e), ra.call(this);
+                      }
+                      function aa(t, e) {
+                        (this._o = t), (this._c = e), (this._r = e), k.call(this);
+                      }
+                      a.take = function (t, e) {
+                        if (t < 0) throw new $();
+                        return 0 === t ? wn(e) : new ia(this, t);
+                      };
+                      o(ua, (sa = r)),
+                        (ua.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new Aa(t, this));
+                        });
+                      var sa,
+                        la = ua;
+                      function ua(t, e) {
+                        (this.source = t), (this._fn = e), sa.call(this);
+                      }
+                      o(ha, (ca = k)),
+                        (ha.prototype.next = function (t) {
+                          if (
+                            this._r &&
+                            ((this._r = v(this._p._fn)(t, this._i++, this._p)), this._r === m)
+                          )
+                            return this._o.onError(this._r.e);
+                          this._r ? this._o.onNext(t) : this._o.onCompleted();
+                        }),
+                        (ha.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (ha.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var ca,
+                        Aa = ha;
+                      function ha(t, e) {
+                        (this._o = t), (this._p = e), (this._i = 0), (this._r = !0), ca.call(this);
+                      }
+                      a.takeWhile = function (t, e) {
+                        t = ot(t, e, 3);
+                        return new la(this, t);
+                      };
+                      o(fa, (pa = r)),
+                        (fa.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new ga(t, this.predicate, this));
+                        }),
+                        (fa.prototype.internalFilter = function (t, e) {
+                          return new fa(
+                            this.source,
+                            ((r = t),
+                            (i = this),
+                            function (t, e, n) {
+                              return i.predicate(t, e, n) && r.call(this, t, e, n);
+                            }),
+                            e,
+                          );
+                          var r, i;
+                        }),
+                        o(ga, k),
+                        (ga.prototype.next = function (t) {
+                          var e = v(this.predicate)(t, this.i++, this.source);
+                          if (e === m) return this.o.onError(e.e);
+                          e && this.o.onNext(t);
+                        }),
+                        (ga.prototype.error = function (t) {
+                          this.o.onError(t);
+                        }),
+                        (ga.prototype.completed = function () {
+                          this.o.onCompleted();
+                        });
+                      var pa,
+                        da = fa;
+                      function fa(t, e, n) {
+                        (this.source = t), (this.predicate = ot(e, n, 3)), pa.call(this);
+                      }
+                      function ga(t, e, n) {
+                        (this.o = t),
+                          (this.predicate = e),
+                          (this.source = n),
+                          (this.i = 0),
+                          k.call(this);
+                      }
+                      function ma(t, e, n, r) {
+                        var i,
+                          o,
+                          a,
+                          s = new Vs();
+                        return (
+                          r.push(
+                            ((i = s),
+                            (o = e),
+                            (a = n),
+                            function () {
+                              for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                                e[n] = arguments[n];
+                              if (g(a)) {
+                                if ((e = v(a).apply(o, e)) === m) return i.onError(e.e);
+                                i.onNext(e);
+                              } else e.length <= 1 ? i.onNext(e[0]) : i.onNext(e);
+                              i.onCompleted();
+                            }),
+                          ),
+                          t.apply(e, r),
+                          s.asObservable()
+                        );
+                      }
+                      function va(t, e, n, r) {
+                        var i,
+                          o,
+                          a,
+                          s = new Vs();
+                        return (
+                          r.push(
+                            ((i = s),
+                            (o = e),
+                            (a = n),
+                            function () {
+                              var t = arguments[0];
+                              if (t) return i.onError(t);
+                              for (var e = arguments.length, n = [], r = 1; r < e; r++)
+                                n[r - 1] = arguments[r];
+                              if (g(a)) {
+                                if ((n = v(a).apply(o, n)) === m) return i.onError(n.e);
+                                i.onNext(n);
+                              } else n.length <= 1 ? i.onNext(n[0]) : i.onNext(n);
+                              i.onCompleted();
+                            }),
+                          ),
+                          t.apply(e, r),
+                          s.asObservable()
+                        );
+                      }
+                      function ba(t, e, n) {
+                        (this._e = t),
+                          (this._n = e),
+                          (this._fn = n),
+                          this._e.addEventListener(this._n, this._fn, !1),
+                          (this.isDisposed = !1);
+                      }
+                      function ya(t, e, n) {
+                        var r,
+                          i = new kt(),
+                          o = Object.prototype.toString.call(t);
+                        if (
+                          ((r = t),
+                          (l.StaticNodeList
+                            ? r instanceof l.StaticNodeList || r instanceof l.NodeList
+                            : '[object NodeList]' === Object.prototype.toString.call(r)) ||
+                            '[object HTMLCollection]' === o)
+                        )
+                          for (var a = 0, s = t.length; a < s; a++) i.add(ya(t.item(a), e, n));
+                        else t && i.add(new ba(t, e, n));
+                        return i;
+                      }
+                      (a.filter = a.where =
+                        function (t, e) {
+                          return this instanceof da
+                            ? this.internalFilter(t, e)
+                            : new da(this, t, e);
+                        }),
+                        (Q.fromCallback = function (r, i, o) {
+                          return function () {
+                            void 0 === i && (i = this);
+                            for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                              e[n] = arguments[n];
+                            return ma(r, i, o, e);
+                          };
+                        }),
+                        (Q.fromNodeCallback = function (r, i, o) {
+                          return function () {
+                            void 0 === i && (i = this);
+                            for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
+                              e[n] = arguments[n];
+                            return va(r, i, o, e);
+                          };
+                        }),
+                        (s.config.useNativeEvents = !(ba.prototype.dispose = function () {
+                          this.isDisposed ||
+                            (this._e.removeEventListener(this._n, this._fn, !1),
+                            (this.isDisposed = !0));
+                        }));
+                      o(Ba, (wa = r)),
+                        (Ba.prototype.subscribeCore = function (t) {
+                          return ya(
+                            this._el,
+                            this._n,
+                            ((e = t),
+                            (n = this._fn),
+                            function () {
+                              var t = arguments[0];
+                              if (g(n) && (t = v(n).apply(null, arguments)) === m)
+                                return e.onError(t.e);
+                              e.onNext(t);
+                            }),
+                          );
+                          var e, n;
+                        });
+                      var wa,
+                        Ea = Ba;
+                      function Ba(t, e, n) {
+                        (this._el = t), (this._n = e), (this._fn = n), wa.call(this);
+                      }
+                      Q.fromEvent = function (e, n, t) {
+                        return e.addListener
+                          ? Sa(
+                              function (t) {
+                                e.addListener(n, t);
+                              },
+                              function (t) {
+                                e.removeListener(n, t);
+                              },
+                              t,
+                            )
+                          : s.config.useNativeEvents ||
+                              'function' != typeof e.on ||
+                              'function' != typeof e.off
+                            ? new Ea(e, n, t).publish().refCount()
+                            : Sa(
+                                function (t) {
+                                  e.on(n, t);
+                                },
+                                function (t) {
+                                  e.off(n, t);
+                                },
+                                t,
+                              );
+                      };
+                      o(Ia, (Ca = r)),
+                        (Ia.prototype.subscribeCore = function (t) {
+                          function e() {
+                            var t = arguments[0];
+                            if (g(r) && (t = v(r).apply(null, arguments)) === m)
+                              return n.onError(t.e);
+                            n.onNext(t);
+                          }
+                          (n = t), (r = this._fn);
+                          var n,
+                            r,
+                            t = this._add(e);
+                          return new Ma(this._del, e, t);
+                        }),
+                        (Ma.prototype.dispose = function () {
+                          this.isDisposed ||
+                            (g(this._del) && this._del(this._fn, this._ret),
+                            (this.isDisposed = !0));
+                        });
+                      var Ca,
+                        xa = Ia;
+                      function Ia(t, e, n) {
+                        (this._add = t), (this._del = e), (this._fn = n), Ca.call(this);
+                      }
+                      function Ma(t, e, n) {
+                        (this._del = t), (this._fn = e), (this._ret = n), (this.isDisposed = !1);
+                      }
+                      var Da,
+                        Sa = (Q.fromEventPattern = function (t, e, n) {
+                          return new xa(t, e, n).publish().refCount();
+                        }),
+                        ka =
+                          (o(Fa, (Da = r)),
+                          (Fa.prototype.subscribeCore = function (e) {
+                            var n = new E(),
+                              r = this,
+                              t = this._p;
+                            return (
+                              g(t) && (t = v(t)()) === m
+                                ? e.onError(t.e)
+                                : t.then(
+                                    function (t) {
+                                      n.setDisposable(r._s.schedule([e, t], Qa));
+                                    },
+                                    function (t) {
+                                      n.setDisposable(r._s.schedule([e, t], _a));
+                                    },
+                                  ),
+                              n
+                            );
+                          }),
+                          Fa);
+                      function Fa(t, e) {
+                        (this._p = t), (this._s = e), Da.call(this);
+                      }
+                      function Qa(t, e) {
+                        var n = e[0],
+                          e = e[1];
+                        n.onNext(e), n.onCompleted();
+                      }
+                      function _a(t, e) {
+                        var n = e[0],
+                          e = e[1];
+                        n.onError(e);
+                      }
+                      var Ta,
+                        _ = (Q.fromPromise = function (t, e) {
+                          return new ka(t, (e = e || ce));
+                        }),
+                        Ra =
+                          ((a.toPromise = function (t) {
+                            if (!(t = t || s.config.Promise))
+                              throw new tt('Promise type not provided nor in Rx.config.Promise');
+                            var r = this;
+                            return new t(function (t, e) {
+                              var n;
+                              r.subscribe(
+                                function (t) {
+                                  n = t;
+                                },
+                                e,
+                                function () {
+                                  t(n);
+                                },
+                              );
+                            });
+                          }),
+                          (Q.startAsync = function (t) {
+                            t = v(t)();
+                            return t === m ? ir(t.e) : _(t);
+                          }),
+                          o(Ua, (Ta = r)),
+                          (Ua.prototype.subscribeCore = function (t) {
+                            var e = this.source.multicast(this._fn1());
+                            return new C(this._fn2(e).subscribe(t), e.connect());
+                          }),
+                          Ua);
+                      function Ua(t, e, n) {
+                        (this.source = t), (this._fn1 = e), (this._fn2 = n), Ta.call(this);
+                      }
+                      (a.multicast = function (t, e) {
+                        return g(t) ? new Ra(this, t, e) : new Ga(this, t);
+                      }),
+                        (a.publish = function (t) {
+                          return t && g(t)
+                            ? this.multicast(function () {
+                                return new R();
+                              }, t)
+                            : this.multicast(new R());
+                        }),
+                        (a.share = function () {
+                          return this.publish().refCount();
+                        }),
+                        (a.publishLast = function (t) {
+                          return t && g(t)
+                            ? this.multicast(function () {
+                                return new Vs();
+                              }, t)
+                            : this.multicast(new Vs());
+                        }),
+                        (a.publishValue = function (t, e) {
+                          return 2 === arguments.length
+                            ? this.multicast(function () {
+                                return new Xs(e);
+                              }, t)
+                            : this.multicast(new Xs(t));
+                        }),
+                        (a.shareValue = function (t) {
+                          return this.publishValue(t).refCount();
+                        }),
+                        (a.replay = function (t, e, n, r) {
+                          return t && g(t)
+                            ? this.multicast(function () {
+                                return new rl(e, n, r);
+                              }, t)
+                            : this.multicast(new rl(e, n, r));
+                        }),
+                        (a.shareReplay = function (t, e, n) {
+                          return this.replay(null, t, e, n).refCount();
+                        });
+                      o(La, (Na = r)),
+                        (La.prototype.subscribeCore = function (t) {
+                          t = this.source.subscribe(t);
+                          return (
+                            1 == ++this._count &&
+                              (this._connectableSubscription = this.source.connect()),
+                            new Ya(this, t)
+                          );
+                        }),
+                        (Ya.prototype.dispose = function () {
+                          this.isDisposed ||
+                            ((this.isDisposed = !0),
+                            this._s.dispose(),
+                            0 == --this._p._count && this._p._connectableSubscription.dispose());
+                        });
+                      var Na,
+                        Pa = La;
+                      function La(t) {
+                        (this.source = t),
+                          (this._count = 0),
+                          (this._connectableSubscription = null),
+                          Na.call(this);
+                      }
+                      function Ya(t, e) {
+                        (this._p = t), (this._s = e), (this.isDisposed = !1);
+                      }
+                      var Oa,
+                        Ga = (s.ConnectableObservable =
+                          (o(za, (Oa = Q)),
+                          (Ha.prototype.dispose = function () {
+                            this._s &&
+                              (this._s.dispose(), (this._s = null), (this._p._connection = null));
+                          }),
+                          (za.prototype.connect = function () {
+                            if (!this._connection) {
+                              if (this._subject.isStopped) return y;
+                              var t = this._source.subscribe(this._subject);
+                              this._connection = new Ha(this, t);
+                            }
+                            return this._connection;
+                          }),
+                          (za.prototype._subscribe = function (t) {
+                            return this._subject.subscribe(t);
+                          }),
+                          (za.prototype.refCount = function () {
+                            return new Pa(this);
+                          }),
+                          za));
+                      function za(t, e) {
+                        (this.source = t),
+                          (this._connection = null),
+                          (this._source = t.asObservable()),
+                          (this._subject = e),
+                          Oa.call(this);
+                      }
+                      function Ha(t, e) {
+                        (this._p = t), (this._s = e);
+                      }
+                      o(qa, (ja = r)),
+                        (qa.prototype.subscribeCore = function (t) {
+                          return this._s.scheduleFuture(t, this._dt, Wa);
+                        });
+                      var ja,
+                        Va = qa;
+                      function qa(t, e) {
+                        (this._dt = t), (this._s = e), ja.call(this);
+                      }
+                      function Wa(t, e) {
+                        e.onNext(0), e.onCompleted();
+                      }
+                      function Ja(t, e, a) {
+                        return new T(function (r) {
+                          var i = t,
+                            o = Lt(e);
+                          return a.scheduleRecursiveFuture(0, i, function (t, e) {
+                            var n;
+                            0 < o &&
+                              ((n = a.now()),
+                              (i = new Date(i.getTime() + o)).getTime() <= n &&
+                                (i = new Date(n + o))),
+                              r.onNext(t),
+                              e(t + 1, new Date(i));
+                          });
+                        });
+                      }
+                      function Ka(t, n, r) {
+                        return t === n
+                          ? new T(function (e) {
+                              return r.schedulePeriodic(0, n, function (t) {
+                                return e.onNext(t), t + 1;
+                              });
+                            })
+                          : dn(function () {
+                              return Ja(new Date(r.now() + t), n, r);
+                            });
+                      }
+                      var Za = (Q.interval = function (t, e) {
+                        return Ka(t, t, I(e) ? e : ce);
+                      });
+                      Q.timer = function (t, e, n) {
+                        var r;
+                        return (
+                          I(n) || (n = ce),
+                          null != e && 'number' == typeof e ? (r = e) : I(e) && (n = e),
+                          (t instanceof Date || 'number' == typeof t) && r === f
+                            ? new Va(t, n)
+                            : t instanceof Date && r !== f
+                              ? Ja(t, e, n)
+                              : Ka(t, r, n)
+                        );
+                      };
+                      function Xa(e, r, A) {
+                        return new T(function (a) {
+                          var s = !1,
+                            n = new B(),
+                            l = null,
+                            u = [],
+                            c = !1,
+                            t = e
+                              .materialize()
+                              .timestamp(A)
+                              .subscribe(function (t) {
+                                var e;
+                                'E' === t.value.kind
+                                  ? ((u = []).push(t), (l = t.value.error), (e = !c))
+                                  : (u.push({ value: t.value, timestamp: t.timestamp + r }),
+                                    (e = !s),
+                                    (s = !0)),
+                                  e &&
+                                    (null !== l
+                                      ? a.onError(l)
+                                      : ((t = new E()),
+                                        n.setDisposable(t),
+                                        t.setDisposable(
+                                          A.scheduleRecursiveFuture(null, r, function (t, e) {
+                                            var n, r, i, o;
+                                            if (null === l) {
+                                              for (
+                                                c = !0;
+                                                (i = null) !==
+                                                  (i =
+                                                    0 < u.length && u[0].timestamp - A.now() <= 0
+                                                      ? u.shift().value
+                                                      : i) && i.accept(a),
+                                                  null !== i;
+
+                                              );
+                                              (o = !1),
+                                                (r = 0) < u.length
+                                                  ? ((o = !0),
+                                                    (r = Math.max(0, u[0].timestamp - A.now())))
+                                                  : (s = !1),
+                                                (c = !1),
+                                                null !== (n = l) ? a.onError(n) : o && e(null, r);
+                                            }
+                                          }),
+                                        )));
+                              });
+                          return new C(t, n);
+                        }, e);
+                      }
+                      a.delay = function () {
+                        var a,
+                          t,
+                          e,
+                          s,
+                          l,
+                          n,
+                          r,
+                          i,
+                          o = arguments[0];
+                        if ('number' == typeof o || o instanceof Date)
+                          return (
+                            (t = o),
+                            I((e = arguments[1])) || (e = ce),
+                            t instanceof Date
+                              ? ((n = this),
+                                (r = t),
+                                (i = e),
+                                dn(function () {
+                                  return Xa(n, r - i.now(), i);
+                                }))
+                              : Xa(this, t, e)
+                          );
+                        if (Q.isObservable(o) || g(o))
+                          return (
+                            (a = this),
+                            (t = o),
+                            (e = arguments[1]),
+                            (l = g(t) ? t : ((s = t), e)),
+                            new T(function (r) {
+                              var i = new kt(),
+                                t = !1,
+                                e = new B();
+                              function n() {
+                                e.setDisposable(
+                                  a.subscribe(
+                                    function (t) {
+                                      var e = v(l)(t);
+                                      if (e === m) return r.onError(e.e);
+                                      var n = new E();
+                                      i.add(n),
+                                        n.setDisposable(
+                                          e.subscribe(
+                                            function () {
+                                              r.onNext(t), i.remove(n), o();
+                                            },
+                                            function (t) {
+                                              r.onError(t);
+                                            },
+                                            function () {
+                                              r.onNext(t), i.remove(n), o();
+                                            },
+                                          ),
+                                        );
+                                    },
+                                    function (t) {
+                                      r.onError(t);
+                                    },
+                                    function () {
+                                      (t = !0), e.dispose(), o();
+                                    },
+                                  ),
+                                );
+                              }
+                              function o() {
+                                t && 0 === i.length && r.onCompleted();
+                              }
+                              return (
+                                s
+                                  ? e.setDisposable(
+                                      s.subscribe(
+                                        n,
+                                        function (t) {
+                                          r.onError(t);
+                                        },
+                                        n,
+                                      ),
+                                    )
+                                  : n(),
+                                new C(e, i)
+                              );
+                            }, a)
+                          );
+                        throw new Error('Invalid arguments');
+                      };
+                      o(es, ($a = r)),
+                        (es.prototype.subscribeCore = function (t) {
+                          var e = new B();
+                          return new C(this.source.subscribe(new rs(t, this._dt, this._s, e)), e);
+                        });
+                      var $a,
+                        ts = es;
+                      function es(t, e, n) {
+                        I(n) || (n = ce),
+                          (this.source = t),
+                          (this._dt = e),
+                          (this._s = n),
+                          $a.call(this);
+                      }
+                      o(is, (ns = k)),
+                        (is.prototype.next = function (n) {
+                          (this._hv = !0), (this._v = n);
+                          var r = ++this._id,
+                            t = new E();
+                          this._c.setDisposable(t),
+                            t.setDisposable(
+                              this._scheduler.scheduleFuture(this, this._d, function (t, e) {
+                                e._hv && e._id === r && e._o.onNext(n), (e._hv = !1);
+                              }),
+                            );
+                        }),
+                        (is.prototype.error = function (t) {
+                          this._c.dispose(), this._o.onError(t), (this._hv = !1), this._id++;
+                        }),
+                        (is.prototype.completed = function () {
+                          this._c.dispose(),
+                            this._hv && this._o.onNext(this._v),
+                            this._o.onCompleted(),
+                            (this._hv = !1),
+                            this._id++;
+                        });
+                      var ns,
+                        rs = is;
+                      function is(t, e, n, r) {
+                        (this._o = t),
+                          (this._d = e),
+                          (this._scheduler = n),
+                          (this._c = r),
+                          (this._v = null),
+                          (this._hv = !1),
+                          (this._id = 0),
+                          ns.call(this);
+                      }
+                      a.debounce = function () {
+                        if (g(arguments[0]))
+                          return (
+                            (e = this),
+                            (u = arguments[0]),
+                            new T(function (i) {
+                              var o,
+                                a = !1,
+                                s = new B(),
+                                l = 0,
+                                t = e.subscribe(
+                                  function (t) {
+                                    var e = v(u)(t);
+                                    if (e === m) return i.onError(e.e);
+                                    d(e) && (e = _(e)), (a = !0), (o = t);
+                                    var n = ++l,
+                                      r = new E();
+                                    s.setDisposable(r),
+                                      r.setDisposable(
+                                        e.subscribe(
+                                          function () {
+                                            a && l === n && i.onNext(o), (a = !1), r.dispose();
+                                          },
+                                          function (t) {
+                                            i.onError(t);
+                                          },
+                                          function () {
+                                            a && l === n && i.onNext(o), (a = !1), r.dispose();
+                                          },
+                                        ),
+                                      );
+                                  },
+                                  function (t) {
+                                    s.dispose(), i.onError(t), (a = !1), l++;
+                                  },
+                                  function () {
+                                    s.dispose(), a && i.onNext(o), i.onCompleted(), (a = !1), l++;
+                                  },
+                                );
+                              return new C(t, s);
+                            }, e)
+                          );
+                        if ('number' == typeof arguments[0])
+                          return new ts(this, arguments[0], arguments[1]);
+                        throw new Error('Invalid arguments');
+                        var e, u;
+                      };
+                      o(ss, (os = r)),
+                        (ss.prototype.subscribeCore = function (t) {
+                          return this.source.subscribe(new us(t, this._s));
+                        });
+                      var os,
+                        as = ss;
+                      function ss(t, e) {
+                        (this.source = t), (this._s = e), os.call(this);
+                      }
+                      o(cs, (ls = k)),
+                        (cs.prototype.next = function (t) {
+                          this._o.onNext({ value: t, timestamp: this._s.now() });
+                        }),
+                        (cs.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (cs.prototype.completed = function () {
+                          this._o.onCompleted();
+                        });
+                      var ls,
+                        us = cs;
+                      function cs(t, e) {
+                        (this._o = t), (this._s = e), ls.call(this);
+                      }
+                      a.timestamp = function (t) {
+                        return I(t) || (t = ce), new as(this, t);
+                      };
+                      o(ps, (As = r)),
+                        (ps.prototype.subscribeCore = function (t) {
+                          t = {
+                            o: t,
+                            atEnd: !1,
+                            value: null,
+                            hasValue: !1,
+                            sourceSubscription: new E(),
+                          };
+                          return (
+                            t.sourceSubscription.setDisposable(this.source.subscribe(new vs(t))),
+                            new C(t.sourceSubscription, this._sampler.subscribe(new fs(t)))
+                          );
+                        });
+                      var As,
+                        hs = ps;
+                      function ps(t, e) {
+                        (this.source = t), (this._sampler = e), As.call(this);
+                      }
+                      o(gs, (ds = k)),
+                        (gs.prototype._handleMessage = function () {
+                          this._s.hasValue &&
+                            ((this._s.hasValue = !1), this._s.o.onNext(this._s.value)),
+                            this._s.atEnd && this._s.o.onCompleted();
+                        }),
+                        (gs.prototype.next = function () {
+                          this._handleMessage();
+                        }),
+                        (gs.prototype.error = function (t) {
+                          this._s.onError(t);
+                        }),
+                        (gs.prototype.completed = function () {
+                          this._handleMessage();
+                        });
+                      var ds,
+                        fs = gs;
+                      function gs(t) {
+                        (this._s = t), ds.call(this);
+                      }
+                      o(bs, (ms = k)),
+                        (bs.prototype.next = function (t) {
+                          (this._s.hasValue = !0), (this._s.value = t);
+                        }),
+                        (bs.prototype.error = function (t) {
+                          this._s.o.onError(t);
+                        }),
+                        (bs.prototype.completed = function () {
+                          (this._s.atEnd = !0), this._s.sourceSubscription.dispose();
+                        });
+                      var ms,
+                        vs = bs;
+                      function bs(t) {
+                        (this._s = t), ms.call(this);
+                      }
+                      a.sample = function (t, e) {
+                        return I(e) || (e = ce), new hs(this, 'number' == typeof t ? Za(t, e) : t);
+                      };
+                      var ys = (s.TimeoutError = function (t) {
+                        (this.message = t || 'Timeout has occurred'),
+                          (this.name = 'TimeoutError'),
+                          Error.call(this);
+                      });
+                      (ys.prototype = Object.create(Error.prototype)),
+                        (a.timeout = function () {
+                          var r,
+                            u,
+                            c,
+                            A,
+                            s,
+                            l,
+                            h,
+                            p,
+                            t = arguments[0];
+                          if (t instanceof Date || 'number' == typeof t)
+                            return (
+                              (s = this),
+                              (l = t),
+                              (h = arguments[1]),
+                              (p = arguments[2]),
+                              I(h) && ((p = h), (h = ir(new ys()))),
+                              h instanceof Error && (h = ir(h)),
+                              I(p) || (p = ce),
+                              Q.isObservable(h) || (h = ir(new ys())),
+                              new T(function (e) {
+                                var n = 0,
+                                  t = new E(),
+                                  r = new B(),
+                                  i = !1,
+                                  o = new B();
+                                function a() {
+                                  var t = n;
+                                  o.setDisposable(
+                                    p.scheduleFuture(null, l, function () {
+                                      (i = n === t) &&
+                                        (d(h) && (h = _(h)), r.setDisposable(h.subscribe(e)));
+                                    }),
+                                  );
+                                }
+                                return (
+                                  r.setDisposable(t),
+                                  a(),
+                                  t.setDisposable(
+                                    s.subscribe(
+                                      function (t) {
+                                        i || (n++, e.onNext(t), a());
+                                      },
+                                      function (t) {
+                                        i || (n++, e.onError(t));
+                                      },
+                                      function () {
+                                        i || (n++, e.onCompleted());
+                                      },
+                                    ),
+                                  ),
+                                  new C(r, o)
+                                );
+                              }, s)
+                            );
+                          if (Q.isObservable(t) || g(t))
+                            return (
+                              (r = this),
+                              (u = t),
+                              (c = arguments[1]),
+                              (A = arguments[2]),
+                              g(u) && ((A = c), (c = u), (u = Nn())),
+                              Q.isObservable(A) || (A = ir(new ys())),
+                              new T(function (i) {
+                                var o = new B(),
+                                  a = new B(),
+                                  t = new E(),
+                                  s = (o.setDisposable(t), 0),
+                                  l = !1;
+                                function e(t) {
+                                  var e = s,
+                                    n = new E();
+                                  function r() {
+                                    return (l = e === s);
+                                  }
+                                  a.setDisposable(n),
+                                    n.setDisposable(
+                                      t.subscribe(
+                                        function () {
+                                          r() && o.setDisposable(A.subscribe(i)), n.dispose();
+                                        },
+                                        function (t) {
+                                          r() && i.onError(t);
+                                        },
+                                        function () {
+                                          r() && o.setDisposable(A.subscribe(i));
+                                        },
+                                      ),
+                                    );
+                                }
+                                function n() {
+                                  var t = !l;
+                                  return t && s++, t;
+                                }
+                                return (
+                                  e(u),
+                                  t.setDisposable(
+                                    r.subscribe(
+                                      function (t) {
+                                        if (n()) {
+                                          i.onNext(t);
+                                          t = v(c)(t);
+                                          if (t === m) return i.onError(t.e);
+                                          e(d(t) ? _(t) : t);
+                                        }
+                                      },
+                                      function (t) {
+                                        n() && i.onError(t);
+                                      },
+                                      function () {
+                                        n() && i.onCompleted();
+                                      },
+                                    ),
+                                  ),
+                                  new C(o, a)
+                                );
+                              }, r)
+                            );
+                          throw new Error('Invalid arguments');
+                        }),
+                        (a.throttle = function (t, i) {
+                          I(i) || (i = ce);
+                          var o = +t || 0;
+                          if (o <= 0)
+                            throw new RangeError('windowDuration cannot be less or equal zero.');
+                          var e = this;
+                          return new T(function (n) {
+                            var r = 0;
+                            return e.subscribe(
+                              function (t) {
+                                var e = i.now();
+                                (0 === r || o <= e - r) && ((r = e), n.onNext(t));
+                              },
+                              function (t) {
+                                n.onError(t);
+                              },
+                              function () {
+                                n.onCompleted();
+                              },
+                            );
+                          }, e);
+                        });
+                      o(Bs, (ws = Q)),
+                        (Bs.prototype._subscribe = function (t) {
+                          var e = this.source.publish(),
+                            t = e.subscribe(t),
+                            n = y,
+                            r = this.pauser
+                              .startWith(!this.paused)
+                              .distinctUntilChanged()
+                              .subscribe(function (t) {
+                                n = t ? e.connect() : (n.dispose(), y);
+                              });
+                          return new x([t, n, r]);
+                        }),
+                        (Bs.prototype.pause = function () {
+                          (this.paused = !0), this.controller.onNext(!1);
+                        }),
+                        (Bs.prototype.resume = function () {
+                          (this.paused = !1), this.controller.onNext(!0);
+                        });
+                      var ws,
+                        Es = Bs;
+                      function Bs(t, e) {
+                        (this.source = t),
+                          (this.controller = new R()),
+                          (this.paused = !0),
+                          e && e.subscribe
+                            ? (this.pauser = this.controller.merge(e))
+                            : (this.pauser = this.controller),
+                          ws.call(this);
+                      }
+                      a.pausable = function (t) {
+                        return new Es(this, t);
+                      };
+                      o(Is, (Cs = Q)),
+                        (Is.prototype._subscribe = function (e) {
+                          var n,
+                            t,
+                            l,
+                            u,
+                            r = [];
+                          function i() {
+                            for (; 0 < r.length; ) e.onNext(r.shift());
+                          }
+                          return (
+                            (t = this.source),
+                            (l = this.pauser.startWith(!this.paused).distinctUntilChanged()),
+                            (u = function (t, e) {
+                              return { data: t, shouldFire: e };
+                            }),
+                            new T(function (n) {
+                              var r,
+                                i = [!1, !1],
+                                o = !1,
+                                a = !1,
+                                s = new Array(2);
+                              function e(t, e) {
+                                if (((s[e] = t), (i[e] = !0), (o = o || i.every(c)))) {
+                                  if (r) return n.onError(r);
+                                  t = v(u).apply(null, s);
+                                  if (t === m) return n.onError(t.e);
+                                  n.onNext(t);
+                                }
+                                a && s[1] && n.onCompleted();
+                              }
+                              return new C(
+                                t.subscribe(
+                                  function (t) {
+                                    e(t, 0);
+                                  },
+                                  function (t) {
+                                    s[1] ? n.onError(t) : (r = t);
+                                  },
+                                  function () {
+                                    (a = !0), s[1] && n.onCompleted();
+                                  },
+                                ),
+                                l.subscribe(
+                                  function (t) {
+                                    e(t, 1);
+                                  },
+                                  function (t) {
+                                    n.onError(t);
+                                  },
+                                  function () {
+                                    e((a = !0), 1);
+                                  },
+                                ),
+                              );
+                            }, t).subscribe(
+                              function (t) {
+                                n !== f && t.shouldFire !== n
+                                  ? ((n = t.shouldFire), t.shouldFire && i())
+                                  : ((n = t.shouldFire),
+                                    t.shouldFire ? e.onNext(t.data) : r.push(t.data));
+                              },
+                              function (t) {
+                                i(), e.onError(t);
+                              },
+                              function () {
+                                i(), e.onCompleted();
+                              },
+                            )
+                          );
+                        }),
+                        (Is.prototype.pause = function () {
+                          (this.paused = !0), this.controller.onNext(!1);
+                        }),
+                        (Is.prototype.resume = function () {
+                          (this.paused = !1), this.controller.onNext(!0);
+                        });
+                      var Cs,
+                        xs = Is;
+                      function Is(t, e) {
+                        (this.source = t),
+                          (this.controller = new R()),
+                          (this.paused = !0),
+                          e && e.subscribe
+                            ? (this.pauser = this.controller.merge(e))
+                            : (this.pauser = this.controller),
+                          Cs.call(this);
+                      }
+                      a.pausableBuffered = function (t) {
+                        return new xs(this, t);
+                      };
+                      o(Ss, (Ms = Q)),
+                        (Ss.prototype._subscribe = function (t) {
+                          return this.source.subscribe(t);
+                        }),
+                        (Ss.prototype.request = function (t) {
+                          return this.subject.request(null == t ? -1 : t);
+                        });
+                      var Ms,
+                        Ds = Ss;
+                      function Ss(t, e, n) {
+                        Ms.call(this),
+                          (this.subject = new Fs(e, n)),
+                          (this.source = t.multicast(this.subject).refCount());
+                      }
+                      o(Qs, (ks = Q)),
+                        n(Qs.prototype, e, {
+                          _subscribe: function (t) {
+                            return this.subject.subscribe(t);
+                          },
+                          onCompleted: function () {
+                            (this.hasCompleted = !0),
+                              this.enableQueue && 0 !== this.queue.length
+                                ? this.queue.push(pe.createOnCompleted())
+                                : (this.subject.onCompleted(), this.disposeCurrentRequest());
+                          },
+                          onError: function (t) {
+                            (this.hasFailed = !0),
+                              (this.error = t),
+                              this.enableQueue && 0 !== this.queue.length
+                                ? this.queue.push(pe.createOnError(t))
+                                : (this.subject.onError(t), this.disposeCurrentRequest());
+                          },
+                          onNext: function (t) {
+                            this.requestedCount <= 0
+                              ? this.enableQueue && this.queue.push(pe.createOnNext(t))
+                              : (0 == this.requestedCount-- && this.disposeCurrentRequest(),
+                                this.subject.onNext(t));
+                          },
+                          _processRequest: function (t) {
+                            if (this.enableQueue)
+                              for (
+                                ;
+                                0 < this.queue.length && (0 < t || 'N' !== this.queue[0].kind);
+
+                              ) {
+                                var e = this.queue.shift();
+                                e.accept(this.subject),
+                                  'N' === e.kind
+                                    ? t--
+                                    : (this.disposeCurrentRequest(), (this.queue = []));
+                              }
+                            return t;
+                          },
+                          request: function (t) {
+                            this.disposeCurrentRequest();
+                            var n = this;
+                            return (
+                              (this.requestedDisposable = this.scheduler.schedule(
+                                t,
+                                function (t, e) {
+                                  e = n._processRequest(e);
+                                  if (!(n.hasCompleted || n.hasFailed) && 0 < e)
+                                    return (
+                                      (n.requestedCount = e),
+                                      Qt(function () {
+                                        n.requestedCount = 0;
+                                      })
+                                    );
+                                },
+                              )),
+                              this.requestedDisposable
+                            );
+                          },
+                          disposeCurrentRequest: function () {
+                            this.requestedDisposable &&
+                              (this.requestedDisposable.dispose(),
+                              (this.requestedDisposable = null));
+                          },
+                        });
+                      var ks,
+                        Fs = Qs;
+                      function Qs(t, e) {
+                        null == t && (t = !0),
+                          ks.call(this),
+                          (this.subject = new R()),
+                          (this.enableQueue = t),
+                          (this.queue = t ? [] : null),
+                          (this.requestedCount = 0),
+                          (this.requestedDisposable = null),
+                          (this.error = null),
+                          (this.hasFailed = !1),
+                          (this.hasCompleted = !1),
+                          (this.scheduler = e || D);
+                      }
+                      (a.controlled = function (t, e) {
+                        return (
+                          t && I(t) && ((e = t), (t = !0)),
+                          new Ds(this, (t = null == t ? !0 : t), e)
+                        );
+                      }),
+                        (a.pipe = function (e) {
+                          var n = this.pausableBuffered();
+                          function t() {
+                            n.resume();
+                          }
+                          return (
+                            e.addListener('drain', t),
+                            n.subscribe(
+                              function (t) {
+                                e.write(t) || n.pause();
+                              },
+                              function (t) {
+                                e.emit('error', t);
+                              },
+                              function () {
+                                e._isStdio || e.end(), e.removeListener('drain', t);
+                              },
+                            ),
+                            n.resume(),
+                            e
+                          );
+                        });
+                      o(Rs, (_s = k)),
+                        (Rs.prototype.next = function (t) {
+                          t = v(this._xform['@@transducer/step']).call(this._xform, this._o, t);
+                          t === m && this._o.onError(t.e);
+                        }),
+                        (Rs.prototype.error = function (t) {
+                          this._o.onError(t);
+                        }),
+                        (Rs.prototype.completed = function () {
+                          this._xform['@@transducer/result'](this._o);
+                        });
+                      var _s,
+                        Ts = Rs;
+                      function Rs(t, e) {
+                        (this._o = t), (this._xform = e), _s.call(this);
+                      }
+                      a.transduce = function (r) {
+                        var i = this;
+                        return new T(function (t) {
+                          var e,
+                            n = r(
+                              ((e = t),
+                              {
+                                '@@transducer/init': function () {
+                                  return e;
+                                },
+                                '@@transducer/step': function (t, e) {
+                                  return t.onNext(e);
+                                },
+                                '@@transducer/result': function (t) {
+                                  return t.onCompleted();
+                                },
+                              }),
+                            );
+                          return i.subscribe(new Ts(t, n));
+                        }, i);
+                      };
+                      var Us,
+                        T = (s.AnonymousObservable =
+                          (o(Ps, (Us = Q)),
+                          (Ps.prototype._subscribe = function (t) {
+                            var t = new Ys(t),
+                              e = [t, this];
+                            return D.scheduleRequired() ? D.schedule(e, Ns) : Ns(0, e), t;
+                          }),
+                          Ps));
+                      function Ns(t, e) {
+                        var n = e[0],
+                          e = e[1],
+                          e = v(e.__subscribe).call(e, n);
+                        e !== m || n.fail(m.e) || h(m.e),
+                          n.setDisposable((n = e) && g(n.dispose) ? n : g(n) ? Qt(n) : y);
+                      }
+                      function Ps(t, e) {
+                        (this.source = e), (this.__subscribe = t), Us.call(this);
+                      }
+                      o(Os, (Ls = k)),
+                        ((t = Os.prototype).next = function (t) {
+                          t = v(this.observer.onNext).call(this.observer, t);
+                          t === m && (this.dispose(), h(t.e));
+                        }),
+                        (t.error = function (t) {
+                          t = v(this.observer.onError).call(this.observer, t);
+                          this.dispose(), t === m && h(t.e);
+                        }),
+                        (t.completed = function () {
+                          var t = v(this.observer.onCompleted).call(this.observer);
+                          this.dispose(), t === m && h(t.e);
+                        }),
+                        (t.setDisposable = function (t) {
+                          this.m.setDisposable(t);
+                        }),
+                        (t.getDisposable = function () {
+                          return this.m.getDisposable();
+                        }),
+                        (t.dispose = function () {
+                          Ls.prototype.dispose.call(this), this.m.dispose();
+                        });
+                      var Ls,
+                        Ys = Os;
+                      function Os(t) {
+                        Ls.call(this), (this.observer = t), (this.m = new E());
+                      }
+                      function Gs(t, e) {
+                        (this._s = t), (this._o = e);
+                      }
+                      Gs.prototype.dispose = function () {
+                        var t;
+                        this._s.isDisposed ||
+                          null === this._o ||
+                          ((t = this._s.observers.indexOf(this._o)),
+                          this._s.observers.splice(t, 1),
+                          (this._o = null));
+                      };
+                      var zs,
+                        R = (s.Subject =
+                          (o(Hs, (zs = Q)),
+                          n(Hs.prototype, e.prototype, {
+                            _subscribe: function (t) {
+                              return (
+                                w(this),
+                                this.isStopped
+                                  ? (this.hasError ? t.onError(this.error) : t.onCompleted(), y)
+                                  : (this.observers.push(t), new Gs(this, t))
+                              );
+                            },
+                            hasObservers: function () {
+                              return w(this), 0 < this.observers.length;
+                            },
+                            onCompleted: function () {
+                              if ((w(this), !this.isStopped)) {
+                                this.isStopped = !0;
+                                for (var t = 0, e = A(this.observers), n = e.length; t < n; t++)
+                                  e[t].onCompleted();
+                                this.observers.length = 0;
+                              }
+                            },
+                            onError: function (t) {
+                              if ((w(this), !this.isStopped)) {
+                                (this.isStopped = !0), (this.error = t), (this.hasError = !0);
+                                for (var e = 0, n = A(this.observers), r = n.length; e < r; e++)
+                                  n[e].onError(t);
+                                this.observers.length = 0;
+                              }
+                            },
+                            onNext: function (t) {
+                              if ((w(this), !this.isStopped))
+                                for (var e = 0, n = A(this.observers), r = n.length; e < r; e++)
+                                  n[e].onNext(t);
+                            },
+                            dispose: function () {
+                              (this.isDisposed = !0), (this.observers = null);
+                            },
+                          }),
+                          (Hs.create = function (t, e) {
+                            return new Js(t, e);
+                          }),
+                          Hs));
+                      function Hs() {
+                        zs.call(this),
+                          (this.isDisposed = !1),
+                          (this.isStopped = !1),
+                          (this.observers = []),
+                          (this.hasError = !1);
+                      }
+                      var js,
+                        Vs = (s.AsyncSubject =
+                          (o(qs, (js = Q)),
+                          n(qs.prototype, e.prototype, {
+                            _subscribe: function (t) {
+                              return (
+                                w(this),
+                                this.isStopped
+                                  ? (this.hasError
+                                      ? t.onError(this.error)
+                                      : (this.hasValue && t.onNext(this.value), t.onCompleted()),
+                                    y)
+                                  : (this.observers.push(t), new Gs(this, t))
+                              );
+                            },
+                            hasObservers: function () {
+                              return w(this), 0 < this.observers.length;
+                            },
+                            onCompleted: function () {
+                              var t;
+                              if ((w(this), !this.isStopped)) {
+                                this.isStopped = !0;
+                                var e = A(this.observers),
+                                  n = e.length;
+                                if (this.hasValue)
+                                  for (t = 0; t < n; t++) {
+                                    var r = e[t];
+                                    r.onNext(this.value), r.onCompleted();
+                                  }
+                                else for (t = 0; t < n; t++) e[t].onCompleted();
+                                this.observers.length = 0;
+                              }
+                            },
+                            onError: function (t) {
+                              if ((w(this), !this.isStopped)) {
+                                (this.isStopped = !0), (this.hasError = !0), (this.error = t);
+                                for (var e = 0, n = A(this.observers), r = n.length; e < r; e++)
+                                  n[e].onError(t);
+                                this.observers.length = 0;
+                              }
+                            },
+                            onNext: function (t) {
+                              w(this), this.isStopped || ((this.value = t), (this.hasValue = !0));
+                            },
+                            dispose: function () {
+                              (this.isDisposed = !0),
+                                (this.observers = null),
+                                (this.error = null),
+                                (this.value = null);
+                            },
+                          }),
+                          qs));
+                      function qs() {
+                        js.call(this),
+                          (this.isDisposed = !1),
+                          (this.isStopped = !1),
+                          (this.hasValue = !1),
+                          (this.observers = []),
+                          (this.hasError = !1);
+                      }
+                      var Ws,
+                        Js = (s.AnonymousSubject =
+                          (o(Ks, (Ws = Q)),
+                          n(Ks.prototype, e.prototype, {
+                            _subscribe: function (t) {
+                              return this.observable.subscribe(t);
+                            },
+                            onCompleted: function () {
+                              this.observer.onCompleted();
+                            },
+                            onError: function (t) {
+                              this.observer.onError(t);
+                            },
+                            onNext: function (t) {
+                              this.observer.onNext(t);
+                            },
+                          }),
+                          Ks));
+                      function Ks(t, e) {
+                        (this.observer = t), (this.observable = e), Ws.call(this);
+                      }
+                      var Zs,
+                        Xs = (s.BehaviorSubject =
+                          (o($s, (Zs = Q)),
+                          n($s.prototype, e.prototype, {
+                            _subscribe: function (t) {
+                              return (
+                                w(this),
+                                this.isStopped
+                                  ? (this.hasError ? t.onError(this.error) : t.onCompleted(), y)
+                                  : (this.observers.push(t), t.onNext(this.value), new Gs(this, t))
+                              );
+                            },
+                            getValue: function () {
+                              return w(this), this.hasError && h(this.error), this.value;
+                            },
+                            hasObservers: function () {
+                              return w(this), 0 < this.observers.length;
+                            },
+                            onCompleted: function () {
+                              if ((w(this), !this.isStopped)) {
+                                this.isStopped = !0;
+                                for (var t = 0, e = A(this.observers), n = e.length; t < n; t++)
+                                  e[t].onCompleted();
+                                this.observers.length = 0;
+                              }
+                            },
+                            onError: function (t) {
+                              if ((w(this), !this.isStopped)) {
+                                (this.isStopped = !0), (this.hasError = !0), (this.error = t);
+                                for (var e = 0, n = A(this.observers), r = n.length; e < r; e++)
+                                  n[e].onError(t);
+                                this.observers.length = 0;
+                              }
+                            },
+                            onNext: function (t) {
+                              if ((w(this), !this.isStopped)) {
+                                this.value = t;
+                                for (var e = 0, n = A(this.observers), r = n.length; e < r; e++)
+                                  n[e].onNext(t);
+                              }
+                            },
+                            dispose: function () {
+                              (this.isDisposed = !0),
+                                (this.observers = null),
+                                (this.value = null),
+                                (this.error = null);
+                            },
+                          }),
+                          $s));
+                      function $s(t) {
+                        Zs.call(this),
+                          (this.value = t),
+                          (this.observers = []),
+                          (this.isDisposed = !1),
+                          (this.isStopped = !1),
+                          (this.hasError = !1);
+                      }
+                      var tl,
+                        el,
+                        nl,
+                        rl = (s.ReplaySubject =
+                          ((tl = Q),
+                          (el = Math.pow(2, 53) - 1),
+                          o(il, tl),
+                          n(il.prototype, e.prototype, {
+                            _subscribe: function (t) {
+                              w(this);
+                              var e,
+                                n,
+                                r = new ke(this.scheduler, t),
+                                t =
+                                  ((e = this),
+                                  (n = r),
+                                  Qt(function () {
+                                    n.dispose(),
+                                      e.isDisposed || e.observers.splice(e.observers.indexOf(n), 1);
+                                  }));
+                              this._trim(this.scheduler.now()), this.observers.push(r);
+                              for (var i = 0, o = this.q.length; i < o; i++)
+                                r.onNext(this.q[i].value);
+                              return (
+                                this.hasError
+                                  ? r.onError(this.error)
+                                  : this.isStopped && r.onCompleted(),
+                                r.ensureActive(),
+                                t
+                              );
+                            },
+                            hasObservers: function () {
+                              return w(this), 0 < this.observers.length;
+                            },
+                            _trim: function (t) {
+                              for (; this.q.length > this.bufferSize; ) this.q.shift();
+                              for (
+                                ;
+                                0 < this.q.length && t - this.q[0].interval > this.windowSize;
+
+                              )
+                                this.q.shift();
+                            },
+                            onNext: function (t) {
+                              if ((w(this), !this.isStopped)) {
+                                var e = this.scheduler.now();
+                                this.q.push({ interval: e, value: t }), this._trim(e);
+                                for (var n = 0, r = A(this.observers), i = r.length; n < i; n++) {
+                                  var o = r[n];
+                                  o.onNext(t), o.ensureActive();
+                                }
+                              }
+                            },
+                            onError: function (t) {
+                              if ((w(this), !this.isStopped)) {
+                                (this.isStopped = !0), (this.error = t), (this.hasError = !0);
+                                var e = this.scheduler.now();
+                                this._trim(e);
+                                for (var n = 0, r = A(this.observers), i = r.length; n < i; n++) {
+                                  var o = r[n];
+                                  o.onError(t), o.ensureActive();
+                                }
+                                this.observers.length = 0;
+                              }
+                            },
+                            onCompleted: function () {
+                              if ((w(this), !this.isStopped)) {
+                                this.isStopped = !0;
+                                var t = this.scheduler.now();
+                                this._trim(t);
+                                for (var e = 0, n = A(this.observers), r = n.length; e < r; e++) {
+                                  var i = n[e];
+                                  i.onCompleted(), i.ensureActive();
+                                }
+                                this.observers.length = 0;
+                              }
+                            },
+                            dispose: function () {
+                              (this.isDisposed = !0), (this.observers = null);
+                            },
+                          }),
+                          il));
+                      function il(t, e, n) {
+                        (this.bufferSize = null == t ? el : t),
+                          (this.windowSize = null == e ? el : e),
+                          (this.scheduler = n || D),
+                          (this.q = []),
+                          (this.observers = []),
+                          (this.isStopped = !1),
+                          (this.isDisposed = !1),
+                          (this.hasError = !1),
+                          (this.error = null),
+                          tl.call(this);
+                      }
+                      function ol() {
+                        nl.call(this);
+                      }
+                      (s.Pauser =
+                        (o(ol, (nl = R)),
+                        (ol.prototype.pause = function () {
+                          this.onNext(!1);
+                        }),
+                        (ol.prototype.resume = function () {
+                          this.onNext(!0);
+                        }),
+                        ol)),
+                        (U.Rx = s);
+                      var al = V();
+                    }.call(this, t, J),
+                    t.Rx);
+                function K(t, e, n) {
+                  var e = (e = (e |= 0) <= 0 ? 1 : e) * n,
+                    r = t(e);
+                  return {
+                    elementSize: n,
+                    chunkSize: e,
+                    creator: t,
+                    current: r,
+                    parts: [r],
+                    currentIndex: 0,
+                    elementCount: 0,
+                  };
+                }
+                function Z(t, e, n) {
+                  var r = 0,
+                    i = 1;
+                  for (45 === t.charCodeAt(e) && ((i = -1), e++); e < n; e++) {
+                    var o = t.charCodeAt(e) - 48;
+                    if (9 < o || o < 0) return (i * r) | 0;
+                    r = (10 * r + o) | 0;
+                  }
+                  return i * r;
+                }
+                function X(t, e, n, r) {
+                  return 43 === e.charCodeAt(n) && n++, t * Math.pow(10, Z(e, n, r));
+                }
+                function $(t, e, n) {
+                  var r = 1,
+                    i = 0,
+                    o = 0,
+                    a = 1;
+                  for (45 === t.charCodeAt(e) && ((r = -1), ++e); e < n; ) {
+                    var s = t.charCodeAt(e) - 48;
+                    if (!(0 <= s && s < 10)) {
+                      if (-2 === s) {
+                        for (++e; e < n; ) {
+                          if (!(0 <= (s = t.charCodeAt(e) - 48) && s < 10))
+                            return 53 === s || 21 === s
+                              ? X(r * (i + o / a), t, e + 1, n)
+                              : r * (i + o / a);
+                          (o = 10 * o + s), (a *= 10), ++e;
+                        }
+                        return r * (i + o / a);
+                      }
+                      if (53 === s || 21 === s) return X(r * i, t, e + 1, n);
+                      break;
+                    }
+                    (i = 10 * i + s), ++e;
+                  }
+                  return r * i;
+                }
+                ((w = w || {}).VERSION = { number: '1.1.6', date: 'June 26 2017' }),
+                  ((e =
+                    (e = (e = w = w || {}).Utils || (e.Utils = {})).ChunkedArray ||
+                    (e.ChunkedArray = {})).is = function (t) {
+                    return t.creator && t.chunkSize;
+                  }),
+                  (e.add4 = function (t, e, n, r, i) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      (t.current[t.currentIndex++] = n),
+                      (t.current[t.currentIndex++] = r),
+                      (t.current[t.currentIndex++] = i),
+                      t.elementCount++
+                    );
+                  }),
+                  (e.add3 = function (t, e, n, r) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      (t.current[t.currentIndex++] = n),
+                      (t.current[t.currentIndex++] = r),
+                      t.elementCount++
+                    );
+                  }),
+                  (e.add2 = function (t, e, n) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      (t.current[t.currentIndex++] = n),
+                      t.elementCount++
+                    );
+                  }),
+                  (e.add = function (t, e) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      t.elementCount++
+                    );
+                  }),
+                  (e.compact = function (t) {
+                    var e = t.creator(t.elementSize * t.elementCount),
+                      n = (t.parts.length - 1) * t.chunkSize;
+                    if (1 < t.parts.length)
+                      if (t.parts[0].buffer)
+                        for (var r = 0; r < t.parts.length - 1; r++)
+                          e.set(t.parts[r], t.chunkSize * r);
+                      else
+                        for (r = 0; r < t.parts.length - 1; r++)
+                          for (var i = t.chunkSize * r, o = t.parts[r], a = 0; a < t.chunkSize; a++)
+                            e[i + a] = o[a];
+                    if (t.current.buffer && t.currentIndex >= t.chunkSize)
+                      e.set(t.current, t.chunkSize * (t.parts.length - 1));
+                    else for (r = 0; r < t.currentIndex; r++) e[n + r] = t.current[r];
+                    return e;
+                  }),
+                  (e.forVertex3D = function (t) {
+                    return K(
+                      function (t) {
+                        return new Float32Array(t);
+                      },
+                      (t = void 0 === t ? 262144 : t),
+                      3,
+                    );
+                  }),
+                  (e.forIndexBuffer = function (t) {
+                    return K(
+                      function (t) {
+                        return new Uint32Array(t);
+                      },
+                      (t = void 0 === t ? 262144 : t),
+                      3,
+                    );
+                  }),
+                  (e.forTokenIndices = function (t) {
+                    return K(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      2,
+                    );
+                  }),
+                  (e.forIndices = function (t) {
+                    return K(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (e.forInt32 = function (t) {
+                    return K(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (e.forFloat32 = function (t) {
+                    return K(
+                      function (t) {
+                        return new Float32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (e.forArray = function (t) {
+                    return K(
+                      function (t) {
+                        return [];
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (e.create = K),
+                  ((e =
+                    (e = (e = w = w || {}).Utils || (e.Utils = {})).FastNumberParsers ||
+                    (e.FastNumberParsers = {})).parseIntSkipTrailingWhitespace = function (
+                    t,
+                    e,
+                    n,
+                  ) {
+                    for (; e < n && 32 === t.charCodeAt(e); ) e++;
+                    return Z(t, e, n);
+                  }),
+                  (e.parseInt = Z),
+                  (e.parseFloatSkipTrailingWhitespace = function (t, e, n) {
+                    for (; e < n && 32 === t.charCodeAt(e); ) e++;
+                    return $(t, e, n);
+                  }),
+                  (e.parseFloat = $);
+                for (
+                  var e = (e = w = w || {}).Utils || (e.Utils = {}), tt = [], et = '', rt = 0;
+                  rt < 512;
+                  rt++
+                )
+                  (tt[rt] = et), (et += ' ');
+                function it(t, e) {
+                  null != e &&
+                    (t.chunkOffset === t.chunkCapacity &&
+                      ((t.data[t.data.length] = t.chunkData.join('')), (t.chunkOffset = 0)),
+                    (t.chunkData[t.chunkOffset++] = e));
+                }
+                function ot() {
+                  this.isDefined = !1;
+                }
+                function at(t, e) {
+                  (this.message = t), (this.line = e), (this.isError = !0);
+                }
+                function st(t) {
+                  for (; t.position < t.length; )
+                    switch (t.data.charCodeAt(t.position)) {
+                      case 9:
+                      case 10:
+                      case 13:
+                      case 32:
+                        return void (t.currentTokenEnd = t.position);
+                      default:
+                        ++t.position;
+                    }
+                  t.currentTokenEnd = t.position;
+                }
+                function lt(t) {
+                  for (var e = t.currentTokenStart; e < t.currentTokenEnd; ++e)
+                    if (46 === t.data.charCodeAt(e)) return e;
+                  return e;
+                }
+                function ut(t, e) {
+                  return t.data.substring(t.currentTokenStart, e);
+                }
+                function ct(t) {
+                  return t.data.substring(t.currentTokenStart, t.currentTokenEnd);
+                }
+                function At(t) {
+                  var e = (function (t) {
+                    for (var e = 10; t.position < t.length; ) {
+                      var n = t.data.charCodeAt(t.position);
+                      switch (n) {
+                        case 9:
+                        case 32:
+                          (e = n), ++t.position;
+                          break;
+                        case 10:
+                          13 !== e && ++t.currentLineNumber, (e = n), ++t.position;
+                          break;
+                        case 13:
+                          (e = n), ++t.position, ++t.currentLineNumber;
+                          break;
+                        default:
+                          return e;
+                      }
+                    }
+                    return e;
+                  })(t);
+                  if (t.position >= t.length) t.currentTokenType = 6;
+                  else {
+                    (t.currentTokenStart = t.position),
+                      (t.currentTokenEnd = t.position),
+                      (t.isEscaped = !1);
+                    var n,
+                      r,
+                      i = t.data.charCodeAt(t.position);
+                    switch (i) {
+                      case 35:
+                        !(function (t) {
+                          for (; t.position < t.length; ) {
+                            var e = t.data.charCodeAt(t.position);
+                            if (10 === e || 13 === e) return;
+                            ++t.position;
+                          }
+                        })(t),
+                          (t.currentTokenType = 5);
+                        break;
+                      case 34:
+                      case 39:
+                        !(function (t, e) {
+                          var n, r;
+                          for (++t.position; t.position < t.length; )
+                            if ((r = t.data.charCodeAt(t.position)) === e)
+                              switch ((n = t.data.charCodeAt(t.position + 1))) {
+                                case 9:
+                                case 10:
+                                case 13:
+                                case 32:
+                                  return (
+                                    t.currentTokenStart++,
+                                    (t.currentTokenEnd = t.position),
+                                    (t.isEscaped = !0),
+                                    ++t.position
+                                  );
+                                default:
+                                  if (void 0 === n)
+                                    return (
+                                      t.currentTokenStart++,
+                                      (t.currentTokenEnd = t.position),
+                                      (t.isEscaped = !0),
+                                      ++t.position
+                                    );
+                                  ++t.position;
+                              }
+                            else {
+                              if (10 === r || 13 === r) return (t.currentTokenEnd = t.position);
+                              ++t.position;
+                            }
+                          t.currentTokenEnd = t.position;
+                        })(t, i),
+                          (t.currentTokenType = 3);
+                        break;
+                      case 59:
+                        (10 === e || 13 === e
+                          ? function (t) {
+                              for (var e, n = 59, r = t.position + 1; r < t.length; ) {
+                                if (59 === (e = t.data.charCodeAt(r)) && (10 === n || 13 === n)) {
+                                  for (
+                                    t.position = r + 1,
+                                      t.currentTokenStart++,
+                                      r--,
+                                      e = t.data.charCodeAt(r);
+                                    10 === e || 13 === e;
+
+                                  )
+                                    r--, (e = t.data.charCodeAt(r));
+                                  return (t.currentTokenEnd = r + 1), (t.isEscaped = !0);
+                                }
+                                (13 === e || (10 === e && 13 !== n)) && t.currentLineNumber++,
+                                  (n = e),
+                                  ++r;
+                              }
+                              t.position = r;
+                            }
+                          : st)(t),
+                          (t.currentTokenType = 3);
+                        break;
+                      default:
+                        st(t),
+                          t.isEscaped
+                            ? (t.currentTokenType = 3)
+                            : 95 === t.data.charCodeAt(t.currentTokenStart)
+                              ? (t.currentTokenType = 4)
+                              : 5 <= t.currentTokenEnd - t.currentTokenStart &&
+                                  95 === t.data.charCodeAt(t.currentTokenStart + 4)
+                                ? (68 !== (r = (n = t).data.charCodeAt(n.currentTokenStart)) &&
+                                    100 !== r) ||
+                                  (65 !== (r = n.data.charCodeAt(n.currentTokenStart + 1)) &&
+                                    97 !== r) ||
+                                  (84 !== (r = n.data.charCodeAt(n.currentTokenStart + 2)) &&
+                                    116 !== r) ||
+                                  (65 !== (r = n.data.charCodeAt(n.currentTokenStart + 3)) &&
+                                    97 !== r)
+                                  ? (83 !== (r = (n = t).data.charCodeAt(n.currentTokenStart)) &&
+                                      115 !== r) ||
+                                    (65 !== (r = n.data.charCodeAt(n.currentTokenStart + 1)) &&
+                                      97 !== r) ||
+                                    (86 !== (r = n.data.charCodeAt(n.currentTokenStart + 2)) &&
+                                      118 !== r) ||
+                                    (69 !== (r = n.data.charCodeAt(n.currentTokenStart + 3)) &&
+                                      101 !== r)
+                                    ? !(function (t) {
+                                        var e;
+                                        if (t.currentTokenEnd - t.currentTokenStart == 5)
+                                          return 76 ===
+                                            (e = t.data.charCodeAt(t.currentTokenStart)) ||
+                                            108 === e
+                                            ? (79 ===
+                                                (e = t.data.charCodeAt(t.currentTokenStart + 1)) ||
+                                                111 === e) &&
+                                                (79 ===
+                                                  (e = t.data.charCodeAt(
+                                                    t.currentTokenStart + 2,
+                                                  )) ||
+                                                  111 === e) &&
+                                                (80 ===
+                                                  (e = t.data.charCodeAt(
+                                                    t.currentTokenStart + 3,
+                                                  )) ||
+                                                  112 === e)
+                                            : void 0;
+                                      })(t)
+                                      ? (t.currentTokenType = 3)
+                                      : (t.currentTokenType = 2)
+                                    : (t.currentTokenType = 1)
+                                  : (t.currentTokenType = 0)
+                                : (t.currentTokenType = 3);
+                    }
+                  }
+                }
+                function ht(t) {
+                  for (At(t); 5 === t.currentTokenType; ) At(t);
+                }
+                function pt(t, e) {
+                  for (
+                    var n,
+                      r = t.currentTokenStart,
+                      i = lt(t),
+                      o = ut(t, i),
+                      a = [],
+                      s = N.create(512),
+                      l = 0,
+                      u = !0;
+                    u;
+
+                  ) {
+                    if (
+                      4 !== t.currentTokenType ||
+                      !(function (t, e, n) {
+                        var r,
+                          i = n - e,
+                          o = t.currentTokenStart - e,
+                          a = t.currentTokenEnd - t.currentTokenStart;
+                        if (!(a < i)) {
+                          for (r = e; r < n; ++r)
+                            if (t.data.charCodeAt(r) !== t.data.charCodeAt(r + o)) return;
+                          return i == a || 46 === t.data.charCodeAt(r + o);
+                        }
+                      })(t, r, i)
+                    ) {
+                      u = !1;
+                      break;
+                    }
+                    if (((n = ct(t)), ht(t), 3 !== t.currentTokenType))
+                      return {
+                        hasError: !0,
+                        errorLine: t.currentLineNumber,
+                        errorMessage: 'Expected value.',
+                      };
+                    (a[a.length] = n),
+                      N.addToken(s, t.currentTokenStart, t.currentTokenEnd),
+                      l++,
+                      ht(t);
+                  }
+                  return (
+                    e.addCategory(
+                      new U.Category(e.data, o, r, t.currentTokenStart, a, s.tokens, l),
+                    ),
+                    { hasError: !1, errorLine: 0, errorMessage: '' }
+                  );
+                }
+                function dt(t, e) {
+                  return R.ParserResult.error(e, t);
+                }
+                function ft(t) {
+                  var e,
+                    n,
+                    r,
+                    i = {
+                      data: t,
+                      length: t.length,
+                      position: 0,
+                      currentTokenStart: 0,
+                      currentTokenEnd: 0,
+                      currentTokenType: 6,
+                      currentLineNumber: 1,
+                      isEscaped: !1,
+                    },
+                    o = new U.File(t),
+                    a = new U.DataBlock(t, 'default'),
+                    s = new U.DataBlock(t, 'empty'),
+                    l = !1;
+                  for (ht(i); 6 !== i.currentTokenType; ) {
+                    var u = i.currentTokenType;
+                    if (0 === u) {
+                      if (l)
+                        return dt(
+                          i.currentLineNumber,
+                          'Unexpected data block inside a save frame.',
+                        );
+                      0 < a.categories.length && o.dataBlocks.push(a),
+                        (a = new U.DataBlock(
+                          t,
+                          t.substring(i.currentTokenStart + 5, i.currentTokenEnd),
+                        )),
+                        ht(i);
+                    } else if (1 === u) {
+                      if (
+                        0 === (n = t.substring(i.currentTokenStart + 5, i.currentTokenEnd)).length
+                      )
+                        0 < s.categories.length &&
+                          ((r = a.additionalData.saveFrames) ||
+                            (a.additionalData.saveFrames = r = []),
+                          (r[r.length] = s)),
+                          (l = !1);
+                      else {
+                        if (l) return dt(i.currentLineNumber, 'Save frames cannot be nested.');
+                        (l = !0), (s = new U.DataBlock(t, n));
+                      }
+                      ht(i);
+                    } else if (2 === u) {
+                      if (
+                        (e = (function (t, e) {
+                          for (
+                            var n = t.currentTokenStart,
+                              r = t.currentLineNumber,
+                              i = (ht(t), ut(t, lt(t))),
+                              o = [],
+                              a = N.create('_atom_site' === i ? (e.data.length / 1.85) | 0 : 1024),
+                              s = 0;
+                            4 === t.currentTokenType;
+
+                          )
+                            (o[o.length] = ct(t)), ht(t);
+                          for (; 3 === t.currentTokenType; )
+                            N.addToken(a, t.currentTokenStart, t.currentTokenEnd), s++, ht(t);
+                          return s % o.length != 0
+                            ? {
+                                hasError: !0,
+                                errorLine: t.currentLineNumber,
+                                errorMessage:
+                                  'The number of values for loop starting at line ' +
+                                  r +
+                                  ' is not a multiple of the number of columns.',
+                              }
+                            : (e.addCategory(
+                                new U.Category(e.data, i, n, t.currentTokenStart, o, a.tokens, s),
+                              ),
+                              { hasError: !1, errorLine: 0, errorMessage: '' });
+                        })(i, l ? s : a)).hasError
+                      )
+                        return dt(e.errorLine, e.errorMessage);
+                    } else {
+                      if (4 !== u)
+                        return dt(
+                          i.currentLineNumber,
+                          'Unexpected token. Expected data_, loop_, or data name.',
+                        );
+                      if ((e = pt(i, l ? s : a)).hasError) return dt(e.errorLine, e.errorMessage);
+                    }
+                  }
+                  return l
+                    ? dt(i.currentLineNumber, 'Unfinished save frame (`' + s.header + '`).')
+                    : (0 < a.categories.length && o.dataBlocks.push(a), R.ParserResult.success(o));
+                }
+                function gt(t, e) {
+                  for (var n = {}, r = 0; r < e; r++) n[yt(t)] = yt(t);
+                  return n;
+                }
+                function mt(t, e) {
+                  for (var n = new Uint8Array(e), r = t.offset, i = 0; i < e; i++)
+                    n[i] = t.buffer[i + r];
+                  return (t.offset += e), n;
+                }
+                function vt(t, e) {
+                  var n = Y.utf8Read(t.buffer, t.offset, e);
+                  return (t.offset += e), n;
+                }
+                function bt(t, e) {
+                  for (var n = new Array(e), r = 0; r < e; r++) n[r] = yt(t);
+                  return n;
+                }
+                function yt(t) {
+                  var e,
+                    n,
+                    r = t.buffer[t.offset];
+                  if (0 == (128 & r)) return t.offset++, r;
+                  if (128 == (240 & r)) return (n = 15 & r), t.offset++, gt(t, n);
+                  if (144 == (240 & r)) return (n = 15 & r), t.offset++, bt(t, n);
+                  if (160 == (224 & r)) return (n = 31 & r), t.offset++, vt(t, n);
+                  if (224 == (224 & r)) return (e = t.dataView.getInt8(t.offset)), t.offset++, e;
+                  switch (r) {
+                    case 192:
+                      return t.offset++, null;
+                    case 194:
+                      return t.offset++, !1;
+                    case 195:
+                      return t.offset++, !0;
+                    case 196:
+                      return (n = t.dataView.getUint8(t.offset + 1)), (t.offset += 2), mt(t, n);
+                    case 197:
+                      return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), mt(t, n);
+                    case 198:
+                      return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), mt(t, n);
+                    case 202:
+                      return (e = t.dataView.getFloat32(t.offset + 1)), (t.offset += 5), e;
+                    case 203:
+                      return (e = t.dataView.getFloat64(t.offset + 1)), (t.offset += 9), e;
+                    case 204:
+                      return (e = t.buffer[t.offset + 1]), (t.offset += 2), e;
+                    case 205:
+                      return (e = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), e;
+                    case 206:
+                      return (e = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), e;
+                    case 208:
+                      return (e = t.dataView.getInt8(t.offset + 1)), (t.offset += 2), e;
+                    case 209:
+                      return (e = t.dataView.getInt16(t.offset + 1)), (t.offset += 3), e;
+                    case 210:
+                      return (e = t.dataView.getInt32(t.offset + 1)), (t.offset += 5), e;
+                    case 217:
+                      return (n = t.dataView.getUint8(t.offset + 1)), (t.offset += 2), vt(t, n);
+                    case 218:
+                      return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), vt(t, n);
+                    case 219:
+                      return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), vt(t, n);
+                    case 220:
+                      return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), bt(t, n);
+                    case 221:
+                      return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), bt(t, n);
+                    case 222:
+                      return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), gt(t, n);
+                    case 223:
+                      return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), gt(t, n);
+                  }
+                  throw new Error('Unknown type 0x' + r.toString(16));
+                }
+                function wt(t) {
+                  throw new Error(t);
+                }
+                function Et(t) {
+                  for (var e = t.data, n = t.encoding.length - 1; 0 <= n; n--)
+                    e = z.decodeStep(e, t.encoding[n]);
+                  return e;
+                }
+                function Bt(t, e) {
+                  switch (t) {
+                    case 1:
+                      return new Int8Array(e);
+                    case 2:
+                      return new Int16Array(e);
+                    case 3:
+                      return new Int32Array(e);
+                    case 4:
+                      return new Uint8Array(e);
+                    case 5:
+                      return new Uint16Array(e);
+                    case 6:
+                      return new Uint32Array(e);
+                    default:
+                      throw new Error('Unsupported integer data type.');
+                  }
+                }
+                function Ct(t, e) {
+                  switch (t) {
+                    case 32:
+                      return new Float32Array(e);
+                    case 33:
+                      return new Float64Array(e);
+                    default:
+                      throw new Error('Unsupported floating data type.');
+                  }
+                }
+                function xt(t, e, n) {
+                  return new n(
+                    H
+                      ? t.buffer
+                      : (function (t, e) {
+                          for (
+                            var n = new ArrayBuffer(t.length),
+                              r = new Uint8Array(n),
+                              i = 0,
+                              o = t.length;
+                            i < o;
+                            i += e
+                          )
+                            for (var a = 0; a < e; a++) r[i + e - a - 1] = t[i + a];
+                          return n;
+                        })(t, e),
+                  );
+                }
+                ((e = e.StringWriter || (e.StringWriter = {})).create = function (t) {
+                  return {
+                    chunkData: [],
+                    chunkOffset: 0,
+                    chunkCapacity: (t = void 0 === t ? 512 : t),
+                    data: [],
+                  };
+                }),
+                  (e.asString = function (t) {
+                    return t.data.length
+                      ? (0 < t.chunkOffset &&
+                          (t.data[t.data.length] = t.chunkData.splice(0, t.chunkOffset).join('')),
+                        t.data.join(''))
+                      : (t.chunkData.length === t.chunkOffset
+                          ? t.chunkData
+                          : t.chunkData.splice(0, t.chunkOffset)
+                        ).join('');
+                  }),
+                  (e.writeTo = function (t, e) {
+                    var n;
+                    0 < (n = t).chunkOffset &&
+                      (n.chunkData.length === n.chunkOffset
+                        ? (n.data[n.data.length] = n.chunkData.join(''))
+                        : (n.data[n.data.length] = n.chunkData.splice(0, n.chunkOffset).join('')),
+                      (n.chunkOffset = 0));
+                    for (var r = 0, i = t.data; r < i.length; r++) {
+                      var o = i[r];
+                      e.writeString(o);
+                    }
+                  }),
+                  (e.newline = function (t) {
+                    it(t, '\n');
+                  }),
+                  (e.whitespace = function (t, e) {
+                    it(t, tt[e]);
+                  }),
+                  (e.write = it),
+                  (e.writeSafe = function (t, e) {
+                    t.chunkOffset === t.chunkCapacity &&
+                      ((t.data[t.data.length] = t.chunkData.join('')), (t.chunkOffset = 0)),
+                      (t.chunkData[t.chunkOffset++] = e);
+                  }),
+                  (e.writePadLeft = function (t, e, n) {
+                    null == e && it(t, tt[n]), 0 < (n -= e.length) && it(t, tt[n]), it(t, e);
+                  }),
+                  (e.writePadRight = function (t, e, n) {
+                    null == e && it(t, tt[n]), (n -= e.length), it(t, e), 0 < n && it(t, tt[n]);
+                  }),
+                  (e.writeInteger = function (t, e) {
+                    it(t, '' + e);
+                  }),
+                  (e.writeIntegerPadLeft = function (t, e, n) {
+                    0 < (n -= (e = '' + e).length) && it(t, tt[n]), it(t, e);
+                  }),
+                  (e.writeIntegerPadRight = function (t, e, n) {
+                    (n -= (e = '' + e).length), it(t, e), 0 < n && it(t, tt[n]);
+                  }),
+                  (e.writeFloat = function (t, e, n) {
+                    it(t, '' + Math.round(n * e) / n);
+                  }),
+                  (e.writeFloatPadLeft = function (t, e, n, r) {
+                    (e = '' + Math.round(n * e) / n),
+                      0 < (n = r - e.length) && it(t, tt[n]),
+                      it(t, e);
+                  }),
+                  (e.writeFloatPadRight = function (t, e, n, r) {
+                    (e = '' + Math.round(n * e) / n),
+                      (n = r - e.length),
+                      it(t, e),
+                      0 < n && it(t, tt[n]);
+                  }),
+                  (e = w = w || {}),
+                  (ot.prototype.getString = function (t) {
+                    return null;
+                  }),
+                  (ot.prototype.getInteger = function (t) {
+                    return 0;
+                  }),
+                  (ot.prototype.getFloat = function (t) {
+                    return 0;
+                  }),
+                  (ot.prototype.getValuePresence = function (t) {
+                    return 1;
+                  }),
+                  (ot.prototype.areValuesEqual = function (t, e) {
+                    return !0;
+                  }),
+                  (ot.prototype.stringEquals = function (t, e) {
+                    return null === e;
+                  }),
+                  (E = ot),
+                  (e.UndefinedColumn = new E()),
+                  ((E = e.Category || (e.Category = {})).getMatrix = function (t, e, n, r, i) {
+                    for (var o = [], a = 1; a <= n; a++) {
+                      for (var s = [], l = 1; l <= r; l++)
+                        s[l - 1] = t.getColumn(e + '[' + a + '][' + l + ']').getFloat(i);
+                      o[a - 1] = s;
+                    }
+                    return o;
+                  }),
+                  (E.getVector = function (t, e, n, r, i) {
+                    for (var o = [], a = 1; a <= n; a++)
+                      o[a - 1] = t.getColumn(e + '[' + a + ']').getFloat(i);
+                    return o;
+                  }),
+                  (e = w = w || {}),
+                  ((E = e.ParserResult || (e.ParserResult = {})).error = function (t, e) {
+                    return new Q(t, (e = void 0 === e ? -1 : e));
+                  }),
+                  (E.success = function (t, e) {
+                    return new _(t, (e = void 0 === e ? [] : e));
+                  }),
+                  (at.prototype.toString = function () {
+                    return 0 <= this.line
+                      ? '[Line ' + this.line + '] ' + this.message
+                      : this.message;
+                  }),
+                  (Q = at),
+                  (e.ParserError = Q),
+                  (_ = function (t, e) {
+                    (this.result = t), (this.warnings = e), (this.isError = !1);
+                  }),
+                  (e.ParserSuccess = _),
+                  (function (t) {
+                    ((e = u = u || {}).create = function () {
+                      return Object.create(null);
+                    }),
+                      (e.get = function (t, e) {
+                        if (!(6 < e.length)) {
+                          var n = t[e];
+                          if (void 0 !== n) return n;
+                          t[e] = e;
+                        }
+                        return e;
+                      }),
+                      (n.prototype.toJSON = function () {
+                        return this.dataBlocks.map(function (t) {
+                          return t.toJSON();
+                        });
+                      });
+                    var u,
+                      e = n;
+                    function n(t) {
+                      (this.dataBlocks = []), (this.data = t);
+                    }
+                    function r(t, e) {
+                      (this.header = e),
+                        (this.data = t),
+                        (this.categoryList = []),
+                        (this.additionalData = {}),
+                        (this.categoryMap = new Map());
+                    }
+                    function i(t, e, n, r, i, o, a) {
+                      (this.name = e),
+                        (this.tokens = o),
+                        (this.data = t),
+                        (this.startIndex = n),
+                        (this.endIndex = r),
+                        (this.columnCount = i.length),
+                        (this.rowCount = (a / i.length) | 0),
+                        (this.columnIndices = new Map()),
+                        (this.columnNameList = []);
+                      for (var s = 0; s < i.length; s++) {
+                        var l = i[s].substr(e.length + 1);
+                        this.columnIndices.set(l, s), this.columnNameList.push(l);
+                      }
+                    }
+                    (t.File = e),
+                      Object.defineProperty(r.prototype, 'categories', {
+                        get: function () {
+                          return this.categoryList;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (r.prototype.getCategory = function (t) {
+                        return this.categoryMap.get(t);
+                      }),
+                      (r.prototype.addCategory = function (t) {
+                        (this.categoryList[this.categoryList.length] = t),
+                          this.categoryMap.set(t.name, t);
+                      }),
+                      (r.prototype.toJSON = function () {
+                        return {
+                          id: this.header,
+                          categories: this.categoryList.map(function (t) {
+                            return t.toJSON();
+                          }),
+                          additionalData: this.additionalData,
+                        };
+                      }),
+                      (t.DataBlock = r),
+                      Object.defineProperty(i.prototype, 'columnNames', {
+                        get: function () {
+                          return this.columnNameList;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (i.prototype.getColumn = function (t) {
+                        var e = this.columnIndices.get(t);
+                        return void 0 !== e ? new s(this, this.data, t, e) : T.UndefinedColumn;
+                      }),
+                      (i.prototype.toJSON = function () {
+                        for (
+                          var t = [],
+                            e = this.data,
+                            n = this.tokens,
+                            r = this.columnNameList,
+                            i = u.create(),
+                            o = 0;
+                          o < this.rowCount;
+                          o++
+                        ) {
+                          for (var a = {}, s = 0; s < this.columnCount; s++) {
+                            var l = 2 * (o * this.columnCount + s);
+                            a[r[s]] = u.get(i, e.substring(n[l], n[1 + l]));
+                          }
+                          t[o] = a;
+                        }
+                        return { name: this.name, columns: r, rows: t };
+                      }),
+                      (t.Category = i);
+                    var o = T.Utils.FastNumberParsers.parseInt,
+                      a = T.Utils.FastNumberParsers.parseFloat,
+                      s =
+                        ((l.prototype.getString = function (t) {
+                          (t = 2 * (t * this.columnCount + this.index)),
+                            (t = u.get(
+                              this.stringPool,
+                              this.data.substring(this.tokens[t], this.tokens[1 + t]),
+                            ));
+                          return '.' === t || '?' === t ? null : t;
+                        }),
+                        (l.prototype.getInteger = function (t) {
+                          t = 2 * (t * this.columnCount + this.index);
+                          return o(this.data, this.tokens[t], this.tokens[1 + t]);
+                        }),
+                        (l.prototype.getFloat = function (t) {
+                          t = 2 * (t * this.columnCount + this.index);
+                          return a(this.data, this.tokens[t], this.tokens[1 + t]);
+                        }),
+                        (l.prototype.stringEquals = function (t, e) {
+                          var t = 2 * (t * this.columnCount + this.index),
+                            n = this.tokens[t],
+                            r = e.length;
+                          if (r !== this.tokens[1 + t] - n) return !1;
+                          for (var i = 0; i < r; i++)
+                            if (this.data.charCodeAt(i + n) !== e.charCodeAt(i)) return !1;
+                          return !0;
+                        }),
+                        (l.prototype.areValuesEqual = function (t, e) {
+                          var t = 2 * (t * this.columnCount + this.index),
+                            e = 2 * (e * this.columnCount + this.index),
+                            n = this.tokens[t],
+                            r = this.tokens[e],
+                            i = this.tokens[1 + t] - n;
+                          if (i != this.tokens[1 + e] - r) return !1;
+                          for (var o = 0; o < i; o++)
+                            if (this.data.charCodeAt(o + n) !== this.data.charCodeAt(o + r))
+                              return !1;
+                          return !0;
+                        }),
+                        (l.prototype.getValuePresence = function (t) {
+                          var t = t * this.columnCount + this.index,
+                            e = this.tokens[2 * t];
+                          if (this.tokens[2 * t + 1] - e != 1) return 0;
+                          t = this.data.charCodeAt(e);
+                          return 46 === t ? 1 : 63 === t ? 2 : 0;
+                        }),
+                        l);
+                    function l(t, e, n, r) {
+                      (this.data = e),
+                        (this.name = n),
+                        (this.index = r),
+                        (this.stringPool = u.create()),
+                        (this.isDefined = !0),
+                        (this.tokens = t.tokens),
+                        (this.columnCount = t.columnCount);
+                    }
+                    t.Column = s;
+                  })((T = w = w || {}).Text || (T.Text = {})),
+                  (R = w = w || {}),
+                  (U = R.Text || (R.Text = {})),
+                  ((E = N = N || {}).addToken = function (t, e, n) {
+                    var r, i;
+                    t.count >= t.tokensLenMinus2 &&
+                      ((r = t),
+                      (i = new Int32Array((1.61 * r.tokens.length) | 0)).set(r.tokens),
+                      (r.tokens = i),
+                      (r.tokensLenMinus2 = (i.length - 2) | 0)),
+                      (t.tokens[t.count++] = e),
+                      (t.tokens[t.count++] = n);
+                  }),
+                  (E.create = function (t) {
+                    return { tokensLenMinus2: (t - 2) | 0, count: 0, tokens: new Int32Array(t) };
+                  }),
+                  (U.parse = ft),
+                  (function (t) {
+                    var I = L.Utils.StringWriter;
+                    function e() {
+                      (this.writer = I.create()), (this.encoded = !1), (this.dataBlockCreated = !1);
+                    }
+                    function M(t) {
+                      return t && 0 <= t.indexOf('\n');
+                    }
+                    function D(t, e) {
+                      I.write(t, e), I.newline(t);
+                    }
+                    function S(t) {
+                      I.writeSafe(t, '. ');
+                    }
+                    function k(t) {
+                      I.writeSafe(t, '? ');
+                    }
+                    function F(t, e) {
+                      if (e) {
+                        for (
+                          var n = !1,
+                            r = "'",
+                            i = "' ",
+                            o = !1,
+                            a = !1,
+                            s = !1,
+                            l = 0,
+                            u = e.length - 1;
+                          l < u;
+                          l++
+                        )
+                          switch (e.charCodeAt(l)) {
+                            case 9:
+                              o = !0;
+                              break;
+                            case 10:
+                              return I.writeSafe(t, '\n;' + e), void I.writeSafe(t, '\n; ');
+                            case 32:
+                              o = !0;
+                              break;
+                            case 34:
+                              if (a) return I.writeSafe(t, '\n;' + e), void I.writeSafe(t, '\n; ');
+                              (n = s = !0), (r = "'"), (i = "' ");
+                              break;
+                            case 39:
+                              if (s) return I.writeSafe(t, '\n;' + e), void I.writeSafe(t, '\n; ');
+                              (a = n = !0), (r = '"'), (i = '" ');
+                          }
+                        var c = e.charCodeAt(0);
+                        n ||
+                          (35 !== c && 36 !== c && 59 !== c && 91 !== c && 93 !== c && !o) ||
+                          ((r = "'"), (i = "' "), (n = !0)),
+                          n ? I.writeSafe(t, r + e + i) : (I.write(t, e), I.writeSafe(t, ' '));
+                      } else I.writeSafe(t, '. ');
+                    }
+                    function Q(t, e) {
+                      I.writeSafe(t, '\n;' + e), I.writeSafe(t, '\n; ');
+                    }
+                    (e.prototype.startDataBlock = function (t) {
+                      (this.dataBlockCreated = !0),
+                        I.write(
+                          this.writer,
+                          'data_' + (t || '').replace(/[ \n\t]/g, '').toUpperCase() + '\n#\n',
+                        );
+                    }),
+                      (e.prototype.writeCategory = function (e, t) {
+                        if (this.encoded)
+                          throw new Error(
+                            'The writer contents have already been encoded, no more writing.',
+                          );
+                        if (!this.dataBlockCreated) throw new Error('No data block created.');
+                        t = (
+                          t && t.length
+                            ? t.map(function (t) {
+                                return e(t);
+                              })
+                            : [e(void 0)]
+                        ).filter(function (t) {
+                          return t && 0 < t.count;
+                        });
+                        if (t.length) {
+                          var n = t.reduce(function (t, e) {
+                            return t + (void 0 === e.count ? 1 : e.count);
+                          }, 0);
+                          if (n)
+                            if (1 === n) {
+                              for (
+                                var r = t[0],
+                                  i = this.writer,
+                                  n = r.desc.fields,
+                                  o = r.data,
+                                  a =
+                                    n.reduce(function (t, e) {
+                                      return Math.max(t, e.name.length);
+                                    }, 0) +
+                                    r.desc.name.length +
+                                    5,
+                                  s = 0,
+                                  l = n;
+                                s < l.length;
+                                s++
+                              ) {
+                                var u = l[s],
+                                  c =
+                                    (I.writePadRight(i, r.desc.name + '.' + u.name, a), u.presence),
+                                  c = c ? c(o, 0) : 0;
+                                0 !== c
+                                  ? (1 === c ? S : k)(i)
+                                  : M((c = u.string(o, 0)))
+                                    ? (Q(i, c), I.newline(i))
+                                    : F(i, c),
+                                  I.newline(i);
+                              }
+                              I.write(i, '#\n');
+                            } else {
+                              var n = t,
+                                A = this.writer;
+                              D(A, 'loop_');
+                              for (
+                                var h = n[0], p = h.desc.fields, d = 0, f = p;
+                                d < f.length;
+                                d++
+                              ) {
+                                var g = f[d];
+                                D(A, h.desc.name + '.' + g.name);
+                              }
+                              for (var m = 0, v = n; m < v.length; m++)
+                                for (var b = v[m], y = b.data, w = b.count, E = 0; E < w; E++) {
+                                  for (var B = 0, C = p; B < C.length; B++) {
+                                    var x = (g = C[B]).presence,
+                                      x = x ? x(y, E) : 0;
+                                    0 !== x
+                                      ? (1 === x ? S : k)(A)
+                                      : M((x = g.string(y, E)))
+                                        ? (Q(A, x), I.newline(A))
+                                        : F(A, x);
+                                  }
+                                  I.newline(A);
+                                }
+                              I.write(A, '#\n');
+                            }
+                        }
+                      }),
+                      (e.prototype.encode = function () {
+                        this.encoded = !0;
+                      }),
+                      (e.prototype.flush = function (t) {
+                        I.writeTo(this.writer, t);
+                      }),
+                      (t.Writer = e);
+                  })((L = w = w || {}).Text || (L.Text = {})),
+                  (e = (e = w = w || {}).Binary || (e.Binary = {})),
+                  ((Y = e.MessagePack || (e.MessagePack = {})).decode = function (t) {
+                    return yt({ buffer: t, offset: 0, dataView: new DataView(t.buffer) });
+                  }),
+                  (E = (E = w = w || {}).Binary || (E.Binary = {})),
+                  ((O = E.MessagePack || (E.MessagePack = {})).encode = function (t) {
+                    var e = new ArrayBuffer(
+                        (function t(e) {
+                          var n = typeof e;
+                          if ('string' == n) {
+                            var r = O.utf8ByteCount(e);
+                            if (r < 32) return 1 + r;
+                            if (r < 256) return 2 + r;
+                            if (r < 65536) return 3 + r;
+                            if (r < 4294967296) return 5 + r;
+                          }
+                          if (e instanceof Uint8Array) {
+                            r = e.byteLength;
+                            if (r < 256) return 2 + r;
+                            if (r < 65536) return 3 + r;
+                            if (r < 4294967296) return 5 + r;
+                          }
+                          if ('number' == n) {
+                            if (Math.floor(e) !== e) return 9;
+                            if (0 <= e) {
+                              if (e < 128) return 1;
+                              if (e < 256) return 2;
+                              if (e < 65536) return 3;
+                              if (e < 4294967296) return 5;
+                              throw new Error('Number too big 0x' + e.toString(16));
+                            }
+                            if (-32 <= e) return 1;
+                            if (-128 <= e) return 2;
+                            if (-32768 <= e) return 3;
+                            if (-2147483648 <= e) return 5;
+                            throw new Error('Number too small -0x' + e.toString(16).substr(1));
+                          }
+                          if ('boolean' == n || null == e) return 1;
+                          if ('object' == n) {
+                            var i,
+                              o = 0;
+                            if (Array.isArray(e)) {
+                              i = e.length;
+                              for (var a = 0; a < i; a++) o += t(e[a]);
+                            } else {
+                              var s = Object.keys(e);
+                              i = s.length;
+                              for (a = 0; a < i; a++) {
+                                var l = s[a];
+                                o += t(l) + t(e[l]);
+                              }
+                            }
+                            if (i < 16) return 1 + o;
+                            if (i < 65536) return 3 + o;
+                            if (i < 4294967296) return 5 + o;
+                            throw new Error('Array or object too long 0x' + i.toString(16));
+                          }
+                          throw new Error('Unknown type ' + n);
+                        })(t),
+                      ),
+                      n = new DataView(e),
+                      e = new Uint8Array(e);
+                    return (
+                      (function t(e, n, r, i) {
+                        var o = typeof e;
+                        if ('string' == o) {
+                          var a = O.utf8ByteCount(e);
+                          if (a < 32)
+                            return n.setUint8(i, 160 | a), O.utf8Write(r, i + 1, e), 1 + a;
+                          if (a < 256)
+                            return (
+                              n.setUint8(i, 217),
+                              n.setUint8(i + 1, a),
+                              O.utf8Write(r, i + 2, e),
+                              2 + a
+                            );
+                          if (a < 65536)
+                            return (
+                              n.setUint8(i, 218),
+                              n.setUint16(i + 1, a),
+                              O.utf8Write(r, i + 3, e),
+                              3 + a
+                            );
+                          if (a < 4294967296)
+                            return (
+                              n.setUint8(i, 219),
+                              n.setUint32(i + 1, a),
+                              O.utf8Write(r, i + 5, e),
+                              5 + a
+                            );
+                        }
+                        if (e instanceof Uint8Array) {
+                          var a = e.byteLength,
+                            s = new Uint8Array(n.buffer);
+                          if (a < 256)
+                            return n.setUint8(i, 196), n.setUint8(i + 1, a), s.set(e, i + 2), 2 + a;
+                          if (a < 65536)
+                            return (
+                              n.setUint8(i, 197), n.setUint16(i + 1, a), s.set(e, i + 3), 3 + a
+                            );
+                          if (a < 4294967296)
+                            return (
+                              n.setUint8(i, 198), n.setUint32(i + 1, a), s.set(e, i + 5), 5 + a
+                            );
+                        }
+                        if ('number' == o) {
+                          if (!isFinite(e)) throw new Error('Number not finite: ' + e);
+                          if (Math.floor(e) !== e)
+                            return n.setUint8(i, 203), n.setFloat64(i + 1, e), 9;
+                          if (0 <= e) {
+                            if (e < 128) return n.setUint8(i, e), 1;
+                            if (e < 256) return n.setUint8(i, 204), n.setUint8(i + 1, e), 2;
+                            if (e < 65536) return n.setUint8(i, 205), n.setUint16(i + 1, e), 3;
+                            if (e < 4294967296) return n.setUint8(i, 206), n.setUint32(i + 1, e), 5;
+                            throw new Error('Number too big 0x' + e.toString(16));
+                          }
+                          if (-32 <= e) return n.setInt8(i, e), 1;
+                          if (-128 <= e) return n.setUint8(i, 208), n.setInt8(i + 1, e), 2;
+                          if (-32768 <= e) return n.setUint8(i, 209), n.setInt16(i + 1, e), 3;
+                          if (-2147483648 <= e) return n.setUint8(i, 210), n.setInt32(i + 1, e), 5;
+                          throw new Error('Number too small -0x' + (-e).toString(16).substr(1));
+                        }
+                        if (null == e) return n.setUint8(i, 192), 1;
+                        if ('boolean' == o) return n.setUint8(i, e ? 195 : 194), 1;
+                        if ('object' == o) {
+                          var l,
+                            u = 0,
+                            s = Array.isArray(e),
+                            a = void 0;
+                          if (
+                            ((l = s ? e.length : (a = Object.keys(e)).length) < 16
+                              ? (n.setUint8(i, l | (s ? 144 : 128)), (u = 1))
+                              : l < 65536
+                                ? (n.setUint8(i, s ? 220 : 222), n.setUint16(i + 1, l), (u = 3))
+                                : l < 4294967296 &&
+                                  (n.setUint8(i, s ? 221 : 223), n.setUint32(i + 1, l), (u = 5)),
+                            s)
+                          )
+                            for (var c = 0; c < l; c++) u += t(e[c], n, r, i + u);
+                          else
+                            for (var A = 0, h = a; A < h.length; A++) {
+                              var p = h[A];
+                              u = (u += t(p, n, r, i + u)) + t(e[p], n, r, i + u);
+                            }
+                          return u;
+                        }
+                        throw new Error('Unknown type ' + o);
+                      })(t, n, e, 0),
+                      e
+                    );
+                  }),
+                  ((e =
+                    (e = (e = w = w || {}).Binary || (e.Binary = {})).MessagePack ||
+                    (e.MessagePack = {})).utf8Write = function (t, e, n) {
+                    t.byteLength;
+                    for (var r = 0, i = n.length; r < i; r++) {
+                      var o = n.charCodeAt(r);
+                      if (o < 128) t[e++] = ((o >>> 0) & 127) | 0;
+                      else if (o < 2048)
+                        (t[e++] = ((o >>> 6) & 31) | 192), (t[e++] = ((o >>> 0) & 63) | 128);
+                      else if (o < 65536)
+                        (t[e++] = ((o >>> 12) & 15) | 224),
+                          (t[e++] = ((o >>> 6) & 63) | 128),
+                          (t[e++] = ((o >>> 0) & 63) | 128);
+                      else {
+                        if (!(o < 1114112)) throw new Error('bad codepoint ' + o);
+                        (t[e++] = ((o >>> 18) & 7) | 240),
+                          (t[e++] = ((o >>> 12) & 63) | 128),
+                          (t[e++] = ((o >>> 6) & 63) | 128),
+                          (t[e++] = ((o >>> 0) & 63) | 128);
+                      }
+                    }
+                  }),
+                  (G = (function () {
+                    for (var t = [], e = 0; e < 1024; e++) t[e] = String.fromCharCode(e);
+                    return t;
+                  })()),
+                  (e.utf8Read = function (t, e, n) {
+                    for (var r = G, i = void 0, o = [], a = 0, s = e, l = e + n; s < l; s++) {
+                      var u = t[s];
+                      0 == (128 & u)
+                        ? (o[a++] = r[u])
+                        : 192 == (224 & u)
+                          ? (o[a++] = r[((15 & u) << 6) | (63 & t[++s])])
+                          : 224 == (240 & u)
+                            ? (o[a++] = String.fromCharCode(
+                                ((15 & u) << 12) | ((63 & t[++s]) << 6) | ((63 & t[++s]) << 0),
+                              ))
+                            : 240 == (248 & u)
+                              ? (o[a++] = String.fromCharCode(
+                                  ((7 & u) << 18) |
+                                    ((63 & t[++s]) << 12) |
+                                    ((63 & t[++s]) << 6) |
+                                    ((63 & t[++s]) << 0),
+                                ))
+                              : wt('Invalid byte ' + u.toString(16)),
+                        512 === a && (((i = i || [])[i.length] = o.join('')), (a = 0));
+                    }
+                    return i
+                      ? (0 < a && (i[i.length] = o.slice(0, a).join('')), i.join(''))
+                      : o.slice(0, a).join('');
+                  }),
+                  (e.utf8ByteCount = function (t) {
+                    for (var e = 0, n = 0, r = t.length; n < r; n++) {
+                      var i = t.charCodeAt(n);
+                      i < 128
+                        ? (e += 1)
+                        : i < 2048
+                          ? (e += 2)
+                          : i < 65536
+                            ? (e += 3)
+                            : i < 1114112
+                              ? (e += 4)
+                              : wt('bad codepoint ' + i);
+                    }
+                    return e;
+                  }),
+                  (((E = w = w || {}).Binary || (E.Binary = {})).decode = Et),
+                  ((z || (z = {})).decodeStep = function (t, e) {
+                    switch (e.kind) {
+                      case 'ByteArray':
+                        switch (e.type) {
+                          case 4:
+                            return t;
+                          case 1:
+                            return new Int8Array(t.buffer, t.byteOffset);
+                          case 2:
+                            return xt(t, 2, Int16Array);
+                          case 5:
+                            return xt(t, 2, Uint16Array);
+                          case 3:
+                            return xt(t, 4, Int32Array);
+                          case 6:
+                            return xt(t, 4, Uint32Array);
+                          case 32:
+                            return xt(t, 4, Float32Array);
+                          case 33:
+                            return xt(t, 8, Float64Array);
+                          default:
+                            throw new Error('Unsupported ByteArray type.');
+                        }
+                      case 'FixedPoint':
+                        for (
+                          var n = t,
+                            r = e,
+                            i = n.length,
+                            o = Ct(r.srcType, i),
+                            a = 1 / r.factor,
+                            s = 0;
+                          s < i;
+                          s++
+                        )
+                          o[s] = a * n[s];
+                        return o;
+                      case 'IntervalQuantization':
+                        for (
+                          var l = t,
+                            r = e,
+                            u = l.length,
+                            c = Ct(r.srcType, u),
+                            A = (r.max - r.min) / (r.numSteps - 1),
+                            h = r.min,
+                            p = 0;
+                          p < u;
+                          p++
+                        )
+                          c[p] = h + A * l[p];
+                        return c;
+                      case 'RunLength':
+                        for (
+                          var d = t,
+                            f = e,
+                            g = Bt(f.srcType, f.srcSize),
+                            m = 0,
+                            v = 0,
+                            b = d.length;
+                          v < b;
+                          v += 2
+                        )
+                          for (var y = d[v], U = d[v + 1], w = 0; w < U; ++w) g[m++] = y;
+                        return g;
+                      case 'Delta':
+                        var E = t,
+                          f = e,
+                          B = E.length,
+                          C = Bt(f.srcType, B);
+                        if (B) {
+                          C[0] = E[0] + (0 | f.origin);
+                          for (var x = 1; x < B; ++x) C[x] = E[x] + C[x - 1];
+                        }
+                        return C;
+                      case 'IntegerPacking':
+                        return (
+                          (I = t),
+                          ((D = e).isUnsigned
+                            ? function (t, e) {
+                                var n = 1 === e.byteCount ? 255 : 65535,
+                                  r = t.length,
+                                  i = new Int32Array(e.srcSize),
+                                  o = 0,
+                                  a = 0;
+                                for (; o < r; ) {
+                                  for (var s = 0, l = t[o]; l === n; ) (s += l), (l = t[++o]);
+                                  (s += l), (i[a] = s), o++, a++;
+                                }
+                                return i;
+                              }
+                            : function (t, e) {
+                                var n = 1 === e.byteCount ? 127 : 32767,
+                                  r = -n - 1,
+                                  i = t.length,
+                                  o = new Int32Array(e.srcSize),
+                                  a = 0,
+                                  s = 0;
+                                for (; a < i; ) {
+                                  for (var l = 0, u = t[a]; u === n || u === r; )
+                                    (l += u), (u = t[++a]);
+                                  (l += u), (o[s] = l), a++, s++;
+                                }
+                                return o;
+                              })(I, D)
+                        );
+                      case 'StringArray':
+                        for (
+                          var I = t,
+                            N = (D = e).stringData,
+                            M = Et({ encoding: D.offsetEncoding, data: D.offsets }),
+                            D = Et({ encoding: D.dataEncoding, data: I }),
+                            S = Object.create(null),
+                            k = new Array(D.length),
+                            F = 0,
+                            Q = 0,
+                            _ = D;
+                          Q < _.length;
+                          Q++
+                        ) {
+                          var T,
+                            R = _[Q];
+                          R < 0
+                            ? (k[F++] = null)
+                            : (void 0 === (T = S[R]) &&
+                                ((T = N.substring(M[R], M[R + 1])), (S[R] = T)),
+                              (k[F++] = T));
+                        }
+                        return k;
+                    }
+                    var I, D;
+                  }),
+                  (E = new ArrayBuffer(2)),
+                  (e = new Uint8Array(E)),
+                  (E = new Uint16Array(E)),
+                  (e[0] = 170),
+                  (e[1] = 187),
+                  (H = 48042 === E[0]),
+                  (function (r) {
+                    function t(t) {
+                      this.dataBlocks = t.dataBlocks.map(function (t) {
+                        return new e(t);
+                      });
+                    }
+                    (t.prototype.toJSON = function () {
+                      return this.dataBlocks.map(function (t) {
+                        return t.toJSON();
+                      });
+                    }),
+                      (r.File = t);
+                    Object.defineProperty(n.prototype, 'categories', {
+                      get: function () {
+                        return this.categoryList;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      (n.prototype.getCategory = function (t) {
+                        return this.categoryMap.get(t);
+                      }),
+                      (n.prototype.toJSON = function () {
+                        return {
+                          id: this.header,
+                          categories: this.categoryList.map(function (t) {
+                            return t.toJSON();
+                          }),
+                          additionalData: this.additionalData,
+                        };
+                      });
+                    var e = n;
+                    function n(t) {
+                      (this.additionalData = {}),
+                        (this.header = t.header),
+                        (this.categoryList = t.categories.map(function (t) {
+                          return new i(t);
+                        })),
+                        (this.categoryMap = new Map());
+                      for (var e = 0, n = this.categoryList; e < n.length; e++) {
+                        var r = n[e];
+                        this.categoryMap.set(r.name, r);
+                      }
+                    }
+                    r.DataBlock = e;
+                    Object.defineProperty(o.prototype, 'columnNames', {
+                      get: function () {
+                        return this.columnNameList;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      (o.prototype.getColumn = function (t) {
+                        t = this.encodedColumns.get(t);
+                        if (t) {
+                          if (!t.data.data) return j.UndefinedColumn;
+                          var e = r.decode(t.data),
+                            n = void 0;
+                          return (
+                            t.mask && (n = r.decode(t.mask)),
+                            e.buffer && e.byteLength && e.BYTES_PER_ELEMENT
+                              ? n
+                                ? new c(e, n)
+                                : new l(e)
+                              : n
+                                ? new d(e, n)
+                                : new h(e)
+                          );
+                        }
+                        return j.UndefinedColumn;
+                      }),
+                      (o.prototype.toJSON = function () {
+                        for (
+                          var e = this,
+                            t = [],
+                            n = this.columnNameList.map(function (t) {
+                              return { name: t, column: e.getColumn(t) };
+                            }),
+                            r = 0;
+                          r < this.rowCount;
+                          r++
+                        ) {
+                          for (var i = {}, o = 0, a = n; o < a.length; o++) {
+                            var s = a[o],
+                              l = s.column.getValuePresence(r);
+                            i[s.name] = 0 === l ? s.column.getString(r) : 1 === l ? '.' : '?';
+                          }
+                          t[r] = i;
+                        }
+                        return { name: this.name, columns: this.columnNames, rows: t };
+                      });
+                    var i = o;
+                    function o(t) {
+                      (this.name = t.name),
+                        (this.columnCount = t.columns.length),
+                        (this.rowCount = t.rowCount),
+                        (this.columnNameList = []),
+                        (this.encodedColumns = new Map());
+                      for (var e = 0, n = t.columns; e < n.length; e++) {
+                        var r = n[e];
+                        this.encodedColumns.set(r.name, r), this.columnNameList.push(r.name);
+                      }
+                    }
+                    r.Category = i;
+                    var a = j.Utils.FastNumberParsers.parseInt,
+                      s = j.Utils.FastNumberParsers.parseFloat,
+                      l =
+                        ((u.prototype.getString = function (t) {
+                          return '' + this.data[t];
+                        }),
+                        (u.prototype.getInteger = function (t) {
+                          return 0 | this.data[t];
+                        }),
+                        (u.prototype.getFloat = function (t) {
+                          return +this.data[t];
+                        }),
+                        (u.prototype.stringEquals = function (t, e) {
+                          return this.data[t] === s(e, 0, e.length);
+                        }),
+                        (u.prototype.areValuesEqual = function (t, e) {
+                          return this.data[t] === this.data[e];
+                        }),
+                        (u.prototype.getValuePresence = function (t) {
+                          return 0;
+                        }),
+                        u);
+                    function u(t) {
+                      (this.data = t), (this.isDefined = !0);
+                    }
+                    (A.prototype.getString = function (t) {
+                      return 0 === this.mask[t] ? '' + this.data[t] : null;
+                    }),
+                      (A.prototype.getInteger = function (t) {
+                        return 0 === this.mask[t] ? this.data[t] : 0;
+                      }),
+                      (A.prototype.getFloat = function (t) {
+                        return 0 === this.mask[t] ? this.data[t] : 0;
+                      }),
+                      (A.prototype.stringEquals = function (t, e) {
+                        return 0 === this.mask[t] ? this.data[t] === s(e, 0, e.length) : null == e;
+                      }),
+                      (A.prototype.areValuesEqual = function (t, e) {
+                        return this.data[t] === this.data[e];
+                      }),
+                      (A.prototype.getValuePresence = function (t) {
+                        return this.mask[t];
+                      });
+                    var c = A;
+                    function A(t, e) {
+                      (this.data = t), (this.mask = e), (this.isDefined = !0);
+                    }
+                    (p.prototype.getString = function (t) {
+                      return this.data[t];
+                    }),
+                      (p.prototype.getInteger = function (t) {
+                        t = this.data[t];
+                        return a(t, 0, t.length);
+                      }),
+                      (p.prototype.getFloat = function (t) {
+                        t = this.data[t];
+                        return s(t, 0, t.length);
+                      }),
+                      (p.prototype.stringEquals = function (t, e) {
+                        return this.data[t] === e;
+                      }),
+                      (p.prototype.areValuesEqual = function (t, e) {
+                        return this.data[t] === this.data[e];
+                      }),
+                      (p.prototype.getValuePresence = function (t) {
+                        return 0;
+                      });
+                    var h = p;
+                    function p(t) {
+                      (this.data = t), (this.isDefined = !0);
+                    }
+                    (f.prototype.getString = function (t) {
+                      return 0 === this.mask[t] ? this.data[t] : null;
+                    }),
+                      (f.prototype.getInteger = function (t) {
+                        if (0 !== this.mask[t]) return 0;
+                        t = this.data[t];
+                        return a(t || '', 0, (t || '').length);
+                      }),
+                      (f.prototype.getFloat = function (t) {
+                        if (0 !== this.mask[t]) return 0;
+                        t = this.data[t];
+                        return s(t || '', 0, (t || '').length);
+                      }),
+                      (f.prototype.stringEquals = function (t, e) {
+                        return this.data[t] === e;
+                      }),
+                      (f.prototype.areValuesEqual = function (t, e) {
+                        return this.data[t] === this.data[e];
+                      }),
+                      (f.prototype.getValuePresence = function (t) {
+                        return this.mask[t];
+                      });
+                    var d = f;
+                    function f(t, e) {
+                      (this.data = t), (this.mask = e), (this.isDefined = !0);
+                    }
+                  })((j = w = w || {}).Binary || (j.Binary = {})),
+                  (function (g) {
+                    (e.prototype.and = function (t) {
+                      return new e(this.providers.concat([t]));
+                    }),
+                      (e.prototype.encode = function (t) {
+                        for (var e = [], n = 0, r = this.providers; n < r.length; n++) {
+                          var i = (0, r[n])(t);
+                          if (!i.encodings.length) throw new Error('Encodings must be non-empty.');
+                          t = i.data;
+                          for (var o = 0, a = i.encodings; o < a.length; o++) {
+                            var s = a[o];
+                            e.push(s);
+                          }
+                        }
+                        if (t instanceof Uint8Array) return { encoding: e, data: t };
+                        throw new Error(
+                          'The encoding must result in a Uint8Array. Fix your encoding chain.',
+                        );
+                      });
+                    function e(t) {
+                      this.providers = t;
+                    }
+                    g.Encoder = e;
+                    var h = g.Encoder || (g.Encoder = {});
+                    h.by = function (t) {
+                      return new h([t]);
+                    };
+                    var t,
+                      s = (t = {
+                        2: function (t, e, n) {
+                          t.setInt16(2 * e, n, !0);
+                        },
+                        5: function (t, e, n) {
+                          t.setUint16(2 * e, n, !0);
+                        },
+                        3: function (t, e, n) {
+                          t.setInt32(4 * e, n, !0);
+                        },
+                        6: function (t, e, n) {
+                          t.setUint32(4 * e, n, !0);
+                        },
+                        32: function (t, e, n) {
+                          t.setFloat32(4 * e, n, !0);
+                        },
+                        33: function (t, e, n) {
+                          t.setFloat64(8 * e, n, !0);
+                        },
+                      }),
+                      l =
+                        (((t = {})[2] = 2),
+                        (t[5] = 2),
+                        (t[3] = 4),
+                        (t[6] = 4),
+                        (t[32] = 4),
+                        (t[33] = 8),
+                        t);
+                    function c(t) {
+                      var e = g.Encoding.getDataType(t);
+                      if (1 === e)
+                        return {
+                          encodings: [{ kind: 'ByteArray', type: 1 }],
+                          data: new Uint8Array(t.buffer, t.byteOffset),
+                        };
+                      if (4 === e) return { encodings: [{ kind: 'ByteArray', type: 4 }], data: t };
+                      for (
+                        var n = new Uint8Array(t.length * l[e]),
+                          r = s[e],
+                          i = new DataView(n.buffer),
+                          o = 0,
+                          a = t.length;
+                        o < a;
+                        o++
+                      )
+                        r(i, o, t[o]);
+                      return { encodings: [{ kind: 'ByteArray', type: e }], data: n };
+                    }
+                    function p(t) {
+                      var e = g.Encoding.getDataType(t);
+                      if ((void 0 === e && ((t = new Int32Array(t)), (e = 3)), !t.length))
+                        return {
+                          encodings: [{ kind: 'RunLength', srcType: e, srcSize: 0 }],
+                          data: new Int32Array(0),
+                        };
+                      for (var n = 2, r = 1, i = t.length; r < i; r++)
+                        t[r - 1] !== t[r] && (n += 2);
+                      for (var o = new Int32Array(n), a = 0, s = 1, r = 1, i = t.length; r < i; r++)
+                        t[r - 1] !== t[r]
+                          ? ((o[a] = t[r - 1]), (o[a + 1] = s), (s = 1), (a += 2))
+                          : ++s;
+                      return (
+                        (o[a] = t[t.length - 1]),
+                        (o[a + 1] = s),
+                        {
+                          encodings: [{ kind: 'RunLength', srcType: e, srcSize: t.length }],
+                          data: o,
+                        }
+                      );
+                    }
+                    function d(t) {
+                      if (!g.Encoding.isSignedIntegerDataType(t))
+                        throw new Error(
+                          'Only signed integer types can be encoded using delta encoding.',
+                        );
+                      var e = g.Encoding.getDataType(t);
+                      if ((void 0 === e && ((t = new Int32Array(t)), (e = 3)), !t.length))
+                        return {
+                          encodings: [{ kind: 'Delta', origin: 0, srcType: e }],
+                          data: new t.constructor(0),
+                        };
+                      var n = new t.constructor(t.length),
+                        r = t[0];
+                      n[0] = t[0];
+                      for (var i = 1, o = t.length; i < o; i++) n[i] = t[i] - t[i - 1];
+                      return (
+                        (n[0] = 0),
+                        { encodings: [{ kind: 'Delta', origin: r, srcType: e }], data: n }
+                      );
+                    }
+                    function i(t, e) {
+                      for (var n = -e - 1, r = 0, i = 0, o = t.length; i < o; i++) {
+                        var a = t[i];
+                        0 === a
+                          ? (r += 1)
+                          : 0 < a
+                            ? ((r += Math.ceil(a / e)), a % e == 0 && (r += 1))
+                            : ((r += Math.ceil(a / n)), a % n == 0 && (r += 1));
+                      }
+                      return r;
+                    }
+                    function A(t) {
+                      var e = (function (t) {
+                          for (var e = 0, n = t.length; e < n; e++) if (t[e] < 0) return !0;
+                          return !1;
+                        })(t),
+                        n = i(t, e ? 127 : 255),
+                        r = i(t, e ? 32767 : 65535);
+                      return 4 * t.length < 2 * r
+                        ? { isSigned: e, size: t.length, bytesPerElement: 4 }
+                        : 2 * r < n
+                          ? { isSigned: e, size: r, bytesPerElement: 2 }
+                          : { isSigned: e, size: n, bytesPerElement: 1 };
+                    }
+                    function f(t) {
+                      if (!(t instanceof Int32Array))
+                        throw new Error('Integer packing can only be applied to Int32 data.');
+                      var e = A(t);
+                      if (4 === e.bytesPerElement) return c(t);
+                      for (
+                        var n = t,
+                          t = e,
+                          r = t.isSigned
+                            ? 1 === t.bytesPerElement
+                              ? 127
+                              : 32767
+                            : 1 === t.bytesPerElement
+                              ? 255
+                              : 65535,
+                          i = -r - 1,
+                          o = n.length,
+                          a = new (
+                            t.isSigned
+                              ? 1 === t.bytesPerElement
+                                ? Int8Array
+                                : Int16Array
+                              : 1 === t.bytesPerElement
+                                ? Uint8Array
+                                : Uint16Array
+                          )(t.size),
+                          s = 0,
+                          l = 0;
+                        l < o;
+                        l++
+                      ) {
+                        var u = n[l];
+                        if (0 <= u) for (; r <= u; ) (a[s] = r), ++s, (u -= r);
+                        else for (; u <= i; ) (a[s] = i), ++s, (u -= i);
+                        (a[s] = u), ++s;
+                      }
+                      e = c(a);
+                      return {
+                        encodings: [
+                          {
+                            kind: 'IntegerPacking',
+                            byteCount: t.bytesPerElement,
+                            isUnsigned: !t.isSigned,
+                            srcSize: o,
+                          },
+                          e.encodings[0],
+                        ],
+                        data: e.data,
+                      };
+                    }
+                    (h.byteArray = c),
+                      (h.fixedPoint = function (a) {
+                        return function (t) {
+                          for (
+                            var e = t,
+                              n = a,
+                              t = g.Encoding.getDataType(e),
+                              r = new Int32Array(e.length),
+                              i = 0,
+                              o = e.length;
+                            i < o;
+                            i++
+                          )
+                            r[i] = Math.round(e[i] * n);
+                          return {
+                            encodings: [{ kind: 'FixedPoint', factor: n, srcType: t }],
+                            data: r,
+                          };
+                        };
+                      }),
+                      (h.intervalQuantizaiton = function (h, p, d, f) {
+                        return (
+                          void 0 === f && (f = Int32Array),
+                          function (t) {
+                            var e,
+                              n = t,
+                              r = h,
+                              i = p,
+                              o = d,
+                              t = f,
+                              a = g.Encoding.getDataType(n);
+                            if (!n.length)
+                              return {
+                                encodings: [
+                                  {
+                                    kind: 'IntervalQuantization',
+                                    min: r,
+                                    max: i,
+                                    numSteps: o,
+                                    srcType: a,
+                                  },
+                                ],
+                                data: new Int32Array(0),
+                              };
+                            i < r && ((e = r), (r = i), (i = e));
+                            for (
+                              var s = (i - r) / (o - 1), l = new t(n.length), u = 0, c = n.length;
+                              u < c;
+                              u++
+                            ) {
+                              var A = n[u];
+                              l[u] = A <= r ? 0 : i <= A ? o : 0 | Math.round((A - r) / s);
+                            }
+                            return {
+                              encodings: [
+                                {
+                                  kind: 'IntervalQuantization',
+                                  min: r,
+                                  max: i,
+                                  numSteps: o,
+                                  srcType: a,
+                                },
+                              ],
+                              data: l,
+                            };
+                          }
+                        );
+                      }),
+                      (h.runLength = p),
+                      (h.delta = d),
+                      (h.integerPacking = f),
+                      (h.stringArray = function (t) {
+                        for (
+                          var e = Object.create(null),
+                            n = [],
+                            r = 0,
+                            i = V.Utils.ChunkedArray.create(
+                              function (t) {
+                                return new Int32Array(t);
+                              },
+                              1024,
+                              1,
+                            ),
+                            o = new Int32Array(t.length),
+                            a = (V.Utils.ChunkedArray.add(i, 0), 0),
+                            s = 0,
+                            l = t;
+                          s < l.length;
+                          s++
+                        ) {
+                          var u,
+                            c = l[s];
+                          null == c
+                            ? (o[a++] = -1)
+                            : (void 0 === (u = e[c]) &&
+                                ((r += c.length),
+                                (e[(n[(u = n.length)] = c)] = u),
+                                V.Utils.ChunkedArray.add(i, r)),
+                              (o[a++] = u));
+                        }
+                        var t = h.by(d).and(f).encode(V.Utils.ChunkedArray.compact(i)),
+                          A = h.by(d).and(p).and(f).encode(o);
+                        return {
+                          encodings: [
+                            {
+                              kind: 'StringArray',
+                              dataEncoding: A.encoding,
+                              stringData: n.join(''),
+                              offsetEncoding: t.encoding,
+                              offsets: t.data,
+                            },
+                          ],
+                          data: A.data,
+                        };
+                      });
+                  })((V = w = w || {}).Binary || (V.Binary = {})),
+                  ((e = (e = w = w || {}).Binary || (e.Binary = {})).VERSION = '0.3.0'),
+                  ((e = e.Encoding || (e.Encoding = {})).getDataType = function (t) {
+                    var e;
+                    if (t instanceof Int8Array) e = 1;
+                    else if (t instanceof Int16Array) e = 2;
+                    else if (t instanceof Int32Array) e = 3;
+                    else if (t instanceof Uint8Array) e = 4;
+                    else if (t instanceof Uint16Array) e = 5;
+                    else if (t instanceof Uint32Array) e = 6;
+                    else if (t instanceof Float32Array) e = 32;
+                    else {
+                      if (!(t instanceof Float64Array))
+                        throw new Error('Unsupported integer data type.');
+                      e = 33;
+                    }
+                    return e;
+                  }),
+                  (e.isSignedIntegerDataType = function (t) {
+                    return (
+                      t instanceof Int8Array || t instanceof Int16Array || t instanceof Int32Array
+                    );
+                  }),
+                  (q = w = w || {}),
+                  ((W = q.Binary || (q.Binary = {})).parse = function (t) {
+                    var e = [0, 3];
+                    try {
+                      var n = new Uint8Array(t),
+                        r = W.MessagePack.decode(n);
+                      if (
+                        !(function (t, e) {
+                          for (var n = 0; n < 2; n++) if (t[n] > e[n]) return;
+                          return 1;
+                        })(e, r.version.match(/(\d)\.(\d)\.\d/).slice(1))
+                      )
+                        return q.ParserResult.error(
+                          'Unsupported format version. Current ' +
+                            r.version +
+                            ', required ' +
+                            e.join('.') +
+                            '.',
+                        );
+                      var i = new W.File(r);
+                      return q.ParserResult.success(i);
+                    } catch (t) {
+                      return q.ParserResult.error('' + t);
+                    }
+                  }),
+                  (function (v) {
+                    function t(t) {
+                      (this.dataBlocks = []),
+                        (this.data = {
+                          encoder: t,
+                          version: v.VERSION,
+                          dataBlocks: this.dataBlocks,
+                        });
+                    }
+                    (t.prototype.startDataBlock = function (t) {
+                      this.dataBlocks.push({
+                        header: (t || '').replace(/[ \n\t]/g, '').toUpperCase(),
+                        categories: [],
+                      });
+                    }),
+                      (t.prototype.writeCategory = function (e, t) {
+                        if (!this.data)
+                          throw new Error(
+                            'The writer contents have already been encoded, no more writing.',
+                          );
+                        if (!this.dataBlocks.length) throw new Error('No data block created.');
+                        t = (
+                          t && t.length
+                            ? t.map(function (t) {
+                                return e(t);
+                              })
+                            : [e(void 0)]
+                        ).filter(function (t) {
+                          return t && 0 < t.count;
+                        });
+                        if (t.length) {
+                          var n = t.reduce(function (t, e) {
+                            return t + e.count;
+                          }, 0);
+                          if (n) {
+                            for (
+                              var r = t[0],
+                                i = { name: r.desc.name, columns: [], rowCount: n },
+                                o = t.map(function (t) {
+                                  return { data: t.data, count: t.count };
+                                }),
+                                a = 0,
+                                s = r.desc.fields;
+                              a < s.length;
+                              a++
+                            ) {
+                              var l = s[a];
+                              i.columns.push(
+                                (function (t, e, n) {
+                                  for (
+                                    var r = !1,
+                                      i = t.typedArray
+                                        ? new t.typedArray(n)
+                                        : ((r = !0), new Array(n)),
+                                      o = new Uint8Array(n),
+                                      a = t.presence,
+                                      s = t.number || t.string,
+                                      l = !0,
+                                      u = 0,
+                                      c = 0,
+                                      A = e;
+                                    c < A.length;
+                                    c++
+                                  )
+                                    for (var h = A[c], p = h.data, d = 0, f = h.count; d < f; d++) {
+                                      var g = a ? a(p, d) : 0;
+                                      0 !== g
+                                        ? ((o[u] = g), r && (i[u] = null), (l = !1))
+                                        : ((o[u] = 0), (i[u] = s(p, d))),
+                                        u++;
+                                    }
+                                  var m,
+                                    n = (t.encoder || v.Encoder.by(v.Encoder.stringArray)).encode(
+                                      i,
+                                    ),
+                                    e = void 0;
+                                  return (
+                                    l ||
+                                      (e =
+                                        (m = v.Encoder.by(v.Encoder.runLength)
+                                          .and(v.Encoder.byteArray)
+                                          .encode(o)).data.length < o.length
+                                          ? m
+                                          : v.Encoder.by(v.Encoder.byteArray).encode(o)),
+                                    { name: t.name, data: n, mask: e }
+                                  );
+                                })(l, o, n),
+                              );
+                            }
+                            this.dataBlocks[this.dataBlocks.length - 1].categories.push(i);
+                          }
+                        }
+                      }),
+                      (t.prototype.encode = function () {
+                        (this.encodedData = v.MessagePack.encode(this.data)),
+                          (this.data = null),
+                          (this.dataBlocks = null);
+                      }),
+                      (t.prototype.flush = function (t) {
+                        t.writeBinary(this.encodedData);
+                      }),
+                      (v.Writer = t);
+                  })((E = w = w || {}).Binary || (E.Binary = {}));
+                var Mt,
+                  Dt,
+                  St,
+                  kt,
+                  Ft,
+                  Qt,
+                  _t,
+                  Tt,
+                  Rt,
+                  Ut,
+                  Nt,
+                  Pt,
+                  Lt,
+                  Yt,
+                  Ot,
+                  Gt,
+                  zt,
+                  Ht,
+                  jt,
+                  Vt,
+                  qt,
+                  Wt,
+                  Kt,
+                  Zt,
+                  Xt,
+                  $t,
+                  te,
+                  ee,
+                  ne,
+                  re,
+                  ie,
+                  oe,
+                  ae,
+                  se,
+                  le,
+                  ue,
+                  ce,
+                  Ae,
+                  he,
+                  pe,
+                  de,
+                  fe,
+                  ge,
+                  me,
+                  ve,
+                  be,
+                  ye,
+                  we,
+                  Ee,
+                  Be,
+                  Ce,
+                  xe,
+                  Ie,
+                  Me,
+                  De,
+                  Se,
+                  ke,
+                  Fe,
+                  Qe,
+                  _e,
+                  Te,
+                  Re,
+                  Ue,
+                  Ne,
+                  Pe,
+                  Le,
+                  Ye,
+                  Oe,
+                  Ge,
+                  ze,
+                  He,
+                  je,
+                  Ve,
+                  qe,
+                  We,
+                  Je,
+                  Ke,
+                  Ze,
+                  Xe,
+                  $e,
+                  tn,
+                  en,
+                  nn,
+                  rn,
+                  on,
+                  an,
+                  sn,
+                  ln,
+                  un,
+                  cn,
+                  An,
+                  hn,
+                  pn,
+                  dn,
+                  fn,
+                  gn,
+                  mn,
+                  vn,
+                  bn,
+                  yn,
+                  wn,
+                  En,
+                  Bn,
+                  Cn,
+                  xn,
+                  In,
+                  Mn,
+                  Dn,
+                  Sn,
+                  kn,
+                  Fn,
+                  Qn,
+                  _n,
+                  Tn,
+                  Rn,
+                  Un,
+                  Nn,
+                  Pn,
+                  Ln,
+                  Yn,
+                  On,
+                  Gn,
+                  zn,
+                  Hn,
+                  jn,
+                  Vn,
+                  qn,
+                  Wn,
+                  Jn,
+                  Kn,
+                  Zn,
+                  Xn,
+                  $n,
+                  tr,
+                  er,
+                  nr,
+                  rr,
+                  ir,
+                  or,
+                  ar,
+                  sr,
+                  lr,
+                  ur,
+                  cr,
+                  Ar,
+                  hr,
+                  pr,
+                  dr,
+                  fr,
+                  Jt,
+                  e = w,
+                  n =
+                    ((Jt = { REVISION: '71' }),
+                    void 0 === Math.sign &&
+                      (Math.sign = function (t) {
+                        return t < 0 ? -1 : 0 < t ? 1 : +t;
+                      }),
+                    (Jt.log = function () {
+                      console.log.apply(console, arguments);
+                    }),
+                    (Jt.warn = function () {
+                      console.warn.apply(console, arguments);
+                    }),
+                    (Jt.error = function () {
+                      console.error.apply(console, arguments);
+                    }),
+                    (Jt.MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 }),
+                    (Jt.CullFaceNone = 0),
+                    (Jt.CullFaceBack = 1),
+                    (Jt.CullFaceFront = 2),
+                    (Jt.CullFaceFrontBack = 3),
+                    (Jt.FrontFaceDirectionCW = 0),
+                    (Jt.FrontFaceDirectionCCW = 1),
+                    (Jt.BasicShadowMap = 0),
+                    (Jt.PCFShadowMap = 1),
+                    (Jt.PCFSoftShadowMap = 2),
+                    (Jt.FrontSide = 0),
+                    (Jt.BackSide = 1),
+                    (Jt.DoubleSide = 2),
+                    (Jt.NoShading = 0),
+                    (Jt.FlatShading = 1),
+                    (Jt.SmoothShading = 2),
+                    (Jt.NoColors = 0),
+                    (Jt.FaceColors = 1),
+                    (Jt.VertexColors = 2),
+                    (Jt.NoBlending = 0),
+                    (Jt.NormalBlending = 1),
+                    (Jt.AdditiveBlending = 2),
+                    (Jt.SubtractiveBlending = 3),
+                    (Jt.MultiplyBlending = 4),
+                    (Jt.CustomBlending = 5),
+                    (Jt.AddEquation = 100),
+                    (Jt.SubtractEquation = 101),
+                    (Jt.ReverseSubtractEquation = 102),
+                    (Jt.MinEquation = 103),
+                    (Jt.MaxEquation = 104),
+                    (Jt.ZeroFactor = 200),
+                    (Jt.OneFactor = 201),
+                    (Jt.SrcColorFactor = 202),
+                    (Jt.OneMinusSrcColorFactor = 203),
+                    (Jt.SrcAlphaFactor = 204),
+                    (Jt.OneMinusSrcAlphaFactor = 205),
+                    (Jt.DstAlphaFactor = 206),
+                    (Jt.OneMinusDstAlphaFactor = 207),
+                    (Jt.DstColorFactor = 208),
+                    (Jt.OneMinusDstColorFactor = 209),
+                    (Jt.SrcAlphaSaturateFactor = 210),
+                    (Jt.MultiplyOperation = 0),
+                    (Jt.MixOperation = 1),
+                    (Jt.AddOperation = 2),
+                    (Jt.UVMapping = 300),
+                    (Jt.CubeReflectionMapping = 301),
+                    (Jt.CubeRefractionMapping = 302),
+                    (Jt.EquirectangularReflectionMapping = 303),
+                    (Jt.EquirectangularRefractionMapping = 304),
+                    (Jt.SphericalReflectionMapping = 305),
+                    (Jt.RepeatWrapping = 1e3),
+                    (Jt.ClampToEdgeWrapping = 1001),
+                    (Jt.MirroredRepeatWrapping = 1002),
+                    (Jt.NearestFilter = 1003),
+                    (Jt.NearestMipMapNearestFilter = 1004),
+                    (Jt.NearestMipMapLinearFilter = 1005),
+                    (Jt.LinearFilter = 1006),
+                    (Jt.LinearMipMapNearestFilter = 1007),
+                    (Jt.LinearMipMapLinearFilter = 1008),
+                    (Jt.UnsignedByteType = 1009),
+                    (Jt.ByteType = 1010),
+                    (Jt.ShortType = 1011),
+                    (Jt.UnsignedShortType = 1012),
+                    (Jt.IntType = 1013),
+                    (Jt.UnsignedIntType = 1014),
+                    (Jt.FloatType = 1015),
+                    (Jt.HalfFloatType = 1025),
+                    (Jt.UnsignedShort4444Type = 1016),
+                    (Jt.UnsignedShort5551Type = 1017),
+                    (Jt.UnsignedShort565Type = 1018),
+                    (Jt.AlphaFormat = 1019),
+                    (Jt.RGBFormat = 1020),
+                    (Jt.RGBAFormat = 1021),
+                    (Jt.LuminanceFormat = 1022),
+                    (Jt.LuminanceAlphaFormat = 1023),
+                    (Jt.RGBEFormat = Jt.RGBAFormat),
+                    (Jt.RGB_S3TC_DXT1_Format = 2001),
+                    (Jt.RGBA_S3TC_DXT1_Format = 2002),
+                    (Jt.RGBA_S3TC_DXT3_Format = 2003),
+                    (Jt.RGBA_S3TC_DXT5_Format = 2004),
+                    (Jt.RGB_PVRTC_4BPPV1_Format = 2100),
+                    (Jt.RGB_PVRTC_2BPPV1_Format = 2101),
+                    (Jt.RGBA_PVRTC_4BPPV1_Format = 2102),
+                    (Jt.RGBA_PVRTC_2BPPV1_Format = 2103),
+                    (Jt.Projector = function () {
+                      Jt.error(
+                        'THREE.Projector has been moved to /examples/js/renderers/Projector.js.',
+                      ),
+                        (this.projectVector = function (t, e) {
+                          Jt.warn('THREE.Projector: .projectVector() is now vector.project().'),
+                            t.project(e);
+                        }),
+                        (this.unprojectVector = function (t, e) {
+                          Jt.warn('THREE.Projector: .unprojectVector() is now vector.unproject().'),
+                            t.unproject(e);
+                        }),
+                        (this.pickingRay = function (t, e) {
+                          Jt.error(
+                            'THREE.Projector: .pickingRay() is now raycaster.setFromCamera().',
+                          );
+                        });
+                    }),
+                    (Jt.CanvasRenderer = function () {
+                      Jt.error(
+                        'THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js',
+                      ),
+                        (this.domElement = document.createElement('canvas')),
+                        (this.clear = function () {}),
+                        (this.render = function () {}),
+                        (this.setClearColor = function () {}),
+                        (this.setSize = function () {});
+                    }),
+                    (Jt.Color = function (t) {
+                      return 3 === arguments.length
+                        ? this.setRGB(t, arguments[1], arguments[2])
+                        : this.set(t);
+                    }),
+                    (Jt.Color.prototype = {
+                      constructor: Jt.Color,
+                      r: 1,
+                      g: 1,
+                      b: 1,
+                      set: function (t) {
+                        return (
+                          t instanceof Jt.Color
+                            ? this.copy(t)
+                            : 'number' == typeof t
+                              ? this.setHex(t)
+                              : 'string' == typeof t && this.setStyle(t),
+                          this
+                        );
+                      },
+                      setHex: function (t) {
+                        return (
+                          (t = Math.floor(t)),
+                          (this.r = ((t >> 16) & 255) / 255),
+                          (this.g = ((t >> 8) & 255) / 255),
+                          (this.b = (255 & t) / 255),
+                          this
+                        );
+                      },
+                      setRGB: function (t, e, n) {
+                        return (this.r = t), (this.g = e), (this.b = n), this;
+                      },
+                      setHSL: function (t, e, n) {
+                        var r;
+                        return (
+                          0 === e
+                            ? (this.r = this.g = this.b = n)
+                            : ((this.r = (r = function (t, e, n) {
+                                return (
+                                  n < 0 && (n += 1),
+                                  1 < n && --n,
+                                  n < 1 / 6
+                                    ? t + 6 * (e - t) * n
+                                    : n < 0.5
+                                      ? e
+                                      : n < 2 / 3
+                                        ? t + 6 * (e - t) * (2 / 3 - n)
+                                        : t
+                                );
+                              })(
+                                (e = 2 * n - (n = n <= 0.5 ? n * (1 + e) : n + e - n * e)),
+                                n,
+                                t + 1 / 3,
+                              )),
+                              (this.g = r(e, n, t)),
+                              (this.b = r(e, n, t - 1 / 3))),
+                          this
+                        );
+                      },
+                      setStyle: function (t) {
+                        var e;
+                        return /^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.test(t)
+                          ? ((e = /^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.exec(t)),
+                            (this.r = Math.min(255, parseInt(e[1], 10)) / 255),
+                            (this.g = Math.min(255, parseInt(e[2], 10)) / 255),
+                            (this.b = Math.min(255, parseInt(e[3], 10)) / 255),
+                            this)
+                          : /^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.test(t)
+                            ? ((e = /^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.exec(t)),
+                              (this.r = Math.min(100, parseInt(e[1], 10)) / 100),
+                              (this.g = Math.min(100, parseInt(e[2], 10)) / 100),
+                              (this.b = Math.min(100, parseInt(e[3], 10)) / 100),
+                              this)
+                            : /^\#([0-9a-f]{6})$/i.test(t)
+                              ? ((e = /^\#([0-9a-f]{6})$/i.exec(t)),
+                                this.setHex(parseInt(e[1], 16)),
+                                this)
+                              : /^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(t)
+                                ? ((e = /^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(t)),
+                                  this.setHex(
+                                    parseInt(e[1] + e[1] + e[2] + e[2] + e[3] + e[3], 16),
+                                  ),
+                                  this)
+                                : /^(\w+)$/i.test(t)
+                                  ? (this.setHex(Jt.ColorKeywords[t]), this)
+                                  : void 0;
+                      },
+                      copy: function (t) {
+                        return (this.r = t.r), (this.g = t.g), (this.b = t.b), this;
+                      },
+                      copyGammaToLinear: function (t, e) {
+                        return (
+                          void 0 === e && (e = 2),
+                          (this.r = Math.pow(t.r, e)),
+                          (this.g = Math.pow(t.g, e)),
+                          (this.b = Math.pow(t.b, e)),
+                          this
+                        );
+                      },
+                      copyLinearToGamma: function (t, e) {
+                        e = 0 < (e = void 0 === e ? 2 : e) ? 1 / e : 1;
+                        return (
+                          (this.r = Math.pow(t.r, e)),
+                          (this.g = Math.pow(t.g, e)),
+                          (this.b = Math.pow(t.b, e)),
+                          this
+                        );
+                      },
+                      convertGammaToLinear: function () {
+                        var t = this.r,
+                          e = this.g,
+                          n = this.b;
+                        return (this.r = t * t), (this.g = e * e), (this.b = n * n), this;
+                      },
+                      convertLinearToGamma: function () {
+                        return (
+                          (this.r = Math.sqrt(this.r)),
+                          (this.g = Math.sqrt(this.g)),
+                          (this.b = Math.sqrt(this.b)),
+                          this
+                        );
+                      },
+                      getHex: function () {
+                        return (
+                          ((255 * this.r) << 16) ^ ((255 * this.g) << 8) ^ ((255 * this.b) << 0)
+                        );
+                      },
+                      getHexString: function () {
+                        return ('000000' + this.getHex().toString(16)).slice(-6);
+                      },
+                      getHSL: function (t) {
+                        var e,
+                          t = t || { h: 0, s: 0, l: 0 },
+                          n = this.r,
+                          r = this.g,
+                          i = this.b,
+                          o = Math.max(n, r, i),
+                          a = Math.min(n, r, i),
+                          s = (a + o) / 2;
+                        if (a === o) u = e = 0;
+                        else {
+                          var l = o - a,
+                            u = s <= 0.5 ? l / (o + a) : l / (2 - o - a);
+                          switch (o) {
+                            case n:
+                              e = (r - i) / l + (r < i ? 6 : 0);
+                              break;
+                            case r:
+                              e = (i - n) / l + 2;
+                              break;
+                            case i:
+                              e = (n - r) / l + 4;
+                          }
+                          e /= 6;
+                        }
+                        return (t.h = e), (t.s = u), (t.l = s), t;
+                      },
+                      getStyle: function () {
+                        return (
+                          'rgb(' +
+                          ((255 * this.r) | 0) +
+                          ',' +
+                          ((255 * this.g) | 0) +
+                          ',' +
+                          ((255 * this.b) | 0) +
+                          ')'
+                        );
+                      },
+                      offsetHSL: function (t, e, n) {
+                        var r = this.getHSL();
+                        return (r.h += t), (r.s += e), (r.l += n), this.setHSL(r.h, r.s, r.l), this;
+                      },
+                      add: function (t) {
+                        return (this.r += t.r), (this.g += t.g), (this.b += t.b), this;
+                      },
+                      addColors: function (t, e) {
+                        return (
+                          (this.r = t.r + e.r), (this.g = t.g + e.g), (this.b = t.b + e.b), this
+                        );
+                      },
+                      addScalar: function (t) {
+                        return (this.r += t), (this.g += t), (this.b += t), this;
+                      },
+                      multiply: function (t) {
+                        return (this.r *= t.r), (this.g *= t.g), (this.b *= t.b), this;
+                      },
+                      multiplyScalar: function (t) {
+                        return (this.r *= t), (this.g *= t), (this.b *= t), this;
+                      },
+                      lerp: function (t, e) {
+                        return (
+                          (this.r += (t.r - this.r) * e),
+                          (this.g += (t.g - this.g) * e),
+                          (this.b += (t.b - this.b) * e),
+                          this
+                        );
+                      },
+                      equals: function (t) {
+                        return t.r === this.r && t.g === this.g && t.b === this.b;
+                      },
+                      fromArray: function (t) {
+                        return (this.r = t[0]), (this.g = t[1]), (this.b = t[2]), this;
+                      },
+                      toArray: function (t, e) {
+                        return (
+                          ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.r),
+                          (t[e + 1] = this.g),
+                          (t[e + 2] = this.b),
+                          t
+                        );
+                      },
+                      clone: function () {
+                        return new Jt.Color().setRGB(this.r, this.g, this.b);
+                      },
+                    }),
+                    (Jt.ColorKeywords = {
+                      aliceblue: 15792383,
+                      antiquewhite: 16444375,
+                      aqua: 65535,
+                      aquamarine: 8388564,
+                      azure: 15794175,
+                      beige: 16119260,
+                      bisque: 16770244,
+                      black: 0,
+                      blanchedalmond: 16772045,
+                      blue: 255,
+                      blueviolet: 9055202,
+                      brown: 10824234,
+                      burlywood: 14596231,
+                      cadetblue: 6266528,
+                      chartreuse: 8388352,
+                      chocolate: 13789470,
+                      coral: 16744272,
+                      cornflowerblue: 6591981,
+                      cornsilk: 16775388,
+                      crimson: 14423100,
+                      cyan: 65535,
+                      darkblue: 139,
+                      darkcyan: 35723,
+                      darkgoldenrod: 12092939,
+                      darkgray: 11119017,
+                      darkgreen: 25600,
+                      darkgrey: 11119017,
+                      darkkhaki: 12433259,
+                      darkmagenta: 9109643,
+                      darkolivegreen: 5597999,
+                      darkorange: 16747520,
+                      darkorchid: 10040012,
+                      darkred: 9109504,
+                      darksalmon: 15308410,
+                      darkseagreen: 9419919,
+                      darkslateblue: 4734347,
+                      darkslategray: 3100495,
+                      darkslategrey: 3100495,
+                      darkturquoise: 52945,
+                      darkviolet: 9699539,
+                      deeppink: 16716947,
+                      deepskyblue: 49151,
+                      dimgray: 6908265,
+                      dimgrey: 6908265,
+                      dodgerblue: 2003199,
+                      firebrick: 11674146,
+                      floralwhite: 16775920,
+                      forestgreen: 2263842,
+                      fuchsia: 16711935,
+                      gainsboro: 14474460,
+                      ghostwhite: 16316671,
+                      gold: 16766720,
+                      goldenrod: 14329120,
+                      gray: 8421504,
+                      green: 32768,
+                      greenyellow: 11403055,
+                      grey: 8421504,
+                      honeydew: 15794160,
+                      hotpink: 16738740,
+                      indianred: 13458524,
+                      indigo: 4915330,
+                      ivory: 16777200,
+                      khaki: 15787660,
+                      lavender: 15132410,
+                      lavenderblush: 16773365,
+                      lawngreen: 8190976,
+                      lemonchiffon: 16775885,
+                      lightblue: 11393254,
+                      lightcoral: 15761536,
+                      lightcyan: 14745599,
+                      lightgoldenrodyellow: 16448210,
+                      lightgray: 13882323,
+                      lightgreen: 9498256,
+                      lightgrey: 13882323,
+                      lightpink: 16758465,
+                      lightsalmon: 16752762,
+                      lightseagreen: 2142890,
+                      lightskyblue: 8900346,
+                      lightslategray: 7833753,
+                      lightslategrey: 7833753,
+                      lightsteelblue: 11584734,
+                      lightyellow: 16777184,
+                      lime: 65280,
+                      limegreen: 3329330,
+                      linen: 16445670,
+                      magenta: 16711935,
+                      maroon: 8388608,
+                      mediumaquamarine: 6737322,
+                      mediumblue: 205,
+                      mediumorchid: 12211667,
+                      mediumpurple: 9662683,
+                      mediumseagreen: 3978097,
+                      mediumslateblue: 8087790,
+                      mediumspringgreen: 64154,
+                      mediumturquoise: 4772300,
+                      mediumvioletred: 13047173,
+                      midnightblue: 1644912,
+                      mintcream: 16121850,
+                      mistyrose: 16770273,
+                      moccasin: 16770229,
+                      navajowhite: 16768685,
+                      navy: 128,
+                      oldlace: 16643558,
+                      olive: 8421376,
+                      olivedrab: 7048739,
+                      orange: 16753920,
+                      orangered: 16729344,
+                      orchid: 14315734,
+                      palegoldenrod: 15657130,
+                      palegreen: 10025880,
+                      paleturquoise: 11529966,
+                      palevioletred: 14381203,
+                      papayawhip: 16773077,
+                      peachpuff: 16767673,
+                      peru: 13468991,
+                      pink: 16761035,
+                      plum: 14524637,
+                      powderblue: 11591910,
+                      purple: 8388736,
+                      red: 16711680,
+                      rosybrown: 12357519,
+                      royalblue: 4286945,
+                      saddlebrown: 9127187,
+                      salmon: 16416882,
+                      sandybrown: 16032864,
+                      seagreen: 3050327,
+                      seashell: 16774638,
+                      sienna: 10506797,
+                      silver: 12632256,
+                      skyblue: 8900331,
+                      slateblue: 6970061,
+                      slategray: 7372944,
+                      slategrey: 7372944,
+                      snow: 16775930,
+                      springgreen: 65407,
+                      steelblue: 4620980,
+                      tan: 13808780,
+                      teal: 32896,
+                      thistle: 14204888,
+                      tomato: 16737095,
+                      turquoise: 4251856,
+                      violet: 15631086,
+                      wheat: 16113331,
+                      white: 16777215,
+                      whitesmoke: 16119285,
+                      yellow: 16776960,
+                      yellowgreen: 10145074,
+                    }),
+                    (Jt.Quaternion = function (t, e, n, r) {
+                      (this._x = t || 0),
+                        (this._y = e || 0),
+                        (this._z = n || 0),
+                        (this._w = void 0 !== r ? r : 1);
+                    }),
+                    (Jt.Quaternion.prototype = {
+                      constructor: Jt.Quaternion,
+                      _x: 0,
+                      _y: 0,
+                      _z: 0,
+                      _w: 0,
+                      get x() {
+                        return this._x;
+                      },
+                      set x(t) {
+                        (this._x = t), this.onChangeCallback();
+                      },
+                      get y() {
+                        return this._y;
+                      },
+                      set y(t) {
+                        (this._y = t), this.onChangeCallback();
+                      },
+                      get z() {
+                        return this._z;
+                      },
+                      set z(t) {
+                        (this._z = t), this.onChangeCallback();
+                      },
+                      get w() {
+                        return this._w;
+                      },
+                      set w(t) {
+                        (this._w = t), this.onChangeCallback();
+                      },
+                      set: function (t, e, n, r) {
+                        return (
+                          (this._x = t),
+                          (this._y = e),
+                          (this._z = n),
+                          (this._w = r),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      copy: function (t) {
+                        return (
+                          (this._x = t.x),
+                          (this._y = t.y),
+                          (this._z = t.z),
+                          (this._w = t.w),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      setFromEuler: function (t, e) {
+                        if (t instanceof Jt.Euler == !1)
+                          throw new Error(
+                            'THREE.Quaternion: .setFromEuler() now expects a Euler rotation rather than a Vector3 and order.',
+                          );
+                        var n = Math.cos(t._x / 2),
+                          r = Math.cos(t._y / 2),
+                          i = Math.cos(t._z / 2),
+                          o = Math.sin(t._x / 2),
+                          a = Math.sin(t._y / 2),
+                          s = Math.sin(t._z / 2);
+                        return (
+                          'XYZ' === t.order
+                            ? ((this._x = o * r * i + n * a * s),
+                              (this._y = n * a * i - o * r * s),
+                              (this._z = n * r * s + o * a * i),
+                              (this._w = n * r * i - o * a * s))
+                            : 'YXZ' === t.order
+                              ? ((this._x = o * r * i + n * a * s),
+                                (this._y = n * a * i - o * r * s),
+                                (this._z = n * r * s - o * a * i),
+                                (this._w = n * r * i + o * a * s))
+                              : 'ZXY' === t.order
+                                ? ((this._x = o * r * i - n * a * s),
+                                  (this._y = n * a * i + o * r * s),
+                                  (this._z = n * r * s + o * a * i),
+                                  (this._w = n * r * i - o * a * s))
+                                : 'ZYX' === t.order
+                                  ? ((this._x = o * r * i - n * a * s),
+                                    (this._y = n * a * i + o * r * s),
+                                    (this._z = n * r * s - o * a * i),
+                                    (this._w = n * r * i + o * a * s))
+                                  : 'YZX' === t.order
+                                    ? ((this._x = o * r * i + n * a * s),
+                                      (this._y = n * a * i + o * r * s),
+                                      (this._z = n * r * s - o * a * i),
+                                      (this._w = n * r * i - o * a * s))
+                                    : 'XZY' === t.order &&
+                                      ((this._x = o * r * i - n * a * s),
+                                      (this._y = n * a * i - o * r * s),
+                                      (this._z = n * r * s + o * a * i),
+                                      (this._w = n * r * i + o * a * s)),
+                          !1 !== e && this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      setFromAxisAngle: function (t, e) {
+                        var e = e / 2,
+                          n = Math.sin(e);
+                        return (
+                          (this._x = t.x * n),
+                          (this._y = t.y * n),
+                          (this._z = t.z * n),
+                          (this._w = Math.cos(e)),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      setFromRotationMatrix: function (t) {
+                        var e,
+                          t = t.elements,
+                          n = t[0],
+                          r = t[4],
+                          i = t[8],
+                          o = t[1],
+                          a = t[5],
+                          s = t[9],
+                          l = t[2],
+                          u = t[6],
+                          t = t[10],
+                          c = n + a + t;
+                        return (
+                          0 < c
+                            ? ((e = 0.5 / Math.sqrt(c + 1)),
+                              (this._w = 0.25 / e),
+                              (this._x = (u - s) * e),
+                              (this._y = (i - l) * e),
+                              (this._z = (o - r) * e))
+                            : a < n && t < n
+                              ? ((e = 2 * Math.sqrt(1 + n - a - t)),
+                                (this._w = (u - s) / e),
+                                (this._x = 0.25 * e),
+                                (this._y = (r + o) / e),
+                                (this._z = (i + l) / e))
+                              : t < a
+                                ? ((e = 2 * Math.sqrt(1 + a - n - t)),
+                                  (this._w = (i - l) / e),
+                                  (this._x = (r + o) / e),
+                                  (this._y = 0.25 * e),
+                                  (this._z = (s + u) / e))
+                                : ((e = 2 * Math.sqrt(1 + t - n - a)),
+                                  (this._w = (o - r) / e),
+                                  (this._x = (i + l) / e),
+                                  (this._y = (s + u) / e),
+                                  (this._z = 0.25 * e)),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      setFromUnitVectors: function (t, e) {
+                        return (
+                          void 0 === Mt && (Mt = new Jt.Vector3()),
+                          (Dt = t.dot(e) + 1) < 1e-6
+                            ? ((Dt = 0),
+                              Math.abs(t.x) > Math.abs(t.z)
+                                ? Mt.set(-t.y, t.x, 0)
+                                : Mt.set(0, -t.z, t.y))
+                            : Mt.crossVectors(t, e),
+                          (this._x = Mt.x),
+                          (this._y = Mt.y),
+                          (this._z = Mt.z),
+                          (this._w = Dt),
+                          this.normalize(),
+                          this
+                        );
+                      },
+                      inverse: function () {
+                        return this.conjugate().normalize(), this;
+                      },
+                      conjugate: function () {
+                        return (
+                          (this._x *= -1),
+                          (this._y *= -1),
+                          (this._z *= -1),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      dot: function (t) {
+                        return this._x * t._x + this._y * t._y + this._z * t._z + this._w * t._w;
+                      },
+                      lengthSq: function () {
+                        return (
+                          this._x * this._x +
+                          this._y * this._y +
+                          this._z * this._z +
+                          this._w * this._w
+                        );
+                      },
+                      length: function () {
+                        return Math.sqrt(
+                          this._x * this._x +
+                            this._y * this._y +
+                            this._z * this._z +
+                            this._w * this._w,
+                        );
+                      },
+                      normalize: function () {
+                        var t = this.length();
+                        return (
+                          0 === t
+                            ? ((this._x = 0), (this._y = 0), (this._z = 0), (this._w = 1))
+                            : ((this._x = this._x * (t = 1 / t)),
+                              (this._y = this._y * t),
+                              (this._z = this._z * t),
+                              (this._w = this._w * t)),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      multiply: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.',
+                            ),
+                            this.multiplyQuaternions(t, e))
+                          : this.multiplyQuaternions(this, t);
+                      },
+                      multiplyQuaternions: function (t, e) {
+                        var n = t._x,
+                          r = t._y,
+                          i = t._z,
+                          t = t._w,
+                          o = e._x,
+                          a = e._y,
+                          s = e._z,
+                          e = e._w;
+                        return (
+                          (this._x = n * e + t * o + r * s - i * a),
+                          (this._y = r * e + t * a + i * o - n * s),
+                          (this._z = i * e + t * s + n * a - r * o),
+                          (this._w = t * e - n * o - r * a - i * s),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      multiplyVector3: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.',
+                          ),
+                          t.applyQuaternion(this)
+                        );
+                      },
+                      slerp: function (t, e) {
+                        if (0 !== e) {
+                          if (1 === e) return this.copy(t);
+                          var n = this._x,
+                            r = this._y,
+                            i = this._z,
+                            o = this._w,
+                            a = o * t._w + n * t._x + r * t._y + i * t._z;
+                          if (
+                            (a < 0
+                              ? ((this._w = -t._w),
+                                (this._x = -t._x),
+                                (this._y = -t._y),
+                                (this._z = -t._z),
+                                (a = -a))
+                              : this.copy(t),
+                            1 <= a)
+                          )
+                            return (this._w = o), (this._x = n), (this._y = r), (this._z = i), this;
+                          (t = Math.acos(a)), (a = Math.sqrt(1 - a * a));
+                          if (Math.abs(a) < 0.001)
+                            return (
+                              (this._w = 0.5 * (o + this._w)),
+                              (this._x = 0.5 * (n + this._x)),
+                              (this._y = 0.5 * (r + this._y)),
+                              (this._z = 0.5 * (i + this._z)),
+                              this
+                            );
+                          var s = Math.sin((1 - e) * t) / a,
+                            e = Math.sin(e * t) / a;
+                          (this._w = o * s + this._w * e),
+                            (this._x = n * s + this._x * e),
+                            (this._y = r * s + this._y * e),
+                            (this._z = i * s + this._z * e),
+                            this.onChangeCallback();
+                        }
+                        return this;
+                      },
+                      equals: function (t) {
+                        return (
+                          t._x === this._x &&
+                          t._y === this._y &&
+                          t._z === this._z &&
+                          t._w === this._w
+                        );
+                      },
+                      fromArray: function (t, e) {
+                        return (
+                          (this._x = t[(e = void 0 === e ? 0 : e)]),
+                          (this._y = t[e + 1]),
+                          (this._z = t[e + 2]),
+                          (this._w = t[e + 3]),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      toArray: function (t, e) {
+                        return (
+                          ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this._x),
+                          (t[e + 1] = this._y),
+                          (t[e + 2] = this._z),
+                          (t[e + 3] = this._w),
+                          t
+                        );
+                      },
+                      onChange: function (t) {
+                        return (this.onChangeCallback = t), this;
+                      },
+                      onChangeCallback: function () {},
+                      clone: function () {
+                        return new Jt.Quaternion(this._x, this._y, this._z, this._w);
+                      },
+                    }),
+                    (Jt.Quaternion.slerp = function (t, e, n, r) {
+                      return n.copy(t).slerp(e, r);
+                    }),
+                    (Jt.Vector2 = function (t, e) {
+                      (this.x = t || 0), (this.y = e || 0);
+                    }),
+                    (Jt.Vector2.prototype = {
+                      constructor: Jt.Vector2,
+                      set: function (t, e) {
+                        return (this.x = t), (this.y = e), this;
+                      },
+                      setX: function (t) {
+                        return (this.x = t), this;
+                      },
+                      setY: function (t) {
+                        return (this.y = t), this;
+                      },
+                      setComponent: function (t, e) {
+                        switch (t) {
+                          case 0:
+                            this.x = e;
+                            break;
+                          case 1:
+                            this.y = e;
+                            break;
+                          default:
+                            throw new Error('index is out of range: ' + t);
+                        }
+                      },
+                      getComponent: function (t) {
+                        switch (t) {
+                          case 0:
+                            return this.x;
+                          case 1:
+                            return this.y;
+                          default:
+                            throw new Error('index is out of range: ' + t);
+                        }
+                      },
+                      copy: function (t) {
+                        return (this.x = t.x), (this.y = t.y), this;
+                      },
+                      add: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.',
+                            ),
+                            this.addVectors(t, e))
+                          : ((this.x += t.x), (this.y += t.y), this);
+                      },
+                      addScalar: function (t) {
+                        return (this.x += t), (this.y += t), this;
+                      },
+                      addVectors: function (t, e) {
+                        return (this.x = t.x + e.x), (this.y = t.y + e.y), this;
+                      },
+                      sub: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.',
+                            ),
+                            this.subVectors(t, e))
+                          : ((this.x -= t.x), (this.y -= t.y), this);
+                      },
+                      subScalar: function (t) {
+                        return (this.x -= t), (this.y -= t), this;
+                      },
+                      subVectors: function (t, e) {
+                        return (this.x = t.x - e.x), (this.y = t.y - e.y), this;
+                      },
+                      multiply: function (t) {
+                        return (this.x *= t.x), (this.y *= t.y), this;
+                      },
+                      multiplyScalar: function (t) {
+                        return (this.x *= t), (this.y *= t), this;
+                      },
+                      divide: function (t) {
+                        return (this.x /= t.x), (this.y /= t.y), this;
+                      },
+                      divideScalar: function (t) {
+                        return (
+                          0 !== t
+                            ? ((this.x *= t = 1 / t), (this.y *= t))
+                            : ((this.x = 0), (this.y = 0)),
+                          this
+                        );
+                      },
+                      min: function (t) {
+                        return this.x > t.x && (this.x = t.x), this.y > t.y && (this.y = t.y), this;
+                      },
+                      max: function (t) {
+                        return this.x < t.x && (this.x = t.x), this.y < t.y && (this.y = t.y), this;
+                      },
+                      clamp: function (t, e) {
+                        return (
+                          this.x < t.x ? (this.x = t.x) : this.x > e.x && (this.x = e.x),
+                          this.y < t.y ? (this.y = t.y) : this.y > e.y && (this.y = e.y),
+                          this
+                        );
+                      },
+                      clampScalar: function (t, e) {
+                        return (
+                          void 0 === St && ((St = new Jt.Vector2()), (kt = new Jt.Vector2())),
+                          St.set(t, t),
+                          kt.set(e, e),
+                          this.clamp(St, kt)
+                        );
+                      },
+                      floor: function () {
+                        return (this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this;
+                      },
+                      ceil: function () {
+                        return (this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this;
+                      },
+                      round: function () {
+                        return (this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this;
+                      },
+                      roundToZero: function () {
+                        return (
+                          (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)),
+                          (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)),
+                          this
+                        );
+                      },
+                      negate: function () {
+                        return (this.x = -this.x), (this.y = -this.y), this;
+                      },
+                      dot: function (t) {
+                        return this.x * t.x + this.y * t.y;
+                      },
+                      lengthSq: function () {
+                        return this.x * this.x + this.y * this.y;
+                      },
+                      length: function () {
+                        return Math.sqrt(this.x * this.x + this.y * this.y);
+                      },
+                      normalize: function () {
+                        return this.divideScalar(this.length());
+                      },
+                      distanceTo: function (t) {
+                        return Math.sqrt(this.distanceToSquared(t));
+                      },
+                      distanceToSquared: function (t) {
+                        var e = this.x - t.x,
+                          t = this.y - t.y;
+                        return e * e + t * t;
+                      },
+                      setLength: function (t) {
+                        var e = this.length();
+                        return 0 !== e && t !== e && this.multiplyScalar(t / e), this;
+                      },
+                      lerp: function (t, e) {
+                        return (this.x += (t.x - this.x) * e), (this.y += (t.y - this.y) * e), this;
+                      },
+                      lerpVectors: function (t, e, n) {
+                        return this.subVectors(e, t).multiplyScalar(n).add(t), this;
+                      },
+                      equals: function (t) {
+                        return t.x === this.x && t.y === this.y;
+                      },
+                      fromArray: function (t, e) {
+                        return (this.x = t[(e = void 0 === e ? 0 : e)]), (this.y = t[e + 1]), this;
+                      },
+                      toArray: function (t, e) {
+                        return (
+                          ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.x),
+                          (t[e + 1] = this.y),
+                          t
+                        );
+                      },
+                      fromAttribute: function (t, e, n) {
+                        return (
+                          (e = e * t.itemSize + (n = void 0 === n ? 0 : n)),
+                          (this.x = t.array[e]),
+                          (this.y = t.array[e + 1]),
+                          this
+                        );
+                      },
+                      clone: function () {
+                        return new Jt.Vector2(this.x, this.y);
+                      },
+                    }),
+                    (Jt.Vector3 = function (t, e, n) {
+                      (this.x = t || 0), (this.y = e || 0), (this.z = n || 0);
+                    }),
+                    (Jt.Vector3.prototype = {
+                      constructor: Jt.Vector3,
+                      set: function (t, e, n) {
+                        return (this.x = t), (this.y = e), (this.z = n), this;
+                      },
+                      setX: function (t) {
+                        return (this.x = t), this;
+                      },
+                      setY: function (t) {
+                        return (this.y = t), this;
+                      },
+                      setZ: function (t) {
+                        return (this.z = t), this;
+                      },
+                      setComponent: function (t, e) {
+                        switch (t) {
+                          case 0:
+                            this.x = e;
+                            break;
+                          case 1:
+                            this.y = e;
+                            break;
+                          case 2:
+                            this.z = e;
+                            break;
+                          default:
+                            throw new Error('index is out of range: ' + t);
+                        }
+                      },
+                      getComponent: function (t) {
+                        switch (t) {
+                          case 0:
+                            return this.x;
+                          case 1:
+                            return this.y;
+                          case 2:
+                            return this.z;
+                          default:
+                            throw new Error('index is out of range: ' + t);
+                        }
+                      },
+                      copy: function (t) {
+                        return (this.x = t.x), (this.y = t.y), (this.z = t.z), this;
+                      },
+                      add: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.',
+                            ),
+                            this.addVectors(t, e))
+                          : ((this.x += t.x), (this.y += t.y), (this.z += t.z), this);
+                      },
+                      addScalar: function (t) {
+                        return (this.x += t), (this.y += t), (this.z += t), this;
+                      },
+                      addVectors: function (t, e) {
+                        return (
+                          (this.x = t.x + e.x), (this.y = t.y + e.y), (this.z = t.z + e.z), this
+                        );
+                      },
+                      sub: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.',
+                            ),
+                            this.subVectors(t, e))
+                          : ((this.x -= t.x), (this.y -= t.y), (this.z -= t.z), this);
+                      },
+                      subScalar: function (t) {
+                        return (this.x -= t), (this.y -= t), (this.z -= t), this;
+                      },
+                      subVectors: function (t, e) {
+                        return (
+                          (this.x = t.x - e.x), (this.y = t.y - e.y), (this.z = t.z - e.z), this
+                        );
+                      },
+                      multiply: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.',
+                            ),
+                            this.multiplyVectors(t, e))
+                          : ((this.x *= t.x), (this.y *= t.y), (this.z *= t.z), this);
+                      },
+                      multiplyScalar: function (t) {
+                        return (this.x *= t), (this.y *= t), (this.z *= t), this;
+                      },
+                      multiplyVectors: function (t, e) {
+                        return (
+                          (this.x = t.x * e.x), (this.y = t.y * e.y), (this.z = t.z * e.z), this
+                        );
+                      },
+                      applyEuler: function (t) {
+                        return (
+                          t instanceof Jt.Euler == !1 &&
+                            Jt.error(
+                              'THREE.Vector3: .applyEuler() now expects a Euler rotation rather than a Vector3 and order.',
+                            ),
+                          void 0 === Yt && (Yt = new Jt.Quaternion()),
+                          this.applyQuaternion(Yt.setFromEuler(t)),
+                          this
+                        );
+                      },
+                      applyAxisAngle: function (t, e) {
+                        return (
+                          void 0 === Lt && (Lt = new Jt.Quaternion()),
+                          this.applyQuaternion(Lt.setFromAxisAngle(t, e)),
+                          this
+                        );
+                      },
+                      applyMatrix3: function (t) {
+                        var e = this.x,
+                          n = this.y,
+                          r = this.z,
+                          t = t.elements;
+                        return (
+                          (this.x = t[0] * e + t[3] * n + t[6] * r),
+                          (this.y = t[1] * e + t[4] * n + t[7] * r),
+                          (this.z = t[2] * e + t[5] * n + t[8] * r),
+                          this
+                        );
+                      },
+                      applyMatrix4: function (t) {
+                        var e = this.x,
+                          n = this.y,
+                          r = this.z,
+                          t = t.elements;
+                        return (
+                          (this.x = t[0] * e + t[4] * n + t[8] * r + t[12]),
+                          (this.y = t[1] * e + t[5] * n + t[9] * r + t[13]),
+                          (this.z = t[2] * e + t[6] * n + t[10] * r + t[14]),
+                          this
+                        );
+                      },
+                      applyProjection: function (t) {
+                        var e = this.x,
+                          n = this.y,
+                          r = this.z,
+                          t = t.elements,
+                          i = 1 / (t[3] * e + t[7] * n + t[11] * r + t[15]);
+                        return (
+                          (this.x = (t[0] * e + t[4] * n + t[8] * r + t[12]) * i),
+                          (this.y = (t[1] * e + t[5] * n + t[9] * r + t[13]) * i),
+                          (this.z = (t[2] * e + t[6] * n + t[10] * r + t[14]) * i),
+                          this
+                        );
+                      },
+                      applyQuaternion: function (t) {
+                        var e = this.x,
+                          n = this.y,
+                          r = this.z,
+                          i = t.x,
+                          o = t.y,
+                          a = t.z,
+                          t = t.w,
+                          s = t * e + o * r - a * n,
+                          l = t * n + a * e - i * r,
+                          u = t * r + i * n - o * e,
+                          e = -i * e - o * n - a * r;
+                        return (
+                          (this.x = s * t + e * -i + l * -a - u * -o),
+                          (this.y = l * t + e * -o + u * -i - s * -a),
+                          (this.z = u * t + e * -a + s * -o - l * -i),
+                          this
+                        );
+                      },
+                      project: function (t) {
+                        return (
+                          (Pt = void 0 === Pt ? new Jt.Matrix4() : Pt).multiplyMatrices(
+                            t.projectionMatrix,
+                            Pt.getInverse(t.matrixWorld),
+                          ),
+                          this.applyProjection(Pt)
+                        );
+                      },
+                      unproject: function (t) {
+                        return (
+                          (Nt = void 0 === Nt ? new Jt.Matrix4() : Nt).multiplyMatrices(
+                            t.matrixWorld,
+                            Nt.getInverse(t.projectionMatrix),
+                          ),
+                          this.applyProjection(Nt)
+                        );
+                      },
+                      transformDirection: function (t) {
+                        var e = this.x,
+                          n = this.y,
+                          r = this.z,
+                          t = t.elements;
+                        return (
+                          (this.x = t[0] * e + t[4] * n + t[8] * r),
+                          (this.y = t[1] * e + t[5] * n + t[9] * r),
+                          (this.z = t[2] * e + t[6] * n + t[10] * r),
+                          this.normalize(),
+                          this
+                        );
+                      },
+                      divide: function (t) {
+                        return (this.x /= t.x), (this.y /= t.y), (this.z /= t.z), this;
+                      },
+                      divideScalar: function (t) {
+                        return (
+                          0 !== t
+                            ? ((this.x *= t = 1 / t), (this.y *= t), (this.z *= t))
+                            : ((this.x = 0), (this.y = 0), (this.z = 0)),
+                          this
+                        );
+                      },
+                      min: function (t) {
+                        return (
+                          this.x > t.x && (this.x = t.x),
+                          this.y > t.y && (this.y = t.y),
+                          this.z > t.z && (this.z = t.z),
+                          this
+                        );
+                      },
+                      max: function (t) {
+                        return (
+                          this.x < t.x && (this.x = t.x),
+                          this.y < t.y && (this.y = t.y),
+                          this.z < t.z && (this.z = t.z),
+                          this
+                        );
+                      },
+                      clamp: function (t, e) {
+                        return (
+                          this.x < t.x ? (this.x = t.x) : this.x > e.x && (this.x = e.x),
+                          this.y < t.y ? (this.y = t.y) : this.y > e.y && (this.y = e.y),
+                          this.z < t.z ? (this.z = t.z) : this.z > e.z && (this.z = e.z),
+                          this
+                        );
+                      },
+                      clampScalar: function (t, e) {
+                        return (
+                          void 0 === Rt && ((Rt = new Jt.Vector3()), (Ut = new Jt.Vector3())),
+                          Rt.set(t, t, t),
+                          Ut.set(e, e, e),
+                          this.clamp(Rt, Ut)
+                        );
+                      },
+                      floor: function () {
+                        return (
+                          (this.x = Math.floor(this.x)),
+                          (this.y = Math.floor(this.y)),
+                          (this.z = Math.floor(this.z)),
+                          this
+                        );
+                      },
+                      ceil: function () {
+                        return (
+                          (this.x = Math.ceil(this.x)),
+                          (this.y = Math.ceil(this.y)),
+                          (this.z = Math.ceil(this.z)),
+                          this
+                        );
+                      },
+                      round: function () {
+                        return (
+                          (this.x = Math.round(this.x)),
+                          (this.y = Math.round(this.y)),
+                          (this.z = Math.round(this.z)),
+                          this
+                        );
+                      },
+                      roundToZero: function () {
+                        return (
+                          (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)),
+                          (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)),
+                          (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)),
+                          this
+                        );
+                      },
+                      negate: function () {
+                        return (this.x = -this.x), (this.y = -this.y), (this.z = -this.z), this;
+                      },
+                      dot: function (t) {
+                        return this.x * t.x + this.y * t.y + this.z * t.z;
+                      },
+                      lengthSq: function () {
+                        return this.x * this.x + this.y * this.y + this.z * this.z;
+                      },
+                      length: function () {
+                        return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
+                      },
+                      lengthManhattan: function () {
+                        return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);
+                      },
+                      normalize: function () {
+                        return this.divideScalar(this.length());
+                      },
+                      setLength: function (t) {
+                        var e = this.length();
+                        return 0 !== e && t !== e && this.multiplyScalar(t / e), this;
+                      },
+                      lerp: function (t, e) {
+                        return (
+                          (this.x += (t.x - this.x) * e),
+                          (this.y += (t.y - this.y) * e),
+                          (this.z += (t.z - this.z) * e),
+                          this
+                        );
+                      },
+                      lerpVectors: function (t, e, n) {
+                        return this.subVectors(e, t).multiplyScalar(n).add(t), this;
+                      },
+                      cross: function (t, e) {
+                        if (void 0 !== e)
+                          return (
+                            Jt.warn(
+                              'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.',
+                            ),
+                            this.crossVectors(t, e)
+                          );
+                        var e = this.x,
+                          n = this.y,
+                          r = this.z;
+                        return (
+                          (this.x = n * t.z - r * t.y),
+                          (this.y = r * t.x - e * t.z),
+                          (this.z = e * t.y - n * t.x),
+                          this
+                        );
+                      },
+                      crossVectors: function (t, e) {
+                        var n = t.x,
+                          r = t.y,
+                          t = t.z,
+                          i = e.x,
+                          o = e.y,
+                          e = e.z;
+                        return (
+                          (this.x = r * e - t * o),
+                          (this.y = t * i - n * e),
+                          (this.z = n * o - r * i),
+                          this
+                        );
+                      },
+                      projectOnVector: function (t) {
+                        return (
+                          (_t = void 0 === _t ? new Jt.Vector3() : _t).copy(t).normalize(),
+                          (Tt = this.dot(_t)),
+                          this.copy(_t).multiplyScalar(Tt)
+                        );
+                      },
+                      projectOnPlane: function (t) {
+                        return (
+                          (Qt = void 0 === Qt ? new Jt.Vector3() : Qt)
+                            .copy(this)
+                            .projectOnVector(t),
+                          this.sub(Qt)
+                        );
+                      },
+                      reflect: function (t) {
+                        return (
+                          void 0 === Ft && (Ft = new Jt.Vector3()),
+                          this.sub(Ft.copy(t).multiplyScalar(2 * this.dot(t)))
+                        );
+                      },
+                      angleTo: function (t) {
+                        t = this.dot(t) / (this.length() * t.length());
+                        return Math.acos(Jt.Math.clamp(t, -1, 1));
+                      },
+                      distanceTo: function (t) {
+                        return Math.sqrt(this.distanceToSquared(t));
+                      },
+                      distanceToSquared: function (t) {
+                        var e = this.x - t.x,
+                          n = this.y - t.y,
+                          t = this.z - t.z;
+                        return e * e + n * n + t * t;
+                      },
+                      setEulerFromRotationMatrix: function (t, e) {
+                        Jt.error(
+                          'THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.',
+                        );
+                      },
+                      setEulerFromQuaternion: function (t, e) {
+                        Jt.error(
+                          'THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.',
+                        );
+                      },
+                      getPositionFromMatrix: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().',
+                          ),
+                          this.setFromMatrixPosition(t)
+                        );
+                      },
+                      getScaleFromMatrix: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().',
+                          ),
+                          this.setFromMatrixScale(t)
+                        );
+                      },
+                      getColumnFromMatrix: function (t, e) {
+                        return (
+                          Jt.warn(
+                            'THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().',
+                          ),
+                          this.setFromMatrixColumn(t, e)
+                        );
+                      },
+                      setFromMatrixPosition: function (t) {
+                        return (
+                          (this.x = t.elements[12]),
+                          (this.y = t.elements[13]),
+                          (this.z = t.elements[14]),
+                          this
+                        );
+                      },
+                      setFromMatrixScale: function (t) {
+                        var e = this.set(t.elements[0], t.elements[1], t.elements[2]).length(),
+                          n = this.set(t.elements[4], t.elements[5], t.elements[6]).length(),
+                          t = this.set(t.elements[8], t.elements[9], t.elements[10]).length();
+                        return (this.x = e), (this.y = n), (this.z = t), this;
+                      },
+                      setFromMatrixColumn: function (t, e) {
+                        (t *= 4), (e = e.elements);
+                        return (this.x = e[t]), (this.y = e[1 + t]), (this.z = e[2 + t]), this;
+                      },
+                      equals: function (t) {
+                        return t.x === this.x && t.y === this.y && t.z === this.z;
+                      },
+                      fromArray: function (t, e) {
+                        return (
+                          (this.x = t[(e = void 0 === e ? 0 : e)]),
+                          (this.y = t[e + 1]),
+                          (this.z = t[e + 2]),
+                          this
+                        );
+                      },
+                      toArray: function (t, e) {
+                        return (
+                          ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.x),
+                          (t[e + 1] = this.y),
+                          (t[e + 2] = this.z),
+                          t
+                        );
+                      },
+                      fromAttribute: function (t, e, n) {
+                        return (
+                          (e = e * t.itemSize + (n = void 0 === n ? 0 : n)),
+                          (this.x = t.array[e]),
+                          (this.y = t.array[e + 1]),
+                          (this.z = t.array[e + 2]),
+                          this
+                        );
+                      },
+                      clone: function () {
+                        return new Jt.Vector3(this.x, this.y, this.z);
+                      },
+                    }),
+                    (Jt.Vector4 = function (t, e, n, r) {
+                      (this.x = t || 0),
+                        (this.y = e || 0),
+                        (this.z = n || 0),
+                        (this.w = void 0 !== r ? r : 1);
+                    }),
+                    (Jt.Vector4.prototype = {
+                      constructor: Jt.Vector4,
+                      set: function (t, e, n, r) {
+                        return (this.x = t), (this.y = e), (this.z = n), (this.w = r), this;
+                      },
+                      setX: function (t) {
+                        return (this.x = t), this;
+                      },
+                      setY: function (t) {
+                        return (this.y = t), this;
+                      },
+                      setZ: function (t) {
+                        return (this.z = t), this;
+                      },
+                      setW: function (t) {
+                        return (this.w = t), this;
+                      },
+                      setComponent: function (t, e) {
+                        switch (t) {
+                          case 0:
+                            this.x = e;
+                            break;
+                          case 1:
+                            this.y = e;
+                            break;
+                          case 2:
+                            this.z = e;
+                            break;
+                          case 3:
+                            this.w = e;
+                            break;
+                          default:
+                            throw new Error('index is out of range: ' + t);
+                        }
+                      },
+                      getComponent: function (t) {
+                        switch (t) {
+                          case 0:
+                            return this.x;
+                          case 1:
+                            return this.y;
+                          case 2:
+                            return this.z;
+                          case 3:
+                            return this.w;
+                          default:
+                            throw new Error('index is out of range: ' + t);
+                        }
+                      },
+                      copy: function (t) {
+                        return (
+                          (this.x = t.x),
+                          (this.y = t.y),
+                          (this.z = t.z),
+                          (this.w = void 0 !== t.w ? t.w : 1),
+                          this
+                        );
+                      },
+                      add: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.',
+                            ),
+                            this.addVectors(t, e))
+                          : ((this.x += t.x),
+                            (this.y += t.y),
+                            (this.z += t.z),
+                            (this.w += t.w),
+                            this);
+                      },
+                      addScalar: function (t) {
+                        return (this.x += t), (this.y += t), (this.z += t), (this.w += t), this;
+                      },
+                      addVectors: function (t, e) {
+                        return (
+                          (this.x = t.x + e.x),
+                          (this.y = t.y + e.y),
+                          (this.z = t.z + e.z),
+                          (this.w = t.w + e.w),
+                          this
+                        );
+                      },
+                      sub: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.',
+                            ),
+                            this.subVectors(t, e))
+                          : ((this.x -= t.x),
+                            (this.y -= t.y),
+                            (this.z -= t.z),
+                            (this.w -= t.w),
+                            this);
+                      },
+                      subScalar: function (t) {
+                        return (this.x -= t), (this.y -= t), (this.z -= t), (this.w -= t), this;
+                      },
+                      subVectors: function (t, e) {
+                        return (
+                          (this.x = t.x - e.x),
+                          (this.y = t.y - e.y),
+                          (this.z = t.z - e.z),
+                          (this.w = t.w - e.w),
+                          this
+                        );
+                      },
+                      multiplyScalar: function (t) {
+                        return (this.x *= t), (this.y *= t), (this.z *= t), (this.w *= t), this;
+                      },
+                      applyMatrix4: function (t) {
+                        var e = this.x,
+                          n = this.y,
+                          r = this.z,
+                          i = this.w,
+                          t = t.elements;
+                        return (
+                          (this.x = t[0] * e + t[4] * n + t[8] * r + t[12] * i),
+                          (this.y = t[1] * e + t[5] * n + t[9] * r + t[13] * i),
+                          (this.z = t[2] * e + t[6] * n + t[10] * r + t[14] * i),
+                          (this.w = t[3] * e + t[7] * n + t[11] * r + t[15] * i),
+                          this
+                        );
+                      },
+                      divideScalar: function (t) {
+                        return (
+                          0 !== t
+                            ? ((this.x *= t = 1 / t), (this.y *= t), (this.z *= t), (this.w *= t))
+                            : ((this.x = 0), (this.y = 0), (this.z = 0), (this.w = 1)),
+                          this
+                        );
+                      },
+                      setAxisAngleFromQuaternion: function (t) {
+                        this.w = 2 * Math.acos(t.w);
+                        var e = Math.sqrt(1 - t.w * t.w);
+                        return (
+                          e < 1e-4
+                            ? ((this.x = 1), (this.y = 0), (this.z = 0))
+                            : ((this.x = t.x / e), (this.y = t.y / e), (this.z = t.z / e)),
+                          this
+                        );
+                      },
+                      setAxisAngleFromRotationMatrix: function (t) {
+                        var e,
+                          n,
+                          r,
+                          t = t.elements,
+                          i = t[0],
+                          o = t[4],
+                          a = t[8],
+                          s = t[1],
+                          l = t[5],
+                          u = t[9],
+                          c = t[2],
+                          A = t[6],
+                          t = t[10];
+                        if (
+                          Math.abs(o - s) < 0.01 &&
+                          Math.abs(a - c) < 0.01 &&
+                          Math.abs(u - A) < 0.01
+                        ) {
+                          if (
+                            Math.abs(o + s) < 0.1 &&
+                            Math.abs(a + c) < 0.1 &&
+                            Math.abs(u + A) < 0.1 &&
+                            Math.abs(i + l + t - 3) < 0.1
+                          )
+                            return this.set(1, 0, 0, 0), this;
+                          var h = Math.PI,
+                            p = (i + 1) / 2,
+                            d = (l + 1) / 2,
+                            f = (t + 1) / 2,
+                            g = (o + s) / 4,
+                            m = (a + c) / 4,
+                            v = (u + A) / 4;
+                          return (
+                            d < p && f < p
+                              ? (r =
+                                  p < 0.01
+                                    ? ((e = 0), (n = 0.707106781))
+                                    : ((n = g / (e = Math.sqrt(p))), m / e))
+                              : f < d
+                                ? (r =
+                                    d < 0.01
+                                      ? ((n = 0), (e = 0.707106781))
+                                      : ((e = g / (n = Math.sqrt(d))), v / n))
+                                : f < 0.01
+                                  ? ((n = e = 0.707106781), (r = 0))
+                                  : ((e = m / (r = Math.sqrt(f))), (n = v / r)),
+                            this.set(e, n, r, h),
+                            this
+                          );
+                        }
+                        p = Math.sqrt((A - u) * (A - u) + (a - c) * (a - c) + (s - o) * (s - o));
+                        return (
+                          Math.abs(p) < 0.001 && (p = 1),
+                          (this.x = (A - u) / p),
+                          (this.y = (a - c) / p),
+                          (this.z = (s - o) / p),
+                          (this.w = Math.acos((i + l + t - 1) / 2)),
+                          this
+                        );
+                      },
+                      min: function (t) {
+                        return (
+                          this.x > t.x && (this.x = t.x),
+                          this.y > t.y && (this.y = t.y),
+                          this.z > t.z && (this.z = t.z),
+                          this.w > t.w && (this.w = t.w),
+                          this
+                        );
+                      },
+                      max: function (t) {
+                        return (
+                          this.x < t.x && (this.x = t.x),
+                          this.y < t.y && (this.y = t.y),
+                          this.z < t.z && (this.z = t.z),
+                          this.w < t.w && (this.w = t.w),
+                          this
+                        );
+                      },
+                      clamp: function (t, e) {
+                        return (
+                          this.x < t.x ? (this.x = t.x) : this.x > e.x && (this.x = e.x),
+                          this.y < t.y ? (this.y = t.y) : this.y > e.y && (this.y = e.y),
+                          this.z < t.z ? (this.z = t.z) : this.z > e.z && (this.z = e.z),
+                          this.w < t.w ? (this.w = t.w) : this.w > e.w && (this.w = e.w),
+                          this
+                        );
+                      },
+                      clampScalar: function (t, e) {
+                        return (
+                          void 0 === Ot && ((Ot = new Jt.Vector4()), (Gt = new Jt.Vector4())),
+                          Ot.set(t, t, t, t),
+                          Gt.set(e, e, e, e),
+                          this.clamp(Ot, Gt)
+                        );
+                      },
+                      floor: function () {
+                        return (
+                          (this.x = Math.floor(this.x)),
+                          (this.y = Math.floor(this.y)),
+                          (this.z = Math.floor(this.z)),
+                          (this.w = Math.floor(this.w)),
+                          this
+                        );
+                      },
+                      ceil: function () {
+                        return (
+                          (this.x = Math.ceil(this.x)),
+                          (this.y = Math.ceil(this.y)),
+                          (this.z = Math.ceil(this.z)),
+                          (this.w = Math.ceil(this.w)),
+                          this
+                        );
+                      },
+                      round: function () {
+                        return (
+                          (this.x = Math.round(this.x)),
+                          (this.y = Math.round(this.y)),
+                          (this.z = Math.round(this.z)),
+                          (this.w = Math.round(this.w)),
+                          this
+                        );
+                      },
+                      roundToZero: function () {
+                        return (
+                          (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)),
+                          (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)),
+                          (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)),
+                          (this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w)),
+                          this
+                        );
+                      },
+                      negate: function () {
+                        return (
+                          (this.x = -this.x),
+                          (this.y = -this.y),
+                          (this.z = -this.z),
+                          (this.w = -this.w),
+                          this
+                        );
+                      },
+                      dot: function (t) {
+                        return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w;
+                      },
+                      lengthSq: function () {
+                        return (
+                          this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w
+                        );
+                      },
+                      length: function () {
+                        return Math.sqrt(
+                          this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w,
+                        );
+                      },
+                      lengthManhattan: function () {
+                        return (
+                          Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w)
+                        );
+                      },
+                      normalize: function () {
+                        return this.divideScalar(this.length());
+                      },
+                      setLength: function (t) {
+                        var e = this.length();
+                        return 0 !== e && t !== e && this.multiplyScalar(t / e), this;
+                      },
+                      lerp: function (t, e) {
+                        return (
+                          (this.x += (t.x - this.x) * e),
+                          (this.y += (t.y - this.y) * e),
+                          (this.z += (t.z - this.z) * e),
+                          (this.w += (t.w - this.w) * e),
+                          this
+                        );
+                      },
+                      lerpVectors: function (t, e, n) {
+                        return this.subVectors(e, t).multiplyScalar(n).add(t), this;
+                      },
+                      equals: function (t) {
+                        return t.x === this.x && t.y === this.y && t.z === this.z && t.w === this.w;
+                      },
+                      fromArray: function (t, e) {
+                        return (
+                          (this.x = t[(e = void 0 === e ? 0 : e)]),
+                          (this.y = t[e + 1]),
+                          (this.z = t[e + 2]),
+                          (this.w = t[e + 3]),
+                          this
+                        );
+                      },
+                      toArray: function (t, e) {
+                        return (
+                          ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.x),
+                          (t[e + 1] = this.y),
+                          (t[e + 2] = this.z),
+                          (t[e + 3] = this.w),
+                          t
+                        );
+                      },
+                      fromAttribute: function (t, e, n) {
+                        return (
+                          (e = e * t.itemSize + (n = void 0 === n ? 0 : n)),
+                          (this.x = t.array[e]),
+                          (this.y = t.array[e + 1]),
+                          (this.z = t.array[e + 2]),
+                          (this.w = t.array[e + 3]),
+                          this
+                        );
+                      },
+                      clone: function () {
+                        return new Jt.Vector4(this.x, this.y, this.z, this.w);
+                      },
+                    }),
+                    (Jt.Euler = function (t, e, n, r) {
+                      (this._x = t || 0),
+                        (this._y = e || 0),
+                        (this._z = n || 0),
+                        (this._order = r || Jt.Euler.DefaultOrder);
+                    }),
+                    (Jt.Euler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX']),
+                    (Jt.Euler.DefaultOrder = 'XYZ'),
+                    (Jt.Euler.prototype = {
+                      constructor: Jt.Euler,
+                      _x: 0,
+                      _y: 0,
+                      _z: 0,
+                      _order: Jt.Euler.DefaultOrder,
+                      get x() {
+                        return this._x;
+                      },
+                      set x(t) {
+                        (this._x = t), this.onChangeCallback();
+                      },
+                      get y() {
+                        return this._y;
+                      },
+                      set y(t) {
+                        (this._y = t), this.onChangeCallback();
+                      },
+                      get z() {
+                        return this._z;
+                      },
+                      set z(t) {
+                        (this._z = t), this.onChangeCallback();
+                      },
+                      get order() {
+                        return this._order;
+                      },
+                      set order(t) {
+                        (this._order = t), this.onChangeCallback();
+                      },
+                      set: function (t, e, n, r) {
+                        return (
+                          (this._x = t),
+                          (this._y = e),
+                          (this._z = n),
+                          (this._order = r || this._order),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      copy: function (t) {
+                        return (
+                          (this._x = t._x),
+                          (this._y = t._y),
+                          (this._z = t._z),
+                          (this._order = t._order),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      setFromRotationMatrix: function (t, e, n) {
+                        var r = Jt.Math.clamp,
+                          t = t.elements,
+                          i = t[0],
+                          o = t[4],
+                          a = t[8],
+                          s = t[1],
+                          l = t[5],
+                          u = t[9],
+                          c = t[2],
+                          A = t[6],
+                          t = t[10];
+                        return (
+                          'XYZ' === (e = e || this._order)
+                            ? ((this._y = Math.asin(r(a, -1, 1))),
+                              Math.abs(a) < 0.99999
+                                ? ((this._x = Math.atan2(-u, t)), (this._z = Math.atan2(-o, i)))
+                                : ((this._x = Math.atan2(A, l)), (this._z = 0)))
+                            : 'YXZ' === e
+                              ? ((this._x = Math.asin(-r(u, -1, 1))),
+                                Math.abs(u) < 0.99999
+                                  ? ((this._y = Math.atan2(a, t)), (this._z = Math.atan2(s, l)))
+                                  : ((this._y = Math.atan2(-c, i)), (this._z = 0)))
+                              : 'ZXY' === e
+                                ? ((this._x = Math.asin(r(A, -1, 1))),
+                                  Math.abs(A) < 0.99999
+                                    ? ((this._y = Math.atan2(-c, t)), (this._z = Math.atan2(-o, l)))
+                                    : ((this._y = 0), (this._z = Math.atan2(s, i))))
+                                : 'ZYX' === e
+                                  ? ((this._y = Math.asin(-r(c, -1, 1))),
+                                    Math.abs(c) < 0.99999
+                                      ? ((this._x = Math.atan2(A, t)), (this._z = Math.atan2(s, i)))
+                                      : ((this._x = 0), (this._z = Math.atan2(-o, l))))
+                                  : 'YZX' === e
+                                    ? ((this._z = Math.asin(r(s, -1, 1))),
+                                      Math.abs(s) < 0.99999
+                                        ? ((this._x = Math.atan2(-u, l)),
+                                          (this._y = Math.atan2(-c, i)))
+                                        : ((this._x = 0), (this._y = Math.atan2(a, t))))
+                                    : 'XZY' === e
+                                      ? ((this._z = Math.asin(-r(o, -1, 1))),
+                                        Math.abs(o) < 0.99999
+                                          ? ((this._x = Math.atan2(A, l)),
+                                            (this._y = Math.atan2(a, i)))
+                                          : ((this._x = Math.atan2(-u, t)), (this._y = 0)))
+                                      : Jt.warn(
+                                          'THREE.Euler: .setFromRotationMatrix() given unsupported order: ' +
+                                            e,
+                                        ),
+                          (this._order = e),
+                          !1 !== n && this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      setFromQuaternion: function (t, e, n) {
+                        return (
+                          (Ht = void 0 === Ht ? new Jt.Matrix4() : Ht).makeRotationFromQuaternion(
+                            t,
+                          ),
+                          this.setFromRotationMatrix(Ht, e, n),
+                          this
+                        );
+                      },
+                      setFromVector3: function (t, e) {
+                        return this.set(t.x, t.y, t.z, e || this._order);
+                      },
+                      reorder:
+                        ((zt = new Jt.Quaternion()),
+                        function (t) {
+                          zt.setFromEuler(this), this.setFromQuaternion(zt, t);
+                        }),
+                      equals: function (t) {
+                        return (
+                          t._x === this._x &&
+                          t._y === this._y &&
+                          t._z === this._z &&
+                          t._order === this._order
+                        );
+                      },
+                      fromArray: function (t) {
+                        return (
+                          (this._x = t[0]),
+                          (this._y = t[1]),
+                          (this._z = t[2]),
+                          void 0 !== t[3] && (this._order = t[3]),
+                          this.onChangeCallback(),
+                          this
+                        );
+                      },
+                      toArray: function (t, e) {
+                        return (
+                          ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this._x),
+                          (t[e + 1] = this._y),
+                          (t[e + 2] = this._z),
+                          (t[e + 3] = this._order),
+                          t
+                        );
+                      },
+                      toVector3: function (t) {
+                        return t
+                          ? t.set(this._x, this._y, this._z)
+                          : new Jt.Vector3(this._x, this._y, this._z);
+                      },
+                      onChange: function (t) {
+                        return (this.onChangeCallback = t), this;
+                      },
+                      onChangeCallback: function () {},
+                      clone: function () {
+                        return new Jt.Euler(this._x, this._y, this._z, this._order);
+                      },
+                    }),
+                    (Jt.Line3 = function (t, e) {
+                      (this.start = void 0 !== t ? t : new Jt.Vector3()),
+                        (this.end = void 0 !== e ? e : new Jt.Vector3());
+                    }),
+                    (Jt.Line3.prototype = {
+                      constructor: Jt.Line3,
+                      set: function (t, e) {
+                        return this.start.copy(t), this.end.copy(e), this;
+                      },
+                      copy: function (t) {
+                        return this.start.copy(t.start), this.end.copy(t.end), this;
+                      },
+                      center: function (t) {
+                        return (t || new Jt.Vector3())
+                          .addVectors(this.start, this.end)
+                          .multiplyScalar(0.5);
+                      },
+                      delta: function (t) {
+                        return (t || new Jt.Vector3()).subVectors(this.end, this.start);
+                      },
+                      distanceSq: function () {
+                        return this.start.distanceToSquared(this.end);
+                      },
+                      distance: function () {
+                        return this.start.distanceTo(this.end);
+                      },
+                      at: function (t, e) {
+                        e = e || new Jt.Vector3();
+                        return this.delta(e).multiplyScalar(t).add(this.start);
+                      },
+                      closestPointToPointParameter:
+                        ((jt = new Jt.Vector3()),
+                        (Vt = new Jt.Vector3()),
+                        function (t, e) {
+                          jt.subVectors(t, this.start), Vt.subVectors(this.end, this.start);
+                          (t = Vt.dot(Vt)), (t = Vt.dot(jt) / t);
+                          return (t = e ? Jt.Math.clamp(t, 0, 1) : t);
+                        }),
+                      closestPointToPoint: function (t, e, n) {
+                        (t = this.closestPointToPointParameter(t, e)), (e = n || new Jt.Vector3());
+                        return this.delta(e).multiplyScalar(t).add(this.start);
+                      },
+                      applyMatrix4: function (t) {
+                        return this.start.applyMatrix4(t), this.end.applyMatrix4(t), this;
+                      },
+                      equals: function (t) {
+                        return t.start.equals(this.start) && t.end.equals(this.end);
+                      },
+                      clone: function () {
+                        return new Jt.Line3().copy(this);
+                      },
+                    }),
+                    (Jt.Box2 = function (t, e) {
+                      (this.min = void 0 !== t ? t : new Jt.Vector2(1 / 0, 1 / 0)),
+                        (this.max = void 0 !== e ? e : new Jt.Vector2(-1 / 0, -1 / 0));
+                    }),
+                    (Jt.Box2.prototype = {
+                      constructor: Jt.Box2,
+                      set: function (t, e) {
+                        return this.min.copy(t), this.max.copy(e), this;
+                      },
+                      setFromPoints: function (t) {
+                        this.makeEmpty();
+                        for (var e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]);
+                        return this;
+                      },
+                      setFromCenterAndSize:
+                        ((Wt = new Jt.Vector2()),
+                        function (t, e) {
+                          e = Wt.copy(e).multiplyScalar(0.5);
+                          return this.min.copy(t).sub(e), this.max.copy(t).add(e), this;
+                        }),
+                      copy: function (t) {
+                        return this.min.copy(t.min), this.max.copy(t.max), this;
+                      },
+                      makeEmpty: function () {
+                        return (
+                          (this.min.x = this.min.y = 1 / 0),
+                          (this.max.x = this.max.y = -1 / 0),
+                          this
+                        );
+                      },
+                      empty: function () {
+                        return this.max.x < this.min.x || this.max.y < this.min.y;
+                      },
+                      center: function (t) {
+                        return (t || new Jt.Vector2())
+                          .addVectors(this.min, this.max)
+                          .multiplyScalar(0.5);
+                      },
+                      size: function (t) {
+                        return (t || new Jt.Vector2()).subVectors(this.max, this.min);
+                      },
+                      expandByPoint: function (t) {
+                        return this.min.min(t), this.max.max(t), this;
+                      },
+                      expandByVector: function (t) {
+                        return this.min.sub(t), this.max.add(t), this;
+                      },
+                      expandByScalar: function (t) {
+                        return this.min.addScalar(-t), this.max.addScalar(t), this;
+                      },
+                      containsPoint: function (t) {
+                        return !(
+                          t.x < this.min.x ||
+                          t.x > this.max.x ||
+                          t.y < this.min.y ||
+                          t.y > this.max.y
+                        );
+                      },
+                      containsBox: function (t) {
+                        return (
+                          this.min.x <= t.min.x &&
+                          t.max.x <= this.max.x &&
+                          this.min.y <= t.min.y &&
+                          t.max.y <= this.max.y
+                        );
+                      },
+                      getParameter: function (t, e) {
+                        return (e || new Jt.Vector2()).set(
+                          (t.x - this.min.x) / (this.max.x - this.min.x),
+                          (t.y - this.min.y) / (this.max.y - this.min.y),
+                        );
+                      },
+                      isIntersectionBox: function (t) {
+                        return !(
+                          t.max.x < this.min.x ||
+                          t.min.x > this.max.x ||
+                          t.max.y < this.min.y ||
+                          t.min.y > this.max.y
+                        );
+                      },
+                      clampPoint: function (t, e) {
+                        return (e || new Jt.Vector2()).copy(t).clamp(this.min, this.max);
+                      },
+                      distanceToPoint:
+                        ((qt = new Jt.Vector2()),
+                        function (t) {
+                          return qt.copy(t).clamp(this.min, this.max).sub(t).length();
+                        }),
+                      intersect: function (t) {
+                        return this.min.max(t.min), this.max.min(t.max), this;
+                      },
+                      union: function (t) {
+                        return this.min.min(t.min), this.max.max(t.max), this;
+                      },
+                      translate: function (t) {
+                        return this.min.add(t), this.max.add(t), this;
+                      },
+                      equals: function (t) {
+                        return t.min.equals(this.min) && t.max.equals(this.max);
+                      },
+                      clone: function () {
+                        return new Jt.Box2().copy(this);
+                      },
+                    }),
+                    (Jt.Box3 = function (t, e) {
+                      (this.min = void 0 !== t ? t : new Jt.Vector3(1 / 0, 1 / 0, 1 / 0)),
+                        (this.max = void 0 !== e ? e : new Jt.Vector3(-1 / 0, -1 / 0, -1 / 0));
+                    }),
+                    (Jt.Box3.prototype = {
+                      constructor: Jt.Box3,
+                      set: function (t, e) {
+                        return this.min.copy(t), this.max.copy(e), this;
+                      },
+                      setFromPoints: function (t) {
+                        this.makeEmpty();
+                        for (var e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]);
+                        return this;
+                      },
+                      setFromCenterAndSize:
+                        ((te = new Jt.Vector3()),
+                        function (t, e) {
+                          e = te.copy(e).multiplyScalar(0.5);
+                          return this.min.copy(t).sub(e), this.max.copy(t).add(e), this;
+                        }),
+                      setFromObject:
+                        (($t = new Jt.Vector3()),
+                        function (t) {
+                          var a = this;
+                          return (
+                            t.updateMatrixWorld(!0),
+                            this.makeEmpty(),
+                            t.traverse(function (t) {
+                              var e = t.geometry;
+                              if (void 0 !== e)
+                                if (e instanceof Jt.Geometry)
+                                  for (var n = e.vertices, r = 0, i = n.length; r < i; r++)
+                                    $t.copy(n[r]),
+                                      $t.applyMatrix4(t.matrixWorld),
+                                      a.expandByPoint($t);
+                                else if (
+                                  e instanceof Jt.BufferGeometry &&
+                                  void 0 !== e.attributes.position
+                                )
+                                  for (
+                                    var o = e.attributes.position.array, r = 0, i = o.length;
+                                    r < i;
+                                    r += 3
+                                  )
+                                    $t.set(o[r], o[r + 1], o[r + 2]),
+                                      $t.applyMatrix4(t.matrixWorld),
+                                      a.expandByPoint($t);
+                            }),
+                            this
+                          );
+                        }),
+                      copy: function (t) {
+                        return this.min.copy(t.min), this.max.copy(t.max), this;
+                      },
+                      makeEmpty: function () {
+                        return (
+                          (this.min.x = this.min.y = this.min.z = 1 / 0),
+                          (this.max.x = this.max.y = this.max.z = -1 / 0),
+                          this
+                        );
+                      },
+                      empty: function () {
+                        return (
+                          this.max.x < this.min.x ||
+                          this.max.y < this.min.y ||
+                          this.max.z < this.min.z
+                        );
+                      },
+                      center: function (t) {
+                        return (t || new Jt.Vector3())
+                          .addVectors(this.min, this.max)
+                          .multiplyScalar(0.5);
+                      },
+                      size: function (t) {
+                        return (t || new Jt.Vector3()).subVectors(this.max, this.min);
+                      },
+                      expandByPoint: function (t) {
+                        return this.min.min(t), this.max.max(t), this;
+                      },
+                      expandByVector: function (t) {
+                        return this.min.sub(t), this.max.add(t), this;
+                      },
+                      expandByScalar: function (t) {
+                        return this.min.addScalar(-t), this.max.addScalar(t), this;
+                      },
+                      containsPoint: function (t) {
+                        return !(
+                          t.x < this.min.x ||
+                          t.x > this.max.x ||
+                          t.y < this.min.y ||
+                          t.y > this.max.y ||
+                          t.z < this.min.z ||
+                          t.z > this.max.z
+                        );
+                      },
+                      containsBox: function (t) {
+                        return (
+                          this.min.x <= t.min.x &&
+                          t.max.x <= this.max.x &&
+                          this.min.y <= t.min.y &&
+                          t.max.y <= this.max.y &&
+                          this.min.z <= t.min.z &&
+                          t.max.z <= this.max.z
+                        );
+                      },
+                      getParameter: function (t, e) {
+                        return (e || new Jt.Vector3()).set(
+                          (t.x - this.min.x) / (this.max.x - this.min.x),
+                          (t.y - this.min.y) / (this.max.y - this.min.y),
+                          (t.z - this.min.z) / (this.max.z - this.min.z),
+                        );
+                      },
+                      isIntersectionBox: function (t) {
+                        return !(
+                          t.max.x < this.min.x ||
+                          t.min.x > this.max.x ||
+                          t.max.y < this.min.y ||
+                          t.min.y > this.max.y ||
+                          t.max.z < this.min.z ||
+                          t.min.z > this.max.z
+                        );
+                      },
+                      clampPoint: function (t, e) {
+                        return (e || new Jt.Vector3()).copy(t).clamp(this.min, this.max);
+                      },
+                      distanceToPoint:
+                        ((Xt = new Jt.Vector3()),
+                        function (t) {
+                          return Xt.copy(t).clamp(this.min, this.max).sub(t).length();
+                        }),
+                      getBoundingSphere:
+                        ((Zt = new Jt.Vector3()),
+                        function (t) {
+                          t = t || new Jt.Sphere();
+                          return (
+                            (t.center = this.center()), (t.radius = 0.5 * this.size(Zt).length()), t
+                          );
+                        }),
+                      intersect: function (t) {
+                        return this.min.max(t.min), this.max.min(t.max), this;
+                      },
+                      union: function (t) {
+                        return this.min.min(t.min), this.max.max(t.max), this;
+                      },
+                      applyMatrix4:
+                        ((Kt = [
+                          new Jt.Vector3(),
+                          new Jt.Vector3(),
+                          new Jt.Vector3(),
+                          new Jt.Vector3(),
+                          new Jt.Vector3(),
+                          new Jt.Vector3(),
+                          new Jt.Vector3(),
+                          new Jt.Vector3(),
+                        ]),
+                        function (t) {
+                          return (
+                            Kt[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(t),
+                            Kt[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(t),
+                            Kt[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(t),
+                            Kt[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(t),
+                            Kt[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(t),
+                            Kt[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(t),
+                            Kt[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(t),
+                            Kt[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(t),
+                            this.makeEmpty(),
+                            this.setFromPoints(Kt),
+                            this
+                          );
+                        }),
+                      translate: function (t) {
+                        return this.min.add(t), this.max.add(t), this;
+                      },
+                      equals: function (t) {
+                        return t.min.equals(this.min) && t.max.equals(this.max);
+                      },
+                      clone: function () {
+                        return new Jt.Box3().copy(this);
+                      },
+                    }),
+                    (Jt.Matrix3 = function () {
+                      (this.elements = new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1])),
+                        0 < arguments.length &&
+                          Jt.error(
+                            'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.',
+                          );
+                    }),
+                    (Jt.Matrix3.prototype = {
+                      constructor: Jt.Matrix3,
+                      set: function (t, e, n, r, i, o, a, s, l) {
+                        var u = this.elements;
+                        return (
+                          (u[0] = t),
+                          (u[3] = e),
+                          (u[6] = n),
+                          (u[1] = r),
+                          (u[4] = i),
+                          (u[7] = o),
+                          (u[2] = a),
+                          (u[5] = s),
+                          (u[8] = l),
+                          this
+                        );
+                      },
+                      identity: function () {
+                        return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this;
+                      },
+                      copy: function (t) {
+                        t = t.elements;
+                        return this.set(t[0], t[3], t[6], t[1], t[4], t[7], t[2], t[5], t[8]), this;
+                      },
+                      multiplyVector3: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.',
+                          ),
+                          t.applyMatrix3(this)
+                        );
+                      },
+                      multiplyVector3Array: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.',
+                          ),
+                          this.applyToVector3Array(t)
+                        );
+                      },
+                      applyToVector3Array:
+                        ((ee = new Jt.Vector3()),
+                        function (t, e, n) {
+                          void 0 === n && (n = t.length);
+                          for (var r = 0, i = (e = void 0 === e ? 0 : e); r < n; r += 3, i += 3)
+                            (ee.x = t[i]),
+                              (ee.y = t[i + 1]),
+                              (ee.z = t[i + 2]),
+                              ee.applyMatrix3(this),
+                              (t[i] = ee.x),
+                              (t[i + 1] = ee.y),
+                              (t[i + 2] = ee.z);
+                          return t;
+                        }),
+                      multiplyScalar: function (t) {
+                        var e = this.elements;
+                        return (
+                          (e[0] *= t),
+                          (e[3] *= t),
+                          (e[6] *= t),
+                          (e[1] *= t),
+                          (e[4] *= t),
+                          (e[7] *= t),
+                          (e[2] *= t),
+                          (e[5] *= t),
+                          (e[8] *= t),
+                          this
+                        );
+                      },
+                      determinant: function () {
+                        var t = this.elements,
+                          e = t[0],
+                          n = t[1],
+                          r = t[2],
+                          i = t[3],
+                          o = t[4],
+                          a = t[5],
+                          s = t[6],
+                          l = t[7],
+                          t = t[8];
+                        return (
+                          e * o * t - e * a * l - n * i * t + n * a * s + r * i * l - r * o * s
+                        );
+                      },
+                      getInverse: function (t, e) {
+                        var t = t.elements,
+                          n = this.elements,
+                          t =
+                            ((n[0] = t[10] * t[5] - t[6] * t[9]),
+                            (n[1] = -t[10] * t[1] + t[2] * t[9]),
+                            (n[2] = t[6] * t[1] - t[2] * t[5]),
+                            (n[3] = -t[10] * t[4] + t[6] * t[8]),
+                            (n[4] = t[10] * t[0] - t[2] * t[8]),
+                            (n[5] = -t[6] * t[0] + t[2] * t[4]),
+                            (n[6] = t[9] * t[4] - t[5] * t[8]),
+                            (n[7] = -t[9] * t[0] + t[1] * t[8]),
+                            (n[8] = t[5] * t[0] - t[1] * t[4]),
+                            t[0] * n[0] + t[1] * n[3] + t[2] * n[6]);
+                        if (0 != t) return this.multiplyScalar(1 / t), this;
+                        n = "Matrix3.getInverse(): can't invert matrix, determinant is 0";
+                        if (e) throw new Error(n);
+                        return Jt.warn(n), this.identity(), this;
+                      },
+                      transpose: function () {
+                        var t = this.elements,
+                          e = t[1];
+                        return (
+                          (t[1] = t[3]),
+                          (t[3] = e),
+                          (e = t[2]),
+                          (t[2] = t[6]),
+                          (t[6] = e),
+                          (e = t[5]),
+                          (t[5] = t[7]),
+                          (t[7] = e),
+                          this
+                        );
+                      },
+                      flattenToArrayOffset: function (t, e) {
+                        var n = this.elements;
+                        return (
+                          (t[e] = n[0]),
+                          (t[e + 1] = n[1]),
+                          (t[e + 2] = n[2]),
+                          (t[e + 3] = n[3]),
+                          (t[e + 4] = n[4]),
+                          (t[e + 5] = n[5]),
+                          (t[e + 6] = n[6]),
+                          (t[e + 7] = n[7]),
+                          (t[e + 8] = n[8]),
+                          t
+                        );
+                      },
+                      getNormalMatrix: function (t) {
+                        return this.getInverse(t).transpose(), this;
+                      },
+                      transposeIntoArray: function (t) {
+                        var e = this.elements;
+                        return (
+                          (t[0] = e[0]),
+                          (t[1] = e[3]),
+                          (t[2] = e[6]),
+                          (t[3] = e[1]),
+                          (t[4] = e[4]),
+                          (t[5] = e[7]),
+                          (t[6] = e[2]),
+                          (t[7] = e[5]),
+                          (t[8] = e[8]),
+                          this
+                        );
+                      },
+                      fromArray: function (t) {
+                        return this.elements.set(t), this;
+                      },
+                      toArray: function () {
+                        var t = this.elements;
+                        return [t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8]];
+                      },
+                      clone: function () {
+                        return new Jt.Matrix3().fromArray(this.elements);
+                      },
+                    }),
+                    (Jt.Matrix4 = function () {
+                      (this.elements = new Float32Array([
+                        1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
+                      ])),
+                        0 < arguments.length &&
+                          Jt.error(
+                            'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.',
+                          );
+                    }),
+                    (Jt.Matrix4.prototype = {
+                      constructor: Jt.Matrix4,
+                      set: function (t, e, n, r, i, o, a, s, l, u, c, A, h, p, d, f) {
+                        var g = this.elements;
+                        return (
+                          (g[0] = t),
+                          (g[4] = e),
+                          (g[8] = n),
+                          (g[12] = r),
+                          (g[1] = i),
+                          (g[5] = o),
+                          (g[9] = a),
+                          (g[13] = s),
+                          (g[2] = l),
+                          (g[6] = u),
+                          (g[10] = c),
+                          (g[14] = A),
+                          (g[3] = h),
+                          (g[7] = p),
+                          (g[11] = d),
+                          (g[15] = f),
+                          this
+                        );
+                      },
+                      identity: function () {
+                        return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this;
+                      },
+                      copy: function (t) {
+                        return this.elements.set(t.elements), this;
+                      },
+                      extractPosition: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().',
+                          ),
+                          this.copyPosition(t)
+                        );
+                      },
+                      copyPosition: function (t) {
+                        var e = this.elements,
+                          t = t.elements;
+                        return (e[12] = t[12]), (e[13] = t[13]), (e[14] = t[14]), this;
+                      },
+                      extractBasis: function (t, e, n) {
+                        var r = this.elements;
+                        return (
+                          t.set(r[0], r[1], r[2]),
+                          e.set(r[4], r[5], r[6]),
+                          n.set(r[8], r[9], r[10]),
+                          this
+                        );
+                      },
+                      makeBasis: function (t, e, n) {
+                        return (
+                          this.set(
+                            t.x,
+                            e.x,
+                            n.x,
+                            0,
+                            t.y,
+                            e.y,
+                            n.y,
+                            0,
+                            t.z,
+                            e.z,
+                            n.z,
+                            0,
+                            0,
+                            0,
+                            0,
+                            1,
+                          ),
+                          this
+                        );
+                      },
+                      extractRotation:
+                        ((ue = new Jt.Vector3()),
+                        function (t) {
+                          var e = this.elements,
+                            t = t.elements,
+                            n = 1 / ue.set(t[0], t[1], t[2]).length(),
+                            r = 1 / ue.set(t[4], t[5], t[6]).length(),
+                            i = 1 / ue.set(t[8], t[9], t[10]).length();
+                          return (
+                            (e[0] = t[0] * n),
+                            (e[1] = t[1] * n),
+                            (e[2] = t[2] * n),
+                            (e[4] = t[4] * r),
+                            (e[5] = t[5] * r),
+                            (e[6] = t[6] * r),
+                            (e[8] = t[8] * i),
+                            (e[9] = t[9] * i),
+                            (e[10] = t[10] * i),
+                            this
+                          );
+                        }),
+                      makeRotationFromEuler: function (t) {
+                        t instanceof Jt.Euler == !1 &&
+                          Jt.error(
+                            'THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.',
+                          );
+                        var e,
+                          n,
+                          r,
+                          i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u,
+                          c,
+                          A,
+                          h,
+                          p = this.elements,
+                          d = t.x,
+                          f = t.y,
+                          g = t.z,
+                          m = Math.cos(d),
+                          d = Math.sin(d),
+                          v = Math.cos(f),
+                          f = Math.sin(f),
+                          b = Math.cos(g),
+                          g = Math.sin(g);
+                        return (
+                          'XYZ' === t.order
+                            ? ((o = m * b),
+                              (a = m * g),
+                              (s = d * b),
+                              (l = d * g),
+                              (p[0] = v * b),
+                              (p[4] = -v * g),
+                              (p[8] = f),
+                              (p[1] = a + s * f),
+                              (p[5] = o - l * f),
+                              (p[9] = -d * v),
+                              (p[2] = l - o * f),
+                              (p[6] = s + a * f),
+                              (p[10] = m * v))
+                            : 'YXZ' === t.order
+                              ? ((n = v * g),
+                                (r = f * b),
+                                (p[0] = (e = v * b) + (i = f * g) * d),
+                                (p[4] = r * d - n),
+                                (p[8] = m * f),
+                                (p[1] = m * g),
+                                (p[5] = m * b),
+                                (p[9] = -d),
+                                (p[2] = n * d - r),
+                                (p[6] = i + e * d),
+                                (p[10] = m * v))
+                              : 'ZXY' === t.order
+                                ? ((n = v * g),
+                                  (r = f * b),
+                                  (p[0] = (e = v * b) - (i = f * g) * d),
+                                  (p[4] = -m * g),
+                                  (p[8] = r + n * d),
+                                  (p[1] = n + r * d),
+                                  (p[5] = m * b),
+                                  (p[9] = i - e * d),
+                                  (p[2] = -m * f),
+                                  (p[6] = d),
+                                  (p[10] = m * v))
+                                : 'ZYX' === t.order
+                                  ? ((o = m * b),
+                                    (a = m * g),
+                                    (s = d * b),
+                                    (l = d * g),
+                                    (p[0] = v * b),
+                                    (p[4] = s * f - a),
+                                    (p[8] = o * f + l),
+                                    (p[1] = v * g),
+                                    (p[5] = l * f + o),
+                                    (p[9] = a * f - s),
+                                    (p[2] = -f),
+                                    (p[6] = d * v),
+                                    (p[10] = m * v))
+                                  : 'YZX' === t.order
+                                    ? ((u = m * v),
+                                      (c = m * f),
+                                      (A = d * v),
+                                      (h = d * f),
+                                      (p[0] = v * b),
+                                      (p[4] = h - u * g),
+                                      (p[8] = A * g + c),
+                                      (p[1] = g),
+                                      (p[5] = m * b),
+                                      (p[9] = -d * b),
+                                      (p[2] = -f * b),
+                                      (p[6] = c * g + A),
+                                      (p[10] = u - h * g))
+                                    : 'XZY' === t.order &&
+                                      ((u = m * v),
+                                      (c = m * f),
+                                      (A = d * v),
+                                      (h = d * f),
+                                      (p[0] = v * b),
+                                      (p[4] = -g),
+                                      (p[8] = f * b),
+                                      (p[1] = u * g + h),
+                                      (p[5] = m * b),
+                                      (p[9] = c * g - A),
+                                      (p[2] = A * g - c),
+                                      (p[6] = d * b),
+                                      (p[10] = h * g + u)),
+                          (p[3] = 0),
+                          (p[7] = 0),
+                          (p[11] = 0),
+                          (p[12] = 0),
+                          (p[13] = 0),
+                          (p[14] = 0),
+                          (p[15] = 1),
+                          this
+                        );
+                      },
+                      setRotationFromQuaternion: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().',
+                          ),
+                          this.makeRotationFromQuaternion(t)
+                        );
+                      },
+                      makeRotationFromQuaternion: function (t) {
+                        var e = this.elements,
+                          n = t.x,
+                          r = t.y,
+                          i = t.z,
+                          t = t.w,
+                          o = n + n,
+                          a = r + r,
+                          s = i + i,
+                          l = n * o,
+                          u = n * a,
+                          n = n * s,
+                          c = r * a,
+                          r = r * s,
+                          i = i * s,
+                          o = t * o,
+                          a = t * a,
+                          t = t * s;
+                        return (
+                          (e[0] = 1 - (c + i)),
+                          (e[4] = u - t),
+                          (e[8] = n + a),
+                          (e[1] = u + t),
+                          (e[5] = 1 - (l + i)),
+                          (e[9] = r - o),
+                          (e[2] = n - a),
+                          (e[6] = r + o),
+                          (e[10] = 1 - (l + c)),
+                          (e[3] = 0),
+                          (e[7] = 0),
+                          (e[11] = 0),
+                          (e[12] = 0),
+                          (e[13] = 0),
+                          (e[14] = 0),
+                          (e[15] = 1),
+                          this
+                        );
+                      },
+                      lookAt:
+                        ((ae = new Jt.Vector3()),
+                        (se = new Jt.Vector3()),
+                        (le = new Jt.Vector3()),
+                        function (t, e, n) {
+                          var r = this.elements;
+                          return (
+                            le.subVectors(t, e).normalize(),
+                            0 === le.length() && (le.z = 1),
+                            ae.crossVectors(n, le).normalize(),
+                            0 === ae.length() &&
+                              ((le.x += 1e-4), ae.crossVectors(n, le).normalize()),
+                            se.crossVectors(le, ae),
+                            (r[0] = ae.x),
+                            (r[4] = se.x),
+                            (r[8] = le.x),
+                            (r[1] = ae.y),
+                            (r[5] = se.y),
+                            (r[9] = le.y),
+                            (r[2] = ae.z),
+                            (r[6] = se.z),
+                            (r[10] = le.z),
+                            this
+                          );
+                        }),
+                      multiply: function (t, e) {
+                        return void 0 !== e
+                          ? (Jt.warn(
+                              'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.',
+                            ),
+                            this.multiplyMatrices(t, e))
+                          : this.multiplyMatrices(this, t);
+                      },
+                      multiplyMatrices: function (t, e) {
+                        var t = t.elements,
+                          e = e.elements,
+                          n = this.elements,
+                          r = t[0],
+                          i = t[4],
+                          o = t[8],
+                          a = t[12],
+                          s = t[1],
+                          l = t[5],
+                          u = t[9],
+                          c = t[13],
+                          A = t[2],
+                          h = t[6],
+                          p = t[10],
+                          d = t[14],
+                          f = t[3],
+                          g = t[7],
+                          m = t[11],
+                          t = t[15],
+                          v = e[0],
+                          b = e[4],
+                          y = e[8],
+                          w = e[12],
+                          E = e[1],
+                          B = e[5],
+                          C = e[9],
+                          x = e[13],
+                          I = e[2],
+                          M = e[6],
+                          D = e[10],
+                          S = e[14],
+                          k = e[3],
+                          F = e[7],
+                          Q = e[11],
+                          e = e[15];
+                        return (
+                          (n[0] = r * v + i * E + o * I + a * k),
+                          (n[4] = r * b + i * B + o * M + a * F),
+                          (n[8] = r * y + i * C + o * D + a * Q),
+                          (n[12] = r * w + i * x + o * S + a * e),
+                          (n[1] = s * v + l * E + u * I + c * k),
+                          (n[5] = s * b + l * B + u * M + c * F),
+                          (n[9] = s * y + l * C + u * D + c * Q),
+                          (n[13] = s * w + l * x + u * S + c * e),
+                          (n[2] = A * v + h * E + p * I + d * k),
+                          (n[6] = A * b + h * B + p * M + d * F),
+                          (n[10] = A * y + h * C + p * D + d * Q),
+                          (n[14] = A * w + h * x + p * S + d * e),
+                          (n[3] = f * v + g * E + m * I + t * k),
+                          (n[7] = f * b + g * B + m * M + t * F),
+                          (n[11] = f * y + g * C + m * D + t * Q),
+                          (n[15] = f * w + g * x + m * S + t * e),
+                          this
+                        );
+                      },
+                      multiplyToArray: function (t, e, n) {
+                        var r = this.elements;
+                        return (
+                          this.multiplyMatrices(t, e),
+                          (n[0] = r[0]),
+                          (n[1] = r[1]),
+                          (n[2] = r[2]),
+                          (n[3] = r[3]),
+                          (n[4] = r[4]),
+                          (n[5] = r[5]),
+                          (n[6] = r[6]),
+                          (n[7] = r[7]),
+                          (n[8] = r[8]),
+                          (n[9] = r[9]),
+                          (n[10] = r[10]),
+                          (n[11] = r[11]),
+                          (n[12] = r[12]),
+                          (n[13] = r[13]),
+                          (n[14] = r[14]),
+                          (n[15] = r[15]),
+                          this
+                        );
+                      },
+                      multiplyScalar: function (t) {
+                        var e = this.elements;
+                        return (
+                          (e[0] *= t),
+                          (e[4] *= t),
+                          (e[8] *= t),
+                          (e[12] *= t),
+                          (e[1] *= t),
+                          (e[5] *= t),
+                          (e[9] *= t),
+                          (e[13] *= t),
+                          (e[2] *= t),
+                          (e[6] *= t),
+                          (e[10] *= t),
+                          (e[14] *= t),
+                          (e[3] *= t),
+                          (e[7] *= t),
+                          (e[11] *= t),
+                          (e[15] *= t),
+                          this
+                        );
+                      },
+                      multiplyVector3: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) or vector.applyProjection( matrix ) instead.',
+                          ),
+                          t.applyProjection(this)
+                        );
+                      },
+                      multiplyVector4: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.',
+                          ),
+                          t.applyMatrix4(this)
+                        );
+                      },
+                      multiplyVector3Array: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.',
+                          ),
+                          this.applyToVector3Array(t)
+                        );
+                      },
+                      applyToVector3Array:
+                        ((oe = new Jt.Vector3()),
+                        function (t, e, n) {
+                          void 0 === n && (n = t.length);
+                          for (var r = 0, i = (e = void 0 === e ? 0 : e); r < n; r += 3, i += 3)
+                            (oe.x = t[i]),
+                              (oe.y = t[i + 1]),
+                              (oe.z = t[i + 2]),
+                              oe.applyMatrix4(this),
+                              (t[i] = oe.x),
+                              (t[i + 1] = oe.y),
+                              (t[i + 2] = oe.z);
+                          return t;
+                        }),
+                      rotateAxis: function (t) {
+                        Jt.warn(
+                          'THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.',
+                        ),
+                          t.transformDirection(this);
+                      },
+                      crossVector: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.',
+                          ),
+                          t.applyMatrix4(this)
+                        );
+                      },
+                      determinant: function () {
+                        var t = this.elements,
+                          e = t[0],
+                          n = t[4],
+                          r = t[8],
+                          i = t[12],
+                          o = t[1],
+                          a = t[5],
+                          s = t[9],
+                          l = t[13],
+                          u = t[2],
+                          c = t[6],
+                          A = t[10],
+                          h = t[14];
+                        return (
+                          t[3] *
+                            (+i * s * c -
+                              r * l * c -
+                              i * a * A +
+                              n * l * A +
+                              r * a * h -
+                              n * s * h) +
+                          t[7] *
+                            (+e * s * h -
+                              e * l * A +
+                              i * o * A -
+                              r * o * h +
+                              r * l * u -
+                              i * s * u) +
+                          t[11] *
+                            (+e * l * c -
+                              e * a * h -
+                              i * o * c +
+                              n * o * h +
+                              i * a * u -
+                              n * l * u) +
+                          t[15] *
+                            (-r * a * u - e * s * c + e * a * A + r * o * c - n * o * A + n * s * u)
+                        );
+                      },
+                      transpose: function () {
+                        var t = this.elements,
+                          e = t[1];
+                        return (
+                          (t[1] = t[4]),
+                          (t[4] = e),
+                          (e = t[2]),
+                          (t[2] = t[8]),
+                          (t[8] = e),
+                          (e = t[6]),
+                          (t[6] = t[9]),
+                          (t[9] = e),
+                          (e = t[3]),
+                          (t[3] = t[12]),
+                          (t[12] = e),
+                          (e = t[7]),
+                          (t[7] = t[13]),
+                          (t[13] = e),
+                          (e = t[11]),
+                          (t[11] = t[14]),
+                          (t[14] = e),
+                          this
+                        );
+                      },
+                      flattenToArrayOffset: function (t, e) {
+                        var n = this.elements;
+                        return (
+                          (t[e] = n[0]),
+                          (t[e + 1] = n[1]),
+                          (t[e + 2] = n[2]),
+                          (t[e + 3] = n[3]),
+                          (t[e + 4] = n[4]),
+                          (t[e + 5] = n[5]),
+                          (t[e + 6] = n[6]),
+                          (t[e + 7] = n[7]),
+                          (t[e + 8] = n[8]),
+                          (t[e + 9] = n[9]),
+                          (t[e + 10] = n[10]),
+                          (t[e + 11] = n[11]),
+                          (t[e + 12] = n[12]),
+                          (t[e + 13] = n[13]),
+                          (t[e + 14] = n[14]),
+                          (t[e + 15] = n[15]),
+                          t
+                        );
+                      },
+                      getPosition:
+                        ((ie = new Jt.Vector3()),
+                        function () {
+                          Jt.warn(
+                            'THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.',
+                          );
+                          var t = this.elements;
+                          return ie.set(t[12], t[13], t[14]);
+                        }),
+                      setPosition: function (t) {
+                        var e = this.elements;
+                        return (e[12] = t.x), (e[13] = t.y), (e[14] = t.z), this;
+                      },
+                      getInverse: function (t, e) {
+                        var n = this.elements,
+                          t = t.elements,
+                          r = t[0],
+                          i = t[4],
+                          o = t[8],
+                          a = t[12],
+                          s = t[1],
+                          l = t[5],
+                          u = t[9],
+                          c = t[13],
+                          A = t[2],
+                          h = t[6],
+                          p = t[10],
+                          d = t[14],
+                          f = t[3],
+                          g = t[7],
+                          m = t[11],
+                          t = t[15],
+                          t =
+                            ((n[0] =
+                              u * d * g -
+                              c * p * g +
+                              c * h * m -
+                              l * d * m -
+                              u * h * t +
+                              l * p * t),
+                            (n[4] =
+                              a * p * g -
+                              o * d * g -
+                              a * h * m +
+                              i * d * m +
+                              o * h * t -
+                              i * p * t),
+                            (n[8] =
+                              o * c * g -
+                              a * u * g +
+                              a * l * m -
+                              i * c * m -
+                              o * l * t +
+                              i * u * t),
+                            (n[12] =
+                              a * u * h -
+                              o * c * h -
+                              a * l * p +
+                              i * c * p +
+                              o * l * d -
+                              i * u * d),
+                            (n[1] =
+                              c * p * f -
+                              u * d * f -
+                              c * A * m +
+                              s * d * m +
+                              u * A * t -
+                              s * p * t),
+                            (n[5] =
+                              o * d * f -
+                              a * p * f +
+                              a * A * m -
+                              r * d * m -
+                              o * A * t +
+                              r * p * t),
+                            (n[9] =
+                              a * u * f -
+                              o * c * f -
+                              a * s * m +
+                              r * c * m +
+                              o * s * t -
+                              r * u * t),
+                            (n[13] =
+                              o * c * A -
+                              a * u * A +
+                              a * s * p -
+                              r * c * p -
+                              o * s * d +
+                              r * u * d),
+                            (n[2] =
+                              l * d * f -
+                              c * h * f +
+                              c * A * g -
+                              s * d * g -
+                              l * A * t +
+                              s * h * t),
+                            (n[6] =
+                              a * h * f -
+                              i * d * f -
+                              a * A * g +
+                              r * d * g +
+                              i * A * t -
+                              r * h * t),
+                            (n[10] =
+                              i * c * f -
+                              a * l * f +
+                              a * s * g -
+                              r * c * g -
+                              i * s * t +
+                              r * l * t),
+                            (n[14] =
+                              a * l * A -
+                              i * c * A -
+                              a * s * h +
+                              r * c * h +
+                              i * s * d -
+                              r * l * d),
+                            (n[3] =
+                              u * h * f -
+                              l * p * f -
+                              u * A * g +
+                              s * p * g +
+                              l * A * m -
+                              s * h * m),
+                            (n[7] =
+                              i * p * f -
+                              o * h * f +
+                              o * A * g -
+                              r * p * g -
+                              i * A * m +
+                              r * h * m),
+                            (n[11] =
+                              o * l * f -
+                              i * u * f -
+                              o * s * g +
+                              r * u * g +
+                              i * s * m -
+                              r * l * m),
+                            (n[15] =
+                              i * u * A -
+                              o * l * A +
+                              o * s * h -
+                              r * u * h -
+                              i * s * p +
+                              r * l * p),
+                            r * n[0] + s * n[4] + A * n[8] + f * n[12]);
+                        if (0 != t) return this.multiplyScalar(1 / t), this;
+                        a = "THREE.Matrix4.getInverse(): can't invert matrix, determinant is 0";
+                        if (e) throw new Error(a);
+                        return Jt.warn(a), this.identity(), this;
+                      },
+                      translate: function (t) {
+                        Jt.error('THREE.Matrix4: .translate() has been removed.');
+                      },
+                      rotateX: function (t) {
+                        Jt.error('THREE.Matrix4: .rotateX() has been removed.');
+                      },
+                      rotateY: function (t) {
+                        Jt.error('THREE.Matrix4: .rotateY() has been removed.');
+                      },
+                      rotateZ: function (t) {
+                        Jt.error('THREE.Matrix4: .rotateZ() has been removed.');
+                      },
+                      rotateByAxis: function (t, e) {
+                        Jt.error('THREE.Matrix4: .rotateByAxis() has been removed.');
+                      },
+                      scale: function (t) {
+                        var e = this.elements,
+                          n = t.x,
+                          r = t.y,
+                          t = t.z;
+                        return (
+                          (e[0] *= n),
+                          (e[4] *= r),
+                          (e[8] *= t),
+                          (e[1] *= n),
+                          (e[5] *= r),
+                          (e[9] *= t),
+                          (e[2] *= n),
+                          (e[6] *= r),
+                          (e[10] *= t),
+                          (e[3] *= n),
+                          (e[7] *= r),
+                          (e[11] *= t),
+                          this
+                        );
+                      },
+                      getMaxScaleOnAxis: function () {
+                        var t = this.elements,
+                          e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2],
+                          n = t[4] * t[4] + t[5] * t[5] + t[6] * t[6],
+                          t = t[8] * t[8] + t[9] * t[9] + t[10] * t[10];
+                        return Math.sqrt(Math.max(e, Math.max(n, t)));
+                      },
+                      makeTranslation: function (t, e, n) {
+                        return this.set(1, 0, 0, t, 0, 1, 0, e, 0, 0, 1, n, 0, 0, 0, 1), this;
+                      },
+                      makeRotationX: function (t) {
+                        var e = Math.cos(t),
+                          t = Math.sin(t);
+                        return this.set(1, 0, 0, 0, 0, e, -t, 0, 0, t, e, 0, 0, 0, 0, 1), this;
+                      },
+                      makeRotationY: function (t) {
+                        var e = Math.cos(t),
+                          t = Math.sin(t);
+                        return this.set(e, 0, t, 0, 0, 1, 0, 0, -t, 0, e, 0, 0, 0, 0, 1), this;
+                      },
+                      makeRotationZ: function (t) {
+                        var e = Math.cos(t),
+                          t = Math.sin(t);
+                        return this.set(e, -t, 0, 0, t, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this;
+                      },
+                      makeRotationAxis: function (t, e) {
+                        var n = Math.cos(e),
+                          e = Math.sin(e),
+                          r = 1 - n,
+                          i = t.x,
+                          o = t.y,
+                          t = t.z,
+                          a = r * i,
+                          s = r * o;
+                        return (
+                          this.set(
+                            a * i + n,
+                            a * o - e * t,
+                            a * t + e * o,
+                            0,
+                            a * o + e * t,
+                            s * o + n,
+                            s * t - e * i,
+                            0,
+                            a * t - e * o,
+                            s * t + e * i,
+                            r * t * t + n,
+                            0,
+                            0,
+                            0,
+                            0,
+                            1,
+                          ),
+                          this
+                        );
+                      },
+                      makeScale: function (t, e, n) {
+                        return this.set(t, 0, 0, 0, 0, e, 0, 0, 0, 0, n, 0, 0, 0, 0, 1), this;
+                      },
+                      compose: function (t, e, n) {
+                        return (
+                          this.makeRotationFromQuaternion(e),
+                          this.scale(n),
+                          this.setPosition(t),
+                          this
+                        );
+                      },
+                      decompose:
+                        ((ne = new Jt.Vector3()),
+                        (re = new Jt.Matrix4()),
+                        function (t, e, n) {
+                          var r = this.elements,
+                            i = ne.set(r[0], r[1], r[2]).length(),
+                            o = ne.set(r[4], r[5], r[6]).length(),
+                            a = ne.set(r[8], r[9], r[10]).length(),
+                            t =
+                              (this.determinant() < 0 && (i = -i),
+                              (t.x = r[12]),
+                              (t.y = r[13]),
+                              (t.z = r[14]),
+                              re.elements.set(this.elements),
+                              1 / i),
+                            r = 1 / o,
+                            s = 1 / a;
+                          return (
+                            (re.elements[0] *= t),
+                            (re.elements[1] *= t),
+                            (re.elements[2] *= t),
+                            (re.elements[4] *= r),
+                            (re.elements[5] *= r),
+                            (re.elements[6] *= r),
+                            (re.elements[8] *= s),
+                            (re.elements[9] *= s),
+                            (re.elements[10] *= s),
+                            e.setFromRotationMatrix(re),
+                            (n.x = i),
+                            (n.y = o),
+                            (n.z = a),
+                            this
+                          );
+                        }),
+                      makeFrustum: function (t, e, n, r, i, o) {
+                        var a = this.elements,
+                          s = (2 * i) / (r - n),
+                          l = (e + t) / (e - t),
+                          r = (r + n) / (r - n),
+                          n = -(o + i) / (o - i),
+                          o = (-2 * o * i) / (o - i);
+                        return (
+                          (a[0] = (2 * i) / (e - t)),
+                          (a[4] = 0),
+                          (a[8] = l),
+                          (a[12] = 0),
+                          (a[1] = 0),
+                          (a[5] = s),
+                          (a[9] = r),
+                          (a[13] = 0),
+                          (a[2] = 0),
+                          (a[6] = 0),
+                          (a[10] = n),
+                          (a[14] = o),
+                          (a[3] = 0),
+                          (a[7] = 0),
+                          (a[11] = -1),
+                          (a[15] = 0),
+                          this
+                        );
+                      },
+                      makePerspective: function (t, e, n, r) {
+                        var t = n * Math.tan(Jt.Math.degToRad(0.5 * t)),
+                          i = -t;
+                        return this.makeFrustum(i * e, t * e, i, t, n, r);
+                      },
+                      makeOrthographic: function (t, e, n, r, i, o) {
+                        var a = this.elements,
+                          s = e - t,
+                          l = n - r,
+                          u = o - i,
+                          e = (e + t) / s,
+                          t = (n + r) / l,
+                          n = (o + i) / u;
+                        return (
+                          (a[0] = 2 / s),
+                          (a[4] = 0),
+                          (a[8] = 0),
+                          (a[12] = -e),
+                          (a[1] = 0),
+                          (a[5] = 2 / l),
+                          (a[9] = 0),
+                          (a[13] = -t),
+                          (a[2] = 0),
+                          (a[6] = 0),
+                          (a[10] = -2 / u),
+                          (a[14] = -n),
+                          (a[3] = 0),
+                          (a[7] = 0),
+                          (a[11] = 0),
+                          (a[15] = 1),
+                          this
+                        );
+                      },
+                      fromArray: function (t) {
+                        return this.elements.set(t), this;
+                      },
+                      toArray: function () {
+                        var t = this.elements;
+                        return [
+                          t[0],
+                          t[1],
+                          t[2],
+                          t[3],
+                          t[4],
+                          t[5],
+                          t[6],
+                          t[7],
+                          t[8],
+                          t[9],
+                          t[10],
+                          t[11],
+                          t[12],
+                          t[13],
+                          t[14],
+                          t[15],
+                        ];
+                      },
+                      clone: function () {
+                        return new Jt.Matrix4().fromArray(this.elements);
+                      },
+                    }),
+                    (Jt.Ray = function (t, e) {
+                      (this.origin = void 0 !== t ? t : new Jt.Vector3()),
+                        (this.direction = void 0 !== e ? e : new Jt.Vector3());
+                    }),
+                    (Jt.Ray.prototype = {
+                      constructor: Jt.Ray,
+                      set: function (t, e) {
+                        return this.origin.copy(t), this.direction.copy(e), this;
+                      },
+                      copy: function (t) {
+                        return this.origin.copy(t.origin), this.direction.copy(t.direction), this;
+                      },
+                      at: function (t, e) {
+                        return (e || new Jt.Vector3())
+                          .copy(this.direction)
+                          .multiplyScalar(t)
+                          .add(this.origin);
+                      },
+                      recast:
+                        ((ye = new Jt.Vector3()),
+                        function (t) {
+                          return this.origin.copy(this.at(t, ye)), this;
+                        }),
+                      closestPointToPoint: function (t, e) {
+                        (e = e || new Jt.Vector3()),
+                          e.subVectors(t, this.origin),
+                          (t = e.dot(this.direction));
+                        return t < 0
+                          ? e.copy(this.origin)
+                          : e.copy(this.direction).multiplyScalar(t).add(this.origin);
+                      },
+                      distanceToPoint:
+                        ((be = new Jt.Vector3()),
+                        function (t) {
+                          var e = be.subVectors(t, this.origin).dot(this.direction);
+                          return e < 0
+                            ? this.origin.distanceTo(t)
+                            : (be.copy(this.direction).multiplyScalar(e).add(this.origin),
+                              be.distanceTo(t));
+                        }),
+                      distanceSqToSegment:
+                        ((ge = new Jt.Vector3()),
+                        (me = new Jt.Vector3()),
+                        (ve = new Jt.Vector3()),
+                        function (t, e, n, r) {
+                          ge.copy(t).add(e).multiplyScalar(0.5),
+                            me.copy(e).sub(t).normalize(),
+                            ve.copy(this.origin).sub(ge);
+                          var i,
+                            o,
+                            a,
+                            t = 0.5 * t.distanceTo(e),
+                            e = -this.direction.dot(me),
+                            s = ve.dot(this.direction),
+                            l = -ve.dot(me),
+                            u = ve.lengthSq(),
+                            c = Math.abs(1 - e * e);
+                          return (
+                            (c =
+                              0 < c
+                                ? ((o = e * s - l),
+                                  (a = t * c),
+                                  0 <= (i = e * l - s)
+                                    ? -a <= o
+                                      ? o <= a
+                                        ? (i *= c = 1 / c) * (i + e * (o *= c) + 2 * s) +
+                                          o * (e * i + o + 2 * l) +
+                                          u
+                                        : ((o = t),
+                                          -(i = Math.max(0, -(e * o + s))) * i +
+                                            o * (o + 2 * l) +
+                                            u)
+                                      : ((o = -t),
+                                        -(i = Math.max(0, -(e * o + s))) * i + o * (o + 2 * l) + u)
+                                    : o <= -a
+                                      ? -(i = Math.max(0, -(-e * t + s))) * i +
+                                        (o = 0 < i ? -t : Math.min(Math.max(-t, -l), t)) *
+                                          (o + 2 * l) +
+                                        u
+                                      : o <= a
+                                        ? ((i = 0),
+                                          (o = Math.min(Math.max(-t, -l), t)) * (o + 2 * l) + u)
+                                        : -(i = Math.max(0, -(e * t + s))) * i +
+                                          (o = 0 < i ? t : Math.min(Math.max(-t, -l), t)) *
+                                            (o + 2 * l) +
+                                          u)
+                                : ((o = 0 < e ? -t : t),
+                                  -(i = Math.max(0, -(e * o + s))) * i + o * (o + 2 * l) + u)),
+                            n && n.copy(this.direction).multiplyScalar(i).add(this.origin),
+                            r && r.copy(me).multiplyScalar(o).add(ge),
+                            c
+                          );
+                        }),
+                      isIntersectionSphere: function (t) {
+                        return this.distanceToPoint(t.center) <= t.radius;
+                      },
+                      intersectSphere:
+                        ((fe = new Jt.Vector3()),
+                        function (t, e) {
+                          fe.subVectors(t.center, this.origin);
+                          var n = fe.dot(this.direction),
+                            r = fe.dot(fe) - n * n,
+                            t = t.radius * t.radius;
+                          if (t < r) return null;
+                          (t = Math.sqrt(t - r)), (r = n - t), (n += t);
+                          return r < 0 && n < 0 ? null : r < 0 ? this.at(n, e) : this.at(r, e);
+                        }),
+                      isIntersectionPlane: function (t) {
+                        var e = t.distanceToPoint(this.origin);
+                        return 0 === e || t.normal.dot(this.direction) * e < 0;
+                      },
+                      distanceToPlane: function (t) {
+                        var e = t.normal.dot(this.direction);
+                        if (0 == e) return 0 == t.distanceToPoint(this.origin) ? 0 : null;
+                        t = -(this.origin.dot(t.normal) + t.constant) / e;
+                        return 0 <= t ? t : null;
+                      },
+                      intersectPlane: function (t, e) {
+                        t = this.distanceToPlane(t);
+                        return null === t ? null : this.at(t, e);
+                      },
+                      isIntersectionBox:
+                        ((de = new Jt.Vector3()),
+                        function (t) {
+                          return null !== this.intersectBox(t, de);
+                        }),
+                      intersectBox: function (t, e) {
+                        var n,
+                          r,
+                          i,
+                          o = 1 / this.direction.x,
+                          a = 1 / this.direction.y,
+                          s = 1 / this.direction.z,
+                          l = this.origin,
+                          o =
+                            0 <= o
+                              ? ((n = (t.min.x - l.x) * o), (t.max.x - l.x) * o)
+                              : ((n = (t.max.x - l.x) * o), (t.min.x - l.x) * o),
+                          a =
+                            0 <= a
+                              ? ((i = (t.min.y - l.y) * a), (t.max.y - l.y) * a)
+                              : ((i = (t.max.y - l.y) * a), (t.min.y - l.y) * a);
+                        return a < n || o < i
+                          ? null
+                          : ((n < i || n != n) && (n = i),
+                            (a < o || o != o) && (o = a),
+                            (i =
+                              0 <= s
+                                ? ((r = (t.min.z - l.z) * s), (t.max.z - l.z) * s)
+                                : ((r = (t.max.z - l.z) * s), (t.min.z - l.z) * s)) < n || o < r
+                              ? null
+                              : ((n < r || n != n) && (n = r),
+                                (o = i < o || o != o ? i : o) < 0
+                                  ? null
+                                  : this.at(0 <= n ? n : o, e)));
+                      },
+                      intersectTriangle:
+                        ((ce = new Jt.Vector3()),
+                        (Ae = new Jt.Vector3()),
+                        (he = new Jt.Vector3()),
+                        (pe = new Jt.Vector3()),
+                        function (t, e, n, r, i) {
+                          Ae.subVectors(e, t), he.subVectors(n, t), pe.crossVectors(Ae, he);
+                          var o,
+                            e = this.direction.dot(pe);
+                          if (0 < e) {
+                            if (r) return null;
+                            o = 1;
+                          } else {
+                            if (!(e < 0)) return null;
+                            (o = -1), (e = -e);
+                          }
+                          ce.subVectors(this.origin, t);
+                          n = o * this.direction.dot(he.crossVectors(ce, he));
+                          if (n < 0) return null;
+                          r = o * this.direction.dot(Ae.cross(ce));
+                          if (r < 0) return null;
+                          if (e < n + r) return null;
+                          t = -o * ce.dot(pe);
+                          return t < 0 ? null : this.at(t / e, i);
+                        }),
+                      applyMatrix4: function (t) {
+                        return (
+                          this.direction.add(this.origin).applyMatrix4(t),
+                          this.origin.applyMatrix4(t),
+                          this.direction.sub(this.origin),
+                          this.direction.normalize(),
+                          this
+                        );
+                      },
+                      equals: function (t) {
+                        return t.origin.equals(this.origin) && t.direction.equals(this.direction);
+                      },
+                      clone: function () {
+                        return new Jt.Ray().copy(this);
+                      },
+                    }),
+                    (Jt.Sphere = function (t, e) {
+                      (this.center = void 0 !== t ? t : new Jt.Vector3()),
+                        (this.radius = void 0 !== e ? e : 0);
+                    }),
+                    (Jt.Sphere.prototype = {
+                      constructor: Jt.Sphere,
+                      set: function (t, e) {
+                        return this.center.copy(t), (this.radius = e), this;
+                      },
+                      setFromPoints:
+                        ((we = new Jt.Box3()),
+                        function (t, e) {
+                          for (
+                            var n = this.center,
+                              r = (void 0 !== e ? n.copy(e) : we.setFromPoints(t).center(n), 0),
+                              i = 0,
+                              o = t.length;
+                            i < o;
+                            i++
+                          )
+                            r = Math.max(r, n.distanceToSquared(t[i]));
+                          return (this.radius = Math.sqrt(r)), this;
+                        }),
+                      copy: function (t) {
+                        return this.center.copy(t.center), (this.radius = t.radius), this;
+                      },
+                      empty: function () {
+                        return this.radius <= 0;
+                      },
+                      containsPoint: function (t) {
+                        return t.distanceToSquared(this.center) <= this.radius * this.radius;
+                      },
+                      distanceToPoint: function (t) {
+                        return t.distanceTo(this.center) - this.radius;
+                      },
+                      intersectsSphere: function (t) {
+                        var e = this.radius + t.radius;
+                        return t.center.distanceToSquared(this.center) <= e * e;
+                      },
+                      clampPoint: function (t, e) {
+                        var n = this.center.distanceToSquared(t),
+                          e = e || new Jt.Vector3();
+                        return (
+                          e.copy(t),
+                          n > this.radius * this.radius &&
+                            (e.sub(this.center).normalize(),
+                            e.multiplyScalar(this.radius).add(this.center)),
+                          e
+                        );
+                      },
+                      getBoundingBox: function (t) {
+                        t = t || new Jt.Box3();
+                        return t.set(this.center, this.center), t.expandByScalar(this.radius), t;
+                      },
+                      applyMatrix4: function (t) {
+                        return (
+                          this.center.applyMatrix4(t),
+                          (this.radius = this.radius * t.getMaxScaleOnAxis()),
+                          this
+                        );
+                      },
+                      translate: function (t) {
+                        return this.center.add(t), this;
+                      },
+                      equals: function (t) {
+                        return t.center.equals(this.center) && t.radius === this.radius;
+                      },
+                      clone: function () {
+                        return new Jt.Sphere().copy(this);
+                      },
+                    }),
+                    (Jt.Frustum = function (t, e, n, r, i, o) {
+                      this.planes = [
+                        void 0 !== t ? t : new Jt.Plane(),
+                        void 0 !== e ? e : new Jt.Plane(),
+                        void 0 !== n ? n : new Jt.Plane(),
+                        void 0 !== r ? r : new Jt.Plane(),
+                        void 0 !== i ? i : new Jt.Plane(),
+                        void 0 !== o ? o : new Jt.Plane(),
+                      ];
+                    }),
+                    (Jt.Frustum.prototype = {
+                      constructor: Jt.Frustum,
+                      set: function (t, e, n, r, i, o) {
+                        var a = this.planes;
+                        return (
+                          a[0].copy(t),
+                          a[1].copy(e),
+                          a[2].copy(n),
+                          a[3].copy(r),
+                          a[4].copy(i),
+                          a[5].copy(o),
+                          this
+                        );
+                      },
+                      copy: function (t) {
+                        for (var e = this.planes, n = 0; n < 6; n++) e[n].copy(t.planes[n]);
+                        return this;
+                      },
+                      setFromMatrix: function (t) {
+                        var e = this.planes,
+                          t = t.elements,
+                          n = t[0],
+                          r = t[1],
+                          i = t[2],
+                          o = t[3],
+                          a = t[4],
+                          s = t[5],
+                          l = t[6],
+                          u = t[7],
+                          c = t[8],
+                          A = t[9],
+                          h = t[10],
+                          p = t[11],
+                          d = t[12],
+                          f = t[13],
+                          g = t[14],
+                          t = t[15];
+                        return (
+                          e[0].setComponents(o - n, u - a, p - c, t - d).normalize(),
+                          e[1].setComponents(o + n, u + a, p + c, t + d).normalize(),
+                          e[2].setComponents(o + r, u + s, p + A, t + f).normalize(),
+                          e[3].setComponents(o - r, u - s, p - A, t - f).normalize(),
+                          e[4].setComponents(o - i, u - l, p - h, t - g).normalize(),
+                          e[5].setComponents(o + i, u + l, p + h, t + g).normalize(),
+                          this
+                        );
+                      },
+                      intersectsObject:
+                        ((Ce = new Jt.Sphere()),
+                        function (t) {
+                          var e = t.geometry;
+                          return (
+                            null === e.boundingSphere && e.computeBoundingSphere(),
+                            Ce.copy(e.boundingSphere),
+                            Ce.applyMatrix4(t.matrixWorld),
+                            this.intersectsSphere(Ce)
+                          );
+                        }),
+                      intersectsSphere: function (t) {
+                        for (var e = this.planes, n = t.center, r = -t.radius, i = 0; i < 6; i++)
+                          if (e[i].distanceToPoint(n) < r) return !1;
+                        return !0;
+                      },
+                      intersectsBox:
+                        ((Ee = new Jt.Vector3()),
+                        (Be = new Jt.Vector3()),
+                        function (t) {
+                          for (var e = this.planes, n = 0; n < 6; n++) {
+                            var r = e[n],
+                              i =
+                                ((Ee.x = (0 < r.normal.x ? t.min : t.max).x),
+                                (Be.x = (0 < r.normal.x ? t.max : t.min).x),
+                                (Ee.y = (0 < r.normal.y ? t.min : t.max).y),
+                                (Be.y = (0 < r.normal.y ? t.max : t.min).y),
+                                (Ee.z = (0 < r.normal.z ? t.min : t.max).z),
+                                (Be.z = (0 < r.normal.z ? t.max : t.min).z),
+                                r.distanceToPoint(Ee)),
+                              r = r.distanceToPoint(Be);
+                            if (i < 0 && r < 0) return !1;
+                          }
+                          return !0;
+                        }),
+                      containsPoint: function (t) {
+                        for (var e = this.planes, n = 0; n < 6; n++)
+                          if (e[n].distanceToPoint(t) < 0) return !1;
+                        return !0;
+                      },
+                      clone: function () {
+                        return new Jt.Frustum().copy(this);
+                      },
+                    }),
+                    (Jt.Plane = function (t, e) {
+                      (this.normal = void 0 !== t ? t : new Jt.Vector3(1, 0, 0)),
+                        (this.constant = void 0 !== e ? e : 0);
+                    }),
+                    (Jt.Plane.prototype = {
+                      constructor: Jt.Plane,
+                      set: function (t, e) {
+                        return this.normal.copy(t), (this.constant = e), this;
+                      },
+                      setComponents: function (t, e, n, r) {
+                        return this.normal.set(t, e, n), (this.constant = r), this;
+                      },
+                      setFromNormalAndCoplanarPoint: function (t, e) {
+                        return this.normal.copy(t), (this.constant = -e.dot(this.normal)), this;
+                      },
+                      setFromCoplanarPoints:
+                        ((Se = new Jt.Vector3()),
+                        (ke = new Jt.Vector3()),
+                        function (t, e, n) {
+                          n = Se.subVectors(n, e).cross(ke.subVectors(t, e)).normalize();
+                          return this.setFromNormalAndCoplanarPoint(n, t), this;
+                        }),
+                      copy: function (t) {
+                        return this.normal.copy(t.normal), (this.constant = t.constant), this;
+                      },
+                      normalize: function () {
+                        var t = 1 / this.normal.length();
+                        return this.normal.multiplyScalar(t), (this.constant *= t), this;
+                      },
+                      negate: function () {
+                        return (this.constant *= -1), this.normal.negate(), this;
+                      },
+                      distanceToPoint: function (t) {
+                        return this.normal.dot(t) + this.constant;
+                      },
+                      distanceToSphere: function (t) {
+                        return this.distanceToPoint(t.center) - t.radius;
+                      },
+                      projectPoint: function (t, e) {
+                        return this.orthoPoint(t, e).sub(t).negate();
+                      },
+                      orthoPoint: function (t, e) {
+                        t = this.distanceToPoint(t);
+                        return (e || new Jt.Vector3()).copy(this.normal).multiplyScalar(t);
+                      },
+                      isIntersectionLine: function (t) {
+                        var e = this.distanceToPoint(t.start),
+                          t = this.distanceToPoint(t.end);
+                        return (e < 0 && 0 < t) || (t < 0 && 0 < e);
+                      },
+                      intersectLine:
+                        ((De = new Jt.Vector3()),
+                        function (t, e) {
+                          var e = e || new Jt.Vector3(),
+                            n = t.delta(De),
+                            r = this.normal.dot(n);
+                          if (0 == r)
+                            return 0 == this.distanceToPoint(t.start) ? e.copy(t.start) : void 0;
+                          r = -(t.start.dot(this.normal) + this.constant) / r;
+                          return r < 0 || 1 < r ? void 0 : e.copy(n).multiplyScalar(r).add(t.start);
+                        }),
+                      coplanarPoint: function (t) {
+                        return (t || new Jt.Vector3())
+                          .copy(this.normal)
+                          .multiplyScalar(-this.constant);
+                      },
+                      applyMatrix4:
+                        ((xe = new Jt.Vector3()),
+                        (Ie = new Jt.Vector3()),
+                        (Me = new Jt.Matrix3()),
+                        function (t, e) {
+                          var e = e || Me.getNormalMatrix(t),
+                            e = xe.copy(this.normal).applyMatrix3(e),
+                            n = this.coplanarPoint(Ie);
+                          return n.applyMatrix4(t), this.setFromNormalAndCoplanarPoint(e, n), this;
+                        }),
+                      translate: function (t) {
+                        return (this.constant = this.constant - t.dot(this.normal)), this;
+                      },
+                      equals: function (t) {
+                        return t.normal.equals(this.normal) && t.constant == this.constant;
+                      },
+                      clone: function () {
+                        return new Jt.Plane().copy(this);
+                      },
+                    }),
+                    (Jt.Math = {
+                      generateUUID:
+                        ((Te =
+                          '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(
+                            '',
+                          )),
+                        (Re = new Array(36)),
+                        (Ue = 0),
+                        function () {
+                          for (var t = 0; t < 36; t++)
+                            8 == t || 13 == t || 18 == t || 23 == t
+                              ? (Re[t] = '-')
+                              : 14 == t
+                                ? (Re[t] = '4')
+                                : (Ue <= 2 && (Ue = (33554432 + 16777216 * Math.random()) | 0),
+                                  (_e = 15 & Ue),
+                                  (Ue >>= 4),
+                                  (Re[t] = Te[19 == t ? (3 & _e) | 8 : _e]));
+                          return Re.join('');
+                        }),
+                      clamp: function (t, e, n) {
+                        return t < e ? e : n < t ? n : t;
+                      },
+                      clampBottom: function (t, e) {
+                        return t < e ? e : t;
+                      },
+                      mapLinear: function (t, e, n, r, i) {
+                        return r + ((t - e) * (i - r)) / (n - e);
+                      },
+                      smoothstep: function (t, e, n) {
+                        return t <= e ? 0 : n <= t ? 1 : (t = (t - e) / (n - e)) * t * (3 - 2 * t);
+                      },
+                      smootherstep: function (t, e, n) {
+                        return t <= e
+                          ? 0
+                          : n <= t
+                            ? 1
+                            : (t = (t - e) / (n - e)) * t * t * (t * (6 * t - 15) + 10);
+                      },
+                      random16: function () {
+                        return (65280 * Math.random() + 255 * Math.random()) / 65535;
+                      },
+                      randInt: function (t, e) {
+                        return Math.floor(this.randFloat(t, e));
+                      },
+                      randFloat: function (t, e) {
+                        return t + Math.random() * (e - t);
+                      },
+                      randFloatSpread: function (t) {
+                        return t * (0.5 - Math.random());
+                      },
+                      degToRad:
+                        ((Qe = Math.PI / 180),
+                        function (t) {
+                          return t * Qe;
+                        }),
+                      radToDeg:
+                        ((Fe = 180 / Math.PI),
+                        function (t) {
+                          return t * Fe;
+                        }),
+                      isPowerOfTwo: function (t) {
+                        return 0 == (t & (t - 1)) && 0 !== t;
+                      },
+                      nextPowerOfTwo: function (t) {
+                        return (
+                          t--,
+                          (t =
+                            (t = (t = (t = (t |= t >> 1) | (t >> 2)) | (t >> 4)) | (t >> 8)) |
+                            (t >> 16)),
+                          ++t
+                        );
+                      },
+                    }),
+                    (Jt.Spline = function (t) {
+                      this.points = t;
+                      var e,
+                        n,
+                        r,
+                        i,
+                        o,
+                        a,
+                        s,
+                        l = [],
+                        u = { x: 0, y: 0, z: 0 };
+                      function c(t, e, n, r, i, o, a) {
+                        (t = 0.5 * (n - t)), (r = 0.5 * (r - e));
+                        return (
+                          (2 * (e - n) + t + r) * a + (-3 * (e - n) - 2 * t - r) * o + t * i + e
+                        );
+                      }
+                      (this.initFromArray = function (t) {
+                        this.points = [];
+                        for (var e = 0; e < t.length; e++)
+                          this.points[e] = { x: t[e][0], y: t[e][1], z: t[e][2] };
+                      }),
+                        (this.getPoint = function (t) {
+                          return (
+                            (e = (this.points.length - 1) * t),
+                            (i = Math.floor(e)),
+                            (e = e - i),
+                            (l[0] = 0 === i ? i : i - 1),
+                            (l[1] = i),
+                            (l[2] = i > this.points.length - 2 ? this.points.length - 1 : i + 1),
+                            (l[3] = i > this.points.length - 3 ? this.points.length - 1 : i + 2),
+                            (i = this.points[l[0]]),
+                            (o = this.points[l[1]]),
+                            (a = this.points[l[2]]),
+                            (s = this.points[l[3]]),
+                            (r = e * (n = e * e)),
+                            (u.x = c(i.x, o.x, a.x, s.x, e, n, r)),
+                            (u.y = c(i.y, o.y, a.y, s.y, e, n, r)),
+                            (u.z = c(i.z, o.z, a.z, s.z, e, n, r)),
+                            u
+                          );
+                        }),
+                        (this.getControlPointsArray = function () {
+                          for (var t, e = this.points.length, n = [], r = 0; r < e; r++)
+                            (t = this.points[r]), (n[r] = [t.x, t.y, t.z]);
+                          return n;
+                        }),
+                        (this.getLength = function (t) {
+                          var e,
+                            n,
+                            r,
+                            i,
+                            o = 0,
+                            a = new Jt.Vector3(),
+                            s = new Jt.Vector3(),
+                            l = [],
+                            u = 0;
+                          for (
+                            l[0] = 0,
+                              n = this.points.length * (t = t || 100),
+                              a.copy(this.points[0]),
+                              e = 1;
+                            e < n;
+                            e++
+                          )
+                            (r = this.getPoint((i = e / n))),
+                              s.copy(r),
+                              (u += s.distanceTo(a)),
+                              a.copy(r),
+                              (r = (this.points.length - 1) * i),
+                              (i = Math.floor(r)) != o && ((l[i] = u), (o = i));
+                          return (l[l.length] = u), { chunks: l, total: u };
+                        }),
+                        (this.reparametrizeByArcLength = function (t) {
+                          var e,
+                            n,
+                            r,
+                            i,
+                            o,
+                            a,
+                            s,
+                            l = [],
+                            u = new Jt.Vector3(),
+                            c = this.getLength();
+                          for (
+                            l.push(u.copy(this.points[0]).clone()), e = 1;
+                            e < this.points.length;
+                            e++
+                          ) {
+                            for (
+                              o = c.chunks[e] - c.chunks[e - 1],
+                                a = Math.ceil((t * o) / c.total),
+                                r = (e - 1) / (this.points.length - 1),
+                                i = e / (this.points.length - 1),
+                                n = 1;
+                              n < a - 1;
+                              n++
+                            )
+                              (s = this.getPoint(r + n * (1 / a) * (i - r))),
+                                l.push(u.copy(s).clone());
+                            l.push(u.copy(this.points[e]).clone());
+                          }
+                          this.points = l;
+                        });
+                    }),
+                    (Jt.Triangle = function (t, e, n) {
+                      (this.a = void 0 !== t ? t : new Jt.Vector3()),
+                        (this.b = void 0 !== e ? e : new Jt.Vector3()),
+                        (this.c = void 0 !== n ? n : new Jt.Vector3());
+                    }),
+                    (Jt.Triangle.normal =
+                      ((Ne = new Jt.Vector3()),
+                      function (t, e, n, r) {
+                        (r = r || new Jt.Vector3()),
+                          r.subVectors(n, e),
+                          Ne.subVectors(t, e),
+                          r.cross(Ne),
+                          (n = r.lengthSq());
+                        return 0 < n ? r.multiplyScalar(1 / Math.sqrt(n)) : r.set(0, 0, 0);
+                      })),
+                    (Jt.Triangle.barycoordFromPoint =
+                      ((Pe = new Jt.Vector3()),
+                      (Le = new Jt.Vector3()),
+                      (Ye = new Jt.Vector3()),
+                      function (t, e, n, r, i) {
+                        Pe.subVectors(r, e), Le.subVectors(n, e), Ye.subVectors(t, e);
+                        var r = Pe.dot(Pe),
+                          n = Pe.dot(Le),
+                          t = Pe.dot(Ye),
+                          e = Le.dot(Le),
+                          o = Le.dot(Ye),
+                          a = r * e - n * n,
+                          i = i || new Jt.Vector3();
+                        if (0 == a) return i.set(-2, -1, -1);
+                        (a = 1 / a), (e = (e * t - n * o) * a), (r = (r * o - n * t) * a);
+                        return i.set(1 - e - r, r, e);
+                      })),
+                    (Jt.Triangle.containsPoint =
+                      ((Oe = new Jt.Vector3()),
+                      function (t, e, n, r) {
+                        t = Jt.Triangle.barycoordFromPoint(t, e, n, r, Oe);
+                        return 0 <= t.x && 0 <= t.y && t.x + t.y <= 1;
+                      })),
+                    (Jt.Triangle.prototype = {
+                      constructor: Jt.Triangle,
+                      set: function (t, e, n) {
+                        return this.a.copy(t), this.b.copy(e), this.c.copy(n), this;
+                      },
+                      setFromPointsAndIndices: function (t, e, n, r) {
+                        return this.a.copy(t[e]), this.b.copy(t[n]), this.c.copy(t[r]), this;
+                      },
+                      copy: function (t) {
+                        return this.a.copy(t.a), this.b.copy(t.b), this.c.copy(t.c), this;
+                      },
+                      area:
+                        ((Ge = new Jt.Vector3()),
+                        (ze = new Jt.Vector3()),
+                        function () {
+                          return (
+                            Ge.subVectors(this.c, this.b),
+                            ze.subVectors(this.a, this.b),
+                            0.5 * Ge.cross(ze).length()
+                          );
+                        }),
+                      midpoint: function (t) {
+                        return (t || new Jt.Vector3())
+                          .addVectors(this.a, this.b)
+                          .add(this.c)
+                          .multiplyScalar(1 / 3);
+                      },
+                      normal: function (t) {
+                        return Jt.Triangle.normal(this.a, this.b, this.c, t);
+                      },
+                      plane: function (t) {
+                        return (t || new Jt.Plane()).setFromCoplanarPoints(this.a, this.b, this.c);
+                      },
+                      barycoordFromPoint: function (t, e) {
+                        return Jt.Triangle.barycoordFromPoint(t, this.a, this.b, this.c, e);
+                      },
+                      containsPoint: function (t) {
+                        return Jt.Triangle.containsPoint(t, this.a, this.b, this.c);
+                      },
+                      equals: function (t) {
+                        return t.a.equals(this.a) && t.b.equals(this.b) && t.c.equals(this.c);
+                      },
+                      clone: function () {
+                        return new Jt.Triangle().copy(this);
+                      },
+                    }),
+                    (Jt.Clock = function (t) {
+                      (this.autoStart = void 0 === t || t),
+                        (this.startTime = 0),
+                        (this.oldTime = 0),
+                        (this.elapsedTime = 0),
+                        (this.running = !1);
+                    }),
+                    (Jt.Clock.prototype = {
+                      constructor: Jt.Clock,
+                      start: function () {
+                        (this.startTime = (
+                          void 0 !== self.performance && void 0 !== self.performance.now
+                            ? self.performance
+                            : Date
+                        ).now()),
+                          (this.oldTime = this.startTime),
+                          (this.running = !0);
+                      },
+                      stop: function () {
+                        this.getElapsedTime(), (this.running = !1);
+                      },
+                      getElapsedTime: function () {
+                        return this.getDelta(), this.elapsedTime;
+                      },
+                      getDelta: function () {
+                        var t,
+                          e = 0;
+                        return (
+                          this.autoStart && !this.running && this.start(),
+                          this.running &&
+                            ((e =
+                              0.001 *
+                              ((t = (
+                                void 0 !== self.performance && void 0 !== self.performance.now
+                                  ? self.performance
+                                  : Date
+                              ).now()) -
+                                this.oldTime)),
+                            (this.oldTime = t),
+                            (this.elapsedTime += e)),
+                          e
+                        );
+                      },
+                    }),
+                    (Jt.EventDispatcher = function () {}),
+                    (Jt.EventDispatcher.prototype = {
+                      constructor: Jt.EventDispatcher,
+                      apply: function (t) {
+                        (t.addEventListener = Jt.EventDispatcher.prototype.addEventListener),
+                          (t.hasEventListener = Jt.EventDispatcher.prototype.hasEventListener),
+                          (t.removeEventListener =
+                            Jt.EventDispatcher.prototype.removeEventListener),
+                          (t.dispatchEvent = Jt.EventDispatcher.prototype.dispatchEvent);
+                      },
+                      addEventListener: function (t, e) {
+                        void 0 === this._listeners && (this._listeners = {});
+                        var n = this._listeners;
+                        void 0 === n[t] && (n[t] = []), -1 === n[t].indexOf(e) && n[t].push(e);
+                      },
+                      hasEventListener: function (t, e) {
+                        if (void 0 === this._listeners) return !1;
+                        var n = this._listeners;
+                        return void 0 !== n[t] && -1 !== n[t].indexOf(e);
+                      },
+                      removeEventListener: function (t, e) {
+                        void 0 !== this._listeners &&
+                          void 0 !== (t = this._listeners[t]) &&
+                          -1 !== (e = t.indexOf(e)) &&
+                          t.splice(e, 1);
+                      },
+                      dispatchEvent: function (t) {
+                        if (void 0 !== this._listeners) {
+                          var e = this._listeners[t.type];
+                          if (void 0 !== e) {
+                            t.target = this;
+                            for (var n = [], r = e.length, i = 0; i < r; i++) n[i] = e[i];
+                            for (i = 0; i < r; i++) n[i].call(this, t);
+                          }
+                        }
+                      },
+                    }),
+                    ((He = Jt).Raycaster = function (t, e, n, r) {
+                      (this.ray = new He.Ray(t, e)),
+                        (this.near = n || 0),
+                        (this.far = r || 1 / 0),
+                        (this.params = {
+                          Sprite: {},
+                          Mesh: {},
+                          PointCloud: { threshold: 1 },
+                          LOD: {},
+                          Line: {},
+                        });
+                    }),
+                    (je = function (t, e, n, r) {
+                      if ((t.raycast(e, n), !0 === r))
+                        for (var i = t.children, o = 0, a = i.length; o < a; o++)
+                          je(i[o], e, n, !0);
+                    }),
+                    (He.Raycaster.prototype = {
+                      constructor: He.Raycaster,
+                      precision: 1e-4,
+                      linePrecision: 1,
+                      set: function (t, e) {
+                        this.ray.set(t, e);
+                      },
+                      setFromCamera: function (t, e) {
+                        e instanceof He.PerspectiveCamera
+                          ? (this.ray.origin.copy(e.position),
+                            this.ray.direction
+                              .set(t.x, t.y, 0.5)
+                              .unproject(e)
+                              .sub(e.position)
+                              .normalize())
+                          : e instanceof He.OrthographicCamera
+                            ? (this.ray.origin.set(t.x, t.y, -1).unproject(e),
+                              this.ray.direction.set(0, 0, -1).transformDirection(e.matrixWorld))
+                            : He.error('THREE.Raycaster: Unsupported camera type.');
+                      },
+                      intersectObject: function (t, e) {
+                        var n = [];
+                        return je(t, this, n, e), n.sort(gr), n;
+                      },
+                      intersectObjects: function (t, e) {
+                        var n = [];
+                        if (t instanceof Array == !1)
+                          return (
+                            He.warn('THREE.Raycaster.intersectObjects: objects is not an Array.'), n
+                          );
+                        for (var r = 0, i = t.length; r < i; r++) je(t[r], this, n, e);
+                        return n.sort(gr), n;
+                      },
+                    }),
+                    (Jt.Object3D = function () {
+                      Object.defineProperty(this, 'id', { value: Jt.Object3DIdCount++ }),
+                        (this.uuid = Jt.Math.generateUUID()),
+                        (this.name = ''),
+                        (this.type = 'Object3D'),
+                        (this.parent = void 0),
+                        (this.children = []),
+                        (this.up = Jt.Object3D.DefaultUp.clone());
+                      var t = new Jt.Vector3(),
+                        e = new Jt.Euler(),
+                        n = new Jt.Quaternion(),
+                        r = new Jt.Vector3(1, 1, 1);
+                      e.onChange(function () {
+                        n.setFromEuler(e, !1);
+                      }),
+                        n.onChange(function () {
+                          e.setFromQuaternion(n, void 0, !1);
+                        }),
+                        Object.defineProperties(this, {
+                          position: { enumerable: !0, value: t },
+                          rotation: { enumerable: !0, value: e },
+                          quaternion: { enumerable: !0, value: n },
+                          scale: { enumerable: !0, value: r },
+                        }),
+                        (this.rotationAutoUpdate = !0),
+                        (this.matrix = new Jt.Matrix4()),
+                        (this.matrixWorld = new Jt.Matrix4()),
+                        (this.matrixAutoUpdate = !0),
+                        (this.matrixWorldNeedsUpdate = !1),
+                        (this.visible = !0),
+                        (this.castShadow = !1),
+                        (this.receiveShadow = !1),
+                        (this.frustumCulled = !0),
+                        (this.renderOrder = 0),
+                        (this.userData = {});
+                    }),
+                    (Jt.Object3D.DefaultUp = new Jt.Vector3(0, 1, 0)),
+                    (Jt.Object3D.prototype = {
+                      constructor: Jt.Object3D,
+                      get eulerOrder() {
+                        return (
+                          Jt.warn('THREE.Object3D: .eulerOrder has been moved to .rotation.order.'),
+                          this.rotation.order
+                        );
+                      },
+                      set eulerOrder(t) {
+                        Jt.warn('THREE.Object3D: .eulerOrder has been moved to .rotation.order.'),
+                          (this.rotation.order = t);
+                      },
+                      get useQuaternion() {
+                        Jt.warn(
+                          'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.',
+                        );
+                      },
+                      set useQuaternion(t) {
+                        Jt.warn(
+                          'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.',
+                        );
+                      },
+                      applyMatrix: function (t) {
+                        this.matrix.multiplyMatrices(t, this.matrix),
+                          this.matrix.decompose(this.position, this.quaternion, this.scale);
+                      },
+                      setRotationFromAxisAngle: function (t, e) {
+                        this.quaternion.setFromAxisAngle(t, e);
+                      },
+                      setRotationFromEuler: function (t) {
+                        this.quaternion.setFromEuler(t, !0);
+                      },
+                      setRotationFromMatrix: function (t) {
+                        this.quaternion.setFromRotationMatrix(t);
+                      },
+                      setRotationFromQuaternion: function (t) {
+                        this.quaternion.copy(t);
+                      },
+                      rotateOnAxis:
+                        ((ln = new Jt.Quaternion()),
+                        function (t, e) {
+                          return ln.setFromAxisAngle(t, e), this.quaternion.multiply(ln), this;
+                        }),
+                      rotateX:
+                        ((sn = new Jt.Vector3(1, 0, 0)),
+                        function (t) {
+                          return this.rotateOnAxis(sn, t);
+                        }),
+                      rotateY:
+                        ((an = new Jt.Vector3(0, 1, 0)),
+                        function (t) {
+                          return this.rotateOnAxis(an, t);
+                        }),
+                      rotateZ:
+                        ((on = new Jt.Vector3(0, 0, 1)),
+                        function (t) {
+                          return this.rotateOnAxis(on, t);
+                        }),
+                      translateOnAxis:
+                        ((rn = new Jt.Vector3()),
+                        function (t, e) {
+                          return (
+                            rn.copy(t).applyQuaternion(this.quaternion),
+                            this.position.add(rn.multiplyScalar(e)),
+                            this
+                          );
+                        }),
+                      translate: function (t, e) {
+                        return (
+                          Jt.warn(
+                            'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.',
+                          ),
+                          this.translateOnAxis(e, t)
+                        );
+                      },
+                      translateX:
+                        ((nn = new Jt.Vector3(1, 0, 0)),
+                        function (t) {
+                          return this.translateOnAxis(nn, t);
+                        }),
+                      translateY:
+                        ((en = new Jt.Vector3(0, 1, 0)),
+                        function (t) {
+                          return this.translateOnAxis(en, t);
+                        }),
+                      translateZ:
+                        ((tn = new Jt.Vector3(0, 0, 1)),
+                        function (t) {
+                          return this.translateOnAxis(tn, t);
+                        }),
+                      localToWorld: function (t) {
+                        return t.applyMatrix4(this.matrixWorld);
+                      },
+                      worldToLocal:
+                        (($e = new Jt.Matrix4()),
+                        function (t) {
+                          return t.applyMatrix4($e.getInverse(this.matrixWorld));
+                        }),
+                      lookAt:
+                        ((Xe = new Jt.Matrix4()),
+                        function (t) {
+                          Xe.lookAt(t, this.position, this.up),
+                            this.quaternion.setFromRotationMatrix(Xe);
+                        }),
+                      add: function (t) {
+                        if (1 < arguments.length)
+                          for (var e = 0; e < arguments.length; e++) this.add(arguments[e]);
+                        else {
+                          if (t === this)
+                            return (
+                              Jt.error(
+                                "THREE.Object3D.add: object can't be added as a child of itself.",
+                                t,
+                              ),
+                              this
+                            );
+                          t instanceof Jt.Object3D
+                            ? (void 0 !== t.parent && t.parent.remove(t),
+                              (t.parent = this),
+                              t.dispatchEvent({ type: 'added' }),
+                              this.children.push(t))
+                            : Jt.error(
+                                'THREE.Object3D.add: object not an instance of THREE.Object3D.',
+                                t,
+                              );
+                        }
+                        return this;
+                      },
+                      remove: function (t) {
+                        if (1 < arguments.length)
+                          for (var e = 0; e < arguments.length; e++) this.remove(arguments[e]);
+                        var n = this.children.indexOf(t);
+                        -1 !== n &&
+                          ((t.parent = void 0),
+                          t.dispatchEvent({ type: 'removed' }),
+                          this.children.splice(n, 1));
+                      },
+                      getChildByName: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().',
+                          ),
+                          this.getObjectByName(t)
+                        );
+                      },
+                      getObjectById: function (t) {
+                        return this.getObjectByProperty('id', t);
+                      },
+                      getObjectByName: function (t) {
+                        return this.getObjectByProperty('name', t);
+                      },
+                      getObjectByProperty: function (t, e) {
+                        if (this[t] === e) return this;
+                        for (var n = 0, r = this.children.length; n < r; n++) {
+                          var i = this.children[n].getObjectByProperty(t, e);
+                          if (void 0 !== i) return i;
+                        }
+                      },
+                      getWorldPosition: function (t) {
+                        t = t || new Jt.Vector3();
+                        return (
+                          this.updateMatrixWorld(!0), t.setFromMatrixPosition(this.matrixWorld)
+                        );
+                      },
+                      getWorldQuaternion:
+                        ((Ke = new Jt.Vector3()),
+                        (Ze = new Jt.Vector3()),
+                        function (t) {
+                          t = t || new Jt.Quaternion();
+                          return (
+                            this.updateMatrixWorld(!0), this.matrixWorld.decompose(Ke, t, Ze), t
+                          );
+                        }),
+                      getWorldRotation:
+                        ((Je = new Jt.Quaternion()),
+                        function (t) {
+                          t = t || new Jt.Euler();
+                          return (
+                            this.getWorldQuaternion(Je),
+                            t.setFromQuaternion(Je, this.rotation.order, !1)
+                          );
+                        }),
+                      getWorldScale:
+                        ((qe = new Jt.Vector3()),
+                        (We = new Jt.Quaternion()),
+                        function (t) {
+                          t = t || new Jt.Vector3();
+                          return (
+                            this.updateMatrixWorld(!0), this.matrixWorld.decompose(qe, We, t), t
+                          );
+                        }),
+                      getWorldDirection:
+                        ((Ve = new Jt.Quaternion()),
+                        function (t) {
+                          t = t || new Jt.Vector3();
+                          return this.getWorldQuaternion(Ve), t.set(0, 0, 1).applyQuaternion(Ve);
+                        }),
+                      raycast: function () {},
+                      traverse: function (t) {
+                        t(this);
+                        for (var e = 0, n = this.children.length; e < n; e++)
+                          this.children[e].traverse(t);
+                      },
+                      traverseVisible: function (t) {
+                        if (!1 !== this.visible) {
+                          t(this);
+                          for (var e = 0, n = this.children.length; e < n; e++)
+                            this.children[e].traverseVisible(t);
+                        }
+                      },
+                      traverseAncestors: function (t) {
+                        this.parent && (t(this.parent), this.parent.traverseAncestors(t));
+                      },
+                      updateMatrix: function () {
+                        this.matrix.compose(this.position, this.quaternion, this.scale),
+                          (this.matrixWorldNeedsUpdate = !0);
+                      },
+                      updateMatrixWorld: function (t) {
+                        !0 === this.matrixAutoUpdate && this.updateMatrix(),
+                          (!0 !== this.matrixWorldNeedsUpdate && !0 !== t) ||
+                            (void 0 === this.parent
+                              ? this.matrixWorld.copy(this.matrix)
+                              : this.matrixWorld.multiplyMatrices(
+                                  this.parent.matrixWorld,
+                                  this.matrix,
+                                ),
+                            (t = !(this.matrixWorldNeedsUpdate = !1)));
+                        for (var e = 0, n = this.children.length; e < n; e++)
+                          this.children[e].updateMatrixWorld(t);
+                      },
+                      toJSON: function () {
+                        var n = {
+                            metadata: { version: 4.3, type: 'Object', generator: 'ObjectExporter' },
+                          },
+                          r = {},
+                          i = function (t) {
+                            var e;
+                            return (
+                              void 0 === n.geometries && (n.geometries = []),
+                              void 0 === r[t.uuid] &&
+                                (delete (e = t.toJSON()).metadata,
+                                (r[t.uuid] = e),
+                                n.geometries.push(e)),
+                              t.uuid
+                            );
+                          },
+                          o = {},
+                          a = function (t) {
+                            var e;
+                            return (
+                              void 0 === n.materials && (n.materials = []),
+                              void 0 === o[t.uuid] &&
+                                (delete (e = t.toJSON()).metadata,
+                                (o[t.uuid] = e),
+                                n.materials.push(e)),
+                              t.uuid
+                            );
+                          },
+                          s = function (t) {
+                            var e = {};
+                            if (
+                              ((e.uuid = t.uuid),
+                              (e.type = t.type),
+                              '' !== t.name && (e.name = t.name),
+                              '{}' !== JSON.stringify(t.userData) && (e.userData = t.userData),
+                              !0 !== t.visible && (e.visible = t.visible),
+                              t instanceof Jt.PerspectiveCamera
+                                ? ((e.fov = t.fov),
+                                  (e.aspect = t.aspect),
+                                  (e.near = t.near),
+                                  (e.far = t.far))
+                                : t instanceof Jt.OrthographicCamera
+                                  ? ((e.left = t.left),
+                                    (e.right = t.right),
+                                    (e.top = t.top),
+                                    (e.bottom = t.bottom),
+                                    (e.near = t.near),
+                                    (e.far = t.far))
+                                  : t instanceof Jt.AmbientLight
+                                    ? (e.color = t.color.getHex())
+                                    : t instanceof Jt.DirectionalLight
+                                      ? ((e.color = t.color.getHex()), (e.intensity = t.intensity))
+                                      : t instanceof Jt.PointLight
+                                        ? ((e.color = t.color.getHex()),
+                                          (e.intensity = t.intensity),
+                                          (e.distance = t.distance),
+                                          (e.decay = t.decay))
+                                        : t instanceof Jt.SpotLight
+                                          ? ((e.color = t.color.getHex()),
+                                            (e.intensity = t.intensity),
+                                            (e.distance = t.distance),
+                                            (e.angle = t.angle),
+                                            (e.exponent = t.exponent),
+                                            (e.decay = t.decay))
+                                          : t instanceof Jt.HemisphereLight
+                                            ? ((e.color = t.color.getHex()),
+                                              (e.groundColor = t.groundColor.getHex()))
+                                            : t instanceof Jt.Mesh ||
+                                                t instanceof Jt.Line ||
+                                                t instanceof Jt.PointCloud
+                                              ? ((e.geometry = i(t.geometry)),
+                                                (e.material = a(t.material)),
+                                                t instanceof Jt.Line && (e.mode = t.mode))
+                                              : t instanceof Jt.Sprite &&
+                                                (e.material = a(t.material)),
+                              (e.matrix = t.matrix.toArray()),
+                              0 < t.children.length)
+                            ) {
+                              e.children = [];
+                              for (var n = 0; n < t.children.length; n++)
+                                e.children.push(s(t.children[n]));
+                            }
+                            return e;
+                          };
+                        return (n.object = s(this)), n;
+                      },
+                      clone: function (t, e) {
+                        if (
+                          (void 0 === e && (e = !0),
+                          ((t = void 0 === t ? new Jt.Object3D() : t).name = this.name),
+                          t.up.copy(this.up),
+                          t.position.copy(this.position),
+                          t.quaternion.copy(this.quaternion),
+                          t.scale.copy(this.scale),
+                          (t.rotationAutoUpdate = this.rotationAutoUpdate),
+                          t.matrix.copy(this.matrix),
+                          t.matrixWorld.copy(this.matrixWorld),
+                          (t.matrixAutoUpdate = this.matrixAutoUpdate),
+                          (t.matrixWorldNeedsUpdate = this.matrixWorldNeedsUpdate),
+                          (t.visible = this.visible),
+                          (t.castShadow = this.castShadow),
+                          (t.receiveShadow = this.receiveShadow),
+                          (t.frustumCulled = this.frustumCulled),
+                          (t.userData = JSON.parse(JSON.stringify(this.userData))),
+                          !0 === e)
+                        )
+                          for (var n = 0; n < this.children.length; n++) {
+                            var r = this.children[n];
+                            t.add(r.clone());
+                          }
+                        return t;
+                      },
+                    }),
+                    Jt.EventDispatcher.prototype.apply(Jt.Object3D.prototype),
+                    (Jt.Object3DIdCount = 0),
+                    (Jt.Face3 = function (t, e, n, r, i, o) {
+                      (this.a = t),
+                        (this.b = e),
+                        (this.c = n),
+                        (this.normal = r instanceof Jt.Vector3 ? r : new Jt.Vector3()),
+                        (this.vertexNormals = r instanceof Array ? r : []),
+                        (this.color = i instanceof Jt.Color ? i : new Jt.Color()),
+                        (this.vertexColors = i instanceof Array ? i : []),
+                        (this.vertexTangents = []),
+                        (this.materialIndex = void 0 !== o ? o : 0);
+                    }),
+                    (Jt.Face3.prototype = {
+                      constructor: Jt.Face3,
+                      clone: function () {
+                        var t = new Jt.Face3(this.a, this.b, this.c);
+                        t.normal.copy(this.normal),
+                          t.color.copy(this.color),
+                          (t.materialIndex = this.materialIndex);
+                        for (var e = 0, n = this.vertexNormals.length; e < n; e++)
+                          t.vertexNormals[e] = this.vertexNormals[e].clone();
+                        for (e = 0, n = this.vertexColors.length; e < n; e++)
+                          t.vertexColors[e] = this.vertexColors[e].clone();
+                        for (e = 0, n = this.vertexTangents.length; e < n; e++)
+                          t.vertexTangents[e] = this.vertexTangents[e].clone();
+                        return t;
+                      },
+                    }),
+                    (Jt.Face4 = function (t, e, n, r, i, o, a) {
+                      return (
+                        Jt.warn(
+                          'THREE.Face4 has been removed. A THREE.Face3 will be created instead.',
+                        ),
+                        new Jt.Face3(t, e, n, i, o, a)
+                      );
+                    }),
+                    (Jt.BufferAttribute = function (t, e) {
+                      (this.array = t), (this.itemSize = e), (this.needsUpdate = !1);
+                    }),
+                    (Jt.BufferAttribute.prototype = {
+                      constructor: Jt.BufferAttribute,
+                      get length() {
+                        return this.array.length;
+                      },
+                      copyAt: function (t, e, n) {
+                        (t *= this.itemSize), (n *= e.itemSize);
+                        for (var r = 0, i = this.itemSize; r < i; r++)
+                          this.array[t + r] = e.array[n + r];
+                        return this;
+                      },
+                      set: function (t, e) {
+                        return this.array.set(t, (e = void 0 === e ? 0 : e)), this;
+                      },
+                      setX: function (t, e) {
+                        return (this.array[t * this.itemSize] = e), this;
+                      },
+                      setY: function (t, e) {
+                        return (this.array[t * this.itemSize + 1] = e), this;
+                      },
+                      setZ: function (t, e) {
+                        return (this.array[t * this.itemSize + 2] = e), this;
+                      },
+                      setXY: function (t, e, n) {
+                        return (
+                          (t *= this.itemSize), (this.array[t] = e), (this.array[t + 1] = n), this
+                        );
+                      },
+                      setXYZ: function (t, e, n, r) {
+                        return (
+                          (t *= this.itemSize),
+                          (this.array[t] = e),
+                          (this.array[t + 1] = n),
+                          (this.array[t + 2] = r),
+                          this
+                        );
+                      },
+                      setXYZW: function (t, e, n, r, i) {
+                        return (
+                          (t *= this.itemSize),
+                          (this.array[t] = e),
+                          (this.array[t + 1] = n),
+                          (this.array[t + 2] = r),
+                          (this.array[t + 3] = i),
+                          this
+                        );
+                      },
+                      clone: function () {
+                        return new Jt.BufferAttribute(
+                          new this.array.constructor(this.array),
+                          this.itemSize,
+                        );
+                      },
+                    }),
+                    (Jt.Int8Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Int8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Uint8Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Uint8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Uint8ClampedAttribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Uint8ClampedAttribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Int16Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Int16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Uint16Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Uint16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Int32Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Int32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Uint32Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Uint32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Float32Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Float32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.Float64Attribute = function (t, e) {
+                      return (
+                        Jt.warn(
+                          'THREE.Float64Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.',
+                        ),
+                        new Jt.BufferAttribute(t, e)
+                      );
+                    }),
+                    (Jt.DynamicBufferAttribute = function (t, e) {
+                      Jt.BufferAttribute.call(this, t, e),
+                        (this.updateRange = { offset: 0, count: -1 });
+                    }),
+                    (Jt.DynamicBufferAttribute.prototype = Object.create(
+                      Jt.BufferAttribute.prototype,
+                    )),
+                    (Jt.DynamicBufferAttribute.prototype.constructor = Jt.DynamicBufferAttribute),
+                    (Jt.DynamicBufferAttribute.prototype.clone = function () {
+                      return new Jt.DynamicBufferAttribute(
+                        new this.array.constructor(this.array),
+                        this.itemSize,
+                      );
+                    }),
+                    (Jt.BufferGeometry = function () {
+                      Object.defineProperty(this, 'id', { value: Jt.GeometryIdCount++ }),
+                        (this.uuid = Jt.Math.generateUUID()),
+                        (this.name = ''),
+                        (this.type = 'BufferGeometry'),
+                        (this.attributes = {}),
+                        (this.attributesKeys = []),
+                        (this.drawcalls = []),
+                        (this.offsets = this.drawcalls),
+                        (this.boundingBox = null),
+                        (this.boundingSphere = null);
+                    }),
+                    (Jt.BufferGeometry.prototype = {
+                      constructor: Jt.BufferGeometry,
+                      addAttribute: function (t, e) {
+                        if (e instanceof Jt.BufferAttribute == !1)
+                          return (
+                            Jt.warn(
+                              'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).',
+                            ),
+                            void (this.attributes[t] = { array: e, itemSize: arguments[2] })
+                          );
+                        (this.attributes[t] = e),
+                          (this.attributesKeys = Object.keys(this.attributes));
+                      },
+                      getAttribute: function (t) {
+                        return this.attributes[t];
+                      },
+                      addDrawCall: function (t, e, n) {
+                        this.drawcalls.push({ start: t, count: e, index: void 0 !== n ? n : 0 });
+                      },
+                      applyMatrix: function (t) {
+                        var e = this.attributes.position,
+                          e =
+                            (void 0 !== e && (t.applyToVector3Array(e.array), (e.needsUpdate = !0)),
+                            this.attributes.normal);
+                        void 0 !== e &&
+                          (new Jt.Matrix3().getNormalMatrix(t).applyToVector3Array(e.array),
+                          (e.needsUpdate = !0)),
+                          null !== this.boundingBox && this.computeBoundingBox(),
+                          null !== this.boundingSphere && this.computeBoundingSphere();
+                      },
+                      center: function () {
+                        this.computeBoundingBox();
+                        var t = this.boundingBox.center().negate();
+                        return this.applyMatrix(new Jt.Matrix4().setPosition(t)), t;
+                      },
+                      fromGeometry: function (t, e) {
+                        e = e || { vertexColors: Jt.NoColors };
+                        var n,
+                          r,
+                          i = t.vertices,
+                          o = t.faces,
+                          a = t.faceVertexUvs,
+                          s = e.vertexColors,
+                          l = 0 < a[0].length,
+                          u = 3 == o[0].vertexNormals.length,
+                          c = new Float32Array(3 * o.length * 3),
+                          A =
+                            (this.addAttribute('position', new Jt.BufferAttribute(c, 3)),
+                            new Float32Array(3 * o.length * 3));
+                        this.addAttribute('normal', new Jt.BufferAttribute(A, 3)),
+                          s !== Jt.NoColors &&
+                            ((n = new Float32Array(3 * o.length * 3)),
+                            this.addAttribute('color', new Jt.BufferAttribute(n, 3))),
+                          !0 == l &&
+                            ((r = new Float32Array(3 * o.length * 2)),
+                            this.addAttribute('uv', new Jt.BufferAttribute(r, 2)));
+                        for (var h = 0, p = 0, d = 0; h < o.length; h++, p += 6, d += 9) {
+                          var f = o[h],
+                            g = i[f.a],
+                            m = i[f.b],
+                            v = i[f.c];
+                          (c[d] = g.x),
+                            (c[d + 1] = g.y),
+                            (c[d + 2] = g.z),
+                            (c[d + 3] = m.x),
+                            (c[d + 4] = m.y),
+                            (c[d + 5] = m.z),
+                            (c[d + 6] = v.x),
+                            (c[d + 7] = v.y),
+                            (c[d + 8] = v.z),
+                            !0 == u
+                              ? ((g = f.vertexNormals[0]),
+                                (m = f.vertexNormals[1]),
+                                (v = f.vertexNormals[2]),
+                                (A[d] = g.x),
+                                (A[d + 1] = g.y),
+                                (A[d + 2] = g.z),
+                                (A[d + 3] = m.x),
+                                (A[d + 4] = m.y),
+                                (A[d + 5] = m.z),
+                                (A[d + 6] = v.x),
+                                (A[d + 7] = v.y),
+                                (A[d + 8] = v.z))
+                              : ((g = f.normal),
+                                (A[d] = g.x),
+                                (A[d + 1] = g.y),
+                                (A[d + 2] = g.z),
+                                (A[d + 3] = g.x),
+                                (A[d + 4] = g.y),
+                                (A[d + 5] = g.z),
+                                (A[d + 6] = g.x),
+                                (A[d + 7] = g.y),
+                                (A[d + 8] = g.z)),
+                            s === Jt.FaceColors
+                              ? ((m = f.color),
+                                (n[d] = m.r),
+                                (n[d + 1] = m.g),
+                                (n[d + 2] = m.b),
+                                (n[d + 3] = m.r),
+                                (n[d + 4] = m.g),
+                                (n[d + 5] = m.b),
+                                (n[d + 6] = m.r),
+                                (n[d + 7] = m.g),
+                                (n[d + 8] = m.b))
+                              : s === Jt.VertexColors &&
+                                ((v = f.vertexColors[0]),
+                                (g = f.vertexColors[1]),
+                                (m = f.vertexColors[2]),
+                                (n[d] = v.r),
+                                (n[d + 1] = v.g),
+                                (n[d + 2] = v.b),
+                                (n[d + 3] = g.r),
+                                (n[d + 4] = g.g),
+                                (n[d + 5] = g.b),
+                                (n[d + 6] = m.r),
+                                (n[d + 7] = m.g),
+                                (n[d + 8] = m.b)),
+                            !0 == l &&
+                              ((f = a[0][h][0]),
+                              (v = a[0][h][1]),
+                              (g = a[0][h][2]),
+                              (r[p] = f.x),
+                              (r[p + 1] = f.y),
+                              (r[p + 2] = v.x),
+                              (r[p + 3] = v.y),
+                              (r[p + 4] = g.x),
+                              (r[p + 5] = g.y));
+                        }
+                        return this.computeBoundingSphere(), this;
+                      },
+                      computeBoundingBox:
+                        ((An = new Jt.Vector3()),
+                        function () {
+                          null === this.boundingBox && (this.boundingBox = new Jt.Box3());
+                          var t = this.attributes.position.array;
+                          if (t) {
+                            var e = this.boundingBox;
+                            e.makeEmpty();
+                            for (var n = 0, r = t.length; n < r; n += 3)
+                              An.set(t[n], t[n + 1], t[n + 2]), e.expandByPoint(An);
+                          }
+                          (void 0 !== t && 0 !== t.length) ||
+                            (this.boundingBox.min.set(0, 0, 0), this.boundingBox.max.set(0, 0, 0)),
+                            (isNaN(this.boundingBox.min.x) ||
+                              isNaN(this.boundingBox.min.y) ||
+                              isNaN(this.boundingBox.min.z)) &&
+                              Jt.error(
+                                'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',
+                              );
+                        }),
+                      computeBoundingSphere:
+                        ((un = new Jt.Box3()),
+                        (cn = new Jt.Vector3()),
+                        function () {
+                          null === this.boundingSphere && (this.boundingSphere = new Jt.Sphere());
+                          var t = this.attributes.position.array;
+                          if (t) {
+                            un.makeEmpty();
+                            for (
+                              var e = this.boundingSphere.center, n = 0, r = t.length;
+                              n < r;
+                              n += 3
+                            )
+                              cn.set(t[n], t[n + 1], t[n + 2]), un.expandByPoint(cn);
+                            un.center(e);
+                            for (var i = 0, n = 0, r = t.length; n < r; n += 3)
+                              cn.set(t[n], t[n + 1], t[n + 2]),
+                                (i = Math.max(i, e.distanceToSquared(cn)));
+                            (this.boundingSphere.radius = Math.sqrt(i)),
+                              isNaN(this.boundingSphere.radius) &&
+                                Jt.error(
+                                  'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',
+                                );
+                          }
+                        }),
+                      computeFaceNormals: function () {},
+                      computeVertexNormals: function () {
+                        var t = this.attributes;
+                        if (t.position) {
+                          var e = t.position.array;
+                          if (void 0 === t.normal)
+                            this.addAttribute(
+                              'normal',
+                              new Jt.BufferAttribute(new Float32Array(e.length), 3),
+                            );
+                          else
+                            for (var n = 0, r = (s = t.normal.array).length; n < r; n++) s[n] = 0;
+                          var i,
+                            o,
+                            a,
+                            s = t.normal.array,
+                            l = new Jt.Vector3(),
+                            u = new Jt.Vector3(),
+                            c = new Jt.Vector3(),
+                            A = new Jt.Vector3(),
+                            h = new Jt.Vector3();
+                          if (t.index)
+                            for (
+                              var p = t.index.array,
+                                d =
+                                  0 < this.offsets.length
+                                    ? this.offsets
+                                    : [{ start: 0, count: p.length, index: 0 }],
+                                f = 0,
+                                g = d.length;
+                              f < g;
+                              ++f
+                            )
+                              for (
+                                var m = d[f].start,
+                                  v = d[f].count,
+                                  b = d[f].index,
+                                  n = m,
+                                  r = m + v;
+                                n < r;
+                                n += 3
+                              )
+                                (i = 3 * (b + p[n])),
+                                  (o = 3 * (b + p[n + 1])),
+                                  (a = 3 * (b + p[n + 2])),
+                                  l.fromArray(e, i),
+                                  u.fromArray(e, o),
+                                  c.fromArray(e, a),
+                                  A.subVectors(c, u),
+                                  h.subVectors(l, u),
+                                  A.cross(h),
+                                  (s[i] += A.x),
+                                  (s[1 + i] += A.y),
+                                  (s[2 + i] += A.z),
+                                  (s[o] += A.x),
+                                  (s[1 + o] += A.y),
+                                  (s[2 + o] += A.z),
+                                  (s[a] += A.x),
+                                  (s[1 + a] += A.y),
+                                  (s[2 + a] += A.z);
+                          else
+                            for (n = 0, r = e.length; n < r; n += 9)
+                              l.fromArray(e, n),
+                                u.fromArray(e, n + 3),
+                                c.fromArray(e, n + 6),
+                                A.subVectors(c, u),
+                                h.subVectors(l, u),
+                                A.cross(h),
+                                (s[n] = A.x),
+                                (s[n + 1] = A.y),
+                                (s[n + 2] = A.z),
+                                (s[n + 3] = A.x),
+                                (s[n + 4] = A.y),
+                                (s[n + 5] = A.z),
+                                (s[n + 6] = A.x),
+                                (s[n + 7] = A.y),
+                                (s[n + 8] = A.z);
+                          this.normalizeNormals(), (t.normal.needsUpdate = !0);
+                        }
+                      },
+                      computeTangents: function () {
+                        if (
+                          void 0 === this.attributes.index ||
+                          void 0 === this.attributes.position ||
+                          void 0 === this.attributes.normal ||
+                          void 0 === this.attributes.uv
+                        )
+                          Jt.warn(
+                            'THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()',
+                          );
+                        else {
+                          for (
+                            var t = this.attributes.index.array,
+                              e = this.attributes.position.array,
+                              U = this.attributes.normal.array,
+                              n = this.attributes.uv.array,
+                              N = e.length / 3,
+                              r =
+                                (void 0 === this.attributes.tangent &&
+                                  this.addAttribute(
+                                    'tangent',
+                                    new Jt.BufferAttribute(new Float32Array(4 * N), 4),
+                                  ),
+                                this.attributes.tangent.array),
+                              i = [],
+                              o = [],
+                              a = 0;
+                            a < N;
+                            a++
+                          )
+                            (i[a] = new Jt.Vector3()), (o[a] = new Jt.Vector3());
+                          for (
+                            var s,
+                              l,
+                              u,
+                              c,
+                              P,
+                              L,
+                              A,
+                              h,
+                              p,
+                              d,
+                              f,
+                              g,
+                              m,
+                              v,
+                              b,
+                              y,
+                              w,
+                              E = new Jt.Vector3(),
+                              B = new Jt.Vector3(),
+                              C = new Jt.Vector3(),
+                              x = new Jt.Vector2(),
+                              Y = new Jt.Vector2(),
+                              O = new Jt.Vector2(),
+                              I = new Jt.Vector3(),
+                              M = new Jt.Vector3(),
+                              D =
+                                (0 === this.drawcalls.length && this.addDrawCall(0, t.length, 0),
+                                this.drawcalls),
+                              S = 0,
+                              G = D.length;
+                            S < G;
+                            ++S
+                          )
+                            for (
+                              var k = D[S].start, z = D[S].count, F = D[S].index, Q = k, H = k + z;
+                              Q < H;
+                              Q += 3
+                            )
+                              (g = F + t[Q]),
+                                (m = F + t[Q + 1]),
+                                (v = F + t[Q + 2]),
+                                (b = g),
+                                (y = m),
+                                (w = v),
+                                E.fromArray(e, 3 * b),
+                                B.fromArray(e, 3 * y),
+                                C.fromArray(e, 3 * w),
+                                x.fromArray(n, 2 * b),
+                                Y.fromArray(n, 2 * y),
+                                O.fromArray(n, 2 * w),
+                                (s = B.x - E.x),
+                                (l = C.x - E.x),
+                                (u = B.y - E.y),
+                                (c = C.y - E.y),
+                                (P = B.z - E.z),
+                                (L = C.z - E.z),
+                                (A = Y.x - x.x),
+                                (h = O.x - x.x),
+                                (p = Y.y - x.y),
+                                (d = O.y - x.y),
+                                I.set(
+                                  (d * s - p * l) * (f = 1 / (A * d - h * p)),
+                                  (d * u - p * c) * f,
+                                  (d * P - p * L) * f,
+                                ),
+                                M.set(
+                                  (A * l - h * s) * f,
+                                  (A * c - h * u) * f,
+                                  (A * L - h * P) * f,
+                                ),
+                                i[b].add(I),
+                                i[y].add(I),
+                                i[w].add(I),
+                                o[b].add(M),
+                                o[y].add(M),
+                                o[w].add(M);
+                          var _,
+                            T = new Jt.Vector3(),
+                            j = new Jt.Vector3(),
+                            R = new Jt.Vector3(),
+                            V = new Jt.Vector3();
+                          for (S = 0, G = D.length; S < G; ++S) {
+                            (k = D[S].start), (z = D[S].count), (F = D[S].index);
+                            for (H = (Q = k) + z; Q < H; Q += 3)
+                              (g = F + t[Q]),
+                                (m = F + t[Q + 1]),
+                                (v = F + t[Q + 2]),
+                                q(g),
+                                q(m),
+                                q(v);
+                          }
+                        }
+                        function q(t) {
+                          R.fromArray(U, 3 * t),
+                            V.copy(R),
+                            (_ = i[t]),
+                            T.copy(_),
+                            T.sub(R.multiplyScalar(R.dot(_))).normalize(),
+                            j.crossVectors(V, _),
+                            (_ = j.dot(o[t])),
+                            (_ = _ < 0 ? -1 : 1),
+                            (r[4 * t] = T.x),
+                            (r[4 * t + 1] = T.y),
+                            (r[4 * t + 2] = T.z),
+                            (r[4 * t + 3] = _);
+                        }
+                      },
+                      computeOffsets: function (t) {
+                        void 0 === t && (t = 65535);
+                        for (
+                          var e = this.attributes.index.array,
+                            n = this.attributes.position.array,
+                            r = e.length / 3,
+                            i = new Uint16Array(e.length),
+                            o = 0,
+                            a = 0,
+                            s = [{ start: 0, count: 0, index: 0 }],
+                            l = s[0],
+                            u = 0,
+                            c = new Int32Array(6),
+                            A = new Int32Array(n.length),
+                            h = new Int32Array(n.length),
+                            p = 0;
+                          p < n.length;
+                          p++
+                        )
+                          (A[p] = -1), (h[p] = -1);
+                        for (var d = 0; d < r; d++) {
+                          for (var u = 0, f = 0; f < 3; f++)
+                            -1 == A[(b = e[3 * d + f])]
+                              ? ((c[2 * f] = b), (c[2 * f + 1] = -1), u++)
+                              : A[b] < l.index
+                                ? ((c[2 * f] = b), (c[2 * f + 1] = -1), 0)
+                                : ((c[2 * f] = b), (c[2 * f + 1] = A[b]));
+                          if (a + u > l.index + t) {
+                            var g = { start: o, count: 0, index: a };
+                            s.push(g);
+                            for (var l = g, m = 0; m < 6; m += 2)
+                              -1 < (v = c[m + 1]) && v < l.index && (c[m + 1] = -1);
+                          }
+                          for (m = 0; m < 6; m += 2) {
+                            var v,
+                              b = c[m];
+                            -1 === (v = c[m + 1]) && (v = a++),
+                              (h[(A[b] = v)] = b),
+                              (i[o++] = v - l.index),
+                              l.count++;
+                          }
+                        }
+                        return (
+                          this.reorderBuffers(i, h, a), (this.offsets = s), (this.drawcalls = s)
+                        );
+                      },
+                      merge: function (t, e) {
+                        if (t instanceof Jt.BufferGeometry != !1) {
+                          void 0 === e && (e = 0);
+                          var n,
+                            r = this.attributes;
+                          for (n in r)
+                            if (void 0 !== t.attributes[n])
+                              for (
+                                var i = r[n].array,
+                                  o = t.attributes[n],
+                                  a = o.array,
+                                  s = 0,
+                                  l = o.itemSize * e;
+                                s < a.length;
+                                s++, l++
+                              )
+                                i[l] = a[s];
+                          return this;
+                        }
+                        Jt.error(
+                          'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.',
+                          t,
+                        );
+                      },
+                      normalizeNormals: function () {
+                        for (
+                          var t, e, n, r = this.attributes.normal.array, i = 0, o = r.length;
+                          i < o;
+                          i += 3
+                        )
+                          (n = r[i]),
+                            (t = r[i + 1]),
+                            (e = r[i + 2]),
+                            (n = 1 / Math.sqrt(n * n + t * t + e * e)),
+                            (r[i] *= n),
+                            (r[i + 1] *= n),
+                            (r[i + 2] *= n);
+                      },
+                      reorderBuffers: function (t, e, n) {
+                        var r,
+                          i = {};
+                        for (a in this.attributes)
+                          'index' != a &&
+                            ((r = this.attributes[a].array),
+                            (i[a] = new r.constructor(this.attributes[a].itemSize * n)));
+                        for (var o = 0; o < n; o++) {
+                          var a,
+                            s = e[o];
+                          for (a in this.attributes)
+                            if ('index' != a)
+                              for (
+                                var l = this.attributes[a].array,
+                                  u = this.attributes[a].itemSize,
+                                  c = i[a],
+                                  A = 0;
+                                A < u;
+                                A++
+                              )
+                                c[o * u + A] = l[s * u + A];
+                        }
+                        for (a in ((this.attributes.index.array = t), this.attributes))
+                          'index' != a &&
+                            ((this.attributes[a].array = i[a]),
+                            (this.attributes[a].numItems = this.attributes[a].itemSize * n));
+                      },
+                      toJSON: function () {
+                        var t,
+                          e = {
+                            metadata: {
+                              version: 4,
+                              type: 'BufferGeometry',
+                              generator: 'BufferGeometryExporter',
+                            },
+                            uuid: this.uuid,
+                            type: this.type,
+                            data: { attributes: {} },
+                          },
+                          n = this.attributes,
+                          r = this.offsets,
+                          i = this.boundingSphere;
+                        for (t in n) {
+                          var o = n[t],
+                            a = Array.prototype.slice.call(o.array);
+                          e.data.attributes[t] = {
+                            itemSize: o.itemSize,
+                            type: o.array.constructor.name,
+                            array: a,
+                          };
+                        }
+                        return (
+                          0 < r.length && (e.data.offsets = JSON.parse(JSON.stringify(r))),
+                          null !== i &&
+                            (e.data.boundingSphere = {
+                              center: i.center.toArray(),
+                              radius: i.radius,
+                            }),
+                          e
+                        );
+                      },
+                      clone: function () {
+                        var t,
+                          e = new Jt.BufferGeometry();
+                        for (t in this.attributes) {
+                          var n = this.attributes[t];
+                          e.addAttribute(t, n.clone());
+                        }
+                        for (var r = 0, i = this.offsets.length; r < i; r++) {
+                          var o = this.offsets[r];
+                          e.offsets.push({ start: o.start, index: o.index, count: o.count });
+                        }
+                        return e;
+                      },
+                      dispose: function () {
+                        this.dispatchEvent({ type: 'dispose' });
+                      },
+                    }),
+                    Jt.EventDispatcher.prototype.apply(Jt.BufferGeometry.prototype),
+                    (Jt.Geometry = function () {
+                      Object.defineProperty(this, 'id', { value: Jt.GeometryIdCount++ }),
+                        (this.uuid = Jt.Math.generateUUID()),
+                        (this.name = ''),
+                        (this.type = 'Geometry'),
+                        (this.vertices = []),
+                        (this.colors = []),
+                        (this.faces = []),
+                        (this.faceVertexUvs = [[]]),
+                        (this.morphTargets = []),
+                        (this.morphColors = []),
+                        (this.morphNormals = []),
+                        (this.skinWeights = []),
+                        (this.skinIndices = []),
+                        (this.lineDistances = []),
+                        (this.boundingBox = null),
+                        (this.boundingSphere = null),
+                        (this.hasTangents = !1),
+                        (this.dynamic = !0),
+                        (this.verticesNeedUpdate = !1),
+                        (this.elementsNeedUpdate = !1),
+                        (this.uvsNeedUpdate = !1),
+                        (this.normalsNeedUpdate = !1),
+                        (this.tangentsNeedUpdate = !1),
+                        (this.colorsNeedUpdate = !1),
+                        (this.lineDistancesNeedUpdate = !1),
+                        (this.groupsNeedUpdate = !1);
+                    }),
+                    (Jt.Geometry.prototype = {
+                      constructor: Jt.Geometry,
+                      applyMatrix: function (t) {
+                        for (
+                          var e = new Jt.Matrix3().getNormalMatrix(t),
+                            n = 0,
+                            r = this.vertices.length;
+                          n < r;
+                          n++
+                        )
+                          this.vertices[n].applyMatrix4(t);
+                        for (n = 0, r = this.faces.length; n < r; n++) {
+                          var i = this.faces[n];
+                          i.normal.applyMatrix3(e).normalize();
+                          for (var o = 0, a = i.vertexNormals.length; o < a; o++)
+                            i.vertexNormals[o].applyMatrix3(e).normalize();
+                        }
+                        null !== this.boundingBox && this.computeBoundingBox(),
+                          null !== this.boundingSphere && this.computeBoundingSphere(),
+                          (this.verticesNeedUpdate = !0),
+                          (this.normalsNeedUpdate = !0);
+                      },
+                      fromBufferGeometry: function (t) {
+                        for (
+                          var o = this,
+                            e = t.attributes,
+                            n = e.position.array,
+                            r = void 0 !== e.index ? e.index.array : void 0,
+                            a = void 0 !== e.normal ? e.normal.array : void 0,
+                            s = void 0 !== e.color ? e.color.array : void 0,
+                            l = void 0 !== e.uv ? e.uv.array : void 0,
+                            u = [],
+                            c = [],
+                            i = 0,
+                            A = 0;
+                          i < n.length;
+                          i += 3, A += 2
+                        )
+                          o.vertices.push(new Jt.Vector3(n[i], n[i + 1], n[i + 2])),
+                            void 0 !== a && u.push(new Jt.Vector3(a[i], a[i + 1], a[i + 2])),
+                            void 0 !== s && o.colors.push(new Jt.Color(s[i], s[i + 1], s[i + 2])),
+                            void 0 !== l && c.push(new Jt.Vector2(l[A], l[A + 1]));
+                        function h(t, e, n) {
+                          var r = void 0 !== a ? [u[t].clone(), u[e].clone(), u[n].clone()] : [],
+                            i =
+                              void 0 !== s
+                                ? [o.colors[t].clone(), o.colors[e].clone(), o.colors[n].clone()]
+                                : [];
+                          o.faces.push(new Jt.Face3(t, e, n, r, i)),
+                            void 0 !== l &&
+                              o.faceVertexUvs[0].push([c[t].clone(), c[e].clone(), c[n].clone()]);
+                        }
+                        if (void 0 !== r) {
+                          var p = t.drawcalls;
+                          if (0 < p.length)
+                            for (i = 0; i < p.length; i++)
+                              for (
+                                var d = p[i],
+                                  f = d.start,
+                                  g = d.count,
+                                  m = d.index,
+                                  A = f,
+                                  v = f + g;
+                                A < v;
+                                A += 3
+                              )
+                                h(m + r[A], m + r[A + 1], m + r[A + 2]);
+                          else for (i = 0; i < r.length; i += 3) h(r[i], r[i + 1], r[i + 2]);
+                        } else for (i = 0; i < n.length / 3; i += 3) h(i, i + 1, i + 2);
+                        return (
+                          this.computeFaceNormals(),
+                          null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone()),
+                          null !== t.boundingSphere &&
+                            (this.boundingSphere = t.boundingSphere.clone()),
+                          this
+                        );
+                      },
+                      center: function () {
+                        this.computeBoundingBox();
+                        var t = this.boundingBox.center().negate();
+                        return this.applyMatrix(new Jt.Matrix4().setPosition(t)), t;
+                      },
+                      computeFaceNormals: function () {
+                        for (
+                          var t = new Jt.Vector3(),
+                            e = new Jt.Vector3(),
+                            n = 0,
+                            r = this.faces.length;
+                          n < r;
+                          n++
+                        ) {
+                          var i = this.faces[n],
+                            o = this.vertices[i.a],
+                            a = this.vertices[i.b],
+                            s = this.vertices[i.c];
+                          t.subVectors(s, a),
+                            e.subVectors(o, a),
+                            t.cross(e),
+                            t.normalize(),
+                            i.normal.copy(t);
+                        }
+                      },
+                      computeVertexNormals: function (t) {
+                        for (
+                          var e,
+                            n = new Array(this.vertices.length),
+                            r = 0,
+                            i = this.vertices.length;
+                          r < i;
+                          r++
+                        )
+                          n[r] = new Jt.Vector3();
+                        if (t)
+                          for (
+                            var o,
+                              a,
+                              s,
+                              l = new Jt.Vector3(),
+                              u = new Jt.Vector3(),
+                              c = 0,
+                              A = this.faces.length;
+                            c < A;
+                            c++
+                          )
+                            (e = this.faces[c]),
+                              (o = this.vertices[e.a]),
+                              (a = this.vertices[e.b]),
+                              (s = this.vertices[e.c]),
+                              l.subVectors(s, a),
+                              u.subVectors(o, a),
+                              l.cross(u),
+                              n[e.a].add(l),
+                              n[e.b].add(l),
+                              n[e.c].add(l);
+                        else
+                          for (c = 0, A = this.faces.length; c < A; c++)
+                            n[(e = this.faces[c]).a].add(e.normal),
+                              n[e.b].add(e.normal),
+                              n[e.c].add(e.normal);
+                        for (r = 0, i = this.vertices.length; r < i; r++) n[r].normalize();
+                        for (c = 0, A = this.faces.length; c < A; c++)
+                          ((e = this.faces[c]).vertexNormals[0] = n[e.a].clone()),
+                            (e.vertexNormals[1] = n[e.b].clone()),
+                            (e.vertexNormals[2] = n[e.c].clone());
+                      },
+                      computeMorphNormals: function () {
+                        var t, e, n;
+                        for (a = 0, s = this.faces.length; a < s; a++)
+                          for (
+                            (n = this.faces[a]).__originalFaceNormal
+                              ? n.__originalFaceNormal.copy(n.normal)
+                              : (n.__originalFaceNormal = n.normal.clone()),
+                              n.__originalVertexNormals || (n.__originalVertexNormals = []),
+                              t = 0,
+                              e = n.vertexNormals.length;
+                            t < e;
+                            t++
+                          )
+                            n.__originalVertexNormals[t]
+                              ? n.__originalVertexNormals[t].copy(n.vertexNormals[t])
+                              : (n.__originalVertexNormals[t] = n.vertexNormals[t].clone());
+                        var r = new Jt.Geometry();
+                        for (
+                          r.faces = this.faces, t = 0, e = this.morphTargets.length;
+                          t < e;
+                          t++
+                        ) {
+                          if (!this.morphNormals[t]) {
+                            (this.morphNormals[t] = {}),
+                              (this.morphNormals[t].faceNormals = []),
+                              (this.morphNormals[t].vertexNormals = []);
+                            for (
+                              var i = this.morphNormals[t].faceNormals,
+                                o = this.morphNormals[t].vertexNormals,
+                                a = 0,
+                                s = this.faces.length;
+                              a < s;
+                              a++
+                            )
+                              (l = new Jt.Vector3()),
+                                (u = {
+                                  a: new Jt.Vector3(),
+                                  b: new Jt.Vector3(),
+                                  c: new Jt.Vector3(),
+                                }),
+                                i.push(l),
+                                o.push(u);
+                          }
+                          var l,
+                            u,
+                            c = this.morphNormals[t];
+                          for (
+                            r.vertices = this.morphTargets[t].vertices,
+                              r.computeFaceNormals(),
+                              r.computeVertexNormals(),
+                              a = 0,
+                              s = this.faces.length;
+                            a < s;
+                            a++
+                          )
+                            (n = this.faces[a]),
+                              (l = c.faceNormals[a]),
+                              (u = c.vertexNormals[a]),
+                              l.copy(n.normal),
+                              u.a.copy(n.vertexNormals[0]),
+                              u.b.copy(n.vertexNormals[1]),
+                              u.c.copy(n.vertexNormals[2]);
+                        }
+                        for (a = 0, s = this.faces.length; a < s; a++)
+                          ((n = this.faces[a]).normal = n.__originalFaceNormal),
+                            (n.vertexNormals = n.__originalVertexNormals);
+                      },
+                      computeTangents: function () {
+                        for (
+                          var t,
+                            e,
+                            n,
+                            r,
+                            i,
+                            o,
+                            a,
+                            s,
+                            l,
+                            u,
+                            c,
+                            A,
+                            h,
+                            p,
+                            d,
+                            f,
+                            g,
+                            m,
+                            v = [],
+                            b = [],
+                            y = new Jt.Vector3(),
+                            w = new Jt.Vector3(),
+                            E = new Jt.Vector3(),
+                            B = new Jt.Vector3(),
+                            C = new Jt.Vector3(),
+                            x = 0,
+                            I = this.vertices.length;
+                          x < I;
+                          x++
+                        )
+                          (v[x] = new Jt.Vector3()), (b[x] = new Jt.Vector3());
+                        for (D = 0, S = this.faces.length; D < S; D++)
+                          (n = this.faces[D]),
+                            (u = this.faceVertexUvs[0][D]),
+                            (A = this),
+                            (h = n.a),
+                            (p = n.b),
+                            (d = n.c),
+                            (f = 0),
+                            (g = 1),
+                            (m = 2),
+                            (s = A.vertices[h]),
+                            (a = A.vertices[p]),
+                            (A = A.vertices[d]),
+                            (f = u[f]),
+                            (g = u[g]),
+                            (u = u[m]),
+                            (m = a.x - s.x),
+                            (r = A.x - s.x),
+                            (i = a.y - s.y),
+                            (o = A.y - s.y),
+                            (a = a.z - s.z),
+                            (A = A.z - s.z),
+                            (s = g.x - f.x),
+                            (l = u.x - f.x),
+                            (g = g.y - f.y),
+                            (u = u.y - f.y),
+                            y.set(
+                              (u * m - g * r) * (f = 1 / (s * u - l * g)),
+                              (u * i - g * o) * f,
+                              (u * a - g * A) * f,
+                            ),
+                            w.set((s * r - l * m) * f, (s * o - l * i) * f, (s * A - l * a) * f),
+                            v[h].add(y),
+                            v[p].add(y),
+                            v[d].add(y),
+                            b[h].add(w),
+                            b[p].add(w),
+                            b[d].add(w);
+                        for (var M = ['a', 'b', 'c', 'd'], D = 0, S = this.faces.length; D < S; D++)
+                          for (
+                            n = this.faces[D], t = 0;
+                            t < Math.min(n.vertexNormals.length, 3);
+                            t++
+                          )
+                            C.copy(n.vertexNormals[t]),
+                              (e = n[M[t]]),
+                              (c = v[e]),
+                              E.copy(c),
+                              E.sub(C.multiplyScalar(C.dot(c))).normalize(),
+                              B.crossVectors(n.vertexNormals[t], c),
+                              (c = B.dot(b[e])),
+                              (n.vertexTangents[t] = new Jt.Vector4(E.x, E.y, E.z, c < 0 ? -1 : 1));
+                        this.hasTangents = !0;
+                      },
+                      computeLineDistances: function () {
+                        for (var t = 0, e = this.vertices, n = 0, r = e.length; n < r; n++)
+                          0 < n && (t += e[n].distanceTo(e[n - 1])), (this.lineDistances[n] = t);
+                      },
+                      computeBoundingBox: function () {
+                        null === this.boundingBox && (this.boundingBox = new Jt.Box3()),
+                          this.boundingBox.setFromPoints(this.vertices);
+                      },
+                      computeBoundingSphere: function () {
+                        null === this.boundingSphere && (this.boundingSphere = new Jt.Sphere()),
+                          this.boundingSphere.setFromPoints(this.vertices);
+                      },
+                      merge: function (t, e, n) {
+                        if (t instanceof Jt.Geometry == !1)
+                          Jt.error(
+                            'THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.',
+                            t,
+                          );
+                        else {
+                          var r,
+                            i = this.vertices.length,
+                            o = this.vertices,
+                            a = t.vertices,
+                            s = this.faces,
+                            l = t.faces,
+                            u = this.faceVertexUvs[0],
+                            c = t.faceVertexUvs[0];
+                          void 0 === n && (n = 0),
+                            void 0 !== e && (r = new Jt.Matrix3().getNormalMatrix(e));
+                          for (var A = 0, h = a.length; A < h; A++) {
+                            var p = a[A].clone();
+                            void 0 !== e && p.applyMatrix4(e), o.push(p);
+                          }
+                          for (A = 0, h = l.length; A < h; A++) {
+                            var d,
+                              f,
+                              g = l[A],
+                              m = g.vertexNormals,
+                              v = g.vertexColors,
+                              b = new Jt.Face3(g.a + i, g.b + i, g.c + i);
+                            b.normal.copy(g.normal),
+                              void 0 !== r && b.normal.applyMatrix3(r).normalize();
+                            for (var y = 0, w = m.length; y < w; y++)
+                              (d = m[y].clone()),
+                                void 0 !== r && d.applyMatrix3(r).normalize(),
+                                b.vertexNormals.push(d);
+                            b.color.copy(g.color);
+                            for (y = 0, w = v.length; y < w; y++)
+                              (f = v[y]), b.vertexColors.push(f.clone());
+                            (b.materialIndex = g.materialIndex + n), s.push(b);
+                          }
+                          for (A = 0, h = c.length; A < h; A++) {
+                            var E = c[A],
+                              B = [];
+                            if (void 0 !== E) {
+                              for (y = 0, w = E.length; y < w; y++) B.push(E[y].clone());
+                              u.push(B);
+                            }
+                          }
+                        }
+                      },
+                      mergeMesh: function (t) {
+                        t instanceof Jt.Mesh == !1
+                          ? Jt.error(
+                              'THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.',
+                              t,
+                            )
+                          : (t.matrixAutoUpdate && t.updateMatrix(),
+                            this.merge(t.geometry, t.matrix));
+                      },
+                      mergeVertices: function () {
+                        for (
+                          var t,
+                            e,
+                            n,
+                            r,
+                            i = {},
+                            o = [],
+                            a = [],
+                            s = Math.pow(10, 4),
+                            l = 0,
+                            u = this.vertices.length;
+                          l < u;
+                          l++
+                        )
+                          (t = this.vertices[l]),
+                            void 0 ===
+                            i[
+                              (t =
+                                Math.round(t.x * s) +
+                                '_' +
+                                Math.round(t.y * s) +
+                                '_' +
+                                Math.round(t.z * s))
+                            ]
+                              ? ((i[t] = l), o.push(this.vertices[l]), (a[l] = o.length - 1))
+                              : (a[l] = a[i[t]]);
+                        var c = [];
+                        for (l = 0, u = this.faces.length; l < u; l++) {
+                          ((e = this.faces[l]).a = a[e.a]), (e.b = a[e.b]), (e.c = a[e.c]);
+                          for (var A = [e.a, e.b, e.c], h = 0; h < 3; h++)
+                            if (A[h] == A[(h + 1) % 3]) {
+                              c.push(l);
+                              break;
+                            }
+                        }
+                        for (l = c.length - 1; 0 <= l; l--) {
+                          var p = c[l];
+                          for (
+                            this.faces.splice(p, 1), n = 0, r = this.faceVertexUvs.length;
+                            n < r;
+                            n++
+                          )
+                            this.faceVertexUvs[n].splice(p, 1);
+                        }
+                        var d = this.vertices.length - o.length;
+                        return (this.vertices = o), d;
+                      },
+                      toJSON: function () {
+                        var t = {
+                          metadata: {
+                            version: 4,
+                            type: 'BufferGeometry',
+                            generator: 'BufferGeometryExporter',
+                          },
+                          uuid: this.uuid,
+                          type: this.type,
+                        };
+                        if (
+                          ('' !== this.name && (t.name = this.name), void 0 !== this.parameters)
+                        ) {
+                          var e,
+                            n = this.parameters;
+                          for (e in n) void 0 !== n[e] && (t[e] = n[e]);
+                        } else {
+                          for (var r = [], i = 0; i < this.vertices.length; i++) {
+                            var o = this.vertices[i];
+                            r.push(o.x, o.y, o.z);
+                          }
+                          for (
+                            var a = [], s = [], l = {}, u = [], c = {}, A = [], h = {}, i = 0;
+                            i < this.faces.length;
+                            i++
+                          ) {
+                            var p,
+                              d = this.faces[i],
+                              f = void 0 !== this.faceVertexUvs[0][i],
+                              g = 0 < d.normal.length(),
+                              m = 0 < d.vertexNormals.length,
+                              v = 1 !== d.color.r || 1 !== d.color.g || 1 !== d.color.b,
+                              b = 0 < d.vertexColors.length;
+                            (p = y(0, 3, f)),
+                              (p = y(p, 4, g)),
+                              (p = y(p, 5, m)),
+                              (p = y(p, 6, v)),
+                              (p = y(p, 7, b)),
+                              a.push(p),
+                              a.push(d.a, d.b, d.c),
+                              f &&
+                                ((p = this.faceVertexUvs[0][i]), a.push(B(p[0]), B(p[1]), B(p[2]))),
+                              g && a.push(w(d.normal)),
+                              m && ((f = d.vertexNormals), a.push(w(f[0]), w(f[1]), w(f[2]))),
+                              v && a.push(E(d.color)),
+                              b && ((p = d.vertexColors), a.push(E(p[0]), E(p[1]), E(p[2])));
+                          }
+                          (t.data = {}),
+                            (t.data.vertices = r),
+                            (t.data.normals = s),
+                            0 < u.length && (t.data.colors = u),
+                            0 < A.length && (t.data.uvs = [A]),
+                            (t.data.faces = a);
+                        }
+                        return t;
+                        function y(t, e, n) {
+                          return n ? t | (1 << e) : t & ~(1 << e);
+                        }
+                        function w(t) {
+                          var e = t.x.toString() + t.y.toString() + t.z.toString();
+                          return (
+                            void 0 === l[e] && ((l[e] = s.length / 3), s.push(t.x, t.y, t.z)), l[e]
+                          );
+                        }
+                        function E(t) {
+                          var e = t.r.toString() + t.g.toString() + t.b.toString();
+                          return void 0 === c[e] && ((c[e] = u.length), u.push(t.getHex())), c[e];
+                        }
+                        function B(t) {
+                          var e = t.x.toString() + t.y.toString();
+                          return void 0 === h[e] && ((h[e] = A.length / 2), A.push(t.x, t.y)), h[e];
+                        }
+                      },
+                      clone: function () {
+                        for (
+                          var t = new Jt.Geometry(), e = this.vertices, n = 0, r = e.length;
+                          n < r;
+                          n++
+                        )
+                          t.vertices.push(e[n].clone());
+                        for (var i = this.faces, n = 0, r = i.length; n < r; n++)
+                          t.faces.push(i[n].clone());
+                        for (n = 0, r = this.faceVertexUvs.length; n < r; n++) {
+                          var o = this.faceVertexUvs[n];
+                          void 0 === t.faceVertexUvs[n] && (t.faceVertexUvs[n] = []);
+                          for (var a = 0, s = o.length; a < s; a++) {
+                            for (var l = o[a], u = [], c = 0, A = l.length; c < A; c++) {
+                              var h = l[c];
+                              u.push(h.clone());
+                            }
+                            t.faceVertexUvs[n].push(u);
+                          }
+                        }
+                        return t;
+                      },
+                      dispose: function () {
+                        this.dispatchEvent({ type: 'dispose' });
+                      },
+                    }),
+                    Jt.EventDispatcher.prototype.apply(Jt.Geometry.prototype),
+                    (Jt.GeometryIdCount = 0),
+                    (Jt.Camera = function () {
+                      Jt.Object3D.call(this),
+                        (this.type = 'Camera'),
+                        (this.matrixWorldInverse = new Jt.Matrix4()),
+                        (this.projectionMatrix = new Jt.Matrix4());
+                    }),
+                    (Jt.Camera.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Camera.prototype.constructor = Jt.Camera),
+                    (Jt.Camera.prototype.getWorldDirection =
+                      ((hn = new Jt.Quaternion()),
+                      function (t) {
+                        t = t || new Jt.Vector3();
+                        return this.getWorldQuaternion(hn), t.set(0, 0, -1).applyQuaternion(hn);
+                      })),
+                    (Jt.Camera.prototype.lookAt =
+                      ((pn = new Jt.Matrix4()),
+                      function (t) {
+                        pn.lookAt(this.position, t, this.up),
+                          this.quaternion.setFromRotationMatrix(pn);
+                      })),
+                    (Jt.Camera.prototype.clone = function (t) {
+                      return (
+                        void 0 === t && (t = new Jt.Camera()),
+                        Jt.Object3D.prototype.clone.call(this, t),
+                        t.matrixWorldInverse.copy(this.matrixWorldInverse),
+                        t.projectionMatrix.copy(this.projectionMatrix),
+                        t
+                      );
+                    }),
+                    (Jt.CubeCamera = function (t, e, n) {
+                      Jt.Object3D.call(this), (this.type = 'CubeCamera');
+                      var i = new Jt.PerspectiveCamera(90, 1, t, e),
+                        o =
+                          (i.up.set(0, -1, 0),
+                          i.lookAt(new Jt.Vector3(1, 0, 0)),
+                          this.add(i),
+                          new Jt.PerspectiveCamera(90, 1, t, e)),
+                        a =
+                          (o.up.set(0, -1, 0),
+                          o.lookAt(new Jt.Vector3(-1, 0, 0)),
+                          this.add(o),
+                          new Jt.PerspectiveCamera(90, 1, t, e)),
+                        s =
+                          (a.up.set(0, 0, 1),
+                          a.lookAt(new Jt.Vector3(0, 1, 0)),
+                          this.add(a),
+                          new Jt.PerspectiveCamera(90, 1, t, e)),
+                        l =
+                          (s.up.set(0, 0, -1),
+                          s.lookAt(new Jt.Vector3(0, -1, 0)),
+                          this.add(s),
+                          new Jt.PerspectiveCamera(90, 1, t, e)),
+                        u =
+                          (l.up.set(0, -1, 0),
+                          l.lookAt(new Jt.Vector3(0, 0, 1)),
+                          this.add(l),
+                          new Jt.PerspectiveCamera(90, 1, t, e));
+                      u.up.set(0, -1, 0),
+                        u.lookAt(new Jt.Vector3(0, 0, -1)),
+                        this.add(u),
+                        (this.renderTarget = new Jt.WebGLRenderTargetCube(n, n, {
+                          format: Jt.RGBFormat,
+                          magFilter: Jt.LinearFilter,
+                          minFilter: Jt.LinearFilter,
+                        })),
+                        (this.updateCubeMap = function (t, e) {
+                          var n = this.renderTarget,
+                            r = n.generateMipmaps;
+                          (n.generateMipmaps = !1),
+                            (n.activeCubeFace = 0),
+                            t.render(e, i, n),
+                            (n.activeCubeFace = 1),
+                            t.render(e, o, n),
+                            (n.activeCubeFace = 2),
+                            t.render(e, a, n),
+                            (n.activeCubeFace = 3),
+                            t.render(e, s, n),
+                            (n.activeCubeFace = 4),
+                            t.render(e, l, n),
+                            (n.generateMipmaps = r),
+                            (n.activeCubeFace = 5),
+                            t.render(e, u, n);
+                        });
+                    }),
+                    (Jt.CubeCamera.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.CubeCamera.prototype.constructor = Jt.CubeCamera),
+                    (Jt.OrthographicCamera = function (t, e, n, r, i, o) {
+                      Jt.Camera.call(this),
+                        (this.type = 'OrthographicCamera'),
+                        (this.zoom = 1),
+                        (this.left = t),
+                        (this.right = e),
+                        (this.top = n),
+                        (this.bottom = r),
+                        (this.near = void 0 !== i ? i : 0.1),
+                        (this.far = void 0 !== o ? o : 2e3),
+                        this.updateProjectionMatrix();
+                    }),
+                    (Jt.OrthographicCamera.prototype = Object.create(Jt.Camera.prototype)),
+                    (Jt.OrthographicCamera.prototype.constructor = Jt.OrthographicCamera),
+                    (Jt.OrthographicCamera.prototype.updateProjectionMatrix = function () {
+                      var t = (this.right - this.left) / (2 * this.zoom),
+                        e = (this.top - this.bottom) / (2 * this.zoom),
+                        n = (this.right + this.left) / 2,
+                        r = (this.top + this.bottom) / 2;
+                      this.projectionMatrix.makeOrthographic(
+                        n - t,
+                        n + t,
+                        r + e,
+                        r - e,
+                        this.near,
+                        this.far,
+                      );
+                    }),
+                    (Jt.OrthographicCamera.prototype.clone = function () {
+                      var t = new Jt.OrthographicCamera();
+                      return (
+                        Jt.Camera.prototype.clone.call(this, t),
+                        (t.zoom = this.zoom),
+                        (t.left = this.left),
+                        (t.right = this.right),
+                        (t.top = this.top),
+                        (t.bottom = this.bottom),
+                        (t.near = this.near),
+                        (t.far = this.far),
+                        t.projectionMatrix.copy(this.projectionMatrix),
+                        t
+                      );
+                    }),
+                    (Jt.PerspectiveCamera = function (t, e, n, r) {
+                      Jt.Camera.call(this),
+                        (this.type = 'PerspectiveCamera'),
+                        (this.zoom = 1),
+                        (this.fov = void 0 !== t ? t : 50),
+                        (this.aspect = void 0 !== e ? e : 1),
+                        (this.near = void 0 !== n ? n : 0.1),
+                        (this.far = void 0 !== r ? r : 2e3),
+                        this.updateProjectionMatrix();
+                    }),
+                    (Jt.PerspectiveCamera.prototype = Object.create(Jt.Camera.prototype)),
+                    (Jt.PerspectiveCamera.prototype.constructor = Jt.PerspectiveCamera),
+                    (Jt.PerspectiveCamera.prototype.setLens = function (t, e) {
+                      void 0 === e && (e = 24),
+                        (this.fov = 2 * Jt.Math.radToDeg(Math.atan(e / (2 * t)))),
+                        this.updateProjectionMatrix();
+                    }),
+                    (Jt.PerspectiveCamera.prototype.setViewOffset = function (t, e, n, r, i, o) {
+                      (this.fullWidth = t),
+                        (this.fullHeight = e),
+                        (this.x = n),
+                        (this.y = r),
+                        (this.width = i),
+                        (this.height = o),
+                        this.updateProjectionMatrix();
+                    }),
+                    (Jt.PerspectiveCamera.prototype.updateProjectionMatrix = function () {
+                      var t,
+                        e,
+                        n,
+                        r,
+                        i = Jt.Math.radToDeg(
+                          2 * Math.atan(Math.tan(0.5 * Jt.Math.degToRad(this.fov)) / this.zoom),
+                        );
+                      this.fullWidth
+                        ? ((e =
+                            (n = this.fullWidth / this.fullHeight) *
+                            (r = -(t = Math.tan(Jt.Math.degToRad(0.5 * i)) * this.near))),
+                          (n = Math.abs(n * t - e)),
+                          (r = Math.abs(t - r)),
+                          this.projectionMatrix.makeFrustum(
+                            e + (this.x * n) / this.fullWidth,
+                            e + ((this.x + this.width) * n) / this.fullWidth,
+                            t - ((this.y + this.height) * r) / this.fullHeight,
+                            t - (this.y * r) / this.fullHeight,
+                            this.near,
+                            this.far,
+                          ))
+                        : this.projectionMatrix.makePerspective(
+                            i,
+                            this.aspect,
+                            this.near,
+                            this.far,
+                          );
+                    }),
+                    (Jt.PerspectiveCamera.prototype.clone = function () {
+                      var t = new Jt.PerspectiveCamera();
+                      return (
+                        Jt.Camera.prototype.clone.call(this, t),
+                        (t.zoom = this.zoom),
+                        (t.fov = this.fov),
+                        (t.aspect = this.aspect),
+                        (t.near = this.near),
+                        (t.far = this.far),
+                        t.projectionMatrix.copy(this.projectionMatrix),
+                        t
+                      );
+                    }),
+                    (Jt.Light = function (t) {
+                      Jt.Object3D.call(this), (this.type = 'Light'), (this.color = new Jt.Color(t));
+                    }),
+                    (Jt.Light.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Light.prototype.constructor = Jt.Light),
+                    (Jt.Light.prototype.clone = function (t) {
+                      return (
+                        void 0 === t && (t = new Jt.Light()),
+                        Jt.Object3D.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        t
+                      );
+                    }),
+                    (Jt.AmbientLight = function (t) {
+                      Jt.Light.call(this, t), (this.type = 'AmbientLight');
+                    }),
+                    (Jt.AmbientLight.prototype = Object.create(Jt.Light.prototype)),
+                    (Jt.AmbientLight.prototype.constructor = Jt.AmbientLight),
+                    (Jt.AmbientLight.prototype.clone = function () {
+                      var t = new Jt.AmbientLight();
+                      return Jt.Light.prototype.clone.call(this, t), t;
+                    }),
+                    (Jt.AreaLight = function (t, e) {
+                      Jt.Light.call(this, t),
+                        (this.type = 'AreaLight'),
+                        (this.normal = new Jt.Vector3(0, -1, 0)),
+                        (this.right = new Jt.Vector3(1, 0, 0)),
+                        (this.intensity = void 0 !== e ? e : 1),
+                        (this.width = 1),
+                        (this.height = 1),
+                        (this.constantAttenuation = 1.5),
+                        (this.linearAttenuation = 0.5),
+                        (this.quadraticAttenuation = 0.1);
+                    }),
+                    (Jt.AreaLight.prototype = Object.create(Jt.Light.prototype)),
+                    (Jt.AreaLight.prototype.constructor = Jt.AreaLight),
+                    (Jt.DirectionalLight = function (t, e) {
+                      Jt.Light.call(this, t),
+                        (this.type = 'DirectionalLight'),
+                        this.position.set(0, 1, 0),
+                        (this.target = new Jt.Object3D()),
+                        (this.intensity = void 0 !== e ? e : 1),
+                        (this.castShadow = !1),
+                        (this.onlyShadow = !1),
+                        (this.shadowCameraNear = 50),
+                        (this.shadowCameraFar = 5e3),
+                        (this.shadowCameraLeft = -500),
+                        (this.shadowCameraRight = 500),
+                        (this.shadowCameraTop = 500),
+                        (this.shadowCameraBottom = -500),
+                        (this.shadowCameraVisible = !1),
+                        (this.shadowBias = 0),
+                        (this.shadowDarkness = 0.5),
+                        (this.shadowMapWidth = 512),
+                        (this.shadowMapHeight = 512),
+                        (this.shadowCascade = !1),
+                        (this.shadowCascadeOffset = new Jt.Vector3(0, 0, -1e3)),
+                        (this.shadowCascadeCount = 2),
+                        (this.shadowCascadeBias = [0, 0, 0]),
+                        (this.shadowCascadeWidth = [512, 512, 512]),
+                        (this.shadowCascadeHeight = [512, 512, 512]),
+                        (this.shadowCascadeNearZ = [-1, 0.99, 0.998]),
+                        (this.shadowCascadeFarZ = [0.99, 0.998, 1]),
+                        (this.shadowCascadeArray = []),
+                        (this.shadowMap = null),
+                        (this.shadowMapSize = null),
+                        (this.shadowCamera = null),
+                        (this.shadowMatrix = null);
+                    }),
+                    (Jt.DirectionalLight.prototype = Object.create(Jt.Light.prototype)),
+                    (Jt.DirectionalLight.prototype.constructor = Jt.DirectionalLight),
+                    (Jt.DirectionalLight.prototype.clone = function () {
+                      var t = new Jt.DirectionalLight();
+                      return (
+                        Jt.Light.prototype.clone.call(this, t),
+                        (t.target = this.target.clone()),
+                        (t.intensity = this.intensity),
+                        (t.castShadow = this.castShadow),
+                        (t.onlyShadow = this.onlyShadow),
+                        (t.shadowCameraNear = this.shadowCameraNear),
+                        (t.shadowCameraFar = this.shadowCameraFar),
+                        (t.shadowCameraLeft = this.shadowCameraLeft),
+                        (t.shadowCameraRight = this.shadowCameraRight),
+                        (t.shadowCameraTop = this.shadowCameraTop),
+                        (t.shadowCameraBottom = this.shadowCameraBottom),
+                        (t.shadowCameraVisible = this.shadowCameraVisible),
+                        (t.shadowBias = this.shadowBias),
+                        (t.shadowDarkness = this.shadowDarkness),
+                        (t.shadowMapWidth = this.shadowMapWidth),
+                        (t.shadowMapHeight = this.shadowMapHeight),
+                        (t.shadowCascade = this.shadowCascade),
+                        t.shadowCascadeOffset.copy(this.shadowCascadeOffset),
+                        (t.shadowCascadeCount = this.shadowCascadeCount),
+                        (t.shadowCascadeBias = this.shadowCascadeBias.slice(0)),
+                        (t.shadowCascadeWidth = this.shadowCascadeWidth.slice(0)),
+                        (t.shadowCascadeHeight = this.shadowCascadeHeight.slice(0)),
+                        (t.shadowCascadeNearZ = this.shadowCascadeNearZ.slice(0)),
+                        (t.shadowCascadeFarZ = this.shadowCascadeFarZ.slice(0)),
+                        t
+                      );
+                    }),
+                    (Jt.HemisphereLight = function (t, e, n) {
+                      Jt.Light.call(this, t),
+                        (this.type = 'HemisphereLight'),
+                        this.position.set(0, 100, 0),
+                        (this.groundColor = new Jt.Color(e)),
+                        (this.intensity = void 0 !== n ? n : 1);
+                    }),
+                    (Jt.HemisphereLight.prototype = Object.create(Jt.Light.prototype)),
+                    (Jt.HemisphereLight.prototype.constructor = Jt.HemisphereLight),
+                    (Jt.HemisphereLight.prototype.clone = function () {
+                      var t = new Jt.HemisphereLight();
+                      return (
+                        Jt.Light.prototype.clone.call(this, t),
+                        t.groundColor.copy(this.groundColor),
+                        (t.intensity = this.intensity),
+                        t
+                      );
+                    }),
+                    (Jt.PointLight = function (t, e, n, r) {
+                      Jt.Light.call(this, t),
+                        (this.type = 'PointLight'),
+                        (this.intensity = void 0 !== e ? e : 1),
+                        (this.distance = void 0 !== n ? n : 0),
+                        (this.decay = void 0 !== r ? r : 1);
+                    }),
+                    (Jt.PointLight.prototype = Object.create(Jt.Light.prototype)),
+                    (Jt.PointLight.prototype.constructor = Jt.PointLight),
+                    (Jt.PointLight.prototype.clone = function () {
+                      var t = new Jt.PointLight();
+                      return (
+                        Jt.Light.prototype.clone.call(this, t),
+                        (t.intensity = this.intensity),
+                        (t.distance = this.distance),
+                        (t.decay = this.decay),
+                        t
+                      );
+                    }),
+                    (Jt.SpotLight = function (t, e, n, r, i, o) {
+                      Jt.Light.call(this, t),
+                        (this.type = 'SpotLight'),
+                        this.position.set(0, 1, 0),
+                        (this.target = new Jt.Object3D()),
+                        (this.intensity = void 0 !== e ? e : 1),
+                        (this.distance = void 0 !== n ? n : 0),
+                        (this.angle = void 0 !== r ? r : Math.PI / 3),
+                        (this.exponent = void 0 !== i ? i : 10),
+                        (this.decay = void 0 !== o ? o : 1),
+                        (this.castShadow = !1),
+                        (this.onlyShadow = !1),
+                        (this.shadowCameraNear = 50),
+                        (this.shadowCameraFar = 5e3),
+                        (this.shadowCameraFov = 50),
+                        (this.shadowCameraVisible = !1),
+                        (this.shadowBias = 0),
+                        (this.shadowDarkness = 0.5),
+                        (this.shadowMapWidth = 512),
+                        (this.shadowMapHeight = 512),
+                        (this.shadowMap = null),
+                        (this.shadowMapSize = null),
+                        (this.shadowCamera = null),
+                        (this.shadowMatrix = null);
+                    }),
+                    (Jt.SpotLight.prototype = Object.create(Jt.Light.prototype)),
+                    (Jt.SpotLight.prototype.constructor = Jt.SpotLight),
+                    (Jt.SpotLight.prototype.clone = function () {
+                      var t = new Jt.SpotLight();
+                      return (
+                        Jt.Light.prototype.clone.call(this, t),
+                        (t.target = this.target.clone()),
+                        (t.intensity = this.intensity),
+                        (t.distance = this.distance),
+                        (t.angle = this.angle),
+                        (t.exponent = this.exponent),
+                        (t.decay = this.decay),
+                        (t.castShadow = this.castShadow),
+                        (t.onlyShadow = this.onlyShadow),
+                        (t.shadowCameraNear = this.shadowCameraNear),
+                        (t.shadowCameraFar = this.shadowCameraFar),
+                        (t.shadowCameraFov = this.shadowCameraFov),
+                        (t.shadowCameraVisible = this.shadowCameraVisible),
+                        (t.shadowBias = this.shadowBias),
+                        (t.shadowDarkness = this.shadowDarkness),
+                        (t.shadowMapWidth = this.shadowMapWidth),
+                        (t.shadowMapHeight = this.shadowMapHeight),
+                        t
+                      );
+                    }),
+                    (Jt.Cache = {
+                      files: {},
+                      add: function (t, e) {
+                        this.files[t] = e;
+                      },
+                      get: function (t) {
+                        return this.files[t];
+                      },
+                      remove: function (t) {
+                        delete this.files[t];
+                      },
+                      clear: function () {
+                        this.files = {};
+                      },
+                    }),
+                    (Jt.Loader = function (t) {
+                      (this.showStatus = t),
+                        (this.statusDomElement = t ? Jt.Loader.prototype.addStatusElement() : null),
+                        (this.imageLoader = new Jt.ImageLoader()),
+                        (this.onLoadStart = function () {}),
+                        (this.onLoadProgress = function () {}),
+                        (this.onLoadComplete = function () {});
+                    }),
+                    (Jt.Loader.prototype = {
+                      constructor: Jt.Loader,
+                      crossOrigin: void 0,
+                      addStatusElement: function () {
+                        var t = document.createElement('div');
+                        return (
+                          (t.style.position = 'absolute'),
+                          (t.style.right = '0px'),
+                          (t.style.top = '0px'),
+                          (t.style.fontSize = '0.8em'),
+                          (t.style.textAlign = 'left'),
+                          (t.style.background = 'rgba(0,0,0,0.25)'),
+                          (t.style.color = '#fff'),
+                          (t.style.width = '120px'),
+                          (t.style.padding = '0.5em 0.5em 0.5em 0.5em'),
+                          (t.style.zIndex = 1e3),
+                          (t.innerHTML = 'Loading ...'),
+                          t
+                        );
+                      },
+                      updateProgress: function (t) {
+                        var e = 'Loaded ';
+                        t.total
+                          ? (e += ((100 * t.loaded) / t.total).toFixed(0) + '%')
+                          : (e += (t.loaded / 1024).toFixed(2) + ' KB'),
+                          (this.statusDomElement.innerHTML = e);
+                      },
+                      extractUrlBase: function (t) {
+                        t = t.split('/');
+                        return 1 === t.length ? './' : (t.pop(), t.join('/') + '/');
+                      },
+                      initMaterials: function (t, e) {
+                        for (var n = [], r = 0; r < t.length; ++r)
+                          n[r] = this.createMaterial(t[r], e);
+                        return n;
+                      },
+                      needsTangents: function (t) {
+                        for (var e = 0, n = t.length; e < n; e++)
+                          if (t[e] instanceof Jt.ShaderMaterial) return !0;
+                        return !1;
+                      },
+                      createMaterial: function (t, c) {
+                        var A = this;
+                        function h(t) {
+                          t = Math.log(t) / Math.LN2;
+                          return Math.pow(2, Math.round(t));
+                        }
+                        function e(t, e, n, r, i, o, a) {
+                          var s,
+                            l = c + n,
+                            u = Jt.Loader.Handlers.get(l);
+                          null !== u
+                            ? (s = u.load(l))
+                            : ((s = new Jt.Texture()),
+                              ((u = A.imageLoader).crossOrigin = A.crossOrigin),
+                              u.load(l, function (t) {
+                                var e, n, r;
+                                !1 === Jt.Math.isPowerOfTwo(t.width) ||
+                                !1 === Jt.Math.isPowerOfTwo(t.height)
+                                  ? ((e = h(t.width)),
+                                    (n = h(t.height)),
+                                    ((r = document.createElement('canvas')).width = e),
+                                    (r.height = n),
+                                    r.getContext('2d').drawImage(t, 0, 0, e, n),
+                                    (s.image = r))
+                                  : (s.image = t),
+                                  (s.needsUpdate = !0);
+                              })),
+                            (s.sourceFile = n),
+                            r &&
+                              (s.repeat.set(r[0], r[1]),
+                              1 !== r[0] && (s.wrapS = Jt.RepeatWrapping),
+                              1 !== r[1] && (s.wrapT = Jt.RepeatWrapping)),
+                            i && s.offset.set(i[0], i[1]),
+                            o &&
+                              (void 0 !==
+                                (u = {
+                                  repeat: Jt.RepeatWrapping,
+                                  mirror: Jt.MirroredRepeatWrapping,
+                                })[o[0]] && (s.wrapS = u[o[0]]),
+                              void 0 !== u[o[1]] && (s.wrapT = u[o[1]])),
+                            a && (s.anisotropy = a),
+                            (t[e] = s);
+                        }
+                        function n(t) {
+                          return ((255 * t[0]) << 16) + ((255 * t[1]) << 8) + 255 * t[2];
+                        }
+                        var r = 'MeshLambertMaterial',
+                          i = {
+                            color: 15658734,
+                            opacity: 1,
+                            map: null,
+                            lightMap: null,
+                            normalMap: null,
+                            bumpMap: null,
+                            wireframe: !1,
+                          },
+                          o =
+                            (t.shading &&
+                              ('phong' === (o = t.shading.toLowerCase())
+                                ? (r = 'MeshPhongMaterial')
+                                : 'basic' === o && (r = 'MeshBasicMaterial')),
+                            void 0 !== t.blending &&
+                              void 0 !== Jt[t.blending] &&
+                              (i.blending = Jt[t.blending]),
+                            void 0 !== t.transparent && (i.transparent = t.transparent),
+                            void 0 !== t.opacity && t.opacity < 1 && (i.transparent = !0),
+                            void 0 !== t.depthTest && (i.depthTest = t.depthTest),
+                            void 0 !== t.depthWrite && (i.depthWrite = t.depthWrite),
+                            void 0 !== t.visible && (i.visible = t.visible),
+                            void 0 !== t.flipSided && (i.side = Jt.BackSide),
+                            void 0 !== t.doubleSided && (i.side = Jt.DoubleSide),
+                            void 0 !== t.wireframe && (i.wireframe = t.wireframe),
+                            void 0 !== t.vertexColors &&
+                              ('face' === t.vertexColors
+                                ? (i.vertexColors = Jt.FaceColors)
+                                : t.vertexColors && (i.vertexColors = Jt.VertexColors)),
+                            t.colorDiffuse
+                              ? (i.color = n(t.colorDiffuse))
+                              : t.DbgColor && (i.color = t.DbgColor),
+                            t.colorSpecular && (i.specular = n(t.colorSpecular)),
+                            t.colorEmissive && (i.emissive = n(t.colorEmissive)),
+                            void 0 !== t.transparency &&
+                              (console.warn(
+                                'THREE.Loader: transparency has been renamed to opacity',
+                              ),
+                              (t.opacity = t.transparency)),
+                            void 0 !== t.opacity && (i.opacity = t.opacity),
+                            t.specularCoef && (i.shininess = t.specularCoef),
+                            t.mapDiffuse &&
+                              c &&
+                              e(
+                                i,
+                                'map',
+                                t.mapDiffuse,
+                                t.mapDiffuseRepeat,
+                                t.mapDiffuseOffset,
+                                t.mapDiffuseWrap,
+                                t.mapDiffuseAnisotropy,
+                              ),
+                            t.mapLight &&
+                              c &&
+                              e(
+                                i,
+                                'lightMap',
+                                t.mapLight,
+                                t.mapLightRepeat,
+                                t.mapLightOffset,
+                                t.mapLightWrap,
+                                t.mapLightAnisotropy,
+                              ),
+                            t.mapBump &&
+                              c &&
+                              e(
+                                i,
+                                'bumpMap',
+                                t.mapBump,
+                                t.mapBumpRepeat,
+                                t.mapBumpOffset,
+                                t.mapBumpWrap,
+                                t.mapBumpAnisotropy,
+                              ),
+                            t.mapNormal &&
+                              c &&
+                              e(
+                                i,
+                                'normalMap',
+                                t.mapNormal,
+                                t.mapNormalRepeat,
+                                t.mapNormalOffset,
+                                t.mapNormalWrap,
+                                t.mapNormalAnisotropy,
+                              ),
+                            t.mapSpecular &&
+                              c &&
+                              e(
+                                i,
+                                'specularMap',
+                                t.mapSpecular,
+                                t.mapSpecularRepeat,
+                                t.mapSpecularOffset,
+                                t.mapSpecularWrap,
+                                t.mapSpecularAnisotropy,
+                              ),
+                            t.mapAlpha &&
+                              c &&
+                              e(
+                                i,
+                                'alphaMap',
+                                t.mapAlpha,
+                                t.mapAlphaRepeat,
+                                t.mapAlphaOffset,
+                                t.mapAlphaWrap,
+                                t.mapAlphaAnisotropy,
+                              ),
+                            t.mapBumpScale && (i.bumpScale = t.mapBumpScale),
+                            t.mapNormalFactor &&
+                              (i.normalScale = new Jt.Vector2(
+                                t.mapNormalFactor,
+                                t.mapNormalFactor,
+                              )),
+                            new Jt[r](i));
+                        return void 0 !== t.DbgName && (o.name = t.DbgName), o;
+                      },
+                    }),
+                    (Jt.Loader.Handlers = {
+                      handlers: [],
+                      add: function (t, e) {
+                        this.handlers.push(t, e);
+                      },
+                      get: function (t) {
+                        for (var e = 0, n = this.handlers.length; e < n; e += 2) {
+                          var r = this.handlers[e],
+                            i = this.handlers[e + 1];
+                          if (r.test(t)) return i;
+                        }
+                        return null;
+                      },
+                    }),
+                    (Jt.XHRLoader = function (t) {
+                      this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager;
+                    }),
+                    (Jt.XHRLoader.prototype = {
+                      constructor: Jt.XHRLoader,
+                      load: function (e, n, r, i) {
+                        var o = this,
+                          t = Jt.Cache.get(e);
+                        void 0 !== t
+                          ? n && n(t)
+                          : ((t = new XMLHttpRequest()).open('GET', e, !0),
+                            t.addEventListener(
+                              'load',
+                              function (t) {
+                                Jt.Cache.add(e, this.response),
+                                  n && n(this.response),
+                                  o.manager.itemEnd(e);
+                              },
+                              !1,
+                            ),
+                            void 0 !== r &&
+                              t.addEventListener(
+                                'progress',
+                                function (t) {
+                                  r(t);
+                                },
+                                !1,
+                              ),
+                            void 0 !== i &&
+                              t.addEventListener(
+                                'error',
+                                function (t) {
+                                  i(t);
+                                },
+                                !1,
+                              ),
+                            void 0 !== this.crossOrigin && (t.crossOrigin = this.crossOrigin),
+                            void 0 !== this.responseType && (t.responseType = this.responseType),
+                            t.send(null),
+                            o.manager.itemStart(e));
+                      },
+                      setResponseType: function (t) {
+                        this.responseType = t;
+                      },
+                      setCrossOrigin: function (t) {
+                        this.crossOrigin = t;
+                      },
+                    }),
+                    (Jt.ImageLoader = function (t) {
+                      this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager;
+                    }),
+                    (Jt.ImageLoader.prototype = {
+                      constructor: Jt.ImageLoader,
+                      load: function (e, n, r, i) {
+                        var o = this,
+                          t = Jt.Cache.get(e);
+                        {
+                          if (void 0 === t)
+                            return (
+                              (t = document.createElement('img')).addEventListener(
+                                'load',
+                                function (t) {
+                                  Jt.Cache.add(e, this), n && n(this), o.manager.itemEnd(e);
+                                },
+                                !1,
+                              ),
+                              void 0 !== r &&
+                                t.addEventListener(
+                                  'progress',
+                                  function (t) {
+                                    r(t);
+                                  },
+                                  !1,
+                                ),
+                              void 0 !== i &&
+                                t.addEventListener(
+                                  'error',
+                                  function (t) {
+                                    i(t);
+                                  },
+                                  !1,
+                                ),
+                              void 0 !== this.crossOrigin && (t.crossOrigin = this.crossOrigin),
+                              (t.src = e),
+                              o.manager.itemStart(e),
+                              t
+                            );
+                          n(t);
+                        }
+                      },
+                      setCrossOrigin: function (t) {
+                        this.crossOrigin = t;
+                      },
+                    }),
+                    (Jt.JSONLoader = function (t) {
+                      Jt.Loader.call(this, t), (this.withCredentials = !1);
+                    }),
+                    (Jt.JSONLoader.prototype = Object.create(Jt.Loader.prototype)),
+                    (Jt.JSONLoader.prototype.constructor = Jt.JSONLoader),
+                    (Jt.JSONLoader.prototype.load = function (t, e, n) {
+                      (n = n && 'string' == typeof n ? n : this.extractUrlBase(t)),
+                        this.onLoadStart(),
+                        this.loadAjaxJSON(this, t, e, n);
+                    }),
+                    (Jt.JSONLoader.prototype.loadAjaxJSON = function (n, r, i, o, a) {
+                      var s = new XMLHttpRequest(),
+                        l = 0;
+                      (s.onreadystatechange = function () {
+                        if (s.readyState === s.DONE)
+                          if (200 === s.status || 0 === s.status) {
+                            if (s.responseText) {
+                              var t = JSON.parse(s.responseText),
+                                e = t.metadata;
+                              if (void 0 !== e) {
+                                if ('object' === e.type)
+                                  return void Jt.error(
+                                    'THREE.JSONLoader: ' +
+                                      r +
+                                      ' should be loaded with THREE.ObjectLoader instead.',
+                                  );
+                                if ('scene' === e.type)
+                                  return void Jt.error(
+                                    'THREE.JSONLoader: ' +
+                                      r +
+                                      ' seems to be a Scene. Use THREE.SceneLoader instead.',
+                                  );
+                              }
+                              e = n.parse(t, o);
+                              i(e.geometry, e.materials);
+                            } else
+                              Jt.error(
+                                'THREE.JSONLoader: ' +
+                                  r +
+                                  ' seems to be unreachable or the file is empty.',
+                              );
+                            n.onLoadComplete();
+                          } else
+                            Jt.error(
+                              "THREE.JSONLoader: Couldn't load " + r + ' (' + s.status + ')',
+                            );
+                        else
+                          s.readyState === s.LOADING
+                            ? a &&
+                              (0 === l && (l = s.getResponseHeader('Content-Length')),
+                              a({ total: l, loaded: s.responseText.length }))
+                            : s.readyState === s.HEADERS_RECEIVED &&
+                              void 0 !== a &&
+                              (l = s.getResponseHeader('Content-Length'));
+                      }),
+                        s.open('GET', r, !0),
+                        (s.withCredentials = this.withCredentials),
+                        s.send(null);
+                    }),
+                    (Jt.JSONLoader.prototype.parse = function (t, U) {
+                      var e,
+                        N,
+                        P,
+                        n,
+                        r,
+                        i,
+                        o,
+                        L,
+                        Y,
+                        a,
+                        O,
+                        s,
+                        l,
+                        u,
+                        c,
+                        A,
+                        h,
+                        p,
+                        d,
+                        f,
+                        g,
+                        G,
+                        z,
+                        H,
+                        j,
+                        V,
+                        q,
+                        m,
+                        v,
+                        b,
+                        y,
+                        w,
+                        E,
+                        B,
+                        C,
+                        x,
+                        I,
+                        M = new Jt.Geometry(),
+                        D = void 0 !== t.scale ? 1 / t.scale : 1,
+                        W = D,
+                        S = t.faces,
+                        k = t.vertices,
+                        F = t.normals,
+                        Q = t.colors,
+                        _ = 0;
+                      if (void 0 !== t.uvs) {
+                        for (s = 0; s < t.uvs.length; s++) t.uvs[s].length && _++;
+                        for (s = 0; s < _; s++) M.faceVertexUvs[s] = [];
+                      }
+                      for (c = 0, A = k.length; c < A; )
+                        ((m = new Jt.Vector3()).x = k[c++] * W),
+                          (m.y = k[c++] * W),
+                          (m.z = k[c++] * W),
+                          M.vertices.push(m);
+                      for (c = 0, A = S.length; c < A; )
+                        if (
+                          ((g = S[c++]),
+                          (G = g & 2),
+                          (z = g & 8),
+                          (H = g & 16),
+                          (j = g & 32),
+                          (V = g & 64),
+                          (q = g & 128),
+                          g & 1)
+                        ) {
+                          if (
+                            (((b = new Jt.Face3()).a = S[c]),
+                            (b.b = S[c + 1]),
+                            (b.c = S[c + 3]),
+                            ((y = new Jt.Face3()).a = S[c + 1]),
+                            (y.b = S[c + 2]),
+                            (y.c = S[c + 3]),
+                            (c += 4),
+                            G && ((f = S[c++]), (b.materialIndex = f), (y.materialIndex = f)),
+                            (u = M.faces.length),
+                            z)
+                          )
+                            for (s = 0; s < _; s++)
+                              for (
+                                B = t.uvs[s],
+                                  M.faceVertexUvs[s][u] = [],
+                                  M.faceVertexUvs[s][u + 1] = [],
+                                  l = 0;
+                                l < 4;
+                                l++
+                              )
+                                (d = S[c++]),
+                                  (x = B[2 * d]),
+                                  (I = B[2 * d + 1]),
+                                  (C = new Jt.Vector2(x, I)),
+                                  2 !== l && M.faceVertexUvs[s][u].push(C),
+                                  0 !== l && M.faceVertexUvs[s][u + 1].push(C);
+                          if (
+                            (H &&
+                              ((p = 3 * S[c++]),
+                              b.normal.set(F[p++], F[p++], F[p]),
+                              y.normal.copy(b.normal)),
+                            j)
+                          )
+                            for (s = 0; s < 4; s++)
+                              (p = 3 * S[c++]),
+                                (E = new Jt.Vector3(F[p++], F[p++], F[p])),
+                                2 !== s && b.vertexNormals.push(E),
+                                0 !== s && y.vertexNormals.push(E);
+                          if (
+                            (V && ((h = S[c++]), (w = Q[h]), b.color.setHex(w), y.color.setHex(w)),
+                            q)
+                          )
+                            for (s = 0; s < 4; s++)
+                              (h = S[c++]),
+                                (w = Q[h]),
+                                2 !== s && b.vertexColors.push(new Jt.Color(w)),
+                                0 !== s && y.vertexColors.push(new Jt.Color(w));
+                          M.faces.push(b), M.faces.push(y);
+                        } else {
+                          if (
+                            (((v = new Jt.Face3()).a = S[c++]),
+                            (v.b = S[c++]),
+                            (v.c = S[c++]),
+                            G && ((f = S[c++]), (v.materialIndex = f)),
+                            (u = M.faces.length),
+                            z)
+                          )
+                            for (s = 0; s < _; s++)
+                              for (B = t.uvs[s], M.faceVertexUvs[s][u] = [], l = 0; l < 3; l++)
+                                (d = S[c++]),
+                                  (x = B[2 * d]),
+                                  (I = B[2 * d + 1]),
+                                  (C = new Jt.Vector2(x, I)),
+                                  M.faceVertexUvs[s][u].push(C);
+                          if ((H && ((p = 3 * S[c++]), v.normal.set(F[p++], F[p++], F[p])), j))
+                            for (s = 0; s < 3; s++)
+                              (p = 3 * S[c++]),
+                                (E = new Jt.Vector3(F[p++], F[p++], F[p])),
+                                v.vertexNormals.push(E);
+                          if ((V && ((h = S[c++]), v.color.setHex(Q[h])), q))
+                            for (s = 0; s < 3; s++)
+                              (h = S[c++]), v.vertexColors.push(new Jt.Color(Q[h]));
+                          M.faces.push(v);
+                        }
+                      var T = void 0 !== t.influencesPerVertex ? t.influencesPerVertex : 2;
+                      if (t.skinWeights)
+                        for (var R = 0, J = t.skinWeights.length; R < J; R += T) {
+                          var K = t.skinWeights[R],
+                            Z = 1 < T ? t.skinWeights[R + 1] : 0,
+                            X = 2 < T ? t.skinWeights[R + 2] : 0,
+                            $ = 3 < T ? t.skinWeights[R + 3] : 0;
+                          M.skinWeights.push(new Jt.Vector4(K, Z, X, $));
+                        }
+                      if (t.skinIndices)
+                        for (R = 0, J = t.skinIndices.length; R < J; R += T) {
+                          var tt = t.skinIndices[R],
+                            et = 1 < T ? t.skinIndices[R + 1] : 0,
+                            nt = 2 < T ? t.skinIndices[R + 2] : 0,
+                            rt = 3 < T ? t.skinIndices[R + 3] : 0;
+                          M.skinIndices.push(new Jt.Vector4(tt, et, nt, rt));
+                        }
+                      (M.bones = t.bones),
+                        M.bones &&
+                          0 < M.bones.length &&
+                          (M.skinWeights.length !== M.skinIndices.length ||
+                            M.skinIndices.length !== M.vertices.length) &&
+                          Jt.warn(
+                            'THREE.JSONLoader: When skinning, number of vertices (' +
+                              M.vertices.length +
+                              '), skinIndices (' +
+                              M.skinIndices.length +
+                              '), and skinWeights (' +
+                              M.skinWeights.length +
+                              ') should match.',
+                          ),
+                        (M.animation = t.animation),
+                        (M.animations = t.animations);
+                      var it = D;
+                      if (void 0 !== t.morphTargets)
+                        for (r = 0, i = t.morphTargets.length; r < i; r++)
+                          for (
+                            M.morphTargets[r] = {},
+                              M.morphTargets[r].name = t.morphTargets[r].name,
+                              M.morphTargets[r].vertices = [],
+                              P = M.morphTargets[r].vertices,
+                              n = t.morphTargets[r].vertices,
+                              e = 0,
+                              N = n.length;
+                            e < N;
+                            e += 3
+                          ) {
+                            var ot = new Jt.Vector3();
+                            (ot.x = n[e] * it),
+                              (ot.y = n[e + 1] * it),
+                              (ot.z = n[e + 2] * it),
+                              P.push(ot);
+                          }
+                      if (void 0 !== t.morphColors)
+                        for (r = 0, i = t.morphColors.length; r < i; r++)
+                          for (
+                            M.morphColors[r] = {},
+                              M.morphColors[r].name = t.morphColors[r].name,
+                              M.morphColors[r].colors = [],
+                              Y = M.morphColors[r].colors,
+                              a = t.morphColors[r].colors,
+                              o = 0,
+                              L = a.length;
+                            o < L;
+                            o += 3
+                          )
+                            (O = new Jt.Color(16755200)).setRGB(a[o], a[o + 1], a[o + 2]),
+                              Y.push(O);
+                      return (
+                        M.computeFaceNormals(),
+                        M.computeBoundingSphere(),
+                        void 0 === t.materials || 0 === t.materials.length
+                          ? { geometry: M }
+                          : ((D = this.initMaterials(t.materials, U)),
+                            this.needsTangents(D) && M.computeTangents(),
+                            { geometry: M, materials: D })
+                      );
+                    }),
+                    (Jt.LoadingManager = function (t, e, n) {
+                      var r = this,
+                        i = 0,
+                        o = 0;
+                      (this.onLoad = t),
+                        (this.onProgress = e),
+                        (this.onError = n),
+                        (this.itemStart = function (t) {
+                          o++;
+                        }),
+                        (this.itemEnd = function (t) {
+                          i++,
+                            void 0 !== r.onProgress && r.onProgress(t, i, o),
+                            i === o && void 0 !== r.onLoad && r.onLoad();
+                        });
+                    }),
+                    (Jt.DefaultLoadingManager = new Jt.LoadingManager()),
+                    (Jt.BufferGeometryLoader = function (t) {
+                      this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager;
+                    }),
+                    (Jt.BufferGeometryLoader.prototype = {
+                      constructor: Jt.BufferGeometryLoader,
+                      load: function (t, e, n, r) {
+                        var i = this,
+                          o = new Jt.XHRLoader(i.manager);
+                        o.setCrossOrigin(this.crossOrigin),
+                          o.load(
+                            t,
+                            function (t) {
+                              e(i.parse(JSON.parse(t)));
+                            },
+                            n,
+                            r,
+                          );
+                      },
+                      setCrossOrigin: function (t) {
+                        this.crossOrigin = t;
+                      },
+                      parse: function (t) {
+                        var e,
+                          n = new Jt.BufferGeometry(),
+                          r = t.data.attributes;
+                        for (e in r) {
+                          var i = r[e],
+                            o = new self[i.type](i.array);
+                          n.addAttribute(e, new Jt.BufferAttribute(o, i.itemSize));
+                        }
+                        var a = t.data.offsets,
+                          a =
+                            (void 0 !== a && (n.offsets = JSON.parse(JSON.stringify(a))),
+                            t.data.boundingSphere);
+                        return (
+                          void 0 !== a &&
+                            ((t = new Jt.Vector3()),
+                            void 0 !== a.center && t.fromArray(a.center),
+                            (n.boundingSphere = new Jt.Sphere(t, a.radius))),
+                          n
+                        );
+                      },
+                    }),
+                    (Jt.MaterialLoader = function (t) {
+                      this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager;
+                    }),
+                    (Jt.MaterialLoader.prototype = {
+                      constructor: Jt.MaterialLoader,
+                      load: function (t, e, n, r) {
+                        var i = this,
+                          o = new Jt.XHRLoader(i.manager);
+                        o.setCrossOrigin(this.crossOrigin),
+                          o.load(
+                            t,
+                            function (t) {
+                              e(i.parse(JSON.parse(t)));
+                            },
+                            n,
+                            r,
+                          );
+                      },
+                      setCrossOrigin: function (t) {
+                        this.crossOrigin = t;
+                      },
+                      parse: function (t) {
+                        var e = new Jt[t.type]();
+                        if (
+                          (void 0 !== t.color && e.color.setHex(t.color),
+                          void 0 !== t.emissive && e.emissive.setHex(t.emissive),
+                          void 0 !== t.specular && e.specular.setHex(t.specular),
+                          void 0 !== t.shininess && (e.shininess = t.shininess),
+                          void 0 !== t.uniforms && (e.uniforms = t.uniforms),
+                          void 0 !== t.vertexShader && (e.vertexShader = t.vertexShader),
+                          void 0 !== t.fragmentShader && (e.fragmentShader = t.fragmentShader),
+                          void 0 !== t.vertexColors && (e.vertexColors = t.vertexColors),
+                          void 0 !== t.shading && (e.shading = t.shading),
+                          void 0 !== t.blending && (e.blending = t.blending),
+                          void 0 !== t.side && (e.side = t.side),
+                          void 0 !== t.opacity && (e.opacity = t.opacity),
+                          void 0 !== t.transparent && (e.transparent = t.transparent),
+                          void 0 !== t.wireframe && (e.wireframe = t.wireframe),
+                          void 0 !== t.size && (e.size = t.size),
+                          void 0 !== t.sizeAttenuation && (e.sizeAttenuation = t.sizeAttenuation),
+                          void 0 !== t.materials)
+                        )
+                          for (var n = 0, r = t.materials.length; n < r; n++)
+                            e.materials.push(this.parse(t.materials[n]));
+                        return e;
+                      },
+                    }),
+                    (Jt.ObjectLoader = function (t) {
+                      (this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager),
+                        (this.texturePath = '');
+                    }),
+                    (Jt.ObjectLoader.prototype = {
+                      constructor: Jt.ObjectLoader,
+                      load: function (t, e, n, r) {
+                        '' === this.texturePath &&
+                          (this.texturePath = t.substring(0, t.lastIndexOf('/') + 1));
+                        var i = this,
+                          o = new Jt.XHRLoader(i.manager);
+                        o.setCrossOrigin(this.crossOrigin),
+                          o.load(
+                            t,
+                            function (t) {
+                              i.parse(JSON.parse(t), e);
+                            },
+                            n,
+                            r,
+                          );
+                      },
+                      setTexturePath: function (t) {
+                        this.texturePath = t;
+                      },
+                      setCrossOrigin: function (t) {
+                        this.crossOrigin = t;
+                      },
+                      parse: function (t, e) {
+                        var n = this.parseGeometries(t.geometries),
+                          r = this.parseImages(t.images, function () {
+                            void 0 !== e && e(i);
+                          }),
+                          r = this.parseTextures(t.textures, r),
+                          r = this.parseMaterials(t.materials, r),
+                          i = this.parseObject(t.object, n, r);
+                        return (
+                          (void 0 !== t.images && 0 !== t.images.length) || (void 0 !== e && e(i)),
+                          i
+                        );
+                      },
+                      parseGeometries: function (t) {
+                        var e = {};
+                        if (void 0 !== t)
+                          for (
+                            var n = new Jt.JSONLoader(),
+                              r = new Jt.BufferGeometryLoader(),
+                              i = 0,
+                              o = t.length;
+                            i < o;
+                            i++
+                          ) {
+                            var a,
+                              s = t[i];
+                            switch (s.type) {
+                              case 'PlaneGeometry':
+                              case 'PlaneBufferGeometry':
+                                a = new Jt[s.type](
+                                  s.width,
+                                  s.height,
+                                  s.widthSegments,
+                                  s.heightSegments,
+                                );
+                                break;
+                              case 'BoxGeometry':
+                              case 'CubeGeometry':
+                                a = new Jt.BoxGeometry(
+                                  s.width,
+                                  s.height,
+                                  s.depth,
+                                  s.widthSegments,
+                                  s.heightSegments,
+                                  s.depthSegments,
+                                );
+                                break;
+                              case 'CircleGeometry':
+                                a = new Jt.CircleGeometry(s.radius, s.segments);
+                                break;
+                              case 'CylinderGeometry':
+                                a = new Jt.CylinderGeometry(
+                                  s.radiusTop,
+                                  s.radiusBottom,
+                                  s.height,
+                                  s.radialSegments,
+                                  s.heightSegments,
+                                  s.openEnded,
+                                );
+                                break;
+                              case 'SphereGeometry':
+                                a = new Jt.SphereGeometry(
+                                  s.radius,
+                                  s.widthSegments,
+                                  s.heightSegments,
+                                  s.phiStart,
+                                  s.phiLength,
+                                  s.thetaStart,
+                                  s.thetaLength,
+                                );
+                                break;
+                              case 'IcosahedronGeometry':
+                                a = new Jt.IcosahedronGeometry(s.radius, s.detail);
+                                break;
+                              case 'TorusGeometry':
+                                a = new Jt.TorusGeometry(
+                                  s.radius,
+                                  s.tube,
+                                  s.radialSegments,
+                                  s.tubularSegments,
+                                  s.arc,
+                                );
+                                break;
+                              case 'TorusKnotGeometry':
+                                a = new Jt.TorusKnotGeometry(
+                                  s.radius,
+                                  s.tube,
+                                  s.radialSegments,
+                                  s.tubularSegments,
+                                  s.p,
+                                  s.q,
+                                  s.heightScale,
+                                );
+                                break;
+                              case 'BufferGeometry':
+                                a = r.parse(s);
+                                break;
+                              case 'Geometry':
+                                a = n.parse(s.data).geometry;
+                            }
+                            (a.uuid = s.uuid),
+                              void 0 !== s.name && (a.name = s.name),
+                              (e[s.uuid] = a);
+                          }
+                        return e;
+                      },
+                      parseMaterials: function (t, e) {
+                        var n = {};
+                        if (void 0 !== t)
+                          for (
+                            var r = function (t) {
+                                return (
+                                  void 0 === e[t] &&
+                                    Jt.warn('THREE.ObjectLoader: Undefined texture', t),
+                                  e[t]
+                                );
+                              },
+                              i = new Jt.MaterialLoader(),
+                              o = 0,
+                              a = t.length;
+                            o < a;
+                            o++
+                          ) {
+                            var s = t[o],
+                              l = i.parse(s);
+                            (l.uuid = s.uuid),
+                              void 0 !== s.name && (l.name = s.name),
+                              void 0 !== s.map && (l.map = r(s.map)),
+                              void 0 !== s.bumpMap &&
+                                ((l.bumpMap = r(s.bumpMap)),
+                                s.bumpScale &&
+                                  (l.bumpScale = new Jt.Vector2(s.bumpScale, s.bumpScale))),
+                              void 0 !== s.alphaMap && (l.alphaMap = r(s.alphaMap)),
+                              void 0 !== s.envMap && (l.envMap = r(s.envMap)),
+                              void 0 !== s.normalMap &&
+                                ((l.normalMap = r(s.normalMap)),
+                                s.normalScale &&
+                                  (l.normalScale = new Jt.Vector2(s.normalScale, s.normalScale))),
+                              void 0 !== s.lightMap && (l.lightMap = r(s.lightMap)),
+                              void 0 !== s.specularMap && (l.specularMap = r(s.specularMap)),
+                              (n[s.uuid] = l);
+                          }
+                        return n;
+                      },
+                      parseImages: function (t, e) {
+                        var n = this,
+                          r = {};
+                        if (void 0 !== t && 0 < t.length)
+                          for (
+                            var e = new Jt.LoadingManager(e),
+                              i = new Jt.ImageLoader(e),
+                              o = (i.setCrossOrigin(this.crossOrigin), 0),
+                              a = t.length;
+                            o < a;
+                            o++
+                          ) {
+                            var s = t[o],
+                              l = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(s.url)
+                                ? s.url
+                                : n.texturePath + s.url;
+                            r[s.uuid] = (function (t) {
+                              return (
+                                n.manager.itemStart(t),
+                                i.load(t, function () {
+                                  n.manager.itemEnd(t);
+                                })
+                              );
+                            })(l);
+                          }
+                        return r;
+                      },
+                      parseTextures: function (t, e) {
+                        var n = {};
+                        if (void 0 !== t)
+                          for (var r = 0, i = t.length; r < i; r++) {
+                            var o = t[r],
+                              a =
+                                (void 0 === o.image &&
+                                  Jt.warn('THREE.ObjectLoader: No "image" speficied for', o.uuid),
+                                void 0 === e[o.image] &&
+                                  Jt.warn('THREE.ObjectLoader: Undefined image', o.image),
+                                new Jt.Texture(e[o.image]));
+                            (a.needsUpdate = !0),
+                              (a.uuid = o.uuid),
+                              void 0 !== o.name && (a.name = o.name),
+                              void 0 !== o.repeat &&
+                                (a.repeat = new Jt.Vector2(o.repeat[0], o.repeat[1])),
+                              void 0 !== o.minFilter && (a.minFilter = Jt[o.minFilter]),
+                              void 0 !== o.magFilter && (a.magFilter = Jt[o.magFilter]),
+                              void 0 !== o.anisotropy && (a.anisotropy = o.anisotropy),
+                              o.wrap instanceof Array &&
+                                ((a.wrapS = Jt[o.wrap[0]]), (a.wrapT = Jt[o.wrap[1]])),
+                              (n[o.uuid] = a);
+                          }
+                        return n;
+                      },
+                      parseObject:
+                        ((dn = new Jt.Matrix4()),
+                        function (t, e, n) {
+                          function r(t) {
+                            return (
+                              void 0 === e[t] &&
+                                Jt.warn('THREE.ObjectLoader: Undefined geometry', t),
+                              e[t]
+                            );
+                          }
+                          function i(t) {
+                            return (
+                              void 0 === n[t] &&
+                                Jt.warn('THREE.ObjectLoader: Undefined material', t),
+                              n[t]
+                            );
+                          }
+                          var o;
+                          switch (t.type) {
+                            case 'Scene':
+                              o = new Jt.Scene();
+                              break;
+                            case 'PerspectiveCamera':
+                              o = new Jt.PerspectiveCamera(t.fov, t.aspect, t.near, t.far);
+                              break;
+                            case 'OrthographicCamera':
+                              o = new Jt.OrthographicCamera(
+                                t.left,
+                                t.right,
+                                t.top,
+                                t.bottom,
+                                t.near,
+                                t.far,
+                              );
+                              break;
+                            case 'AmbientLight':
+                              o = new Jt.AmbientLight(t.color);
+                              break;
+                            case 'DirectionalLight':
+                              o = new Jt.DirectionalLight(t.color, t.intensity);
+                              break;
+                            case 'PointLight':
+                              o = new Jt.PointLight(t.color, t.intensity, t.distance, t.decay);
+                              break;
+                            case 'SpotLight':
+                              o = new Jt.SpotLight(
+                                t.color,
+                                t.intensity,
+                                t.distance,
+                                t.angle,
+                                t.exponent,
+                                t.decay,
+                              );
+                              break;
+                            case 'HemisphereLight':
+                              o = new Jt.HemisphereLight(t.color, t.groundColor, t.intensity);
+                              break;
+                            case 'Mesh':
+                              o = new Jt.Mesh(r(t.geometry), i(t.material));
+                              break;
+                            case 'Line':
+                              o = new Jt.Line(r(t.geometry), i(t.material), t.mode);
+                              break;
+                            case 'PointCloud':
+                              o = new Jt.PointCloud(r(t.geometry), i(t.material));
+                              break;
+                            case 'Sprite':
+                              o = new Jt.Sprite(i(t.material));
+                              break;
+                            case 'Group':
+                              o = new Jt.Group();
+                              break;
+                            default:
+                              o = new Jt.Object3D();
+                          }
+                          if (
+                            ((o.uuid = t.uuid),
+                            void 0 !== t.name && (o.name = t.name),
+                            void 0 !== t.matrix
+                              ? (dn.fromArray(t.matrix),
+                                dn.decompose(o.position, o.quaternion, o.scale))
+                              : (void 0 !== t.position && o.position.fromArray(t.position),
+                                void 0 !== t.rotation && o.rotation.fromArray(t.rotation),
+                                void 0 !== t.scale && o.scale.fromArray(t.scale)),
+                            void 0 !== t.visible && (o.visible = t.visible),
+                            void 0 !== t.userData && (o.userData = t.userData),
+                            void 0 !== t.children)
+                          )
+                            for (var a in t.children) o.add(this.parseObject(t.children[a], e, n));
+                          return o;
+                        }),
+                    }),
+                    (Jt.TextureLoader = function (t) {
+                      this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager;
+                    }),
+                    (Jt.TextureLoader.prototype = {
+                      constructor: Jt.TextureLoader,
+                      load: function (t, e, n, r) {
+                        var i = new Jt.ImageLoader(this.manager);
+                        i.setCrossOrigin(this.crossOrigin),
+                          i.load(
+                            t,
+                            function (t) {
+                              t = new Jt.Texture(t);
+                              (t.needsUpdate = !0), void 0 !== e && e(t);
+                            },
+                            n,
+                            r,
+                          );
+                      },
+                      setCrossOrigin: function (t) {
+                        this.crossOrigin = t;
+                      },
+                    }),
+                    (Jt.DataTextureLoader = Jt.BinaryTextureLoader =
+                      function () {
+                        this._parser = null;
+                      }),
+                    (Jt.BinaryTextureLoader.prototype = {
+                      constructor: Jt.BinaryTextureLoader,
+                      load: function (t, e, n, r) {
+                        var i = this,
+                          o = new Jt.DataTexture(),
+                          a = new Jt.XHRLoader();
+                        return (
+                          a.setResponseType('arraybuffer'),
+                          a.load(
+                            t,
+                            function (t) {
+                              t = i._parser(t);
+                              t &&
+                                (void 0 !== t.image
+                                  ? (o.image = t.image)
+                                  : void 0 !== t.data &&
+                                    ((o.image.width = t.width),
+                                    (o.image.height = t.height),
+                                    (o.image.data = t.data)),
+                                (o.wrapS = void 0 !== t.wrapS ? t.wrapS : Jt.ClampToEdgeWrapping),
+                                (o.wrapT = void 0 !== t.wrapT ? t.wrapT : Jt.ClampToEdgeWrapping),
+                                (o.magFilter =
+                                  void 0 !== t.magFilter ? t.magFilter : Jt.LinearFilter),
+                                (o.minFilter =
+                                  void 0 !== t.minFilter
+                                    ? t.minFilter
+                                    : Jt.LinearMipMapLinearFilter),
+                                (o.anisotropy = void 0 !== t.anisotropy ? t.anisotropy : 1),
+                                void 0 !== t.format && (o.format = t.format),
+                                void 0 !== t.type && (o.type = t.type),
+                                void 0 !== t.mipmaps && (o.mipmaps = t.mipmaps),
+                                1 === t.mipmapCount && (o.minFilter = Jt.LinearFilter),
+                                (o.needsUpdate = !0),
+                                e && e(o, t));
+                            },
+                            n,
+                            r,
+                          ),
+                          o
+                        );
+                      },
+                    }),
+                    (Jt.CompressedTextureLoader = function () {
+                      this._parser = null;
+                    }),
+                    (Jt.CompressedTextureLoader.prototype = {
+                      constructor: Jt.CompressedTextureLoader,
+                      load: function (t, o, e) {
+                        var a = this,
+                          s = [],
+                          l = new Jt.CompressedTexture(),
+                          n = ((l.image = s), new Jt.XHRLoader());
+                        if ((n.setResponseType('arraybuffer'), t instanceof Array))
+                          for (var r = 0, i = 0, u = t.length; i < u; ++i)
+                            !(function (e) {
+                              n.load(t[e], function (t) {
+                                t = a._parser(t, !0);
+                                (s[e] = {
+                                  width: t.width,
+                                  height: t.height,
+                                  format: t.format,
+                                  mipmaps: t.mipmaps,
+                                }),
+                                  6 === (r += 1) &&
+                                    (1 == t.mipmapCount && (l.minFilter = Jt.LinearFilter),
+                                    (l.format = t.format),
+                                    (l.needsUpdate = !0),
+                                    o && o(l));
+                              });
+                            })(i);
+                        else
+                          n.load(t, function (t) {
+                            var e = a._parser(t, !0);
+                            if (e.isCubemap)
+                              for (var n = e.mipmaps.length / e.mipmapCount, r = 0; r < n; r++) {
+                                s[r] = { mipmaps: [] };
+                                for (var i = 0; i < e.mipmapCount; i++)
+                                  s[r].mipmaps.push(e.mipmaps[r * e.mipmapCount + i]),
+                                    (s[r].format = e.format),
+                                    (s[r].width = e.width),
+                                    (s[r].height = e.height);
+                              }
+                            else
+                              (l.image.width = e.width),
+                                (l.image.height = e.height),
+                                (l.mipmaps = e.mipmaps);
+                            1 === e.mipmapCount && (l.minFilter = Jt.LinearFilter),
+                              (l.format = e.format),
+                              (l.needsUpdate = !0),
+                              o && o(l);
+                          });
+                        return l;
+                      },
+                    }),
+                    (Jt.Material = function () {
+                      Object.defineProperty(this, 'id', { value: Jt.MaterialIdCount++ }),
+                        (this.uuid = Jt.Math.generateUUID()),
+                        (this.name = ''),
+                        (this.type = 'Material'),
+                        (this.side = Jt.FrontSide),
+                        (this.opacity = 1),
+                        (this.transparent = !1),
+                        (this.blending = Jt.NormalBlending),
+                        (this.blendSrc = Jt.SrcAlphaFactor),
+                        (this.blendDst = Jt.OneMinusSrcAlphaFactor),
+                        (this.blendEquation = Jt.AddEquation),
+                        (this.blendSrcAlpha = null),
+                        (this.blendDstAlpha = null),
+                        (this.blendEquationAlpha = null),
+                        (this.depthTest = !0),
+                        (this.depthWrite = !0),
+                        (this.colorWrite = !0),
+                        (this.polygonOffset = !1),
+                        (this.polygonOffsetFactor = 0),
+                        (this.polygonOffsetUnits = 0),
+                        (this.alphaTest = 0),
+                        (this.overdraw = 0),
+                        (this.visible = !0),
+                        (this._needsUpdate = !0);
+                    }),
+                    (Jt.Material.prototype = {
+                      constructor: Jt.Material,
+                      get needsUpdate() {
+                        return this._needsUpdate;
+                      },
+                      set needsUpdate(t) {
+                        !0 === t && this.update(), (this._needsUpdate = t);
+                      },
+                      setValues: function (t) {
+                        if (void 0 !== t)
+                          for (var e in t) {
+                            var n,
+                              r = t[e];
+                            void 0 === r
+                              ? Jt.warn("THREE.Material: '" + e + "' parameter is undefined.")
+                              : e in this &&
+                                ((n = this[e]) instanceof Jt.Color
+                                  ? n.set(r)
+                                  : n instanceof Jt.Vector3 && r instanceof Jt.Vector3
+                                    ? n.copy(r)
+                                    : (this[e] = 'overdraw' == e ? Number(r) : r));
+                          }
+                      },
+                      toJSON: function () {
+                        var t = {
+                          metadata: {
+                            version: 4.2,
+                            type: 'material',
+                            generator: 'MaterialExporter',
+                          },
+                          uuid: this.uuid,
+                          type: this.type,
+                        };
+                        return (
+                          '' !== this.name && (t.name = this.name),
+                          this instanceof Jt.MeshBasicMaterial
+                            ? ((t.color = this.color.getHex()),
+                              this.vertexColors !== Jt.NoColors &&
+                                (t.vertexColors = this.vertexColors),
+                              this.blending !== Jt.NormalBlending && (t.blending = this.blending),
+                              this.side !== Jt.FrontSide && (t.side = this.side))
+                            : this instanceof Jt.MeshLambertMaterial
+                              ? ((t.color = this.color.getHex()),
+                                (t.emissive = this.emissive.getHex()),
+                                this.vertexColors !== Jt.NoColors &&
+                                  (t.vertexColors = this.vertexColors),
+                                this.shading !== Jt.SmoothShading && (t.shading = this.shading),
+                                this.blending !== Jt.NormalBlending && (t.blending = this.blending),
+                                this.side !== Jt.FrontSide && (t.side = this.side))
+                              : this instanceof Jt.MeshPhongMaterial
+                                ? ((t.color = this.color.getHex()),
+                                  (t.emissive = this.emissive.getHex()),
+                                  (t.specular = this.specular.getHex()),
+                                  (t.shininess = this.shininess),
+                                  this.vertexColors !== Jt.NoColors &&
+                                    (t.vertexColors = this.vertexColors),
+                                  this.shading !== Jt.SmoothShading && (t.shading = this.shading),
+                                  this.blending !== Jt.NormalBlending &&
+                                    (t.blending = this.blending),
+                                  this.side !== Jt.FrontSide && (t.side = this.side))
+                                : this instanceof Jt.MeshNormalMaterial ||
+                                    this instanceof Jt.MeshDepthMaterial
+                                  ? (this.blending !== Jt.NormalBlending &&
+                                      (t.blending = this.blending),
+                                    this.side !== Jt.FrontSide && (t.side = this.side))
+                                  : this instanceof Jt.PointCloudMaterial
+                                    ? ((t.size = this.size),
+                                      (t.sizeAttenuation = this.sizeAttenuation),
+                                      (t.color = this.color.getHex()),
+                                      this.vertexColors !== Jt.NoColors &&
+                                        (t.vertexColors = this.vertexColors),
+                                      this.blending !== Jt.NormalBlending &&
+                                        (t.blending = this.blending))
+                                    : this instanceof Jt.ShaderMaterial
+                                      ? ((t.uniforms = this.uniforms),
+                                        (t.vertexShader = this.vertexShader),
+                                        (t.fragmentShader = this.fragmentShader))
+                                      : this instanceof Jt.SpriteMaterial &&
+                                        (t.color = this.color.getHex()),
+                          this.opacity < 1 && (t.opacity = this.opacity),
+                          !1 !== this.transparent && (t.transparent = this.transparent),
+                          !1 !== this.wireframe && (t.wireframe = this.wireframe),
+                          t
+                        );
+                      },
+                      clone: function (t) {
+                        return (
+                          ((t = void 0 === t ? new Jt.Material() : t).name = this.name),
+                          (t.side = this.side),
+                          (t.opacity = this.opacity),
+                          (t.transparent = this.transparent),
+                          (t.blending = this.blending),
+                          (t.blendSrc = this.blendSrc),
+                          (t.blendDst = this.blendDst),
+                          (t.blendEquation = this.blendEquation),
+                          (t.blendSrcAlpha = this.blendSrcAlpha),
+                          (t.blendDstAlpha = this.blendDstAlpha),
+                          (t.blendEquationAlpha = this.blendEquationAlpha),
+                          (t.depthTest = this.depthTest),
+                          (t.depthWrite = this.depthWrite),
+                          (t.polygonOffset = this.polygonOffset),
+                          (t.polygonOffsetFactor = this.polygonOffsetFactor),
+                          (t.polygonOffsetUnits = this.polygonOffsetUnits),
+                          (t.alphaTest = this.alphaTest),
+                          (t.overdraw = this.overdraw),
+                          (t.visible = this.visible),
+                          t
+                        );
+                      },
+                      update: function () {
+                        this.dispatchEvent({ type: 'update' });
+                      },
+                      dispose: function () {
+                        this.dispatchEvent({ type: 'dispose' });
+                      },
+                    }),
+                    Jt.EventDispatcher.prototype.apply(Jt.Material.prototype),
+                    (Jt.MaterialIdCount = 0),
+                    (Jt.LineBasicMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'LineBasicMaterial'),
+                        (this.color = new Jt.Color(16777215)),
+                        (this.linewidth = 1),
+                        (this.linecap = 'round'),
+                        (this.linejoin = 'round'),
+                        (this.vertexColors = Jt.NoColors),
+                        (this.fog = !0),
+                        this.setValues(t);
+                    }),
+                    (Jt.LineBasicMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.LineBasicMaterial.prototype.constructor = Jt.LineBasicMaterial),
+                    (Jt.LineBasicMaterial.prototype.clone = function () {
+                      var t = new Jt.LineBasicMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        (t.linewidth = this.linewidth),
+                        (t.linecap = this.linecap),
+                        (t.linejoin = this.linejoin),
+                        (t.vertexColors = this.vertexColors),
+                        (t.fog = this.fog),
+                        t
+                      );
+                    }),
+                    (Jt.LineDashedMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'LineDashedMaterial'),
+                        (this.color = new Jt.Color(16777215)),
+                        (this.linewidth = 1),
+                        (this.scale = 1),
+                        (this.dashSize = 3),
+                        (this.gapSize = 1),
+                        (this.vertexColors = !1),
+                        (this.fog = !0),
+                        this.setValues(t);
+                    }),
+                    (Jt.LineDashedMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.LineDashedMaterial.prototype.constructor = Jt.LineDashedMaterial),
+                    (Jt.LineDashedMaterial.prototype.clone = function () {
+                      var t = new Jt.LineDashedMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        (t.linewidth = this.linewidth),
+                        (t.scale = this.scale),
+                        (t.dashSize = this.dashSize),
+                        (t.gapSize = this.gapSize),
+                        (t.vertexColors = this.vertexColors),
+                        (t.fog = this.fog),
+                        t
+                      );
+                    }),
+                    (Jt.MeshBasicMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'MeshBasicMaterial'),
+                        (this.color = new Jt.Color(16777215)),
+                        (this.map = null),
+                        (this.lightMap = null),
+                        (this.specularMap = null),
+                        (this.alphaMap = null),
+                        (this.envMap = null),
+                        (this.combine = Jt.MultiplyOperation),
+                        (this.reflectivity = 1),
+                        (this.refractionRatio = 0.98),
+                        (this.fog = !0),
+                        (this.shading = Jt.SmoothShading),
+                        (this.wireframe = !1),
+                        (this.wireframeLinewidth = 1),
+                        (this.wireframeLinecap = 'round'),
+                        (this.wireframeLinejoin = 'round'),
+                        (this.vertexColors = Jt.NoColors),
+                        (this.skinning = !1),
+                        (this.morphTargets = !1),
+                        this.setValues(t);
+                    }),
+                    (Jt.MeshBasicMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.MeshBasicMaterial.prototype.constructor = Jt.MeshBasicMaterial),
+                    (Jt.MeshBasicMaterial.prototype.clone = function () {
+                      var t = new Jt.MeshBasicMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        (t.map = this.map),
+                        (t.lightMap = this.lightMap),
+                        (t.specularMap = this.specularMap),
+                        (t.alphaMap = this.alphaMap),
+                        (t.envMap = this.envMap),
+                        (t.combine = this.combine),
+                        (t.reflectivity = this.reflectivity),
+                        (t.refractionRatio = this.refractionRatio),
+                        (t.fog = this.fog),
+                        (t.shading = this.shading),
+                        (t.wireframe = this.wireframe),
+                        (t.wireframeLinewidth = this.wireframeLinewidth),
+                        (t.wireframeLinecap = this.wireframeLinecap),
+                        (t.wireframeLinejoin = this.wireframeLinejoin),
+                        (t.vertexColors = this.vertexColors),
+                        (t.skinning = this.skinning),
+                        (t.morphTargets = this.morphTargets),
+                        t
+                      );
+                    }),
+                    (Jt.MeshLambertMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'MeshLambertMaterial'),
+                        (this.color = new Jt.Color(16777215)),
+                        (this.emissive = new Jt.Color(0)),
+                        (this.wrapAround = !1),
+                        (this.wrapRGB = new Jt.Vector3(1, 1, 1)),
+                        (this.map = null),
+                        (this.lightMap = null),
+                        (this.specularMap = null),
+                        (this.alphaMap = null),
+                        (this.envMap = null),
+                        (this.combine = Jt.MultiplyOperation),
+                        (this.reflectivity = 1),
+                        (this.refractionRatio = 0.98),
+                        (this.fog = !0),
+                        (this.shading = Jt.SmoothShading),
+                        (this.wireframe = !1),
+                        (this.wireframeLinewidth = 1),
+                        (this.wireframeLinecap = 'round'),
+                        (this.wireframeLinejoin = 'round'),
+                        (this.vertexColors = Jt.NoColors),
+                        (this.skinning = !1),
+                        (this.morphTargets = !1),
+                        (this.morphNormals = !1),
+                        this.setValues(t);
+                    }),
+                    (Jt.MeshLambertMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.MeshLambertMaterial.prototype.constructor = Jt.MeshLambertMaterial),
+                    (Jt.MeshLambertMaterial.prototype.clone = function () {
+                      var t = new Jt.MeshLambertMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        t.emissive.copy(this.emissive),
+                        (t.wrapAround = this.wrapAround),
+                        t.wrapRGB.copy(this.wrapRGB),
+                        (t.map = this.map),
+                        (t.lightMap = this.lightMap),
+                        (t.specularMap = this.specularMap),
+                        (t.alphaMap = this.alphaMap),
+                        (t.envMap = this.envMap),
+                        (t.combine = this.combine),
+                        (t.reflectivity = this.reflectivity),
+                        (t.refractionRatio = this.refractionRatio),
+                        (t.fog = this.fog),
+                        (t.shading = this.shading),
+                        (t.wireframe = this.wireframe),
+                        (t.wireframeLinewidth = this.wireframeLinewidth),
+                        (t.wireframeLinecap = this.wireframeLinecap),
+                        (t.wireframeLinejoin = this.wireframeLinejoin),
+                        (t.vertexColors = this.vertexColors),
+                        (t.skinning = this.skinning),
+                        (t.morphTargets = this.morphTargets),
+                        (t.morphNormals = this.morphNormals),
+                        t
+                      );
+                    }),
+                    (Jt.MeshPhongMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'MeshPhongMaterial'),
+                        (this.color = new Jt.Color(16777215)),
+                        (this.emissive = new Jt.Color(0)),
+                        (this.specular = new Jt.Color(1118481)),
+                        (this.shininess = 30),
+                        (this.metal = !1),
+                        (this.wrapAround = !1),
+                        (this.wrapRGB = new Jt.Vector3(1, 1, 1)),
+                        (this.map = null),
+                        (this.lightMap = null),
+                        (this.bumpMap = null),
+                        (this.bumpScale = 1),
+                        (this.normalMap = null),
+                        (this.normalScale = new Jt.Vector2(1, 1)),
+                        (this.specularMap = null),
+                        (this.alphaMap = null),
+                        (this.envMap = null),
+                        (this.combine = Jt.MultiplyOperation),
+                        (this.reflectivity = 1),
+                        (this.refractionRatio = 0.98),
+                        (this.fog = !0),
+                        (this.shading = Jt.SmoothShading),
+                        (this.wireframe = !1),
+                        (this.wireframeLinewidth = 1),
+                        (this.wireframeLinecap = 'round'),
+                        (this.wireframeLinejoin = 'round'),
+                        (this.vertexColors = Jt.NoColors),
+                        (this.skinning = !1),
+                        (this.morphTargets = !1),
+                        (this.morphNormals = !1),
+                        this.setValues(t);
+                    }),
+                    (Jt.MeshPhongMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.MeshPhongMaterial.prototype.constructor = Jt.MeshPhongMaterial),
+                    (Jt.MeshPhongMaterial.prototype.clone = function () {
+                      var t = new Jt.MeshPhongMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        t.emissive.copy(this.emissive),
+                        t.specular.copy(this.specular),
+                        (t.shininess = this.shininess),
+                        (t.metal = this.metal),
+                        (t.wrapAround = this.wrapAround),
+                        t.wrapRGB.copy(this.wrapRGB),
+                        (t.map = this.map),
+                        (t.lightMap = this.lightMap),
+                        (t.bumpMap = this.bumpMap),
+                        (t.bumpScale = this.bumpScale),
+                        (t.normalMap = this.normalMap),
+                        t.normalScale.copy(this.normalScale),
+                        (t.specularMap = this.specularMap),
+                        (t.alphaMap = this.alphaMap),
+                        (t.envMap = this.envMap),
+                        (t.combine = this.combine),
+                        (t.reflectivity = this.reflectivity),
+                        (t.refractionRatio = this.refractionRatio),
+                        (t.fog = this.fog),
+                        (t.shading = this.shading),
+                        (t.wireframe = this.wireframe),
+                        (t.wireframeLinewidth = this.wireframeLinewidth),
+                        (t.wireframeLinecap = this.wireframeLinecap),
+                        (t.wireframeLinejoin = this.wireframeLinejoin),
+                        (t.vertexColors = this.vertexColors),
+                        (t.skinning = this.skinning),
+                        (t.morphTargets = this.morphTargets),
+                        (t.morphNormals = this.morphNormals),
+                        t
+                      );
+                    }),
+                    (Jt.MeshDepthMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'MeshDepthMaterial'),
+                        (this.morphTargets = !1),
+                        (this.wireframe = !1),
+                        (this.wireframeLinewidth = 1),
+                        this.setValues(t);
+                    }),
+                    (Jt.MeshDepthMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.MeshDepthMaterial.prototype.constructor = Jt.MeshDepthMaterial),
+                    (Jt.MeshDepthMaterial.prototype.clone = function () {
+                      var t = new Jt.MeshDepthMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        (t.wireframe = this.wireframe),
+                        (t.wireframeLinewidth = this.wireframeLinewidth),
+                        t
+                      );
+                    }),
+                    (Jt.MeshNormalMaterial = function (t) {
+                      Jt.Material.call(this, t),
+                        (this.type = 'MeshNormalMaterial'),
+                        (this.wireframe = !1),
+                        (this.wireframeLinewidth = 1),
+                        (this.morphTargets = !1),
+                        this.setValues(t);
+                    }),
+                    (Jt.MeshNormalMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.MeshNormalMaterial.prototype.constructor = Jt.MeshNormalMaterial),
+                    (Jt.MeshNormalMaterial.prototype.clone = function () {
+                      var t = new Jt.MeshNormalMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        (t.wireframe = this.wireframe),
+                        (t.wireframeLinewidth = this.wireframeLinewidth),
+                        t
+                      );
+                    }),
+                    (Jt.MeshFaceMaterial = function (t) {
+                      (this.uuid = Jt.Math.generateUUID()),
+                        (this.type = 'MeshFaceMaterial'),
+                        (this.materials = t instanceof Array ? t : []);
+                    }),
+                    (Jt.MeshFaceMaterial.prototype = {
+                      constructor: Jt.MeshFaceMaterial,
+                      toJSON: function () {
+                        for (
+                          var t = {
+                              metadata: {
+                                version: 4.2,
+                                type: 'material',
+                                generator: 'MaterialExporter',
+                              },
+                              uuid: this.uuid,
+                              type: this.type,
+                              materials: [],
+                            },
+                            e = 0,
+                            n = this.materials.length;
+                          e < n;
+                          e++
+                        )
+                          t.materials.push(this.materials[e].toJSON());
+                        return t;
+                      },
+                      clone: function () {
+                        for (
+                          var t = new Jt.MeshFaceMaterial(), e = 0;
+                          e < this.materials.length;
+                          e++
+                        )
+                          t.materials.push(this.materials[e].clone());
+                        return t;
+                      },
+                    }),
+                    (Jt.PointCloudMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'PointCloudMaterial'),
+                        (this.color = new Jt.Color(16777215)),
+                        (this.map = null),
+                        (this.size = 1),
+                        (this.sizeAttenuation = !0),
+                        (this.vertexColors = Jt.NoColors),
+                        (this.fog = !0),
+                        this.setValues(t);
+                    }),
+                    (Jt.PointCloudMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.PointCloudMaterial.prototype.constructor = Jt.PointCloudMaterial),
+                    (Jt.PointCloudMaterial.prototype.clone = function () {
+                      var t = new Jt.PointCloudMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        (t.map = this.map),
+                        (t.size = this.size),
+                        (t.sizeAttenuation = this.sizeAttenuation),
+                        (t.vertexColors = this.vertexColors),
+                        (t.fog = this.fog),
+                        t
+                      );
+                    }),
+                    (Jt.ParticleBasicMaterial = function (t) {
+                      return (
+                        Jt.warn(
+                          'THREE.ParticleBasicMaterial has been renamed to THREE.PointCloudMaterial.',
+                        ),
+                        new Jt.PointCloudMaterial(t)
+                      );
+                    }),
+                    (Jt.ParticleSystemMaterial = function (t) {
+                      return (
+                        Jt.warn(
+                          'THREE.ParticleSystemMaterial has been renamed to THREE.PointCloudMaterial.',
+                        ),
+                        new Jt.PointCloudMaterial(t)
+                      );
+                    }),
+                    (Jt.ShaderMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'ShaderMaterial'),
+                        (this.defines = {}),
+                        (this.uniforms = {}),
+                        (this.attributes = null),
+                        (this.vertexShader =
+                          'void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}'),
+                        (this.fragmentShader =
+                          'void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}'),
+                        (this.shading = Jt.SmoothShading),
+                        (this.linewidth = 1),
+                        (this.wireframe = !1),
+                        (this.wireframeLinewidth = 1),
+                        (this.fog = !1),
+                        (this.lights = !1),
+                        (this.vertexColors = Jt.NoColors),
+                        (this.skinning = !1),
+                        (this.morphTargets = !1),
+                        (this.morphNormals = !1),
+                        (this.defaultAttributeValues = {
+                          color: [1, 1, 1],
+                          uv: [0, 0],
+                          uv2: [0, 0],
+                        }),
+                        (this.index0AttributeName = void 0),
+                        this.setValues(t);
+                    }),
+                    (Jt.ShaderMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.ShaderMaterial.prototype.constructor = Jt.ShaderMaterial),
+                    (Jt.ShaderMaterial.prototype.clone = function () {
+                      var t = new Jt.ShaderMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        (t.fragmentShader = this.fragmentShader),
+                        (t.vertexShader = this.vertexShader),
+                        (t.uniforms = Jt.UniformsUtils.clone(this.uniforms)),
+                        (t.attributes = this.attributes),
+                        (t.defines = this.defines),
+                        (t.shading = this.shading),
+                        (t.wireframe = this.wireframe),
+                        (t.wireframeLinewidth = this.wireframeLinewidth),
+                        (t.fog = this.fog),
+                        (t.lights = this.lights),
+                        (t.vertexColors = this.vertexColors),
+                        (t.skinning = this.skinning),
+                        (t.morphTargets = this.morphTargets),
+                        (t.morphNormals = this.morphNormals),
+                        t
+                      );
+                    }),
+                    (Jt.RawShaderMaterial = function (t) {
+                      Jt.ShaderMaterial.call(this, t), (this.type = 'RawShaderMaterial');
+                    }),
+                    (Jt.RawShaderMaterial.prototype = Object.create(Jt.ShaderMaterial.prototype)),
+                    (Jt.RawShaderMaterial.prototype.constructor = Jt.RawShaderMaterial),
+                    (Jt.RawShaderMaterial.prototype.clone = function () {
+                      var t = new Jt.RawShaderMaterial();
+                      return Jt.ShaderMaterial.prototype.clone.call(this, t), t;
+                    }),
+                    (Jt.SpriteMaterial = function (t) {
+                      Jt.Material.call(this),
+                        (this.type = 'SpriteMaterial'),
+                        (this.color = new Jt.Color(16777215)),
+                        (this.map = null),
+                        (this.rotation = 0),
+                        (this.fog = !1),
+                        this.setValues(t);
+                    }),
+                    (Jt.SpriteMaterial.prototype = Object.create(Jt.Material.prototype)),
+                    (Jt.SpriteMaterial.prototype.constructor = Jt.SpriteMaterial),
+                    (Jt.SpriteMaterial.prototype.clone = function () {
+                      var t = new Jt.SpriteMaterial();
+                      return (
+                        Jt.Material.prototype.clone.call(this, t),
+                        t.color.copy(this.color),
+                        (t.map = this.map),
+                        (t.rotation = this.rotation),
+                        (t.fog = this.fog),
+                        t
+                      );
+                    }),
+                    (Jt.Texture = function (t, e, n, r, i, o, a, s, l) {
+                      Object.defineProperty(this, 'id', { value: Jt.TextureIdCount++ }),
+                        (this.uuid = Jt.Math.generateUUID()),
+                        (this.name = ''),
+                        (this.sourceFile = ''),
+                        (this.image = void 0 !== t ? t : Jt.Texture.DEFAULT_IMAGE),
+                        (this.mipmaps = []),
+                        (this.mapping = void 0 !== e ? e : Jt.Texture.DEFAULT_MAPPING),
+                        (this.wrapS = void 0 !== n ? n : Jt.ClampToEdgeWrapping),
+                        (this.wrapT = void 0 !== r ? r : Jt.ClampToEdgeWrapping),
+                        (this.magFilter = void 0 !== i ? i : Jt.LinearFilter),
+                        (this.minFilter = void 0 !== o ? o : Jt.LinearMipMapLinearFilter),
+                        (this.anisotropy = void 0 !== l ? l : 1),
+                        (this.format = void 0 !== a ? a : Jt.RGBAFormat),
+                        (this.type = void 0 !== s ? s : Jt.UnsignedByteType),
+                        (this.offset = new Jt.Vector2(0, 0)),
+                        (this.repeat = new Jt.Vector2(1, 1)),
+                        (this.generateMipmaps = !0),
+                        (this.premultiplyAlpha = !1),
+                        (this.flipY = !0),
+                        (this.unpackAlignment = 4),
+                        (this._needsUpdate = !1),
+                        (this.onUpdate = null);
+                    }),
+                    (Jt.Texture.DEFAULT_IMAGE = void 0),
+                    (Jt.Texture.DEFAULT_MAPPING = Jt.UVMapping),
+                    (Jt.Texture.prototype = {
+                      constructor: Jt.Texture,
+                      get needsUpdate() {
+                        return this._needsUpdate;
+                      },
+                      set needsUpdate(t) {
+                        !0 === t && this.update(), (this._needsUpdate = t);
+                      },
+                      clone: function (t) {
+                        return (
+                          ((t = void 0 === t ? new Jt.Texture() : t).image = this.image),
+                          (t.mipmaps = this.mipmaps.slice(0)),
+                          (t.mapping = this.mapping),
+                          (t.wrapS = this.wrapS),
+                          (t.wrapT = this.wrapT),
+                          (t.magFilter = this.magFilter),
+                          (t.minFilter = this.minFilter),
+                          (t.anisotropy = this.anisotropy),
+                          (t.format = this.format),
+                          (t.type = this.type),
+                          t.offset.copy(this.offset),
+                          t.repeat.copy(this.repeat),
+                          (t.generateMipmaps = this.generateMipmaps),
+                          (t.premultiplyAlpha = this.premultiplyAlpha),
+                          (t.flipY = this.flipY),
+                          (t.unpackAlignment = this.unpackAlignment),
+                          t
+                        );
+                      },
+                      update: function () {
+                        this.dispatchEvent({ type: 'update' });
+                      },
+                      dispose: function () {
+                        this.dispatchEvent({ type: 'dispose' });
+                      },
+                    }),
+                    Jt.EventDispatcher.prototype.apply(Jt.Texture.prototype),
+                    (Jt.TextureIdCount = 0),
+                    (Jt.CubeTexture = function (t, e, n, r, i, o, a, s, l) {
+                      (e = void 0 !== e ? e : Jt.CubeReflectionMapping),
+                        Jt.Texture.call(this, t, e, n, r, i, o, a, s, l),
+                        (this.images = t);
+                    }),
+                    (Jt.CubeTexture.prototype = Object.create(Jt.Texture.prototype)),
+                    (Jt.CubeTexture.prototype.constructor = Jt.CubeTexture),
+                    (Jt.CubeTexture.clone = function (t) {
+                      return (
+                        void 0 === t && (t = new Jt.CubeTexture()),
+                        Jt.Texture.prototype.clone.call(this, t),
+                        (t.images = this.images),
+                        t
+                      );
+                    }),
+                    (Jt.CompressedTexture = function (t, e, n, r, i, o, a, s, l, u, c) {
+                      Jt.Texture.call(this, null, o, a, s, l, u, r, i, c),
+                        (this.image = { width: e, height: n }),
+                        (this.mipmaps = t),
+                        (this.flipY = !1),
+                        (this.generateMipmaps = !1);
+                    }),
+                    (Jt.CompressedTexture.prototype = Object.create(Jt.Texture.prototype)),
+                    (Jt.CompressedTexture.prototype.constructor = Jt.CompressedTexture),
+                    (Jt.CompressedTexture.prototype.clone = function () {
+                      var t = new Jt.CompressedTexture();
+                      return Jt.Texture.prototype.clone.call(this, t), t;
+                    }),
+                    (Jt.DataTexture = function (t, e, n, r, i, o, a, s, l, u, c) {
+                      Jt.Texture.call(this, null, o, a, s, l, u, r, i, c),
+                        (this.image = { data: t, width: e, height: n });
+                    }),
+                    (Jt.DataTexture.prototype = Object.create(Jt.Texture.prototype)),
+                    (Jt.DataTexture.prototype.constructor = Jt.DataTexture),
+                    (Jt.DataTexture.prototype.clone = function () {
+                      var t = new Jt.DataTexture();
+                      return Jt.Texture.prototype.clone.call(this, t), t;
+                    }),
+                    (Jt.VideoTexture = function (t, e, n, r, i, o, a, s, l) {
+                      Jt.Texture.call(this, t, e, n, r, i, o, a, s, l), (this.generateMipmaps = !1);
+                      var u = this,
+                        c = function () {
+                          requestAnimationFrame(c),
+                            t.readyState === t.HAVE_ENOUGH_DATA && (u.needsUpdate = !0);
+                        };
+                      c();
+                    }),
+                    (Jt.VideoTexture.prototype = Object.create(Jt.Texture.prototype)),
+                    (Jt.VideoTexture.prototype.constructor = Jt.VideoTexture),
+                    (Jt.Group = function () {
+                      Jt.Object3D.call(this), (this.type = 'Group');
+                    }),
+                    (Jt.Group.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Group.prototype.constructor = Jt.Group),
+                    (Jt.PointCloud = function (t, e) {
+                      Jt.Object3D.call(this),
+                        (this.type = 'PointCloud'),
+                        (this.geometry = void 0 !== t ? t : new Jt.Geometry()),
+                        (this.material =
+                          void 0 !== e
+                            ? e
+                            : new Jt.PointCloudMaterial({ color: 16777215 * Math.random() }));
+                    }),
+                    (Jt.PointCloud.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.PointCloud.prototype.constructor = Jt.PointCloud),
+                    (Jt.PointCloud.prototype.raycast =
+                      ((fn = new Jt.Matrix4()),
+                      (gn = new Jt.Ray()),
+                      function (i, o) {
+                        var a = this,
+                          t = a.geometry,
+                          e = i.params.PointCloud.threshold;
+                        if (
+                          (fn.getInverse(this.matrixWorld),
+                          gn.copy(i.ray).applyMatrix4(fn),
+                          null === t.boundingBox || !1 !== gn.isIntersectionBox(t.boundingBox))
+                        ) {
+                          var s = e / ((this.scale.x + this.scale.y + this.scale.z) / 3),
+                            n = new Jt.Vector3(),
+                            r = function (t, e) {
+                              var n,
+                                r = gn.distanceToPoint(t);
+                              r < s &&
+                                ((t = gn.closestPointToPoint(t)).applyMatrix4(a.matrixWorld),
+                                (n = i.ray.origin.distanceTo(t)),
+                                o.push({
+                                  distance: n,
+                                  distanceToRay: r,
+                                  point: t.clone(),
+                                  index: e,
+                                  face: null,
+                                  object: a,
+                                }));
+                            };
+                          if (t instanceof Jt.BufferGeometry) {
+                            var e = t.attributes,
+                              l = e.position.array;
+                            if (void 0 !== e.index)
+                              for (
+                                var u = e.index.array,
+                                  c = t.offsets,
+                                  A = 0,
+                                  h = (c =
+                                    0 === c.length ? [{ start: 0, count: u.length, index: 0 }] : c)
+                                    .length;
+                                A < h;
+                                ++A
+                              )
+                                for (
+                                  var p = c[A].start,
+                                    d = c[A].count,
+                                    f = c[A].index,
+                                    g = p,
+                                    m = p + d;
+                                  g < m;
+                                  g++
+                                ) {
+                                  var v = f + u[g];
+                                  n.fromArray(l, 3 * v), r(n, v);
+                                }
+                            else
+                              for (var b = l.length / 3, g = 0; g < b; g++)
+                                n.set(l[3 * g], l[3 * g + 1], l[3 * g + 2]), r(n, g);
+                          } else
+                            for (var y = this.geometry.vertices, g = 0; g < y.length; g++)
+                              r(y[g], g);
+                        }
+                      })),
+                    (Jt.PointCloud.prototype.clone = function (t) {
+                      return (
+                        void 0 === t && (t = new Jt.PointCloud(this.geometry, this.material)),
+                        Jt.Object3D.prototype.clone.call(this, t),
+                        t
+                      );
+                    }),
+                    (Jt.ParticleSystem = function (t, e) {
+                      return (
+                        Jt.warn('THREE.ParticleSystem has been renamed to THREE.PointCloud.'),
+                        new Jt.PointCloud(t, e)
+                      );
+                    }),
+                    (Jt.Line = function (t, e, n) {
+                      Jt.Object3D.call(this),
+                        (this.type = 'Line'),
+                        (this.geometry = void 0 !== t ? t : new Jt.Geometry()),
+                        (this.material =
+                          void 0 !== e
+                            ? e
+                            : new Jt.LineBasicMaterial({ color: 16777215 * Math.random() })),
+                        (this.mode = void 0 !== n ? n : Jt.LineStrip);
+                    }),
+                    (Jt.LineStrip = 0),
+                    (Jt.LinePieces = 1),
+                    (Jt.Line.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Line.prototype.constructor = Jt.Line),
+                    (Jt.Line.prototype.raycast =
+                      ((mn = new Jt.Matrix4()),
+                      (vn = new Jt.Ray()),
+                      (bn = new Jt.Sphere()),
+                      function (t, e) {
+                        var n = t.linePrecision,
+                          r = n * n,
+                          n = this.geometry;
+                        if (
+                          (null === n.boundingSphere && n.computeBoundingSphere(),
+                          bn.copy(n.boundingSphere),
+                          bn.applyMatrix4(this.matrixWorld),
+                          !1 !== t.ray.isIntersectionSphere(bn))
+                        ) {
+                          mn.getInverse(this.matrixWorld), vn.copy(t.ray).applyMatrix4(mn);
+                          var i = new Jt.Vector3(),
+                            o = new Jt.Vector3(),
+                            a = new Jt.Vector3(),
+                            s = new Jt.Vector3(),
+                            l = this.mode === Jt.LineStrip ? 1 : 2;
+                          if (n instanceof Jt.BufferGeometry) {
+                            var u = n.attributes;
+                            if (void 0 !== u.index) {
+                              var c = u.index.array,
+                                A = u.position.array,
+                                h = n.offsets;
+                              0 === h.length && (h = [{ start: 0, count: c.length, index: 0 }]);
+                              for (var p = 0; p < h.length; p++)
+                                for (
+                                  var d = h[p].start, f = h[p].count, g = h[p].index, m = d;
+                                  m < d + f - 1;
+                                  m += l
+                                ) {
+                                  var v = g + c[m],
+                                    b = g + c[m + 1];
+                                  i.fromArray(A, 3 * v),
+                                    o.fromArray(A, 3 * b),
+                                    r < vn.distanceSqToSegment(i, o, s, a) ||
+                                      (y = vn.origin.distanceTo(s)) < t.near ||
+                                      y > t.far ||
+                                      e.push({
+                                        distance: y,
+                                        point: a.clone().applyMatrix4(this.matrixWorld),
+                                        index: m,
+                                        offsetIndex: p,
+                                        face: null,
+                                        faceIndex: null,
+                                        object: this,
+                                      });
+                                }
+                            } else
+                              for (A = u.position.array, m = 0; m < A.length / 3 - 1; m += l)
+                                i.fromArray(A, 3 * m),
+                                  o.fromArray(A, 3 * m + 3),
+                                  r < vn.distanceSqToSegment(i, o, s, a) ||
+                                    (y = vn.origin.distanceTo(s)) < t.near ||
+                                    y > t.far ||
+                                    e.push({
+                                      distance: y,
+                                      point: a.clone().applyMatrix4(this.matrixWorld),
+                                      index: m,
+                                      face: null,
+                                      faceIndex: null,
+                                      object: this,
+                                    });
+                          } else if (n instanceof Jt.Geometry)
+                            for (var y, w = n.vertices, E = w.length, m = 0; m < E - 1; m += l)
+                              r < vn.distanceSqToSegment(w[m], w[m + 1], s, a) ||
+                                (y = vn.origin.distanceTo(s)) < t.near ||
+                                y > t.far ||
+                                e.push({
+                                  distance: y,
+                                  point: a.clone().applyMatrix4(this.matrixWorld),
+                                  index: m,
+                                  face: null,
+                                  faceIndex: null,
+                                  object: this,
+                                });
+                        }
+                      })),
+                    (Jt.Line.prototype.clone = function (t) {
+                      return (
+                        void 0 === t && (t = new Jt.Line(this.geometry, this.material, this.mode)),
+                        Jt.Object3D.prototype.clone.call(this, t),
+                        t
+                      );
+                    }),
+                    (Jt.Mesh = function (t, e) {
+                      Jt.Object3D.call(this),
+                        (this.type = 'Mesh'),
+                        (this.geometry = void 0 !== t ? t : new Jt.Geometry()),
+                        (this.material =
+                          void 0 !== e
+                            ? e
+                            : new Jt.MeshBasicMaterial({ color: 16777215 * Math.random() })),
+                        this.updateMorphTargets();
+                    }),
+                    (Jt.Mesh.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Mesh.prototype.constructor = Jt.Mesh),
+                    (Jt.Mesh.prototype.updateMorphTargets = function () {
+                      if (
+                        void 0 !== this.geometry.morphTargets &&
+                        0 < this.geometry.morphTargets.length
+                      ) {
+                        (this.morphTargetBase = -1),
+                          (this.morphTargetForcedOrder = []),
+                          (this.morphTargetInfluences = []),
+                          (this.morphTargetDictionary = {});
+                        for (var t = 0, e = this.geometry.morphTargets.length; t < e; t++)
+                          this.morphTargetInfluences.push(0),
+                            (this.morphTargetDictionary[this.geometry.morphTargets[t].name] = t);
+                      }
+                    }),
+                    (Jt.Mesh.prototype.getMorphTargetIndexByName = function (t) {
+                      return void 0 !== this.morphTargetDictionary[t]
+                        ? this.morphTargetDictionary[t]
+                        : (Jt.warn(
+                            'THREE.Mesh.getMorphTargetIndexByName: morph target ' +
+                              t +
+                              ' does not exist. Returning 0.',
+                          ),
+                          0);
+                    }),
+                    (Jt.Mesh.prototype.raycast =
+                      ((yn = new Jt.Matrix4()),
+                      (wn = new Jt.Ray()),
+                      (En = new Jt.Sphere()),
+                      (Bn = new Jt.Vector3()),
+                      (Cn = new Jt.Vector3()),
+                      (xn = new Jt.Vector3()),
+                      function (t, e) {
+                        var n = this.geometry;
+                        if (
+                          (null === n.boundingSphere && n.computeBoundingSphere(),
+                          En.copy(n.boundingSphere),
+                          En.applyMatrix4(this.matrixWorld),
+                          !1 !== t.ray.isIntersectionSphere(En) &&
+                            (yn.getInverse(this.matrixWorld),
+                            wn.copy(t.ray).applyMatrix4(yn),
+                            null === n.boundingBox || !1 !== wn.isIntersectionBox(n.boundingBox)))
+                        )
+                          if (n instanceof Jt.BufferGeometry) {
+                            var r = this.material;
+                            if (void 0 !== r) {
+                              var i = n.attributes,
+                                o = t.precision;
+                              if (void 0 !== i.index)
+                                for (
+                                  var a = i.index.array,
+                                    s = i.position.array,
+                                    l = n.offsets,
+                                    u = 0,
+                                    c = (l =
+                                      0 === l.length
+                                        ? [{ start: 0, count: a.length, index: 0 }]
+                                        : l).length;
+                                  u < c;
+                                  ++u
+                                )
+                                  for (
+                                    var A = l[u].start,
+                                      h = l[u].count,
+                                      p = l[u].index,
+                                      d = A,
+                                      f = A + h;
+                                    d < f;
+                                    d += 3
+                                  )
+                                    (m = p + a[d]),
+                                      (v = p + a[d + 1]),
+                                      (b = p + a[d + 2]),
+                                      Bn.fromArray(s, 3 * m),
+                                      Cn.fromArray(s, 3 * v),
+                                      xn.fromArray(s, 3 * b),
+                                      null !==
+                                        (x =
+                                          r.side === Jt.BackSide
+                                            ? wn.intersectTriangle(xn, Cn, Bn, !0)
+                                            : wn.intersectTriangle(
+                                                Bn,
+                                                Cn,
+                                                xn,
+                                                r.side !== Jt.DoubleSide,
+                                              )) &&
+                                        (x.applyMatrix4(this.matrixWorld),
+                                        (I = t.ray.origin.distanceTo(x)) < o ||
+                                          I < t.near ||
+                                          I > t.far ||
+                                          e.push({
+                                            distance: I,
+                                            point: x,
+                                            face: new Jt.Face3(
+                                              m,
+                                              v,
+                                              b,
+                                              Jt.Triangle.normal(Bn, Cn, xn),
+                                            ),
+                                            faceIndex: null,
+                                            object: this,
+                                          }));
+                              else
+                                for (
+                                  var d = 0, g = 0, f = (s = i.position.array).length;
+                                  d < f;
+                                  d += 3, g += 9
+                                )
+                                  (v = (m = d) + 1),
+                                    (b = d + 2),
+                                    Bn.fromArray(s, g),
+                                    Cn.fromArray(s, g + 3),
+                                    xn.fromArray(s, g + 6),
+                                    null !==
+                                      (x =
+                                        r.side === Jt.BackSide
+                                          ? wn.intersectTriangle(xn, Cn, Bn, !0)
+                                          : wn.intersectTriangle(
+                                              Bn,
+                                              Cn,
+                                              xn,
+                                              r.side !== Jt.DoubleSide,
+                                            )) &&
+                                      (x.applyMatrix4(this.matrixWorld),
+                                      (I = t.ray.origin.distanceTo(x)) < o ||
+                                        I < t.near ||
+                                        I > t.far ||
+                                        e.push({
+                                          distance: I,
+                                          point: x,
+                                          face: new Jt.Face3(
+                                            m,
+                                            v,
+                                            b,
+                                            Jt.Triangle.normal(Bn, Cn, xn),
+                                          ),
+                                          faceIndex: null,
+                                          object: this,
+                                        }));
+                            }
+                          } else if (n instanceof Jt.Geometry)
+                            for (
+                              var m,
+                                v,
+                                b,
+                                y = this.material instanceof Jt.MeshFaceMaterial,
+                                w = !0 == y ? this.material.materials : null,
+                                o = t.precision,
+                                E = n.vertices,
+                                B = 0,
+                                C = n.faces.length;
+                              B < C;
+                              B++
+                            ) {
+                              var x,
+                                I,
+                                M = n.faces[B],
+                                r = !0 == y ? w[M.materialIndex] : this.material;
+                              if (void 0 !== r) {
+                                if (
+                                  ((m = E[M.a]), (v = E[M.b]), (b = E[M.c]), !0 === r.morphTargets)
+                                ) {
+                                  var D = n.morphTargets,
+                                    S = this.morphTargetInfluences;
+                                  Bn.set(0, 0, 0), Cn.set(0, 0, 0), xn.set(0, 0, 0);
+                                  for (var k = 0, F = D.length; k < F; k++) {
+                                    var Q,
+                                      _ = S[k];
+                                    0 !== _ &&
+                                      ((Q = D[k].vertices),
+                                      (Bn.x += (Q[M.a].x - m.x) * _),
+                                      (Bn.y += (Q[M.a].y - m.y) * _),
+                                      (Bn.z += (Q[M.a].z - m.z) * _),
+                                      (Cn.x += (Q[M.b].x - v.x) * _),
+                                      (Cn.y += (Q[M.b].y - v.y) * _),
+                                      (Cn.z += (Q[M.b].z - v.z) * _),
+                                      (xn.x += (Q[M.c].x - b.x) * _),
+                                      (xn.y += (Q[M.c].y - b.y) * _),
+                                      (xn.z += (Q[M.c].z - b.z) * _));
+                                  }
+                                  Bn.add(m), Cn.add(v), xn.add(b), (m = Bn), (v = Cn), (b = xn);
+                                }
+                                null !==
+                                  (x =
+                                    r.side === Jt.BackSide
+                                      ? wn.intersectTriangle(b, v, m, !0)
+                                      : wn.intersectTriangle(m, v, b, r.side !== Jt.DoubleSide)) &&
+                                  (x.applyMatrix4(this.matrixWorld),
+                                  (I = t.ray.origin.distanceTo(x)) < o ||
+                                    I < t.near ||
+                                    I > t.far ||
+                                    e.push({
+                                      distance: I,
+                                      point: x,
+                                      face: M,
+                                      faceIndex: B,
+                                      object: this,
+                                    }));
+                              }
+                            }
+                      })),
+                    (Jt.Mesh.prototype.clone = function (t, e) {
+                      return (
+                        void 0 === t && (t = new Jt.Mesh(this.geometry, this.material)),
+                        Jt.Object3D.prototype.clone.call(this, t, e),
+                        t
+                      );
+                    }),
+                    (Jt.Bone = function (t) {
+                      Jt.Object3D.call(this), (this.type = 'Bone'), (this.skin = t);
+                    }),
+                    (Jt.Bone.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Bone.prototype.constructor = Jt.Bone),
+                    (Jt.Skeleton = function (t, e, n) {
+                      if (
+                        ((this.useVertexTexture = void 0 === n || n),
+                        (this.identityMatrix = new Jt.Matrix4()),
+                        (this.bones = (t = t || []).slice(0)),
+                        this.useVertexTexture
+                          ? ((n =
+                              256 < this.bones.length
+                                ? 64
+                                : 64 < this.bones.length
+                                  ? 32
+                                  : 16 < this.bones.length
+                                    ? 16
+                                    : 8),
+                            (this.boneTextureWidth = n),
+                            (this.boneTextureHeight = n),
+                            (this.boneMatrices = new Float32Array(
+                              this.boneTextureWidth * this.boneTextureHeight * 4,
+                            )),
+                            (this.boneTexture = new Jt.DataTexture(
+                              this.boneMatrices,
+                              this.boneTextureWidth,
+                              this.boneTextureHeight,
+                              Jt.RGBAFormat,
+                              Jt.FloatType,
+                            )),
+                            (this.boneTexture.minFilter = Jt.NearestFilter),
+                            (this.boneTexture.magFilter = Jt.NearestFilter),
+                            (this.boneTexture.generateMipmaps = !1),
+                            (this.boneTexture.flipY = !1))
+                          : (this.boneMatrices = new Float32Array(16 * this.bones.length)),
+                        void 0 === e)
+                      )
+                        this.calculateInverses();
+                      else if (this.bones.length === e.length) this.boneInverses = e.slice(0);
+                      else {
+                        Jt.warn('THREE.Skeleton bonInverses is the wrong length.'),
+                          (this.boneInverses = []);
+                        for (var r = 0, i = this.bones.length; r < i; r++)
+                          this.boneInverses.push(new Jt.Matrix4());
+                      }
+                    }),
+                    (Jt.Skeleton.prototype.calculateInverses = function () {
+                      this.boneInverses = [];
+                      for (var t = 0, e = this.bones.length; t < e; t++) {
+                        var n = new Jt.Matrix4();
+                        this.bones[t] && n.getInverse(this.bones[t].matrixWorld),
+                          this.boneInverses.push(n);
+                      }
+                    }),
+                    (Jt.Skeleton.prototype.pose = function () {
+                      for (var t, e = 0, n = this.bones.length; e < n; e++)
+                        (t = this.bones[e]) && t.matrixWorld.getInverse(this.boneInverses[e]);
+                      for (e = 0, n = this.bones.length; e < n; e++)
+                        (t = this.bones[e]) &&
+                          (t.parent
+                            ? (t.matrix.getInverse(t.parent.matrixWorld),
+                              t.matrix.multiply(t.matrixWorld))
+                            : t.matrix.copy(t.matrixWorld),
+                          t.matrix.decompose(t.position, t.quaternion, t.scale));
+                    }),
+                    (Jt.Skeleton.prototype.update =
+                      ((In = new Jt.Matrix4()),
+                      function () {
+                        for (var t = 0, e = this.bones.length; t < e; t++) {
+                          var n = this.bones[t] ? this.bones[t].matrixWorld : this.identityMatrix;
+                          In.multiplyMatrices(n, this.boneInverses[t]),
+                            In.flattenToArrayOffset(this.boneMatrices, 16 * t);
+                        }
+                        this.useVertexTexture && (this.boneTexture.needsUpdate = !0);
+                      })),
+                    (Jt.SkinnedMesh = function (t, e, n) {
+                      Jt.Mesh.call(this, t, e),
+                        (this.type = 'SkinnedMesh'),
+                        (this.bindMode = 'attached'),
+                        (this.bindMatrix = new Jt.Matrix4()),
+                        (this.bindMatrixInverse = new Jt.Matrix4());
+                      var r = [];
+                      if (this.geometry && void 0 !== this.geometry.bones) {
+                        for (var i, o, a, s, l, u = 0, c = this.geometry.bones.length; u < c; ++u)
+                          (a = (o = this.geometry.bones[u]).pos),
+                            (s = o.rotq),
+                            (l = o.scl),
+                            (i = new Jt.Bone(this)),
+                            r.push(i),
+                            (i.name = o.name),
+                            i.position.set(a[0], a[1], a[2]),
+                            i.quaternion.set(s[0], s[1], s[2], s[3]),
+                            void 0 !== l ? i.scale.set(l[0], l[1], l[2]) : i.scale.set(1, 1, 1);
+                        for (u = 0, c = this.geometry.bones.length; u < c; ++u)
+                          (-1 !== (o = this.geometry.bones[u]).parent ? r[o.parent] : this).add(
+                            r[u],
+                          );
+                      }
+                      this.normalizeSkinWeights(),
+                        this.updateMatrixWorld(!0),
+                        this.bind(new Jt.Skeleton(r, void 0, n));
+                    }),
+                    (Jt.SkinnedMesh.prototype = Object.create(Jt.Mesh.prototype)),
+                    (Jt.SkinnedMesh.prototype.constructor = Jt.SkinnedMesh),
+                    (Jt.SkinnedMesh.prototype.bind = function (t, e) {
+                      (this.skeleton = t),
+                        void 0 === e && (this.updateMatrixWorld(!0), (e = this.matrixWorld)),
+                        this.bindMatrix.copy(e),
+                        this.bindMatrixInverse.getInverse(e);
+                    }),
+                    (Jt.SkinnedMesh.prototype.pose = function () {
+                      this.skeleton.pose();
+                    }),
+                    (Jt.SkinnedMesh.prototype.normalizeSkinWeights = function () {
+                      if (this.geometry instanceof Jt.Geometry)
+                        for (var t = 0; t < this.geometry.skinIndices.length; t++) {
+                          var e = this.geometry.skinWeights[t],
+                            n = 1 / e.lengthManhattan();
+                          n != 1 / 0 ? e.multiplyScalar(n) : e.set(1);
+                        }
+                    }),
+                    (Jt.SkinnedMesh.prototype.updateMatrixWorld = function (t) {
+                      Jt.Mesh.prototype.updateMatrixWorld.call(this, !0),
+                        'attached' === this.bindMode
+                          ? this.bindMatrixInverse.getInverse(this.matrixWorld)
+                          : 'detached' === this.bindMode
+                            ? this.bindMatrixInverse.getInverse(this.bindMatrix)
+                            : Jt.warn('THREE.SkinnedMesh unreckognized bindMode: ' + this.bindMode);
+                    }),
+                    (Jt.SkinnedMesh.prototype.clone = function (t) {
+                      return (
+                        void 0 === t &&
+                          (t = new Jt.SkinnedMesh(
+                            this.geometry,
+                            this.material,
+                            this.useVertexTexture,
+                          )),
+                        Jt.Mesh.prototype.clone.call(this, t),
+                        t
+                      );
+                    }),
+                    (Jt.MorphAnimMesh = function (t, e) {
+                      Jt.Mesh.call(this, t, e),
+                        (this.type = 'MorphAnimMesh'),
+                        (this.duration = 1e3),
+                        (this.mirroredLoop = !1),
+                        (this.time = 0),
+                        (this.lastKeyframe = 0),
+                        (this.currentKeyframe = 0),
+                        (this.direction = 1),
+                        (this.directionBackwards = !1),
+                        this.setFrameRange(0, this.geometry.morphTargets.length - 1);
+                    }),
+                    (Jt.MorphAnimMesh.prototype = Object.create(Jt.Mesh.prototype)),
+                    (Jt.MorphAnimMesh.prototype.constructor = Jt.MorphAnimMesh),
+                    (Jt.MorphAnimMesh.prototype.setFrameRange = function (t, e) {
+                      (this.startKeyframe = t),
+                        (this.endKeyframe = e),
+                        (this.length = this.endKeyframe - this.startKeyframe + 1);
+                    }),
+                    (Jt.MorphAnimMesh.prototype.setDirectionForward = function () {
+                      (this.direction = 1), (this.directionBackwards = !1);
+                    }),
+                    (Jt.MorphAnimMesh.prototype.setDirectionBackward = function () {
+                      (this.direction = -1), (this.directionBackwards = !0);
+                    }),
+                    (Jt.MorphAnimMesh.prototype.parseAnimations = function () {
+                      var t = this.geometry;
+                      t.animations || (t.animations = {});
+                      for (
+                        var e,
+                          n = t.animations,
+                          r = /([a-z]+)_?(\d+)/,
+                          i = 0,
+                          o = t.morphTargets.length;
+                        i < o;
+                        i++
+                      ) {
+                        var a,
+                          s = t.morphTargets[i].name.match(r);
+                        s &&
+                          1 < s.length &&
+                          (n[(s = s[1])] || (n[s] = { start: 1 / 0, end: -1 / 0 }),
+                          i < (a = n[s]).start && (a.start = i),
+                          i > a.end && (a.end = i),
+                          (e = e || s));
+                      }
+                      t.firstAnimation = e;
+                    }),
+                    (Jt.MorphAnimMesh.prototype.setAnimationLabel = function (t, e, n) {
+                      this.geometry.animations || (this.geometry.animations = {}),
+                        (this.geometry.animations[t] = { start: e, end: n });
+                    }),
+                    (Jt.MorphAnimMesh.prototype.playAnimation = function (t, e) {
+                      var n = this.geometry.animations[t];
+                      n
+                        ? (this.setFrameRange(n.start, n.end),
+                          (this.duration = ((n.end - n.start) / e) * 1e3),
+                          (this.time = 0))
+                        : Jt.warn(
+                            'THREE.MorphAnimMesh: animation[' +
+                              t +
+                              '] undefined in .playAnimation()',
+                          );
+                    }),
+                    (Jt.MorphAnimMesh.prototype.updateAnimation = function (t) {
+                      var e = this.duration / this.length,
+                        t =
+                          ((this.time += this.direction * t),
+                          this.mirroredLoop
+                            ? (this.time > this.duration || this.time < 0) &&
+                              ((this.direction *= -1),
+                              this.time > this.duration &&
+                                ((this.time = this.duration), (this.directionBackwards = !0)),
+                              this.time < 0 && ((this.time = 0), (this.directionBackwards = !1)))
+                            : ((this.time = this.time % this.duration),
+                              this.time < 0 && (this.time += this.duration)),
+                          this.startKeyframe +
+                            Jt.Math.clamp(Math.floor(this.time / e), 0, this.length - 1)),
+                        t =
+                          (t !== this.currentKeyframe &&
+                            ((this.morphTargetInfluences[this.lastKeyframe] = 0),
+                            (this.morphTargetInfluences[this.currentKeyframe] = 1),
+                            (this.morphTargetInfluences[t] = 0),
+                            (this.lastKeyframe = this.currentKeyframe),
+                            (this.currentKeyframe = t)),
+                          (this.time % e) / e);
+                      this.directionBackwards && (t = 1 - t),
+                        (this.morphTargetInfluences[this.currentKeyframe] = t),
+                        (this.morphTargetInfluences[this.lastKeyframe] = 1 - t);
+                    }),
+                    (Jt.MorphAnimMesh.prototype.interpolateTargets = function (t, e, n) {
+                      for (var r = this.morphTargetInfluences, i = 0, o = r.length; i < o; i++)
+                        r[i] = 0;
+                      -1 < t && (r[t] = 1 - n), -1 < e && (r[e] = n);
+                    }),
+                    (Jt.MorphAnimMesh.prototype.clone = function (t) {
+                      return (
+                        ((t =
+                          void 0 === t
+                            ? new Jt.MorphAnimMesh(this.geometry, this.material)
+                            : t).duration = this.duration),
+                        (t.mirroredLoop = this.mirroredLoop),
+                        (t.time = this.time),
+                        (t.lastKeyframe = this.lastKeyframe),
+                        (t.currentKeyframe = this.currentKeyframe),
+                        (t.direction = this.direction),
+                        (t.directionBackwards = this.directionBackwards),
+                        Jt.Mesh.prototype.clone.call(this, t),
+                        t
+                      );
+                    }),
+                    (Jt.LOD = function () {
+                      Jt.Object3D.call(this), (this.objects = []);
+                    }),
+                    (Jt.LOD.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.LOD.prototype.constructor = Jt.LOD),
+                    (Jt.LOD.prototype.addLevel = function (t, e) {
+                      void 0 === e && (e = 0), (e = Math.abs(e));
+                      for (
+                        var n = 0;
+                        n < this.objects.length && !(e < this.objects[n].distance);
+                        n++
+                      );
+                      this.objects.splice(n, 0, { distance: e, object: t }), this.add(t);
+                    }),
+                    (Jt.LOD.prototype.getObjectForDistance = function (t) {
+                      for (
+                        var e = 1, n = this.objects.length;
+                        e < n && !(t < this.objects[e].distance);
+                        e++
+                      );
+                      return this.objects[e - 1].object;
+                    }),
+                    (Jt.LOD.prototype.raycast =
+                      ((Mn = new Jt.Vector3()),
+                      function (t, e) {
+                        Mn.setFromMatrixPosition(this.matrixWorld);
+                        var n = t.ray.origin.distanceTo(Mn);
+                        this.getObjectForDistance(n).raycast(t, e);
+                      })),
+                    (Jt.LOD.prototype.update =
+                      ((Dn = new Jt.Vector3()),
+                      (Sn = new Jt.Vector3()),
+                      function (t) {
+                        if (1 < this.objects.length) {
+                          Dn.setFromMatrixPosition(t.matrixWorld),
+                            Sn.setFromMatrixPosition(this.matrixWorld);
+                          var e = Dn.distanceTo(Sn);
+                          this.objects[0].object.visible = !0;
+                          for (
+                            var n = 1, r = this.objects.length;
+                            n < r && e >= this.objects[n].distance;
+                            n++
+                          )
+                            (this.objects[n - 1].object.visible = !1),
+                              (this.objects[n].object.visible = !0);
+                          for (; n < r; n++) this.objects[n].object.visible = !1;
+                        }
+                      })),
+                    (Jt.LOD.prototype.clone = function (t) {
+                      void 0 === t && (t = new Jt.LOD()), Jt.Object3D.prototype.clone.call(this, t);
+                      for (var e = 0, n = this.objects.length; e < n; e++) {
+                        var r = this.objects[e].object.clone();
+                        (r.visible = 0 === e), t.addLevel(r, this.objects[e].distance);
+                      }
+                      return t;
+                    }),
+                    (Jt.Sprite =
+                      ((E = new Uint16Array([0, 1, 2, 0, 2, 3])),
+                      (w = new Float32Array([
+                        -0.5, -0.5, 0, 0.5, -0.5, 0, 0.5, 0.5, 0, -0.5, 0.5, 0,
+                      ])),
+                      (n = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1])),
+                      (kn = new Jt.BufferGeometry()).addAttribute(
+                        'index',
+                        new Jt.BufferAttribute(E, 1),
+                      ),
+                      kn.addAttribute('position', new Jt.BufferAttribute(w, 3)),
+                      kn.addAttribute('uv', new Jt.BufferAttribute(n, 2)),
+                      function (t) {
+                        Jt.Object3D.call(this),
+                          (this.type = 'Sprite'),
+                          (this.geometry = kn),
+                          (this.material = void 0 !== t ? t : new Jt.SpriteMaterial());
+                      })),
+                    (Jt.Sprite.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Sprite.prototype.constructor = Jt.Sprite),
+                    (Jt.Sprite.prototype.raycast =
+                      ((Fn = new Jt.Vector3()),
+                      function (t, e) {
+                        Fn.setFromMatrixPosition(this.matrixWorld);
+                        t = t.ray.distanceToPoint(Fn);
+                        t > this.scale.x ||
+                          e.push({ distance: t, point: this.position, face: null, object: this });
+                      })),
+                    (Jt.Sprite.prototype.clone = function (t) {
+                      return (
+                        void 0 === t && (t = new Jt.Sprite(this.material)),
+                        Jt.Object3D.prototype.clone.call(this, t),
+                        t
+                      );
+                    }),
+                    (Jt.Particle = Jt.Sprite),
+                    (Jt.LensFlare = function (t, e, n, r, i) {
+                      Jt.Object3D.call(this),
+                        (this.lensFlares = []),
+                        (this.positionScreen = new Jt.Vector3()),
+                        (this.customUpdateCallback = void 0) !== t && this.add(t, e, n, r, i);
+                    }),
+                    (Jt.LensFlare.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.LensFlare.prototype.constructor = Jt.LensFlare),
+                    (Jt.LensFlare.prototype.add = function (t, e, n, r, i, o) {
+                      void 0 === e && (e = -1),
+                        void 0 === n && (n = 0),
+                        void 0 === o && (o = 1),
+                        void 0 === i && (i = new Jt.Color(16777215)),
+                        void 0 === r && (r = Jt.NormalBlending),
+                        (n = Math.min(n, Math.max(0, n))),
+                        this.lensFlares.push({
+                          texture: t,
+                          size: e,
+                          distance: n,
+                          x: 0,
+                          y: 0,
+                          z: 0,
+                          scale: 1,
+                          rotation: 1,
+                          opacity: o,
+                          color: i,
+                          blending: r,
+                        });
+                    }),
+                    (Jt.LensFlare.prototype.updateLensFlares = function () {
+                      for (
+                        var t,
+                          e = this.lensFlares.length,
+                          n = 2 * -this.positionScreen.x,
+                          r = 2 * -this.positionScreen.y,
+                          i = 0;
+                        i < e;
+                        i++
+                      )
+                        ((t = this.lensFlares[i]).x = this.positionScreen.x + n * t.distance),
+                          (t.y = this.positionScreen.y + r * t.distance),
+                          (t.wantedRotation = t.x * Math.PI * 0.25),
+                          (t.rotation += 0.25 * (t.wantedRotation - t.rotation));
+                    }),
+                    (Jt.Scene = function () {
+                      Jt.Object3D.call(this),
+                        (this.type = 'Scene'),
+                        (this.fog = null),
+                        (this.overrideMaterial = null),
+                        (this.autoUpdate = !0);
+                    }),
+                    (Jt.Scene.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Scene.prototype.constructor = Jt.Scene),
+                    (Jt.Scene.prototype.clone = function (t) {
+                      return (
+                        void 0 === t && (t = new Jt.Scene()),
+                        Jt.Object3D.prototype.clone.call(this, t),
+                        null !== this.fog && (t.fog = this.fog.clone()),
+                        null !== this.overrideMaterial &&
+                          (t.overrideMaterial = this.overrideMaterial.clone()),
+                        (t.autoUpdate = this.autoUpdate),
+                        (t.matrixAutoUpdate = this.matrixAutoUpdate),
+                        t
+                      );
+                    }),
+                    (Jt.Fog = function (t, e, n) {
+                      (this.name = ''),
+                        (this.color = new Jt.Color(t)),
+                        (this.near = void 0 !== e ? e : 1),
+                        (this.far = void 0 !== n ? n : 1e3);
+                    }),
+                    (Jt.Fog.prototype.clone = function () {
+                      return new Jt.Fog(this.color.getHex(), this.near, this.far);
+                    }),
+                    (Jt.FogExp2 = function (t, e) {
+                      (this.name = ''),
+                        (this.color = new Jt.Color(t)),
+                        (this.density = void 0 !== e ? e : 25e-5);
+                    }),
+                    (Jt.FogExp2.prototype.clone = function () {
+                      return new Jt.FogExp2(this.color.getHex(), this.density);
+                    }),
+                    (Jt.ShaderChunk = {}),
+                    (Jt.ShaderChunk.common =
+                      '#define PI 3.14159\n#define PI2 6.28318\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n\nfloat square( in float a ) { return a*a; }\nvec2  square( in vec2 a )  { return vec2( a.x*a.x, a.y*a.y ); }\nvec3  square( in vec3 a )  { return vec3( a.x*a.x, a.y*a.y, a.z*a.z ); }\nvec4  square( in vec4 a )  { return vec4( a.x*a.x, a.y*a.y, a.z*a.z, a.w*a.w ); }\nfloat saturate( in float a ) { return clamp( a, 0.0, 1.0 ); }\nvec2  saturate( in vec2 a )  { return clamp( a, 0.0, 1.0 ); }\nvec3  saturate( in vec3 a )  { return clamp( a, 0.0, 1.0 ); }\nvec4  saturate( in vec4 a )  { return clamp( a, 0.0, 1.0 ); }\nfloat average( in float a ) { return a; }\nfloat average( in vec2 a )  { return ( a.x + a.y) * 0.5; }\nfloat average( in vec3 a )  { return ( a.x + a.y + a.z) / 3.0; }\nfloat average( in vec4 a )  { return ( a.x + a.y + a.z + a.w) * 0.25; }\nfloat whiteCompliment( in float a ) { return saturate( 1.0 - a ); }\nvec2  whiteCompliment( in vec2 a )  { return saturate( vec2(1.0) - a ); }\nvec3  whiteCompliment( in vec3 a )  { return saturate( vec3(1.0) - a ); }\nvec4  whiteCompliment( in vec4 a )  { return saturate( vec4(1.0) - a ); }\nvec3 transformDirection( in vec3 normal, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( normal, 0.0 ) ).xyz );\n}\n// http://en.wikibooks.org/wiki/GLSL_Programming/Applying_Matrix_Transformations\nvec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {\n\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal) {\n\tfloat distance = dot( planeNormal, point-pointOnPlane );\n\treturn point - distance * planeNormal;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn pointOnLine + lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) );\n}\nfloat calcLightAttenuation( float lightDistance, float cutoffDistance, float decayExponent ) {\n\tif ( decayExponent > 0.0 ) {\n\t  return pow( saturate( 1.0 - lightDistance / cutoffDistance ), decayExponent );\n\t}\n\treturn 1.0;\n}\n\nvec3 inputToLinear( in vec3 a ) {\n#ifdef GAMMA_INPUT\n\treturn pow( a, vec3( float( GAMMA_FACTOR ) ) );\n#else\n\treturn a;\n#endif\n}\nvec3 linearToOutput( in vec3 a ) {\n#ifdef GAMMA_OUTPUT\n\treturn pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );\n#else\n\treturn a;\n#endif\n}\n'),
+                    (Jt.ShaderChunk.alphatest_fragment =
+                      '#ifdef ALPHATEST\n\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n\n#endif\n'),
+                    (Jt.ShaderChunk.lights_lambert_vertex =
+                      'vLightFront = vec3( 0.0 );\n\n#ifdef DOUBLE_SIDED\n\n\tvLightBack = vec3( 0.0 );\n\n#endif\n\ntransformedNormal = normalize( transformedNormal );\n\n#if MAX_DIR_LIGHTS > 0\n\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n\tvec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n\tfloat dotProduct = dot( transformedNormal, dirVector );\n\tvec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tvec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tvec3 directionalLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t#endif\n\n\t#endif\n\n\t#ifdef WRAP_AROUND\n\n\t\tvec3 directionalLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\tdirectionalLightWeighting = mix( directionalLightWeighting, directionalLightWeightingHalf, wrapRGB );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tdirectionalLightWeightingBack = mix( directionalLightWeightingBack, directionalLightWeightingHalfBack, wrapRGB );\n\n\t\t#endif\n\n\t#endif\n\n\tvLightFront += directionalLightColor[ i ] * directionalLightWeighting;\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tvLightBack += directionalLightColor[ i ] * directionalLightWeightingBack;\n\n\t#endif\n\n}\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\n\t\tvec3 pointLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvec3 pointLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tvec3 pointLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tvec3 pointLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\tpointLightWeighting = mix( pointLightWeighting, pointLightWeightingHalf, wrapRGB );\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tpointLightWeightingBack = mix( pointLightWeightingBack, pointLightWeightingHalfBack, wrapRGB );\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t\tvLightFront += pointLightColor[ i ] * pointLightWeighting * attenuation;\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvLightBack += pointLightColor[ i ] * pointLightWeightingBack * attenuation;\n\n\t\t#endif\n\n\t}\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - worldPosition.xyz ) );\n\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\n\t\t\tspotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n\t\t\tfloat attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n\t\t\tlVector = normalize( lVector );\n\n\t\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\t\t\tvec3 spotLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tvec3 spotLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\t\tvec3 spotLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tvec3 spotLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\t\tspotLightWeighting = mix( spotLightWeighting, spotLightWeightingHalf, wrapRGB );\n\n\t\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\t\tspotLightWeightingBack = mix( spotLightWeightingBack, spotLightWeightingHalfBack, wrapRGB );\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvLightFront += spotLightColor[ i ] * spotLightWeighting * attenuation * spotEffect;\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tvLightBack += spotLightColor[ i ] * spotLightWeightingBack * attenuation * spotEffect;\n\n\t\t\t#endif\n\n\t\t}\n\n\t}\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n\t\tvec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\t\tfloat hemiDiffuseWeightBack = -0.5 * dotProduct + 0.5;\n\n\t\tvLightFront += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvLightBack += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeightBack );\n\n\t\t#endif\n\n\t}\n\n#endif\n\nvLightFront += ambientLightColor;\n\n#ifdef DOUBLE_SIDED\n\n\tvLightBack += ambientLightColor;\n\n#endif\n'),
+                    (Jt.ShaderChunk.map_particle_pars_fragment =
+                      '#ifdef USE_MAP\n\n\tuniform vec4 offsetRepeat;\n\tuniform sampler2D map;\n\n#endif\n'),
+                    (Jt.ShaderChunk.default_vertex =
+                      '#ifdef USE_SKINNING\n\n\tvec4 mvPosition = modelViewMatrix * skinned;\n\n#elif defined( USE_MORPHTARGETS )\n\n\tvec4 mvPosition = modelViewMatrix * vec4( morphed, 1.0 );\n\n#else\n\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\n#endif\n\ngl_Position = projectionMatrix * mvPosition;\n'),
+                    (Jt.ShaderChunk.map_pars_fragment =
+                      '#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvarying vec2 vUv;\n\n#endif\n\n#ifdef USE_MAP\n\n\tuniform sampler2D map;\n\n#endif'),
+                    (Jt.ShaderChunk.skinnormal_vertex =
+                      '#ifdef USE_SKINNING\n\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;\n\n\t#ifdef USE_MORPHNORMALS\n\n\tvec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );\n\n\t#else\n\n\tvec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );\n\n\t#endif\n\n#endif\n'),
+                    (Jt.ShaderChunk.logdepthbuf_pars_vertex =
+                      '#ifdef USE_LOGDEPTHBUF\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tvarying float vFragDepth;\n\n\t#endif\n\n\tuniform float logDepthBufFC;\n\n#endif'),
+                    (Jt.ShaderChunk.lightmap_pars_vertex =
+                      '#ifdef USE_LIGHTMAP\n\n\tvarying vec2 vUv2;\n\n#endif'),
+                    (Jt.ShaderChunk.lights_phong_fragment =
+                      '#ifndef FLAT_SHADED\n\n\tvec3 normal = normalize( vNormal );\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tnormal = normal * ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\n\t#endif\n\n#else\n\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n\n#endif\n\nvec3 viewPosition = normalize( vViewPosition );\n\n#ifdef USE_NORMALMAP\n\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n\n#elif defined( USE_BUMPMAP )\n\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n\n#endif\n\nvec3 totalDiffuseLight = vec3( 0.0 );\nvec3 totalSpecularLight = vec3( 0.0 );\n\n#if MAX_POINT_LIGHTS > 0\n\n\tfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, lVector );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tfloat pointDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat pointDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\tvec3 pointDiffuseWeight = mix( vec3( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n\n\t\t#else\n\n\t\t\tfloat pointDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t#endif\n\n\t\ttotalDiffuseLight += pointLightColor[ i ] * pointDiffuseWeight * attenuation;\n\n\t\t\t\t// specular\n\n\t\tvec3 pointHalfVector = normalize( lVector + viewPosition );\n\t\tfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\n\t\tfloat pointSpecularWeight = specularStrength * max( pow( pointDotNormalHalf, shininess ), 0.0 );\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, pointHalfVector ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * attenuation * specularNormalization;\n\n\t}\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tfor ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\n\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\n\t\t\tspotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n\t\t\t// diffuse\n\n\t\t\tfloat dotProduct = dot( normal, lVector );\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tfloat spotDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\t\tfloat spotDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\t\tvec3 spotDiffuseWeight = mix( vec3( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n\n\t\t\t#else\n\n\t\t\t\tfloat spotDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t\t#endif\n\n\t\t\ttotalDiffuseLight += spotLightColor[ i ] * spotDiffuseWeight * attenuation * spotEffect;\n\n\t\t\t// specular\n\n\t\t\tvec3 spotHalfVector = normalize( lVector + viewPosition );\n\t\t\tfloat spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\n\t\t\tfloat spotSpecularWeight = specularStrength * max( pow( spotDotNormalHalf, shininess ), 0.0 );\n\n\t\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, spotHalfVector ), 0.0 ), 5.0 );\n\t\t\ttotalSpecularLight += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * attenuation * specularNormalization * spotEffect;\n\n\t\t}\n\n\t}\n\n#endif\n\n#if MAX_DIR_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n\t\tvec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, dirVector );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tfloat dirDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat dirDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\tvec3 dirDiffuseWeight = mix( vec3( dirDiffuseWeightFull ), vec3( dirDiffuseWeightHalf ), wrapRGB );\n\n\t\t#else\n\n\t\t\tfloat dirDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t#endif\n\n\t\ttotalDiffuseLight += directionalLightColor[ i ] * dirDiffuseWeight;\n\n\t\t// specular\n\n\t\tvec3 dirHalfVector = normalize( dirVector + viewPosition );\n\t\tfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\n\t\tfloat dirSpecularWeight = specularStrength * max( pow( dirDotNormalHalf, shininess ), 0.0 );\n\n\t\t/*\n\t\t// fresnel term from skin shader\n\t\tconst float F0 = 0.128;\n\n\t\tfloat base = 1.0 - dot( viewPosition, dirHalfVector );\n\t\tfloat exponential = pow( base, 5.0 );\n\n\t\tfloat fresnel = exponential + F0 * ( 1.0 - exponential );\n\t\t*/\n\n\t\t/*\n\t\t// fresnel term from fresnel shader\n\t\tconst float mFresnelBias = 0.08;\n\t\tconst float mFresnelScale = 0.3;\n\t\tconst float mFresnelPower = 5.0;\n\n\t\tfloat fresnel = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( -viewPosition ), normal ), mFresnelPower );\n\t\t*/\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\t// \t\tdirSpecular += specular * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization * fresnel;\n\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( dirVector, dirHalfVector ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n\n\n\t}\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n\t\tvec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, lVector );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\n\t\tvec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n\t\ttotalDiffuseLight += hemiColor;\n\n\t\t// specular (sky light)\n\n\t\tvec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\n\t\tfloat hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\n\t\tfloat hemiSpecularWeightSky = specularStrength * max( pow( max( hemiDotNormalHalfSky, 0.0 ), shininess ), 0.0 );\n\n\t\t// specular (ground light)\n\n\t\tvec3 lVectorGround = -lVector;\n\n\t\tvec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\n\t\tfloat hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\n\t\tfloat hemiSpecularWeightGround = specularStrength * max( pow( max( hemiDotNormalHalfGround, 0.0 ), shininess ), 0.0 );\n\n\t\tfloat dotProductGround = dot( normal, lVectorGround );\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\tvec3 schlickSky = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, hemiHalfVectorSky ), 0.0 ), 5.0 );\n\t\tvec3 schlickGround = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n\n\t}\n\n#endif\n\n#ifdef METAL\n\n\toutgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) * specular + totalSpecularLight + emissive;\n\n#else\n\n\toutgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) + totalSpecularLight + emissive;\n\n#endif\n'),
+                    (Jt.ShaderChunk.fog_pars_fragment =
+                      '#ifdef USE_FOG\n\n\tuniform vec3 fogColor;\n\n\t#ifdef FOG_EXP2\n\n\t\tuniform float fogDensity;\n\n\t#else\n\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n\n#endif'),
+                    (Jt.ShaderChunk.morphnormal_vertex =
+                      '#ifdef USE_MORPHNORMALS\n\n\tvec3 morphedNormal = vec3( 0.0 );\n\n\tmorphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tmorphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tmorphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tmorphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n\n\tmorphedNormal += normal;\n\n#endif'),
+                    (Jt.ShaderChunk.envmap_pars_fragment =
+                      '#ifdef USE_ENVMAP\n\n\tuniform float reflectivity;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n\t\tuniform float refractionRatio;\n\n\t#else\n\n\t\tvarying vec3 vReflect;\n\n\t#endif\n\n#endif\n'),
+                    (Jt.ShaderChunk.logdepthbuf_fragment =
+                      '#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\n\n\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\n\n#endif'),
+                    (Jt.ShaderChunk.normalmap_pars_fragment =
+                      '#ifdef USE_NORMALMAP\n\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\n\t// Per-Pixel Tangent Space Normal Mapping\n\t// http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html\n\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\n\t}\n\n#endif\n'),
+                    (Jt.ShaderChunk.lights_phong_pars_vertex =
+                      '#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n'),
+                    (Jt.ShaderChunk.lightmap_pars_fragment =
+                      '#ifdef USE_LIGHTMAP\n\n\tvarying vec2 vUv2;\n\tuniform sampler2D lightMap;\n\n#endif'),
+                    (Jt.ShaderChunk.shadowmap_vertex =
+                      '#ifdef USE_SHADOWMAP\n\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n\t\tvShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n\n\t}\n\n#endif'),
+                    (Jt.ShaderChunk.lights_phong_vertex =
+                      '#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvWorldPosition = worldPosition.xyz;\n\n#endif'),
+                    (Jt.ShaderChunk.map_fragment =
+                      '#ifdef USE_MAP\n\n\tvec4 texelColor = texture2D( map, vUv );\n\n\ttexelColor.xyz = inputToLinear( texelColor.xyz );\n\n\tdiffuseColor *= texelColor;\n\n#endif'),
+                    (Jt.ShaderChunk.lightmap_vertex =
+                      '#ifdef USE_LIGHTMAP\n\n\tvUv2 = uv2;\n\n#endif'),
+                    (Jt.ShaderChunk.map_particle_fragment =
+                      '#ifdef USE_MAP\n\n\tdiffuseColor *= texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\n#endif\n'),
+                    (Jt.ShaderChunk.color_pars_fragment =
+                      '#ifdef USE_COLOR\n\n\tvarying vec3 vColor;\n\n#endif\n'),
+                    (Jt.ShaderChunk.color_vertex =
+                      '#ifdef USE_COLOR\n\n\tvColor.xyz = inputToLinear( color.xyz );\n\n#endif'),
+                    (Jt.ShaderChunk.skinning_vertex =
+                      '#ifdef USE_SKINNING\n\n\t#ifdef USE_MORPHTARGETS\n\n\tvec4 skinVertex = bindMatrix * vec4( morphed, 1.0 );\n\n\t#else\n\n\tvec4 skinVertex = bindMatrix * vec4( position, 1.0 );\n\n\t#endif\n\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\tskinned  = bindMatrixInverse * skinned;\n\n#endif\n'),
+                    (Jt.ShaderChunk.envmap_pars_vertex =
+                      '#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n\tvarying vec3 vReflect;\n\n\tuniform float refractionRatio;\n\n#endif\n'),
+                    (Jt.ShaderChunk.linear_to_gamma_fragment =
+                      '\n\toutgoingLight = linearToOutput( outgoingLight );\n'),
+                    (Jt.ShaderChunk.color_pars_vertex =
+                      '#ifdef USE_COLOR\n\n\tvarying vec3 vColor;\n\n#endif'),
+                    (Jt.ShaderChunk.lights_lambert_pars_vertex =
+                      'uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#ifdef WRAP_AROUND\n\n\tuniform vec3 wrapRGB;\n\n#endif\n'),
+                    (Jt.ShaderChunk.map_pars_vertex =
+                      '#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvarying vec2 vUv;\n\tuniform vec4 offsetRepeat;\n\n#endif\n'),
+                    (Jt.ShaderChunk.envmap_fragment =
+                      '#ifdef USE_ENVMAP\n\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\n\t\t// Transforming Normal Vectors with the Inverse Transformation\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\n\t\t#else\n\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\n\t\t#endif\n\n\t#else\n\n\t\tvec3 reflectVec = vReflect;\n\n\t#endif\n\n\t#ifdef DOUBLE_SIDED\n\t\tfloat flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\t#else\n\t\tfloat flipNormal = 1.0;\n\t#endif\n\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\n\t\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\tvec3 reflectView = flipNormal * normalize((viewMatrix * vec4( reflectVec, 0.0 )).xyz + vec3(0.0,0.0,1.0));\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#endif\n\n\tenvColor.xyz = inputToLinear( envColor.xyz );\n\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\n\t#endif\n\n#endif\n'),
+                    (Jt.ShaderChunk.specularmap_pars_fragment =
+                      '#ifdef USE_SPECULARMAP\n\n\tuniform sampler2D specularMap;\n\n#endif'),
+                    (Jt.ShaderChunk.logdepthbuf_vertex =
+                      '#ifdef USE_LOGDEPTHBUF\n\n\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\n#else\n\n\t\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\n\n\t#endif\n\n#endif'),
+                    (Jt.ShaderChunk.morphtarget_pars_vertex =
+                      '#ifdef USE_MORPHTARGETS\n\n\t#ifndef USE_MORPHNORMALS\n\n\tuniform float morphTargetInfluences[ 8 ];\n\n\t#else\n\n\tuniform float morphTargetInfluences[ 4 ];\n\n\t#endif\n\n#endif'),
+                    (Jt.ShaderChunk.specularmap_fragment =
+                      'float specularStrength;\n\n#ifdef USE_SPECULARMAP\n\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n\n#else\n\n\tspecularStrength = 1.0;\n\n#endif'),
+                    (Jt.ShaderChunk.fog_fragment =
+                      '#ifdef USE_FOG\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\n\t#else\n\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\n\t#endif\n\n\t#ifdef FOG_EXP2\n\n\t\tfloat fogFactor = exp2( - square( fogDensity ) * square( depth ) * LOG2 );\n\t\tfogFactor = whiteCompliment( fogFactor );\n\n\t#else\n\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n\n\t#endif\n\t\n\toutgoingLight = mix( outgoingLight, fogColor, fogFactor );\n\n#endif'),
+                    (Jt.ShaderChunk.bumpmap_pars_fragment =
+                      '#ifdef USE_BUMPMAP\n\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\n\t// Derivative maps - bump mapping unparametrized surfaces by Morten Mikkelsen\n\t// http://mmikkelsen3d.blogspot.sk/2011/07/derivative-maps.html\n\n\t// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)\n\n\tvec2 dHdxy_fwd() {\n\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\n\t\treturn vec2( dBx, dBy );\n\n\t}\n\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\n\t\tvec3 vSigmaX = dFdx( surf_pos );\n\t\tvec3 vSigmaY = dFdy( surf_pos );\n\t\tvec3 vN = surf_norm;\t\t// normalized\n\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\n\t}\n\n#endif\n'),
+                    (Jt.ShaderChunk.defaultnormal_vertex =
+                      '#ifdef USE_SKINNING\n\n\tvec3 objectNormal = skinnedNormal.xyz;\n\n#elif defined( USE_MORPHNORMALS )\n\n\tvec3 objectNormal = morphedNormal;\n\n#else\n\n\tvec3 objectNormal = normal;\n\n#endif\n\n#ifdef FLIP_SIDED\n\n\tobjectNormal = -objectNormal;\n\n#endif\n\nvec3 transformedNormal = normalMatrix * objectNormal;\n'),
+                    (Jt.ShaderChunk.lights_phong_pars_fragment =
+                      'uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n\n#ifdef WRAP_AROUND\n\n\tuniform vec3 wrapRGB;\n\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n#endif\n'),
+                    (Jt.ShaderChunk.skinbase_vertex =
+                      '#ifdef USE_SKINNING\n\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n\n#endif'),
+                    (Jt.ShaderChunk.map_vertex =
+                      '#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n\n#endif'),
+                    (Jt.ShaderChunk.lightmap_fragment =
+                      '#ifdef USE_LIGHTMAP\n\n\toutgoingLight *= diffuseColor.xyz * texture2D( lightMap, vUv2 ).xyz;\n\n#endif'),
+                    (Jt.ShaderChunk.shadowmap_pars_vertex =
+                      '#ifdef USE_SHADOWMAP\n\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\tuniform mat4 shadowMatrix[ MAX_SHADOWS ];\n\n#endif'),
+                    (Jt.ShaderChunk.color_fragment =
+                      '#ifdef USE_COLOR\n\n\tdiffuseColor.rgb *= vColor;\n\n#endif'),
+                    (Jt.ShaderChunk.morphtarget_vertex =
+                      '#ifdef USE_MORPHTARGETS\n\n\tvec3 morphed = vec3( 0.0 );\n\tmorphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\tmorphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\tmorphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\tmorphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\n\t#ifndef USE_MORPHNORMALS\n\n\tmorphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\tmorphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\tmorphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\tmorphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\n\t#endif\n\n\tmorphed += position;\n\n#endif'),
+                    (Jt.ShaderChunk.envmap_vertex =
+                      '#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n\tvec3 worldNormal = transformDirection( objectNormal, modelMatrix );\n\n\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\n\t#ifdef ENVMAP_MODE_REFLECTION\n\n\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\n\t#else\n\n\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\n\t#endif\n\n#endif\n'),
+                    (Jt.ShaderChunk.shadowmap_fragment =
+                      "#ifdef USE_SHADOWMAP\n\n\t#ifdef SHADOWMAP_DEBUG\n\n\t\tvec3 frustumColors[3];\n\t\tfrustumColors[0] = vec3( 1.0, 0.5, 0.0 );\n\t\tfrustumColors[1] = vec3( 0.0, 1.0, 0.8 );\n\t\tfrustumColors[2] = vec3( 0.0, 0.5, 1.0 );\n\n\t#endif\n\n\t#ifdef SHADOWMAP_CASCADE\n\n\t\tint inFrustumCount = 0;\n\n\t#endif\n\n\tfloat fDepth;\n\tvec3 shadowColor = vec3( 1.0 );\n\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n\t\tvec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\n\n\t\t\t\t// if ( something && something ) breaks ATI OpenGL shader compiler\n\t\t\t\t// if ( all( something, something ) ) using this instead\n\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\n\t\t\t\t// don't shadow pixels outside of light frustum\n\t\t\t\t// use just first frustum (for cascades)\n\t\t\t\t// don't shadow pixels behind far plane of light frustum\n\n\t\t#ifdef SHADOWMAP_CASCADE\n\n\t\t\tinFrustumCount += int( inFrustum );\n\t\t\tbvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );\n\n\t\t#else\n\n\t\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\n\t\t#endif\n\n\t\tbool frustumTest = all( frustumTestVec );\n\n\t\tif ( frustumTest ) {\n\n\t\t\tshadowCoord.z += shadowBias[ i ];\n\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\n\t\t\t\t\t\t// Percentage-close filtering\n\t\t\t\t\t\t// (9 pixel kernel)\n\t\t\t\t\t\t// http://fabiensanglard.net/shadowmappingPCF/\n\n\t\t\t\tfloat shadow = 0.0;\n\n\t\t/*\n\t\t\t\t\t\t// nested loops breaks shader compiler / validator on some ATI cards when using OpenGL\n\t\t\t\t\t\t// must enroll loop manually\n\n\t\t\t\tfor ( float y = -1.25; y <= 1.25; y += 1.25 )\n\t\t\t\t\tfor ( float x = -1.25; x <= 1.25; x += 1.25 ) {\n\n\t\t\t\t\t\tvec4 rgbaDepth = texture2D( shadowMap[ i ], vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy );\n\n\t\t\t\t\t\t\t\t// doesn't seem to produce any noticeable visual difference compared to simple texture2D lookup\n\t\t\t\t\t\t\t\t//vec4 rgbaDepth = texture2DProj( shadowMap[ i ], vec4( vShadowCoord[ i ].w * ( vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy ), 0.05, vShadowCoord[ i ].w ) );\n\n\t\t\t\t\t\tfloat fDepth = unpackDepth( rgbaDepth );\n\n\t\t\t\t\t\tif ( fDepth < shadowCoord.z )\n\t\t\t\t\t\t\tshadow += 1.0;\n\n\t\t\t\t}\n\n\t\t\t\tshadow /= 9.0;\n\n\t\t*/\n\n\t\t\t\tconst float shadowDelta = 1.0 / 9.0;\n\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n\t\t\t\tfloat dx0 = -1.25 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.25 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.25 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.25 * yPixelOffset;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n\t\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\n\t\t\t\t\t\t// Percentage-close filtering\n\t\t\t\t\t\t// (9 pixel kernel)\n\t\t\t\t\t\t// http://fabiensanglard.net/shadowmappingPCF/\n\n\t\t\t\tfloat shadow = 0.0;\n\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n\t\t\t\tfloat dx0 = -1.0 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.0 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.0 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.0 * yPixelOffset;\n\n\t\t\t\tmat3 shadowKernel;\n\t\t\t\tmat3 depthKernel;\n\n\t\t\t\tdepthKernel[0][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tdepthKernel[0][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tdepthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tdepthKernel[1][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tdepthKernel[1][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tdepthKernel[1][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tdepthKernel[2][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tdepthKernel[2][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tdepthKernel[2][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\n\t\t\t\tvec3 shadowZ = vec3( shadowCoord.z );\n\t\t\t\tshadowKernel[0] = vec3(lessThan(depthKernel[0], shadowZ ));\n\t\t\t\tshadowKernel[0] *= vec3(0.25);\n\n\t\t\t\tshadowKernel[1] = vec3(lessThan(depthKernel[1], shadowZ ));\n\t\t\t\tshadowKernel[1] *= vec3(0.25);\n\n\t\t\t\tshadowKernel[2] = vec3(lessThan(depthKernel[2], shadowZ ));\n\t\t\t\tshadowKernel[2] *= vec3(0.25);\n\n\t\t\t\tvec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[i].xy );\n\n\t\t\t\tshadowKernel[0] = mix( shadowKernel[1], shadowKernel[0], fractionalCoord.x );\n\t\t\t\tshadowKernel[1] = mix( shadowKernel[2], shadowKernel[1], fractionalCoord.x );\n\n\t\t\t\tvec4 shadowValues;\n\t\t\t\tshadowValues.x = mix( shadowKernel[0][1], shadowKernel[0][0], fractionalCoord.y );\n\t\t\t\tshadowValues.y = mix( shadowKernel[0][2], shadowKernel[0][1], fractionalCoord.y );\n\t\t\t\tshadowValues.z = mix( shadowKernel[1][1], shadowKernel[1][0], fractionalCoord.y );\n\t\t\t\tshadowValues.w = mix( shadowKernel[1][2], shadowKernel[1][1], fractionalCoord.y );\n\n\t\t\t\tshadow = dot( shadowValues, vec4( 1.0 ) );\n\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n\t\t\t#else\n\n\t\t\t\tvec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\n\t\t\t\tfloat fDepth = unpackDepth( rgbaDepth );\n\n\t\t\t\tif ( fDepth < shadowCoord.z )\n\n\t\t// spot with multiple shadows is darker\n\n\t\t\t\t\tshadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ i ] );\n\n\t\t// spot with multiple shadows has the same color as single shadow spot\n\n\t\t// \t\t\t\t\tshadowColor = min( shadowColor, vec3( shadowDarkness[ i ] ) );\n\n\t\t\t#endif\n\n\t\t}\n\n\n\t\t#ifdef SHADOWMAP_DEBUG\n\n\t\t\t#ifdef SHADOWMAP_CASCADE\n\n\t\t\t\tif ( inFrustum && inFrustumCount == 1 ) outgoingLight *= frustumColors[ i ];\n\n\t\t\t#else\n\n\t\t\t\tif ( inFrustum ) outgoingLight *= frustumColors[ i ];\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t}\n\n\t// NOTE: I am unsure if this is correct in linear space.  -bhouston, Dec 29, 2014\n\tshadowColor = inputToLinear( shadowColor );\n\n\toutgoingLight = outgoingLight * shadowColor;\n\n#endif\n"),
+                    (Jt.ShaderChunk.worldpos_vertex =
+                      '#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n\n\t#ifdef USE_SKINNING\n\n\t\tvec4 worldPosition = modelMatrix * skinned;\n\n\t#elif defined( USE_MORPHTARGETS )\n\n\t\tvec4 worldPosition = modelMatrix * vec4( morphed, 1.0 );\n\n\t#else\n\n\t\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\n\t#endif\n\n#endif\n'),
+                    (Jt.ShaderChunk.shadowmap_pars_fragment =
+                      '#ifdef USE_SHADOWMAP\n\n\tuniform sampler2D shadowMap[ MAX_SHADOWS ];\n\tuniform vec2 shadowMapSize[ MAX_SHADOWS ];\n\n\tuniform float shadowDarkness[ MAX_SHADOWS ];\n\tuniform float shadowBias[ MAX_SHADOWS ];\n\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\n\tfloat unpackDepth( const in vec4 rgba_depth ) {\n\n\t\tconst vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\n\t\tfloat depth = dot( rgba_depth, bit_shift );\n\t\treturn depth;\n\n\t}\n\n#endif'),
+                    (Jt.ShaderChunk.skinning_pars_vertex =
+                      '#ifdef USE_SKINNING\n\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\n\t#ifdef BONE_TEXTURE\n\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureWidth;\n\t\tuniform int boneTextureHeight;\n\n\t\tmat4 getBoneMatrix( const in float i ) {\n\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureWidth ) );\n\t\t\tfloat y = floor( j / float( boneTextureWidth ) );\n\n\t\t\tfloat dx = 1.0 / float( boneTextureWidth );\n\t\t\tfloat dy = 1.0 / float( boneTextureHeight );\n\n\t\t\ty = dy * ( y + 0.5 );\n\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\n\t\t\treturn bone;\n\n\t\t}\n\n\t#else\n\n\t\tuniform mat4 boneGlobalMatrices[ MAX_BONES ];\n\n\t\tmat4 getBoneMatrix( const in float i ) {\n\n\t\t\tmat4 bone = boneGlobalMatrices[ int(i) ];\n\t\t\treturn bone;\n\n\t\t}\n\n\t#endif\n\n#endif\n'),
+                    (Jt.ShaderChunk.logdepthbuf_pars_fragment =
+                      '#ifdef USE_LOGDEPTHBUF\n\n\tuniform float logDepthBufFC;\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\t#extension GL_EXT_frag_depth : enable\n\t\tvarying float vFragDepth;\n\n\t#endif\n\n#endif'),
+                    (Jt.ShaderChunk.alphamap_fragment =
+                      '#ifdef USE_ALPHAMAP\n\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n\n#endif\n'),
+                    (Jt.ShaderChunk.alphamap_pars_fragment =
+                      '#ifdef USE_ALPHAMAP\n\n\tuniform sampler2D alphaMap;\n\n#endif\n'),
+                    (Jt.UniformsUtils = {
+                      merge: function (t) {
+                        for (var e = {}, n = 0; n < t.length; n++) {
+                          var r,
+                            i = this.clone(t[n]);
+                          for (r in i) e[r] = i[r];
+                        }
+                        return e;
+                      },
+                      clone: function (t) {
+                        var e,
+                          n = {};
+                        for (e in t)
+                          for (var r in ((n[e] = {}), t[e])) {
+                            var i = t[e][r];
+                            i instanceof Jt.Color ||
+                            i instanceof Jt.Vector2 ||
+                            i instanceof Jt.Vector3 ||
+                            i instanceof Jt.Vector4 ||
+                            i instanceof Jt.Matrix4 ||
+                            i instanceof Jt.Texture
+                              ? (n[e][r] = i.clone())
+                              : i instanceof Array
+                                ? (n[e][r] = i.slice())
+                                : (n[e][r] = i);
+                          }
+                        return n;
+                      },
+                    }),
+                    (Jt.UniformsLib = {
+                      common: {
+                        diffuse: { type: 'c', value: new Jt.Color(15658734) },
+                        opacity: { type: 'f', value: 1 },
+                        map: { type: 't', value: null },
+                        offsetRepeat: { type: 'v4', value: new Jt.Vector4(0, 0, 1, 1) },
+                        lightMap: { type: 't', value: null },
+                        specularMap: { type: 't', value: null },
+                        alphaMap: { type: 't', value: null },
+                        envMap: { type: 't', value: null },
+                        flipEnvMap: { type: 'f', value: -1 },
+                        reflectivity: { type: 'f', value: 1 },
+                        refractionRatio: { type: 'f', value: 0.98 },
+                        morphTargetInfluences: { type: 'f', value: 0 },
+                      },
+                      bump: {
+                        bumpMap: { type: 't', value: null },
+                        bumpScale: { type: 'f', value: 1 },
+                      },
+                      normalmap: {
+                        normalMap: { type: 't', value: null },
+                        normalScale: { type: 'v2', value: new Jt.Vector2(1, 1) },
+                      },
+                      fog: {
+                        fogDensity: { type: 'f', value: 25e-5 },
+                        fogNear: { type: 'f', value: 1 },
+                        fogFar: { type: 'f', value: 2e3 },
+                        fogColor: { type: 'c', value: new Jt.Color(16777215) },
+                      },
+                      lights: {
+                        ambientLightColor: { type: 'fv', value: [] },
+                        directionalLightDirection: { type: 'fv', value: [] },
+                        directionalLightColor: { type: 'fv', value: [] },
+                        hemisphereLightDirection: { type: 'fv', value: [] },
+                        hemisphereLightSkyColor: { type: 'fv', value: [] },
+                        hemisphereLightGroundColor: { type: 'fv', value: [] },
+                        pointLightColor: { type: 'fv', value: [] },
+                        pointLightPosition: { type: 'fv', value: [] },
+                        pointLightDistance: { type: 'fv1', value: [] },
+                        pointLightDecay: { type: 'fv1', value: [] },
+                        spotLightColor: { type: 'fv', value: [] },
+                        spotLightPosition: { type: 'fv', value: [] },
+                        spotLightDirection: { type: 'fv', value: [] },
+                        spotLightDistance: { type: 'fv1', value: [] },
+                        spotLightAngleCos: { type: 'fv1', value: [] },
+                        spotLightExponent: { type: 'fv1', value: [] },
+                        spotLightDecay: { type: 'fv1', value: [] },
+                      },
+                      particle: {
+                        psColor: { type: 'c', value: new Jt.Color(15658734) },
+                        opacity: { type: 'f', value: 1 },
+                        size: { type: 'f', value: 1 },
+                        scale: { type: 'f', value: 1 },
+                        map: { type: 't', value: null },
+                        offsetRepeat: { type: 'v4', value: new Jt.Vector4(0, 0, 1, 1) },
+                        fogDensity: { type: 'f', value: 25e-5 },
+                        fogNear: { type: 'f', value: 1 },
+                        fogFar: { type: 'f', value: 2e3 },
+                        fogColor: { type: 'c', value: new Jt.Color(16777215) },
+                      },
+                      shadowmap: {
+                        shadowMap: { type: 'tv', value: [] },
+                        shadowMapSize: { type: 'v2v', value: [] },
+                        shadowBias: { type: 'fv1', value: [] },
+                        shadowDarkness: { type: 'fv1', value: [] },
+                        shadowMatrix: { type: 'm4v', value: [] },
+                      },
+                    }),
+                    (Jt.ShaderLib = {
+                      basic: {
+                        uniforms: Jt.UniformsUtils.merge([
+                          Jt.UniformsLib.common,
+                          Jt.UniformsLib.fog,
+                          Jt.UniformsLib.shadowmap,
+                        ]),
+                        vertexShader: [
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.map_pars_vertex,
+                          Jt.ShaderChunk.lightmap_pars_vertex,
+                          Jt.ShaderChunk.envmap_pars_vertex,
+                          Jt.ShaderChunk.color_pars_vertex,
+                          Jt.ShaderChunk.morphtarget_pars_vertex,
+                          Jt.ShaderChunk.skinning_pars_vertex,
+                          Jt.ShaderChunk.shadowmap_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          Jt.ShaderChunk.map_vertex,
+                          Jt.ShaderChunk.lightmap_vertex,
+                          Jt.ShaderChunk.color_vertex,
+                          Jt.ShaderChunk.skinbase_vertex,
+                          '\t#ifdef USE_ENVMAP',
+                          Jt.ShaderChunk.morphnormal_vertex,
+                          Jt.ShaderChunk.skinnormal_vertex,
+                          Jt.ShaderChunk.defaultnormal_vertex,
+                          '\t#endif',
+                          Jt.ShaderChunk.morphtarget_vertex,
+                          Jt.ShaderChunk.skinning_vertex,
+                          Jt.ShaderChunk.default_vertex,
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          Jt.ShaderChunk.worldpos_vertex,
+                          Jt.ShaderChunk.envmap_vertex,
+                          Jt.ShaderChunk.shadowmap_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform vec3 diffuse;',
+                          'uniform float opacity;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.color_pars_fragment,
+                          Jt.ShaderChunk.map_pars_fragment,
+                          Jt.ShaderChunk.alphamap_pars_fragment,
+                          Jt.ShaderChunk.lightmap_pars_fragment,
+                          Jt.ShaderChunk.envmap_pars_fragment,
+                          Jt.ShaderChunk.fog_pars_fragment,
+                          Jt.ShaderChunk.shadowmap_pars_fragment,
+                          Jt.ShaderChunk.specularmap_pars_fragment,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          '\tvec3 outgoingLight = vec3( 0.0 );',
+                          '\tvec4 diffuseColor = vec4( diffuse, opacity );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          Jt.ShaderChunk.map_fragment,
+                          Jt.ShaderChunk.color_fragment,
+                          Jt.ShaderChunk.alphamap_fragment,
+                          Jt.ShaderChunk.alphatest_fragment,
+                          Jt.ShaderChunk.specularmap_fragment,
+                          '\toutgoingLight = diffuseColor.rgb;',
+                          Jt.ShaderChunk.lightmap_fragment,
+                          Jt.ShaderChunk.envmap_fragment,
+                          Jt.ShaderChunk.shadowmap_fragment,
+                          Jt.ShaderChunk.linear_to_gamma_fragment,
+                          Jt.ShaderChunk.fog_fragment,
+                          '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );',
+                          '}',
+                        ].join('\n'),
+                      },
+                      lambert: {
+                        uniforms: Jt.UniformsUtils.merge([
+                          Jt.UniformsLib.common,
+                          Jt.UniformsLib.fog,
+                          Jt.UniformsLib.lights,
+                          Jt.UniformsLib.shadowmap,
+                          {
+                            emissive: { type: 'c', value: new Jt.Color(0) },
+                            wrapRGB: { type: 'v3', value: new Jt.Vector3(1, 1, 1) },
+                          },
+                        ]),
+                        vertexShader: [
+                          '#define LAMBERT',
+                          'varying vec3 vLightFront;',
+                          '#ifdef DOUBLE_SIDED',
+                          '\tvarying vec3 vLightBack;',
+                          '#endif',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.map_pars_vertex,
+                          Jt.ShaderChunk.lightmap_pars_vertex,
+                          Jt.ShaderChunk.envmap_pars_vertex,
+                          Jt.ShaderChunk.lights_lambert_pars_vertex,
+                          Jt.ShaderChunk.color_pars_vertex,
+                          Jt.ShaderChunk.morphtarget_pars_vertex,
+                          Jt.ShaderChunk.skinning_pars_vertex,
+                          Jt.ShaderChunk.shadowmap_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          Jt.ShaderChunk.map_vertex,
+                          Jt.ShaderChunk.lightmap_vertex,
+                          Jt.ShaderChunk.color_vertex,
+                          Jt.ShaderChunk.morphnormal_vertex,
+                          Jt.ShaderChunk.skinbase_vertex,
+                          Jt.ShaderChunk.skinnormal_vertex,
+                          Jt.ShaderChunk.defaultnormal_vertex,
+                          Jt.ShaderChunk.morphtarget_vertex,
+                          Jt.ShaderChunk.skinning_vertex,
+                          Jt.ShaderChunk.default_vertex,
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          Jt.ShaderChunk.worldpos_vertex,
+                          Jt.ShaderChunk.envmap_vertex,
+                          Jt.ShaderChunk.lights_lambert_vertex,
+                          Jt.ShaderChunk.shadowmap_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform vec3 diffuse;',
+                          'uniform vec3 emissive;',
+                          'uniform float opacity;',
+                          'varying vec3 vLightFront;',
+                          '#ifdef DOUBLE_SIDED',
+                          '\tvarying vec3 vLightBack;',
+                          '#endif',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.color_pars_fragment,
+                          Jt.ShaderChunk.map_pars_fragment,
+                          Jt.ShaderChunk.alphamap_pars_fragment,
+                          Jt.ShaderChunk.lightmap_pars_fragment,
+                          Jt.ShaderChunk.envmap_pars_fragment,
+                          Jt.ShaderChunk.fog_pars_fragment,
+                          Jt.ShaderChunk.shadowmap_pars_fragment,
+                          Jt.ShaderChunk.specularmap_pars_fragment,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          '\tvec3 outgoingLight = vec3( 0.0 );',
+                          '\tvec4 diffuseColor = vec4( diffuse, opacity );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          Jt.ShaderChunk.map_fragment,
+                          Jt.ShaderChunk.color_fragment,
+                          Jt.ShaderChunk.alphamap_fragment,
+                          Jt.ShaderChunk.alphatest_fragment,
+                          Jt.ShaderChunk.specularmap_fragment,
+                          '\t#ifdef DOUBLE_SIDED',
+                          '\t\tif ( gl_FrontFacing )',
+                          '\t\t\toutgoingLight += diffuseColor.rgb * vLightFront + emissive;',
+                          '\t\telse',
+                          '\t\t\toutgoingLight += diffuseColor.rgb * vLightBack + emissive;',
+                          '\t#else',
+                          '\t\toutgoingLight += diffuseColor.rgb * vLightFront + emissive;',
+                          '\t#endif',
+                          Jt.ShaderChunk.lightmap_fragment,
+                          Jt.ShaderChunk.envmap_fragment,
+                          Jt.ShaderChunk.shadowmap_fragment,
+                          Jt.ShaderChunk.linear_to_gamma_fragment,
+                          Jt.ShaderChunk.fog_fragment,
+                          '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );',
+                          '}',
+                        ].join('\n'),
+                      },
+                      phong: {
+                        uniforms: Jt.UniformsUtils.merge([
+                          Jt.UniformsLib.common,
+                          Jt.UniformsLib.bump,
+                          Jt.UniformsLib.normalmap,
+                          Jt.UniformsLib.fog,
+                          Jt.UniformsLib.lights,
+                          Jt.UniformsLib.shadowmap,
+                          {
+                            emissive: { type: 'c', value: new Jt.Color(0) },
+                            specular: { type: 'c', value: new Jt.Color(1118481) },
+                            shininess: { type: 'f', value: 30 },
+                            wrapRGB: { type: 'v3', value: new Jt.Vector3(1, 1, 1) },
+                          },
+                        ]),
+                        vertexShader: [
+                          '#define PHONG',
+                          'varying vec3 vViewPosition;',
+                          '#ifndef FLAT_SHADED',
+                          '\tvarying vec3 vNormal;',
+                          '#endif',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.map_pars_vertex,
+                          Jt.ShaderChunk.lightmap_pars_vertex,
+                          Jt.ShaderChunk.envmap_pars_vertex,
+                          Jt.ShaderChunk.lights_phong_pars_vertex,
+                          Jt.ShaderChunk.color_pars_vertex,
+                          Jt.ShaderChunk.morphtarget_pars_vertex,
+                          Jt.ShaderChunk.skinning_pars_vertex,
+                          Jt.ShaderChunk.shadowmap_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          Jt.ShaderChunk.map_vertex,
+                          Jt.ShaderChunk.lightmap_vertex,
+                          Jt.ShaderChunk.color_vertex,
+                          Jt.ShaderChunk.morphnormal_vertex,
+                          Jt.ShaderChunk.skinbase_vertex,
+                          Jt.ShaderChunk.skinnormal_vertex,
+                          Jt.ShaderChunk.defaultnormal_vertex,
+                          '#ifndef FLAT_SHADED',
+                          '\tvNormal = normalize( transformedNormal );',
+                          '#endif',
+                          Jt.ShaderChunk.morphtarget_vertex,
+                          Jt.ShaderChunk.skinning_vertex,
+                          Jt.ShaderChunk.default_vertex,
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          '\tvViewPosition = -mvPosition.xyz;',
+                          Jt.ShaderChunk.worldpos_vertex,
+                          Jt.ShaderChunk.envmap_vertex,
+                          Jt.ShaderChunk.lights_phong_vertex,
+                          Jt.ShaderChunk.shadowmap_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          '#define PHONG',
+                          'uniform vec3 diffuse;',
+                          'uniform vec3 emissive;',
+                          'uniform vec3 specular;',
+                          'uniform float shininess;',
+                          'uniform float opacity;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.color_pars_fragment,
+                          Jt.ShaderChunk.map_pars_fragment,
+                          Jt.ShaderChunk.alphamap_pars_fragment,
+                          Jt.ShaderChunk.lightmap_pars_fragment,
+                          Jt.ShaderChunk.envmap_pars_fragment,
+                          Jt.ShaderChunk.fog_pars_fragment,
+                          Jt.ShaderChunk.lights_phong_pars_fragment,
+                          Jt.ShaderChunk.shadowmap_pars_fragment,
+                          Jt.ShaderChunk.bumpmap_pars_fragment,
+                          Jt.ShaderChunk.normalmap_pars_fragment,
+                          Jt.ShaderChunk.specularmap_pars_fragment,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          '\tvec3 outgoingLight = vec3( 0.0 );',
+                          '\tvec4 diffuseColor = vec4( diffuse, opacity );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          Jt.ShaderChunk.map_fragment,
+                          Jt.ShaderChunk.color_fragment,
+                          Jt.ShaderChunk.alphamap_fragment,
+                          Jt.ShaderChunk.alphatest_fragment,
+                          Jt.ShaderChunk.specularmap_fragment,
+                          Jt.ShaderChunk.lights_phong_fragment,
+                          Jt.ShaderChunk.lightmap_fragment,
+                          Jt.ShaderChunk.envmap_fragment,
+                          Jt.ShaderChunk.shadowmap_fragment,
+                          Jt.ShaderChunk.linear_to_gamma_fragment,
+                          Jt.ShaderChunk.fog_fragment,
+                          '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );',
+                          '}',
+                        ].join('\n'),
+                      },
+                      particle_basic: {
+                        uniforms: Jt.UniformsUtils.merge([
+                          Jt.UniformsLib.particle,
+                          Jt.UniformsLib.shadowmap,
+                        ]),
+                        vertexShader: [
+                          'uniform float size;',
+                          'uniform float scale;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.color_pars_vertex,
+                          Jt.ShaderChunk.shadowmap_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          Jt.ShaderChunk.color_vertex,
+                          '\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );',
+                          '\t#ifdef USE_SIZEATTENUATION',
+                          '\t\tgl_PointSize = size * ( scale / length( mvPosition.xyz ) );',
+                          '\t#else',
+                          '\t\tgl_PointSize = size;',
+                          '\t#endif',
+                          '\tgl_Position = projectionMatrix * mvPosition;',
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          Jt.ShaderChunk.worldpos_vertex,
+                          Jt.ShaderChunk.shadowmap_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform vec3 psColor;',
+                          'uniform float opacity;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.color_pars_fragment,
+                          Jt.ShaderChunk.map_particle_pars_fragment,
+                          Jt.ShaderChunk.fog_pars_fragment,
+                          Jt.ShaderChunk.shadowmap_pars_fragment,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          '\tvec3 outgoingLight = vec3( 0.0 );',
+                          '\tvec4 diffuseColor = vec4( psColor, opacity );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          Jt.ShaderChunk.map_particle_fragment,
+                          Jt.ShaderChunk.color_fragment,
+                          Jt.ShaderChunk.alphatest_fragment,
+                          '\toutgoingLight = diffuseColor.rgb;',
+                          Jt.ShaderChunk.shadowmap_fragment,
+                          Jt.ShaderChunk.fog_fragment,
+                          '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );',
+                          '}',
+                        ].join('\n'),
+                      },
+                      dashed: {
+                        uniforms: Jt.UniformsUtils.merge([
+                          Jt.UniformsLib.common,
+                          Jt.UniformsLib.fog,
+                          {
+                            scale: { type: 'f', value: 1 },
+                            dashSize: { type: 'f', value: 1 },
+                            totalSize: { type: 'f', value: 2 },
+                          },
+                        ]),
+                        vertexShader: [
+                          'uniform float scale;',
+                          'attribute float lineDistance;',
+                          'varying float vLineDistance;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.color_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          Jt.ShaderChunk.color_vertex,
+                          '\tvLineDistance = scale * lineDistance;',
+                          '\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );',
+                          '\tgl_Position = projectionMatrix * mvPosition;',
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform vec3 diffuse;',
+                          'uniform float opacity;',
+                          'uniform float dashSize;',
+                          'uniform float totalSize;',
+                          'varying float vLineDistance;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.color_pars_fragment,
+                          Jt.ShaderChunk.fog_pars_fragment,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          '\tif ( mod( vLineDistance, totalSize ) > dashSize ) {',
+                          '\t\tdiscard;',
+                          '\t}',
+                          '\tvec3 outgoingLight = vec3( 0.0 );',
+                          '\tvec4 diffuseColor = vec4( diffuse, opacity );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          Jt.ShaderChunk.color_fragment,
+                          '\toutgoingLight = diffuseColor.rgb;',
+                          Jt.ShaderChunk.fog_fragment,
+                          '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );',
+                          '}',
+                        ].join('\n'),
+                      },
+                      depth: {
+                        uniforms: {
+                          mNear: { type: 'f', value: 1 },
+                          mFar: { type: 'f', value: 2e3 },
+                          opacity: { type: 'f', value: 1 },
+                        },
+                        vertexShader: [
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.morphtarget_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          Jt.ShaderChunk.morphtarget_vertex,
+                          Jt.ShaderChunk.default_vertex,
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform float mNear;',
+                          'uniform float mFar;',
+                          'uniform float opacity;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          '\t#ifdef USE_LOGDEPTHBUF_EXT',
+                          '\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;',
+                          '\t#else',
+                          '\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;',
+                          '\t#endif',
+                          '\tfloat color = 1.0 - smoothstep( mNear, mFar, depth );',
+                          '\tgl_FragColor = vec4( vec3( color ), opacity );',
+                          '}',
+                        ].join('\n'),
+                      },
+                      normal: {
+                        uniforms: { opacity: { type: 'f', value: 1 } },
+                        vertexShader: [
+                          'varying vec3 vNormal;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.morphtarget_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          '\tvNormal = normalize( normalMatrix * normal );',
+                          Jt.ShaderChunk.morphtarget_vertex,
+                          Jt.ShaderChunk.default_vertex,
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform float opacity;',
+                          'varying vec3 vNormal;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          '\tgl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          '}',
+                        ].join('\n'),
+                      },
+                      cube: {
+                        uniforms: {
+                          tCube: { type: 't', value: null },
+                          tFlip: { type: 'f', value: -1 },
+                        },
+                        vertexShader: [
+                          'varying vec3 vWorldPosition;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          '\tvWorldPosition = transformDirection( position, modelMatrix );',
+                          '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform samplerCube tCube;',
+                          'uniform float tFlip;',
+                          'varying vec3 vWorldPosition;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          '\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          '}',
+                        ].join('\n'),
+                      },
+                      equirect: {
+                        uniforms: {
+                          tEquirect: { type: 't', value: null },
+                          tFlip: { type: 'f', value: -1 },
+                        },
+                        vertexShader: [
+                          'varying vec3 vWorldPosition;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          '\tvWorldPosition = transformDirection( position, modelMatrix );',
+                          '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          'uniform sampler2D tEquirect;',
+                          'uniform float tFlip;',
+                          'varying vec3 vWorldPosition;',
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'void main() {',
+                          'vec3 direction = normalize( vWorldPosition );',
+                          'vec2 sampleUV;',
+                          'sampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );',
+                          'sampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;',
+                          'gl_FragColor = texture2D( tEquirect, sampleUV );',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          '}',
+                        ].join('\n'),
+                      },
+                      depthRGBA: {
+                        uniforms: {},
+                        vertexShader: [
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.morphtarget_pars_vertex,
+                          Jt.ShaderChunk.skinning_pars_vertex,
+                          Jt.ShaderChunk.logdepthbuf_pars_vertex,
+                          'void main() {',
+                          Jt.ShaderChunk.skinbase_vertex,
+                          Jt.ShaderChunk.morphtarget_vertex,
+                          Jt.ShaderChunk.skinning_vertex,
+                          Jt.ShaderChunk.default_vertex,
+                          Jt.ShaderChunk.logdepthbuf_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          Jt.ShaderChunk.common,
+                          Jt.ShaderChunk.logdepthbuf_pars_fragment,
+                          'vec4 pack_depth( const in float depth ) {',
+                          '\tconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );',
+                          '\tconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );',
+                          '\tvec4 res = mod( depth * bit_shift * vec4( 255 ), vec4( 256 ) ) / vec4( 255 );',
+                          '\tres -= res.xxyz * bit_mask;',
+                          '\treturn res;',
+                          '}',
+                          'void main() {',
+                          Jt.ShaderChunk.logdepthbuf_fragment,
+                          '\t#ifdef USE_LOGDEPTHBUF_EXT',
+                          '\t\tgl_FragData[ 0 ] = pack_depth( gl_FragDepthEXT );',
+                          '\t#else',
+                          '\t\tgl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );',
+                          '\t#endif',
+                          '}',
+                        ].join('\n'),
+                      },
+                    }),
+                    (Jt.WebGLRenderer = function (t) {
+                      function e(t) {
+                        t.preventDefault(), O(), Y(), (x = {});
+                      }
+                      var dt =
+                          void 0 !== (t = t || {}).canvas
+                            ? t.canvas
+                            : document.createElement('canvas'),
+                        o = void 0 !== t.context ? t.context : null,
+                        C = 1,
+                        y = void 0 !== t.precision ? t.precision : 'highp',
+                        a = void 0 !== t.alpha && t.alpha,
+                        s = void 0 === t.depth || t.depth,
+                        l = void 0 === t.stencil || t.stencil,
+                        E = void 0 !== t.antialias && t.antialias,
+                        B = void 0 === t.premultipliedAlpha || t.premultipliedAlpha,
+                        k = void 0 !== t.preserveDrawingBuffer && t.preserveDrawingBuffer,
+                        Ct = void 0 !== t.logarithmicDepthBuffer && t.logarithmicDepthBuffer,
+                        n = new Jt.Color(0),
+                        r = 0,
+                        u = [],
+                        x = {},
+                        c = [],
+                        A = [],
+                        h = [],
+                        F = [],
+                        Q = [],
+                        ft =
+                          ((this.domElement = dt),
+                          (this.context = null),
+                          (this.autoClear = !0),
+                          (this.autoClearColor = !0),
+                          (this.autoClearDepth = !0),
+                          (this.autoClearStencil = !0),
+                          (this.sortObjects = !0),
+                          (this.gammaFactor = 2),
+                          (this.gammaInput = !1),
+                          (this.gammaOutput = !1),
+                          (this.shadowMapEnabled = !1),
+                          (this.shadowMapType = Jt.PCFShadowMap),
+                          (this.shadowMapCullFace = Jt.CullFaceFront),
+                          (this.shadowMapDebug = !1),
+                          (this.shadowMapCascade = !1),
+                          (this.maxMorphTargets = 8),
+                          (this.maxMorphNormals = 4),
+                          (this.autoScaleCubemaps = !0),
+                          (this.info = {
+                            memory: { programs: 0, geometries: 0, textures: 0 },
+                            render: { calls: 0, vertices: 0, faces: 0, points: 0 },
+                          }),
+                          this),
+                        w = [],
+                        xt = null,
+                        p = null,
+                        gt = -1,
+                        I = '',
+                        mt = null,
+                        It = 0,
+                        d = 0,
+                        f = 0,
+                        g = dt.width,
+                        m = dt.height,
+                        _ = 0,
+                        T = 0,
+                        R = new Jt.Frustum(),
+                        U = new Jt.Matrix4(),
+                        vt = new Jt.Vector3(),
+                        bt = new Jt.Vector3(),
+                        yt = !0,
+                        Dt = {
+                          ambient: [0, 0, 0],
+                          directional: { length: 0, colors: [], positions: [] },
+                          point: {
+                            length: 0,
+                            colors: [],
+                            positions: [],
+                            distances: [],
+                            decays: [],
+                          },
+                          spot: {
+                            length: 0,
+                            colors: [],
+                            positions: [],
+                            distances: [],
+                            directions: [],
+                            anglesCos: [],
+                            exponents: [],
+                            decays: [],
+                          },
+                          hemi: { length: 0, skyColors: [], groundColors: [], positions: [] },
+                        };
+                      try {
+                        var Mt,
+                          N = {
+                            alpha: a,
+                            depth: s,
+                            stencil: l,
+                            antialias: E,
+                            premultipliedAlpha: B,
+                            preserveDrawingBuffer: k,
+                          };
+                        if (
+                          null ===
+                          (Mt =
+                            o ||
+                            dt.getContext('webgl', N) ||
+                            dt.getContext('experimental-webgl', N))
+                        )
+                          throw null !== dt.getContext('webgl')
+                            ? 'Error creating WebGL context with your selected attributes.'
+                            : 'Error creating WebGL context.';
+                        dt.addEventListener('webglcontextlost', e, !1);
+                      } catch (t) {
+                        Jt.error('THREE.WebGLRenderer: ' + t);
+                      }
+                      this.dispose = function () {
+                        dt.removeEventListener('webglcontextlost', e, !1);
+                      };
+                      var i,
+                        P,
+                        M = new Jt.WebGLState(Mt, Bt),
+                        D =
+                          (void 0 === Mt.getShaderPrecisionFormat &&
+                            (Mt.getShaderPrecisionFormat = function () {
+                              return { rangeMin: 1, rangeMax: 1, precision: 1 };
+                            }),
+                          new Jt.WebGLExtensions(Mt)),
+                        L =
+                          (D.get('OES_texture_float'),
+                          D.get('OES_texture_float_linear'),
+                          D.get('OES_texture_half_float'),
+                          D.get('OES_texture_half_float_linear'),
+                          D.get('OES_standard_derivatives'),
+                          Ct && D.get('EXT_frag_depth'),
+                          function (t, e, n, r) {
+                            !0 === B && ((t *= r), (e *= r), (n *= r)), Mt.clearColor(t, e, n, r);
+                          }),
+                        Y = function () {
+                          Mt.clearColor(0, 0, 0, 1),
+                            Mt.clearDepth(1),
+                            Mt.clearStencil(0),
+                            Mt.enable(Mt.DEPTH_TEST),
+                            Mt.depthFunc(Mt.LEQUAL),
+                            Mt.frontFace(Mt.CCW),
+                            Mt.cullFace(Mt.BACK),
+                            Mt.enable(Mt.CULL_FACE),
+                            Mt.enable(Mt.BLEND),
+                            Mt.blendEquation(Mt.FUNC_ADD),
+                            Mt.blendFunc(Mt.SRC_ALPHA, Mt.ONE_MINUS_SRC_ALPHA),
+                            Mt.viewport(d, f, g, m),
+                            L(n.r, n.g, n.b, r);
+                        },
+                        O = function () {
+                          (mt = xt = null), (gt = -1), (yt = !(I = '')), M.reset();
+                        },
+                        G =
+                          (Y(),
+                          (this.context = Mt),
+                          (this.state = M),
+                          Mt.getParameter(Mt.MAX_TEXTURE_IMAGE_UNITS)),
+                        t = Mt.getParameter(Mt.MAX_VERTEX_TEXTURE_IMAGE_UNITS),
+                        z = Mt.getParameter(Mt.MAX_TEXTURE_SIZE),
+                        St = Mt.getParameter(Mt.MAX_CUBE_MAP_TEXTURE_SIZE),
+                        H = 0 < t,
+                        kt = H && D.get('OES_texture_float'),
+                        a = Mt.getShaderPrecisionFormat(Mt.VERTEX_SHADER, Mt.HIGH_FLOAT),
+                        s = Mt.getShaderPrecisionFormat(Mt.VERTEX_SHADER, Mt.MEDIUM_FLOAT),
+                        l = Mt.getShaderPrecisionFormat(Mt.FRAGMENT_SHADER, Mt.HIGH_FLOAT),
+                        E = Mt.getShaderPrecisionFormat(Mt.FRAGMENT_SHADER, Mt.MEDIUM_FLOAT),
+                        Ft = function () {
+                          if (
+                            void 0 === i &&
+                            ((i = []),
+                            D.get('WEBGL_compressed_texture_pvrtc') ||
+                              D.get('WEBGL_compressed_texture_s3tc'))
+                          )
+                            for (
+                              var t = Mt.getParameter(Mt.COMPRESSED_TEXTURE_FORMATS), e = 0;
+                              e < t.length;
+                              e++
+                            )
+                              i.push(t[e]);
+                          return i;
+                        },
+                        k = 0 < a.precision && 0 < l.precision,
+                        o = 0 < s.precision && 0 < E.precision,
+                        j =
+                          ('highp' !== y ||
+                            k ||
+                            (o
+                              ? ((y = 'mediump'),
+                                Jt.warn('THREE.WebGLRenderer: highp not supported, using mediump.'))
+                              : ((y = 'lowp'),
+                                Jt.warn(
+                                  'THREE.WebGLRenderer: highp and mediump not supported, using lowp.',
+                                ))),
+                          'mediump' !== y ||
+                            o ||
+                            ((y = 'lowp'),
+                            Jt.warn('THREE.WebGLRenderer: mediump not supported, using lowp.')),
+                          new Jt.ShadowMapPlugin(this, u, x, c)),
+                        V = new Jt.SpritePlugin(this, F),
+                        q = new Jt.LensFlarePlugin(this, Q);
+                      (this.getContext = function () {
+                        return Mt;
+                      }),
+                        (this.forceContextLoss = function () {
+                          D.get('WEBGL_lose_context').loseContext();
+                        }),
+                        (this.supportsVertexTextures = function () {
+                          return H;
+                        }),
+                        (this.supportsFloatTextures = function () {
+                          return D.get('OES_texture_float');
+                        }),
+                        (this.supportsHalfFloatTextures = function () {
+                          return D.get('OES_texture_half_float');
+                        }),
+                        (this.supportsStandardDerivatives = function () {
+                          return D.get('OES_standard_derivatives');
+                        }),
+                        (this.supportsCompressedTextureS3TC = function () {
+                          return D.get('WEBGL_compressed_texture_s3tc');
+                        }),
+                        (this.supportsCompressedTexturePVRTC = function () {
+                          return D.get('WEBGL_compressed_texture_pvrtc');
+                        }),
+                        (this.supportsBlendMinMax = function () {
+                          return D.get('EXT_blend_minmax');
+                        }),
+                        (this.getMaxAnisotropy = function () {
+                          var t;
+                          return (
+                            void 0 === P &&
+                              ((t = D.get('EXT_texture_filter_anisotropic')),
+                              (P =
+                                null !== t
+                                  ? Mt.getParameter(t.MAX_TEXTURE_MAX_ANISOTROPY_EXT)
+                                  : 0)),
+                            P
+                          );
+                        }),
+                        (this.getPrecision = function () {
+                          return y;
+                        }),
+                        (this.getPixelRatio = function () {
+                          return C;
+                        }),
+                        (this.setPixelRatio = function (t) {
+                          C = t;
+                        }),
+                        (this.setSize = function (t, e, n) {
+                          (dt.width = t * C),
+                            (dt.height = e * C),
+                            !1 !== n && ((dt.style.width = t + 'px'), (dt.style.height = e + 'px')),
+                            this.setViewport(0, 0, t, e);
+                        }),
+                        (this.setViewport = function (t, e, n, r) {
+                          (d = t * C),
+                            (f = e * C),
+                            (g = n * C),
+                            (m = r * C),
+                            Mt.viewport(d, f, g, m);
+                        }),
+                        (this.setScissor = function (t, e, n, r) {
+                          Mt.scissor(t * C, e * C, n * C, r * C);
+                        }),
+                        (this.enableScissorTest = function (t) {
+                          t ? Mt.enable(Mt.SCISSOR_TEST) : Mt.disable(Mt.SCISSOR_TEST);
+                        }),
+                        (this.getClearColor = function () {
+                          return n;
+                        }),
+                        (this.setClearColor = function (t, e) {
+                          n.set(t), (r = void 0 !== e ? e : 1), L(n.r, n.g, n.b, r);
+                        }),
+                        (this.getClearAlpha = function () {
+                          return r;
+                        }),
+                        (this.setClearAlpha = function (t) {
+                          (r = t), L(n.r, n.g, n.b, r);
+                        }),
+                        (this.clear = function (t, e, n) {
+                          var r = 0;
+                          (void 0 !== t && !t) || (r |= Mt.COLOR_BUFFER_BIT),
+                            (void 0 !== e && !e) || (r |= Mt.DEPTH_BUFFER_BIT),
+                            (void 0 !== n && !n) || (r |= Mt.STENCIL_BUFFER_BIT),
+                            Mt.clear(r);
+                        }),
+                        (this.clearColor = function () {
+                          Mt.clear(Mt.COLOR_BUFFER_BIT);
+                        }),
+                        (this.clearDepth = function () {
+                          Mt.clear(Mt.DEPTH_BUFFER_BIT);
+                        }),
+                        (this.clearStencil = function () {
+                          Mt.clear(Mt.STENCIL_BUFFER_BIT);
+                        }),
+                        (this.clearTarget = function (t, e, n, r) {
+                          this.setRenderTarget(t), this.clear(e, n, r);
+                        }),
+                        (this.resetGLState = O);
+                      var W = function (t) {
+                          t.target.traverse(function (t) {
+                            t.removeEventListener('remove', W);
+                            if (
+                              t instanceof Jt.Mesh ||
+                              t instanceof Jt.PointCloud ||
+                              t instanceof Jt.Line
+                            )
+                              delete x[t.id];
+                            else if (
+                              t instanceof Jt.ImmediateRenderObject ||
+                              t.immediateRenderCallback
+                            )
+                              for (var e = c, n = t, r = e.length - 1; 0 <= r; r--)
+                                e[r].object === n && e.splice(r, 1);
+                            delete t.__webglInit,
+                              delete t._modelViewMatrix,
+                              delete t._normalMatrix,
+                              delete t.__webglActive;
+                          });
+                        },
+                        J = function (t) {
+                          t = t.target;
+                          t.removeEventListener('dispose', J), $(t);
+                        },
+                        Qt = function (t) {
+                          t = t.target;
+                          t.removeEventListener('dispose', Qt), tt(t), ft.info.memory.textures--;
+                        },
+                        K = function (t) {
+                          t = t.target;
+                          t.removeEventListener('dispose', K), et(t), ft.info.memory.textures--;
+                        },
+                        Z = function (t) {
+                          t = t.target;
+                          t.removeEventListener('dispose', Z), _t(t);
+                        },
+                        X = function (t) {
+                          for (
+                            var e = [
+                                '__webglVertexBuffer',
+                                '__webglNormalBuffer',
+                                '__webglTangentBuffer',
+                                '__webglColorBuffer',
+                                '__webglUVBuffer',
+                                '__webglUV2Buffer',
+                                '__webglSkinIndicesBuffer',
+                                '__webglSkinWeightsBuffer',
+                                '__webglFaceBuffer',
+                                '__webglLineBuffer',
+                                '__webglLineDistanceBuffer',
+                              ],
+                              n = 0,
+                              r = e.length;
+                            n < r;
+                            n++
+                          )
+                            void 0 !== t[(i = e[n])] && (Mt.deleteBuffer(t[i]), delete t[i]);
+                          if (void 0 !== t.__webglCustomAttributesList) {
+                            for (var i in t.__webglCustomAttributesList)
+                              Mt.deleteBuffer(t.__webglCustomAttributesList[i].buffer);
+                            delete t.__webglCustomAttributesList;
+                          }
+                          ft.info.memory.geometries--;
+                        },
+                        $ = function (t) {
+                          if ((delete t.__webglInit, t instanceof Jt.BufferGeometry)) {
+                            for (var e in t.attributes) {
+                              e = t.attributes[e];
+                              void 0 !== e.buffer && (Mt.deleteBuffer(e.buffer), delete e.buffer);
+                            }
+                            ft.info.memory.geometries--;
+                          } else {
+                            var n = at[t.id];
+                            if (void 0 !== n) {
+                              for (var r = 0, i = n.length; r < i; r++) {
+                                var o = n[r];
+                                if (void 0 !== o.numMorphTargets) {
+                                  for (var a = 0, s = o.numMorphTargets; a < s; a++)
+                                    Mt.deleteBuffer(o.__webglMorphTargetsBuffers[a]);
+                                  delete o.__webglMorphTargetsBuffers;
+                                }
+                                if (void 0 !== o.numMorphNormals) {
+                                  for (a = 0, s = o.numMorphNormals; a < s; a++)
+                                    Mt.deleteBuffer(o.__webglMorphNormalsBuffers[a]);
+                                  delete o.__webglMorphNormalsBuffers;
+                                }
+                                X(o);
+                              }
+                              delete at[t.id];
+                            } else X(t);
+                          }
+                          I = '';
+                        },
+                        tt = function (t) {
+                          t.image && t.image.__webglTextureCube
+                            ? (Mt.deleteTexture(t.image.__webglTextureCube),
+                              delete t.image.__webglTextureCube)
+                            : void 0 !== t.__webglInit &&
+                              (Mt.deleteTexture(t.__webglTexture),
+                              delete t.__webglTexture,
+                              delete t.__webglInit);
+                        },
+                        et = function (t) {
+                          if (t && void 0 !== t.__webglTexture) {
+                            if (
+                              (Mt.deleteTexture(t.__webglTexture),
+                              delete t.__webglTexture,
+                              t instanceof Jt.WebGLRenderTargetCube)
+                            )
+                              for (var e = 0; e < 6; e++)
+                                Mt.deleteFramebuffer(t.__webglFramebuffer[e]),
+                                  Mt.deleteRenderbuffer(t.__webglRenderbuffer[e]);
+                            else
+                              Mt.deleteFramebuffer(t.__webglFramebuffer),
+                                Mt.deleteRenderbuffer(t.__webglRenderbuffer);
+                            delete t.__webglFramebuffer, delete t.__webglRenderbuffer;
+                          }
+                        },
+                        _t = function (t) {
+                          var e = t.program.program;
+                          if (void 0 !== e) {
+                            t.program = void 0;
+                            var n,
+                              r = !1;
+                            for (o = 0, a = w.length; o < a; o++)
+                              if ((n = w[o]).program === e) {
+                                n.usedTimes--, 0 === n.usedTimes && (r = !0);
+                                break;
+                              }
+                            if (!0 === r) {
+                              for (var i = [], o = 0, a = w.length; o < a; o++)
+                                (n = w[o]).program !== e && i.push(n);
+                              (w = i), Mt.deleteProgram(e), ft.info.memory.programs--;
+                            }
+                          }
+                        };
+                      function nt(t) {
+                        var e = t.geometry,
+                          n = t.material,
+                          r = e.vertices.length;
+                        if (n.attributes)
+                          for (var i in (void 0 === e.__webglCustomAttributesList &&
+                            (e.__webglCustomAttributesList = []),
+                          n.attributes)) {
+                            var o,
+                              a = n.attributes[i];
+                            (a.__webglInitialized && !a.createUniqueBuffers) ||
+                              ((a.__webglInitialized = !0),
+                              (o = 1),
+                              'v2' === a.type
+                                ? (o = 2)
+                                : 'v3' === a.type
+                                  ? (o = 3)
+                                  : 'v4' === a.type
+                                    ? (o = 4)
+                                    : 'c' === a.type && (o = 3),
+                              (a.size = o),
+                              (a.array = new Float32Array(r * o)),
+                              (a.buffer = Mt.createBuffer()),
+                              (a.buffer.belongsToAttribute = i),
+                              (a.needsUpdate = !0)),
+                              e.__webglCustomAttributesList.push(a);
+                          }
+                      }
+                      function ot(t, e) {
+                        return t.material instanceof Jt.MeshFaceMaterial
+                          ? t.material.materials[e.materialIndex]
+                          : t.material;
+                      }
+                      function st(t, U, e, N, P) {
+                        if (t.__inittedArrays) {
+                          var n,
+                            r,
+                            i,
+                            L,
+                            Y,
+                            O,
+                            G,
+                            z,
+                            o,
+                            a,
+                            s,
+                            H,
+                            j,
+                            l,
+                            V,
+                            q,
+                            W,
+                            J,
+                            u,
+                            c,
+                            A,
+                            h,
+                            p,
+                            K,
+                            Z,
+                            X,
+                            $,
+                            d,
+                            tt,
+                            f,
+                            g,
+                            m,
+                            v,
+                            et =
+                              (Q = P) instanceof Jt.MeshPhongMaterial == !1 &&
+                              Q.shading === Jt.FlatShading,
+                            b = 0,
+                            y = 0,
+                            nt = 0,
+                            rt = 0,
+                            it = 0,
+                            w = 0,
+                            E = 0,
+                            ot = 0,
+                            B = 0,
+                            C = 0,
+                            x = 0,
+                            I = 0,
+                            M = t.__vertexArray,
+                            at = t.__uvArray,
+                            st = t.__uv2Array,
+                            lt = t.__normalArray,
+                            D = t.__tangentArray,
+                            S = t.__colorArray,
+                            k = t.__skinIndexArray,
+                            F = t.__skinWeightArray,
+                            ut = t.__morphTargetsArrays,
+                            ct = t.__morphNormalsArrays,
+                            At = t.__webglCustomAttributesList,
+                            ht = t.__faceArray,
+                            pt = t.__lineArray,
+                            Q = U.geometry,
+                            U = Q.verticesNeedUpdate,
+                            dt = Q.elementsNeedUpdate,
+                            ft = Q.uvsNeedUpdate,
+                            gt = Q.normalsNeedUpdate,
+                            mt = Q.tangentsNeedUpdate,
+                            vt = Q.colorsNeedUpdate,
+                            bt = Q.morphTargetsNeedUpdate,
+                            yt = Q.vertices,
+                            _ = t.faces3,
+                            T = Q.faces,
+                            wt = Q.faceVertexUvs[0],
+                            Et = Q.faceVertexUvs[1],
+                            Bt = Q.skinIndices,
+                            Ct = Q.skinWeights,
+                            xt = Q.morphTargets,
+                            It = Q.morphNormals;
+                          if (U) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              (o = yt[(i = T[_[n]]).a]),
+                                (a = yt[i.b]),
+                                (s = yt[i.c]),
+                                (M[y] = o.x),
+                                (M[y + 1] = o.y),
+                                (M[y + 2] = o.z),
+                                (M[y + 3] = a.x),
+                                (M[y + 4] = a.y),
+                                (M[y + 5] = a.z),
+                                (M[y + 6] = s.x),
+                                (M[y + 7] = s.y),
+                                (M[y + 8] = s.z),
+                                (y += 9);
+                            Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglVertexBuffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, M, e);
+                          }
+                          if (bt)
+                            for (d = 0, tt = xt.length; d < tt; d++) {
+                              for (n = x = 0, r = _.length; n < r; n++)
+                                (i = T[(f = _[n])]),
+                                  (o = xt[d].vertices[i.a]),
+                                  (a = xt[d].vertices[i.b]),
+                                  (s = xt[d].vertices[i.c]),
+                                  ((g = ut[d])[x] = o.x),
+                                  (g[x + 1] = o.y),
+                                  (g[x + 2] = o.z),
+                                  (g[x + 3] = a.x),
+                                  (g[x + 4] = a.y),
+                                  (g[x + 5] = a.z),
+                                  (g[x + 6] = s.x),
+                                  (g[x + 7] = s.y),
+                                  (g[x + 8] = s.z),
+                                  P.morphNormals &&
+                                    ((f = et
+                                      ? (q = V = It[d].faceNormals[f])
+                                      : ((V = (g = It[d].vertexNormals[f]).a), (q = g.b), g.c)),
+                                    ((g = ct[d])[x] = V.x),
+                                    (g[x + 1] = V.y),
+                                    (g[x + 2] = V.z),
+                                    (g[x + 3] = q.x),
+                                    (g[x + 4] = q.y),
+                                    (g[x + 5] = q.z),
+                                    (g[x + 6] = f.x),
+                                    (g[x + 7] = f.y),
+                                    (g[x + 8] = f.z)),
+                                  (x += 9);
+                              Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglMorphTargetsBuffers[d]),
+                                Mt.bufferData(Mt.ARRAY_BUFFER, ut[d], e),
+                                P.morphNormals &&
+                                  (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglMorphNormalsBuffers[d]),
+                                  Mt.bufferData(Mt.ARRAY_BUFFER, ct[d], e));
+                            }
+                          if (Ct.length) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              (c = Ct[(i = T[_[n]]).a]),
+                                (A = Ct[i.b]),
+                                (h = Ct[i.c]),
+                                (F[C] = c.x),
+                                (F[C + 1] = c.y),
+                                (F[C + 2] = c.z),
+                                (F[C + 3] = c.w),
+                                (F[C + 4] = A.x),
+                                (F[C + 5] = A.y),
+                                (F[C + 6] = A.z),
+                                (F[C + 7] = A.w),
+                                (F[C + 8] = h.x),
+                                (F[C + 9] = h.y),
+                                (F[C + 10] = h.z),
+                                (F[C + 11] = h.w),
+                                (c = Bt[i.a]),
+                                (A = Bt[i.b]),
+                                (h = Bt[i.c]),
+                                (k[C] = c.x),
+                                (k[C + 1] = c.y),
+                                (k[C + 2] = c.z),
+                                (k[C + 3] = c.w),
+                                (k[C + 4] = A.x),
+                                (k[C + 5] = A.y),
+                                (k[C + 6] = A.z),
+                                (k[C + 7] = A.w),
+                                (k[C + 8] = h.x),
+                                (k[C + 9] = h.y),
+                                (k[C + 10] = h.z),
+                                (k[C + 11] = h.w),
+                                (C += 12);
+                            0 < C &&
+                              (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglSkinIndicesBuffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, k, e),
+                              Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglSkinWeightsBuffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, F, e));
+                          }
+                          if (vt) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              (u = (i = T[_[n]]).vertexColors),
+                                (O = i.color),
+                                (u =
+                                  3 === u.length && P.vertexColors === Jt.VertexColors
+                                    ? ((W = u[0]), (J = u[1]), u[2])
+                                    : (J = W = O)),
+                                (S[B] = W.r),
+                                (S[B + 1] = W.g),
+                                (S[B + 2] = W.b),
+                                (S[B + 3] = J.r),
+                                (S[B + 4] = J.g),
+                                (S[B + 5] = J.b),
+                                (S[B + 6] = u.r),
+                                (S[B + 7] = u.g),
+                                (S[B + 8] = u.b),
+                                (B += 9);
+                            0 < B &&
+                              (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglColorBuffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, S, e));
+                          }
+                          if (mt && Q.hasTangents) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              (H = (l = (i = T[_[n]]).vertexTangents)[0]),
+                                (j = l[1]),
+                                (l = l[2]),
+                                (D[E] = H.x),
+                                (D[E + 1] = H.y),
+                                (D[E + 2] = H.z),
+                                (D[E + 3] = H.w),
+                                (D[E + 4] = j.x),
+                                (D[E + 5] = j.y),
+                                (D[E + 6] = j.z),
+                                (D[E + 7] = j.w),
+                                (D[E + 8] = l.x),
+                                (D[E + 9] = l.y),
+                                (D[E + 10] = l.z),
+                                (D[E + 11] = l.w),
+                                (E += 12);
+                            Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglTangentBuffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, D, e);
+                          }
+                          if (gt) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              if (
+                                ((L = (i = T[_[n]]).vertexNormals),
+                                (Y = i.normal),
+                                3 === L.length && !1 == et)
+                              )
+                                for (p = 0; p < 3; p++)
+                                  (Z = L[p]),
+                                    (lt[w] = Z.x),
+                                    (lt[w + 1] = Z.y),
+                                    (lt[w + 2] = Z.z),
+                                    (w += 3);
+                              else
+                                for (p = 0; p < 3; p++)
+                                  (lt[w] = Y.x), (lt[w + 1] = Y.y), (lt[w + 2] = Y.z), (w += 3);
+                            Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglNormalBuffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, lt, e);
+                          }
+                          if (ft && wt) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              if (void 0 !== (G = wt[_[n]]))
+                                for (p = 0; p < 3; p++)
+                                  (X = G[p]), (at[nt] = X.x), (at[nt + 1] = X.y), (nt += 2);
+                            0 < nt &&
+                              (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglUVBuffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, at, e));
+                          }
+                          if (ft && Et) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              if (void 0 !== (z = Et[_[n]]))
+                                for (p = 0; p < 3; p++)
+                                  ($ = z[p]), (st[rt] = $.x), (st[rt + 1] = $.y), (rt += 2);
+                            0 < rt &&
+                              (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglUV2Buffer),
+                              Mt.bufferData(Mt.ARRAY_BUFFER, st, e));
+                          }
+                          if (dt) {
+                            for (n = 0, r = _.length; n < r; n++)
+                              (ht[it] = b),
+                                (ht[it + 1] = b + 1),
+                                (ht[it + 2] = b + 2),
+                                (it += 3),
+                                (pt[ot] = b),
+                                (pt[ot + 1] = b + 1),
+                                (pt[ot + 2] = b),
+                                (pt[ot + 3] = b + 2),
+                                (pt[ot + 4] = b + 1),
+                                (pt[ot + 5] = b + 2),
+                                (ot += 6),
+                                (b += 3);
+                            Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, t.__webglFaceBuffer),
+                              Mt.bufferData(Mt.ELEMENT_ARRAY_BUFFER, ht, e),
+                              Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, t.__webglLineBuffer),
+                              Mt.bufferData(Mt.ELEMENT_ARRAY_BUFFER, pt, e);
+                          }
+                          if (At)
+                            for (p = 0, K = At.length; p < K; p++)
+                              if ((v = At[p]).__original.needsUpdate) {
+                                if (((I = 0), 1 === v.size)) {
+                                  if (void 0 === v.boundTo || 'vertices' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (i = T[_[n]]),
+                                        (v.array[I] = v.value[i.a]),
+                                        (v.array[I + 1] = v.value[i.b]),
+                                        (v.array[I + 2] = v.value[i.c]),
+                                        (I += 3);
+                                  else if ('faces' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (m = v.value[_[n]]),
+                                        (v.array[I] = m),
+                                        (v.array[I + 1] = m),
+                                        (v.array[I + 2] = m),
+                                        (I += 3);
+                                } else if (2 === v.size) {
+                                  if (void 0 === v.boundTo || 'vertices' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (i = T[_[n]]),
+                                        (o = v.value[i.a]),
+                                        (a = v.value[i.b]),
+                                        (s = v.value[i.c]),
+                                        (v.array[I] = o.x),
+                                        (v.array[I + 1] = o.y),
+                                        (v.array[I + 2] = a.x),
+                                        (v.array[I + 3] = a.y),
+                                        (v.array[I + 4] = s.x),
+                                        (v.array[I + 5] = s.y),
+                                        (I += 6);
+                                  else if ('faces' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (s = a = o = m = v.value[_[n]]),
+                                        (v.array[I] = o.x),
+                                        (v.array[I + 1] = o.y),
+                                        (v.array[I + 2] = a.x),
+                                        (v.array[I + 3] = a.y),
+                                        (v.array[I + 4] = s.x),
+                                        (v.array[I + 5] = s.y),
+                                        (I += 6);
+                                } else if (3 === v.size) {
+                                  var R = 'c' === v.type ? ['r', 'g', 'b'] : ['x', 'y', 'z'];
+                                  if (void 0 === v.boundTo || 'vertices' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (i = T[_[n]]),
+                                        (o = v.value[i.a]),
+                                        (a = v.value[i.b]),
+                                        (s = v.value[i.c]),
+                                        (v.array[I] = o[R[0]]),
+                                        (v.array[I + 1] = o[R[1]]),
+                                        (v.array[I + 2] = o[R[2]]),
+                                        (v.array[I + 3] = a[R[0]]),
+                                        (v.array[I + 4] = a[R[1]]),
+                                        (v.array[I + 5] = a[R[2]]),
+                                        (v.array[I + 6] = s[R[0]]),
+                                        (v.array[I + 7] = s[R[1]]),
+                                        (v.array[I + 8] = s[R[2]]),
+                                        (I += 9);
+                                  else if ('faces' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (s = a = o = m = v.value[_[n]]),
+                                        (v.array[I] = o[R[0]]),
+                                        (v.array[I + 1] = o[R[1]]),
+                                        (v.array[I + 2] = o[R[2]]),
+                                        (v.array[I + 3] = a[R[0]]),
+                                        (v.array[I + 4] = a[R[1]]),
+                                        (v.array[I + 5] = a[R[2]]),
+                                        (v.array[I + 6] = s[R[0]]),
+                                        (v.array[I + 7] = s[R[1]]),
+                                        (v.array[I + 8] = s[R[2]]),
+                                        (I += 9);
+                                  else if ('faceVertices' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (o = (m = v.value[_[n]])[0]),
+                                        (a = m[1]),
+                                        (s = m[2]),
+                                        (v.array[I] = o[R[0]]),
+                                        (v.array[I + 1] = o[R[1]]),
+                                        (v.array[I + 2] = o[R[2]]),
+                                        (v.array[I + 3] = a[R[0]]),
+                                        (v.array[I + 4] = a[R[1]]),
+                                        (v.array[I + 5] = a[R[2]]),
+                                        (v.array[I + 6] = s[R[0]]),
+                                        (v.array[I + 7] = s[R[1]]),
+                                        (v.array[I + 8] = s[R[2]]),
+                                        (I += 9);
+                                } else if (4 === v.size)
+                                  if (void 0 === v.boundTo || 'vertices' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (i = T[_[n]]),
+                                        (o = v.value[i.a]),
+                                        (a = v.value[i.b]),
+                                        (s = v.value[i.c]),
+                                        (v.array[I] = o.x),
+                                        (v.array[I + 1] = o.y),
+                                        (v.array[I + 2] = o.z),
+                                        (v.array[I + 3] = o.w),
+                                        (v.array[I + 4] = a.x),
+                                        (v.array[I + 5] = a.y),
+                                        (v.array[I + 6] = a.z),
+                                        (v.array[I + 7] = a.w),
+                                        (v.array[I + 8] = s.x),
+                                        (v.array[I + 9] = s.y),
+                                        (v.array[I + 10] = s.z),
+                                        (v.array[I + 11] = s.w),
+                                        (I += 12);
+                                  else if ('faces' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (s = a = o = m = v.value[_[n]]),
+                                        (v.array[I] = o.x),
+                                        (v.array[I + 1] = o.y),
+                                        (v.array[I + 2] = o.z),
+                                        (v.array[I + 3] = o.w),
+                                        (v.array[I + 4] = a.x),
+                                        (v.array[I + 5] = a.y),
+                                        (v.array[I + 6] = a.z),
+                                        (v.array[I + 7] = a.w),
+                                        (v.array[I + 8] = s.x),
+                                        (v.array[I + 9] = s.y),
+                                        (v.array[I + 10] = s.z),
+                                        (v.array[I + 11] = s.w),
+                                        (I += 12);
+                                  else if ('faceVertices' === v.boundTo)
+                                    for (n = 0, r = _.length; n < r; n++)
+                                      (o = (m = v.value[_[n]])[0]),
+                                        (a = m[1]),
+                                        (s = m[2]),
+                                        (v.array[I] = o.x),
+                                        (v.array[I + 1] = o.y),
+                                        (v.array[I + 2] = o.z),
+                                        (v.array[I + 3] = o.w),
+                                        (v.array[I + 4] = a.x),
+                                        (v.array[I + 5] = a.y),
+                                        (v.array[I + 6] = a.z),
+                                        (v.array[I + 7] = a.w),
+                                        (v.array[I + 8] = s.x),
+                                        (v.array[I + 9] = s.y),
+                                        (v.array[I + 10] = s.z),
+                                        (v.array[I + 11] = s.w),
+                                        (I += 12);
+                                Mt.bindBuffer(Mt.ARRAY_BUFFER, v.buffer),
+                                  Mt.bufferData(Mt.ARRAY_BUFFER, v.array, e);
+                              }
+                          N &&
+                            (delete t.__inittedArrays,
+                            delete t.__colorArray,
+                            delete t.__normalArray,
+                            delete t.__tangentArray,
+                            delete t.__uvArray,
+                            delete t.__uv2Array,
+                            delete t.__faceArray,
+                            delete t.__vertexArray,
+                            delete t.__lineArray,
+                            delete t.__skinIndexArray,
+                            delete t.__skinWeightArray);
+                        }
+                      }
+                      function v(t, e, n, r) {
+                        for (
+                          var i = n.attributes,
+                            o = e.attributes,
+                            a = e.attributesKeys,
+                            s = 0,
+                            l = a.length;
+                          s < l;
+                          s++
+                        ) {
+                          var u,
+                            c,
+                            A = a[s],
+                            h = o[A];
+                          0 <= h &&
+                            (void 0 !== (u = i[A])
+                              ? ((c = u.itemSize),
+                                Mt.bindBuffer(Mt.ARRAY_BUFFER, u.buffer),
+                                M.enableAttribute(h),
+                                Mt.vertexAttribPointer(h, c, Mt.FLOAT, !1, 0, r * c * 4))
+                              : void 0 !== t.defaultAttributeValues &&
+                                (2 === t.defaultAttributeValues[A].length
+                                  ? Mt.vertexAttrib2fv(h, t.defaultAttributeValues[A])
+                                  : 3 === t.defaultAttributeValues[A].length &&
+                                    Mt.vertexAttrib3fv(h, t.defaultAttributeValues[A])));
+                        }
+                        M.disableUnusedAttributes();
+                      }
+                      function rt(t, e) {
+                        return t.object.renderOrder !== e.object.renderOrder
+                          ? t.object.renderOrder - e.object.renderOrder
+                          : t.material.id !== e.material.id
+                            ? t.material.id - e.material.id
+                            : t.z !== e.z
+                              ? t.z - e.z
+                              : t.id - e.id;
+                      }
+                      function it(t, e) {
+                        return t.object.renderOrder !== e.object.renderOrder
+                          ? t.object.renderOrder - e.object.renderOrder
+                          : t.z !== e.z
+                            ? e.z - t.z
+                            : t.id - e.id;
+                      }
+                      function lt(t, e) {
+                        return e[0] - t[0];
+                      }
+                      function b(t, e, n, r, i) {
+                        for (var o, a = 0, s = t.length; a < s; a++) {
+                          var l = t[a],
+                            u = l.object,
+                            c = l.buffer;
+                          if ((Ht(u, e), i)) o = i;
+                          else {
+                            if (!(o = l.material)) continue;
+                            Lt(o);
+                          }
+                          ft.setMaterialFaces(o),
+                            c instanceof Jt.BufferGeometry
+                              ? ft.renderBufferDirect(e, n, r, o, c, u)
+                              : ft.renderBuffer(e, n, r, o, c, u);
+                        }
+                      }
+                      function ut(t, e, n, r, i, o) {
+                        for (var a, s = 0, l = t.length; s < l; s++) {
+                          var u = t[s],
+                            c = u.object;
+                          if (c.visible) {
+                            if (o) a = o;
+                            else {
+                              if (!(a = u[e])) continue;
+                              Lt(a);
+                            }
+                            ft.renderImmediateObject(n, r, i, a, c);
+                          }
+                        }
+                      }
+                      function ct(t) {
+                        var e = t.object,
+                          n = t.buffer,
+                          r = e.geometry,
+                          e = e.material;
+                        e instanceof Jt.MeshFaceMaterial
+                          ? ((r = r instanceof Jt.BufferGeometry ? 0 : n.materialIndex),
+                            (e = e.materials[r]),
+                            ((t.material = e).transparent ? h : A).push(t))
+                          : e && ((t.material = e).transparent ? h : A).push(t);
+                      }
+                      function At(t) {
+                        void 0 === t.__webglInit &&
+                          ((t.__webglInit = !0),
+                          (t._modelViewMatrix = new Jt.Matrix4()),
+                          (t._normalMatrix = new Jt.Matrix3()),
+                          t.addEventListener('removed', W));
+                        var e,
+                          n,
+                          r,
+                          i,
+                          o = t.geometry;
+                        if (
+                          (void 0 !== o &&
+                            void 0 === o.__webglInit &&
+                            ((o.__webglInit = !0),
+                            o.addEventListener('dispose', J),
+                            o instanceof Jt.BufferGeometry
+                              ? ft.info.memory.geometries++
+                              : t instanceof Jt.Mesh
+                                ? pt(t, o)
+                                : t instanceof Jt.Line
+                                  ? void 0 === o.__webglVertexBuffer &&
+                                    (((i = o).__webglVertexBuffer = Mt.createBuffer()),
+                                    (i.__webglColorBuffer = Mt.createBuffer()),
+                                    (i.__webglLineDistanceBuffer = Mt.createBuffer()),
+                                    ft.info.memory.geometries++,
+                                    (i = t),
+                                    (r = (n = o).vertices.length),
+                                    (n.__vertexArray = new Float32Array(3 * r)),
+                                    (n.__colorArray = new Float32Array(3 * r)),
+                                    (n.__lineDistanceArray = new Float32Array(+r)),
+                                    (n.__webglLineCount = r),
+                                    nt(i),
+                                    (o.verticesNeedUpdate = !0),
+                                    (o.colorsNeedUpdate = !0),
+                                    (o.lineDistancesNeedUpdate = !0))
+                                  : t instanceof Jt.PointCloud &&
+                                    void 0 === o.__webglVertexBuffer &&
+                                    (((n = o).__webglVertexBuffer = Mt.createBuffer()),
+                                    (n.__webglColorBuffer = Mt.createBuffer()),
+                                    ft.info.memory.geometries++,
+                                    (r = t),
+                                    (e = (i = o).vertices.length),
+                                    (i.__vertexArray = new Float32Array(3 * e)),
+                                    (i.__colorArray = new Float32Array(3 * e)),
+                                    (i.__webglParticleCount = e),
+                                    nt(r),
+                                    (o.verticesNeedUpdate = !0),
+                                    (o.colorsNeedUpdate = !0))),
+                          void 0 === t.__webglActive)
+                        )
+                          if (((t.__webglActive = !0), t instanceof Jt.Mesh)) {
+                            if (o instanceof Jt.BufferGeometry) S(x, o, t);
+                            else if (o instanceof Jt.Geometry)
+                              for (var a = at[o.id], s = 0, l = a.length; s < l; s++) S(x, a[s], t);
+                          } else
+                            t instanceof Jt.Line || t instanceof Jt.PointCloud
+                              ? S(x, o, t)
+                              : (t instanceof Jt.ImmediateRenderObject ||
+                                  t.immediateRenderCallback) &&
+                                c.push({
+                                  id: null,
+                                  object: t,
+                                  opaque: null,
+                                  transparent: null,
+                                  z: 0,
+                                });
+                      }
+                      (this.renderBufferImmediate = function (t, e, n) {
+                        if (
+                          (M.initAttributes(),
+                          t.hasPositions &&
+                            !t.__webglVertexBuffer &&
+                            (t.__webglVertexBuffer = Mt.createBuffer()),
+                          t.hasNormals &&
+                            !t.__webglNormalBuffer &&
+                            (t.__webglNormalBuffer = Mt.createBuffer()),
+                          t.hasUvs && !t.__webglUvBuffer && (t.__webglUvBuffer = Mt.createBuffer()),
+                          t.hasColors &&
+                            !t.__webglColorBuffer &&
+                            (t.__webglColorBuffer = Mt.createBuffer()),
+                          t.hasPositions &&
+                            (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglVertexBuffer),
+                            Mt.bufferData(Mt.ARRAY_BUFFER, t.positionArray, Mt.DYNAMIC_DRAW),
+                            M.enableAttribute(e.attributes.position),
+                            Mt.vertexAttribPointer(e.attributes.position, 3, Mt.FLOAT, !1, 0, 0)),
+                          t.hasNormals)
+                        ) {
+                          if (
+                            (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglNormalBuffer),
+                            n instanceof Jt.MeshPhongMaterial == !1 && n.shading === Jt.FlatShading)
+                          )
+                            for (var r, i, o, a, s, l, u, c, A = 3 * t.count, h = 0; h < A; h += 9)
+                              (r = (c = t.normalArray)[h]),
+                                (a = c[h + 1]),
+                                (l = c[h + 2]),
+                                (i = c[h + 3]),
+                                (s = c[h + 4]),
+                                (u = c[h + 5]),
+                                (o = c[h + 6]),
+                                (a = (a + s + c[h + 7]) / 3),
+                                (s = (l + u + c[h + 8]) / 3),
+                                (c[h] = l = (r + i + o) / 3),
+                                (c[h + 1] = a),
+                                (c[h + 2] = s),
+                                (c[h + 3] = l),
+                                (c[h + 4] = a),
+                                (c[h + 5] = s),
+                                (c[h + 6] = l),
+                                (c[h + 7] = a),
+                                (c[h + 8] = s);
+                          Mt.bufferData(Mt.ARRAY_BUFFER, t.normalArray, Mt.DYNAMIC_DRAW),
+                            M.enableAttribute(e.attributes.normal),
+                            Mt.vertexAttribPointer(e.attributes.normal, 3, Mt.FLOAT, !1, 0, 0);
+                        }
+                        t.hasUvs &&
+                          n.map &&
+                          (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglUvBuffer),
+                          Mt.bufferData(Mt.ARRAY_BUFFER, t.uvArray, Mt.DYNAMIC_DRAW),
+                          M.enableAttribute(e.attributes.uv),
+                          Mt.vertexAttribPointer(e.attributes.uv, 2, Mt.FLOAT, !1, 0, 0)),
+                          t.hasColors &&
+                            n.vertexColors !== Jt.NoColors &&
+                            (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglColorBuffer),
+                            Mt.bufferData(Mt.ARRAY_BUFFER, t.colorArray, Mt.DYNAMIC_DRAW),
+                            M.enableAttribute(e.attributes.color),
+                            Mt.vertexAttribPointer(e.attributes.color, 3, Mt.FLOAT, !1, 0, 0)),
+                          M.disableUnusedAttributes(),
+                          Mt.drawArrays(Mt.TRIANGLES, 0, t.count),
+                          (t.count = 0);
+                      }),
+                        (this.renderBufferDirect = function (t, e, n, r, i, o) {
+                          if (!1 !== r.visible) {
+                            Tt(o);
+                            var a = Yt(t, e, n, r, o),
+                              s = !1,
+                              t = r.wireframe ? 1 : 0,
+                              e = 'direct_' + i.id + '_' + a.id + '_' + t;
+                            if (
+                              (e !== I && ((I = e), (s = !0)),
+                              s && M.initAttributes(),
+                              o instanceof Jt.Mesh)
+                            ) {
+                              var l = !0 === r.wireframe ? Mt.LINES : Mt.TRIANGLES;
+                              if ((p = i.attributes.index))
+                                if (
+                                  ((f =
+                                    p.array instanceof Uint32Array &&
+                                    D.get('OES_element_index_uint')
+                                      ? ((d = Mt.UNSIGNED_INT), 4)
+                                      : ((d = Mt.UNSIGNED_SHORT), 2)),
+                                  0 === (g = i.offsets).length)
+                                )
+                                  s &&
+                                    (v(r, a, i, 0),
+                                    Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)),
+                                    Mt.drawElements(l, p.array.length, d, 0),
+                                    ft.info.render.calls++,
+                                    (ft.info.render.vertices += p.array.length),
+                                    (ft.info.render.faces += p.array.length / 3);
+                                else
+                                  for (var s = !0, u = 0, c = g.length; u < c; u++) {
+                                    var A = g[u].index;
+                                    s &&
+                                      (v(r, a, i, A),
+                                      Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)),
+                                      Mt.drawElements(l, g[u].count, d, g[u].start * f),
+                                      ft.info.render.calls++,
+                                      (ft.info.render.vertices += g[u].count),
+                                      (ft.info.render.faces += g[u].count / 3);
+                                  }
+                              else {
+                                s && v(r, a, i, 0);
+                                var h = i.attributes.position;
+                                Mt.drawArrays(l, 0, h.array.length / h.itemSize),
+                                  ft.info.render.calls++,
+                                  (ft.info.render.vertices += h.array.length / h.itemSize),
+                                  (ft.info.render.faces += h.array.length / (3 * h.itemSize));
+                              }
+                            } else if (o instanceof Jt.PointCloud) {
+                              l = Mt.POINTS;
+                              if ((p = i.attributes.index))
+                                if (
+                                  ((f =
+                                    p.array instanceof Uint32Array &&
+                                    D.get('OES_element_index_uint')
+                                      ? ((d = Mt.UNSIGNED_INT), 4)
+                                      : ((d = Mt.UNSIGNED_SHORT), 2)),
+                                  0 === (g = i.offsets).length)
+                                )
+                                  s &&
+                                    (v(r, a, i, 0),
+                                    Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)),
+                                    Mt.drawElements(l, p.array.length, d, 0),
+                                    ft.info.render.calls++,
+                                    (ft.info.render.points += p.array.length);
+                                else {
+                                  1 < g.length && (s = !0);
+                                  for (u = 0, c = g.length; u < c; u++) {
+                                    A = g[u].index;
+                                    s &&
+                                      (v(r, a, i, A),
+                                      Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)),
+                                      Mt.drawElements(l, g[u].count, d, g[u].start * f),
+                                      ft.info.render.calls++,
+                                      (ft.info.render.points += g[u].count);
+                                  }
+                                }
+                              else {
+                                s && v(r, a, i, 0);
+                                h = i.attributes.position;
+                                if (0 === (g = i.offsets).length)
+                                  Mt.drawArrays(l, 0, h.array.length / 3),
+                                    ft.info.render.calls++,
+                                    (ft.info.render.points += h.array.length / 3);
+                                else
+                                  for (u = 0, c = g.length; u < c; u++)
+                                    Mt.drawArrays(l, g[u].index, g[u].count),
+                                      ft.info.render.calls++,
+                                      (ft.info.render.points += g[u].count);
+                              }
+                            } else if (o instanceof Jt.Line) {
+                              var p,
+                                d,
+                                f,
+                                l = o.mode === Jt.LineStrip ? Mt.LINE_STRIP : Mt.LINES;
+                              if ((M.setLineWidth(r.linewidth * C), (p = i.attributes.index)))
+                                if (
+                                  ((f =
+                                    p.array instanceof Uint32Array
+                                      ? ((d = Mt.UNSIGNED_INT), 4)
+                                      : ((d = Mt.UNSIGNED_SHORT), 2)),
+                                  0 === (g = i.offsets).length)
+                                )
+                                  s &&
+                                    (v(r, a, i, 0),
+                                    Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)),
+                                    Mt.drawElements(l, p.array.length, d, 0),
+                                    ft.info.render.calls++,
+                                    (ft.info.render.vertices += p.array.length);
+                                else {
+                                  1 < g.length && (s = !0);
+                                  for (u = 0, c = g.length; u < c; u++) {
+                                    A = g[u].index;
+                                    s &&
+                                      (v(r, a, i, A),
+                                      Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)),
+                                      Mt.drawElements(l, g[u].count, d, g[u].start * f),
+                                      ft.info.render.calls++,
+                                      (ft.info.render.vertices += g[u].count);
+                                  }
+                                }
+                              else {
+                                s && v(r, a, i, 0);
+                                var g,
+                                  h = i.attributes.position;
+                                if (0 === (g = i.offsets).length)
+                                  Mt.drawArrays(l, 0, h.array.length / 3),
+                                    ft.info.render.calls++,
+                                    (ft.info.render.vertices += h.array.length / 3);
+                                else
+                                  for (u = 0, c = g.length; u < c; u++)
+                                    Mt.drawArrays(l, g[u].index, g[u].count),
+                                      ft.info.render.calls++,
+                                      (ft.info.render.vertices += g[u].count);
+                              }
+                            }
+                          }
+                        }),
+                        (this.renderBuffer = function (t, e, n, r, i, o) {
+                          if (!1 !== r.visible) {
+                            Tt(o);
+                            var t = Yt(t, e, n, r, o),
+                              a = t.attributes,
+                              e = !1,
+                              n = r.wireframe ? 1 : 0,
+                              t = i.id + '_' + t.id + '_' + n;
+                            if (
+                              (t !== I && ((I = t), (e = !0)),
+                              e && M.initAttributes(),
+                              !r.morphTargets && 0 <= a.position)
+                            )
+                              e &&
+                                (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglVertexBuffer),
+                                M.enableAttribute(a.position),
+                                Mt.vertexAttribPointer(a.position, 3, Mt.FLOAT, !1, 0, 0));
+                            else if (o.morphTargetBase) {
+                              var s,
+                                l = r,
+                                u = i,
+                                c = o,
+                                A = l.program.attributes;
+                              if (
+                                (-1 !== c.morphTargetBase && 0 <= A.position
+                                  ? (Mt.bindBuffer(
+                                      Mt.ARRAY_BUFFER,
+                                      u.__webglMorphTargetsBuffers[c.morphTargetBase],
+                                    ),
+                                    M.enableAttribute(A.position),
+                                    Mt.vertexAttribPointer(A.position, 3, Mt.FLOAT, !1, 0, 0))
+                                  : 0 <= A.position &&
+                                    (Mt.bindBuffer(Mt.ARRAY_BUFFER, u.__webglVertexBuffer),
+                                    M.enableAttribute(A.position),
+                                    Mt.vertexAttribPointer(A.position, 3, Mt.FLOAT, !1, 0, 0)),
+                                c.morphTargetForcedOrder.length)
+                              )
+                                for (
+                                  var h = 0,
+                                    p = c.morphTargetForcedOrder,
+                                    d = c.morphTargetInfluences;
+                                  h < l.numSupportedMorphTargets && h < p.length;
+
+                                )
+                                  0 <= (s = A['morphTarget' + h]) &&
+                                    (Mt.bindBuffer(
+                                      Mt.ARRAY_BUFFER,
+                                      u.__webglMorphTargetsBuffers[p[h]],
+                                    ),
+                                    M.enableAttribute(s),
+                                    Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)),
+                                    0 <= (s = A['morphNormal' + h]) &&
+                                      l.morphNormals &&
+                                      (Mt.bindBuffer(
+                                        Mt.ARRAY_BUFFER,
+                                        u.__webglMorphNormalsBuffers[p[h]],
+                                      ),
+                                      M.enableAttribute(s),
+                                      Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)),
+                                    (c.__webglMorphTargetInfluences[h] = d[p[h]]),
+                                    h++;
+                              else {
+                                var f = [],
+                                  d = c.morphTargetInfluences,
+                                  n = c.geometry.morphTargets;
+                                d.length > n.length &&
+                                  (console.warn(
+                                    'THREE.WebGLRenderer: Influences array is bigger than morphTargets array.',
+                                  ),
+                                  (d.length = n.length));
+                                for (var g = 0, m = d.length; g < m; g++) {
+                                  var v = d[g];
+                                  f.push([v, g]);
+                                }
+                                f.length > l.numSupportedMorphTargets
+                                  ? (f.sort(lt), (f.length = l.numSupportedMorphTargets))
+                                  : f.length > l.numSupportedMorphNormals
+                                    ? f.sort(lt)
+                                    : 0 === f.length && f.push([0, 0]);
+                                for (var b, h = 0, y = l.numSupportedMorphTargets; h < y; h++)
+                                  f[h]
+                                    ? ((b = f[h][1]),
+                                      0 <= (s = A['morphTarget' + h]) &&
+                                        (Mt.bindBuffer(
+                                          Mt.ARRAY_BUFFER,
+                                          u.__webglMorphTargetsBuffers[b],
+                                        ),
+                                        M.enableAttribute(s),
+                                        Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)),
+                                      0 <= (s = A['morphNormal' + h]) &&
+                                        l.morphNormals &&
+                                        (Mt.bindBuffer(
+                                          Mt.ARRAY_BUFFER,
+                                          u.__webglMorphNormalsBuffers[b],
+                                        ),
+                                        M.enableAttribute(s),
+                                        Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)),
+                                      (c.__webglMorphTargetInfluences[h] = d[b]))
+                                    : (c.__webglMorphTargetInfluences[h] = 0);
+                              }
+                              null !== l.program.uniforms.morphTargetInfluences &&
+                                Mt.uniform1fv(
+                                  l.program.uniforms.morphTargetInfluences,
+                                  c.__webglMorphTargetInfluences,
+                                );
+                            }
+                            if (e) {
+                              if (i.__webglCustomAttributesList)
+                                for (
+                                  var w = 0, E = i.__webglCustomAttributesList.length;
+                                  w < E;
+                                  w++
+                                ) {
+                                  var B = i.__webglCustomAttributesList[w];
+                                  0 <= a[B.buffer.belongsToAttribute] &&
+                                    (Mt.bindBuffer(Mt.ARRAY_BUFFER, B.buffer),
+                                    M.enableAttribute(a[B.buffer.belongsToAttribute]),
+                                    Mt.vertexAttribPointer(
+                                      a[B.buffer.belongsToAttribute],
+                                      B.size,
+                                      Mt.FLOAT,
+                                      !1,
+                                      0,
+                                      0,
+                                    ));
+                                }
+                              0 <= a.color &&
+                                (0 < o.geometry.colors.length || 0 < o.geometry.faces.length
+                                  ? (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglColorBuffer),
+                                    M.enableAttribute(a.color),
+                                    Mt.vertexAttribPointer(a.color, 3, Mt.FLOAT, !1, 0, 0))
+                                  : void 0 !== r.defaultAttributeValues &&
+                                    Mt.vertexAttrib3fv(a.color, r.defaultAttributeValues.color)),
+                                0 <= a.normal &&
+                                  (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglNormalBuffer),
+                                  M.enableAttribute(a.normal),
+                                  Mt.vertexAttribPointer(a.normal, 3, Mt.FLOAT, !1, 0, 0)),
+                                0 <= a.tangent &&
+                                  (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglTangentBuffer),
+                                  M.enableAttribute(a.tangent),
+                                  Mt.vertexAttribPointer(a.tangent, 4, Mt.FLOAT, !1, 0, 0)),
+                                0 <= a.uv &&
+                                  (o.geometry.faceVertexUvs[0]
+                                    ? (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglUVBuffer),
+                                      M.enableAttribute(a.uv),
+                                      Mt.vertexAttribPointer(a.uv, 2, Mt.FLOAT, !1, 0, 0))
+                                    : void 0 !== r.defaultAttributeValues &&
+                                      Mt.vertexAttrib2fv(a.uv, r.defaultAttributeValues.uv)),
+                                0 <= a.uv2 &&
+                                  (o.geometry.faceVertexUvs[1]
+                                    ? (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglUV2Buffer),
+                                      M.enableAttribute(a.uv2),
+                                      Mt.vertexAttribPointer(a.uv2, 2, Mt.FLOAT, !1, 0, 0))
+                                    : void 0 !== r.defaultAttributeValues &&
+                                      Mt.vertexAttrib2fv(a.uv2, r.defaultAttributeValues.uv2)),
+                                r.skinning &&
+                                  0 <= a.skinIndex &&
+                                  0 <= a.skinWeight &&
+                                  (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglSkinIndicesBuffer),
+                                  M.enableAttribute(a.skinIndex),
+                                  Mt.vertexAttribPointer(a.skinIndex, 4, Mt.FLOAT, !1, 0, 0),
+                                  Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglSkinWeightsBuffer),
+                                  M.enableAttribute(a.skinWeight),
+                                  Mt.vertexAttribPointer(a.skinWeight, 4, Mt.FLOAT, !1, 0, 0)),
+                                0 <= a.lineDistance &&
+                                  (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglLineDistanceBuffer),
+                                  M.enableAttribute(a.lineDistance),
+                                  Mt.vertexAttribPointer(a.lineDistance, 1, Mt.FLOAT, !1, 0, 0));
+                            }
+                            M.disableUnusedAttributes(),
+                              o instanceof Jt.Mesh
+                                ? ((t =
+                                    i.__typeArray === Uint32Array
+                                      ? Mt.UNSIGNED_INT
+                                      : Mt.UNSIGNED_SHORT),
+                                  r.wireframe
+                                    ? (M.setLineWidth(r.wireframeLinewidth * C),
+                                      e &&
+                                        Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, i.__webglLineBuffer),
+                                      Mt.drawElements(Mt.LINES, i.__webglLineCount, t, 0))
+                                    : (e &&
+                                        Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, i.__webglFaceBuffer),
+                                      Mt.drawElements(Mt.TRIANGLES, i.__webglFaceCount, t, 0)),
+                                  ft.info.render.calls++,
+                                  (ft.info.render.vertices += i.__webglFaceCount),
+                                  (ft.info.render.faces += i.__webglFaceCount / 3))
+                                : o instanceof Jt.Line
+                                  ? ((n = o.mode === Jt.LineStrip ? Mt.LINE_STRIP : Mt.LINES),
+                                    M.setLineWidth(r.linewidth * C),
+                                    Mt.drawArrays(n, 0, i.__webglLineCount),
+                                    ft.info.render.calls++)
+                                  : o instanceof Jt.PointCloud &&
+                                    (Mt.drawArrays(Mt.POINTS, 0, i.__webglParticleCount),
+                                    ft.info.render.calls++,
+                                    (ft.info.render.points += i.__webglParticleCount));
+                          }
+                        }),
+                        (this.render = function (t, e, n, r) {
+                          if (e instanceof Jt.Camera == !1)
+                            Jt.error(
+                              'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.',
+                            );
+                          else {
+                            var i = t.fog;
+                            (I = ''),
+                              (gt = -1),
+                              (yt = !(mt = null)) === t.autoUpdate && t.updateMatrixWorld(),
+                              void 0 === e.parent && e.updateMatrixWorld(),
+                              t.traverse(function (t) {
+                                t instanceof Jt.SkinnedMesh && t.skeleton.update();
+                              }),
+                              e.matrixWorldInverse.getInverse(e.matrixWorld),
+                              U.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse),
+                              R.setFromMatrix(U),
+                              (u.length = 0),
+                              (A.length = 0),
+                              (h.length = 0),
+                              (F.length = 0),
+                              (Q.length = 0),
+                              !(function t(e) {
+                                if (!1 === e.visible) return;
+                                if (!(e instanceof Jt.Scene || e instanceof Jt.Group))
+                                  if ((At(e), e instanceof Jt.Light)) u.push(e);
+                                  else if (e instanceof Jt.Sprite) F.push(e);
+                                  else if (e instanceof Jt.LensFlare) Q.push(e);
+                                  else {
+                                    var n = x[e.id];
+                                    if (
+                                      n &&
+                                      (!1 === e.frustumCulled || !0 === R.intersectsObject(e))
+                                    )
+                                      for (var r = 0, i = n.length; r < i; r++) {
+                                        var o = n[r];
+                                        ct(o),
+                                          (o.render = !0) === ft.sortObjects &&
+                                            (vt.setFromMatrixPosition(e.matrixWorld),
+                                            vt.applyProjection(U),
+                                            (o.z = vt.z));
+                                      }
+                                  }
+                                for (r = 0, i = e.children.length; r < i; r++) t(e.children[r]);
+                              })(t),
+                              !0 === ft.sortObjects && (A.sort(rt), h.sort(it)),
+                              j.render(t, e),
+                              (ft.info.render.calls = 0),
+                              (ft.info.render.vertices = 0),
+                              (ft.info.render.faces = 0),
+                              (ft.info.render.points = 0),
+                              this.setRenderTarget(n),
+                              (this.autoClear || r) &&
+                                this.clear(
+                                  this.autoClearColor,
+                                  this.autoClearDepth,
+                                  this.autoClearStencil,
+                                );
+                            for (var o = 0, a = c.length; o < a; o++) {
+                              var s = c[o],
+                                l = s.object;
+                              l.visible &&
+                                (Ht(l, e),
+                                (l = void 0),
+                                (l = (s = s).object.material).transparent
+                                  ? ((s.transparent = l), (s.opaque = null))
+                                  : ((s.opaque = l), (s.transparent = null)));
+                            }
+                            t.overrideMaterial
+                              ? (Lt((r = t.overrideMaterial)),
+                                b(A, e, u, i, r),
+                                b(h, e, u, i, r),
+                                ut(c, '', e, u, i, r))
+                              : (M.setBlending(Jt.NoBlending),
+                                b(A, e, u, i, null),
+                                ut(c, 'opaque', e, u, i, null),
+                                b(h, e, u, i, null),
+                                ut(c, 'transparent', e, u, i, null)),
+                              V.render(t, e),
+                              q.render(t, e, _, T),
+                              n &&
+                                n.generateMipmaps &&
+                                n.minFilter !== Jt.NearestFilter &&
+                                n.minFilter !== Jt.LinearFilter &&
+                                ((r = n) instanceof Jt.WebGLRenderTargetCube
+                                  ? (Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, r.__webglTexture),
+                                    Mt.generateMipmap(Mt.TEXTURE_CUBE_MAP),
+                                    Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, null))
+                                  : (Mt.bindTexture(Mt.TEXTURE_2D, r.__webglTexture),
+                                    Mt.generateMipmap(Mt.TEXTURE_2D),
+                                    Mt.bindTexture(Mt.TEXTURE_2D, null))),
+                              M.setDepthTest(!0),
+                              M.setDepthWrite(!0),
+                              M.setColorWrite(!0);
+                          }
+                        }),
+                        (this.renderImmediateObject = function (t, e, n, r, i) {
+                          var o = Yt(t, e, n, r, i);
+                          (I = ''),
+                            ft.setMaterialFaces(r),
+                            i.immediateRenderCallback
+                              ? i.immediateRenderCallback(o, Mt, R)
+                              : i.render(function (t) {
+                                  ft.renderBufferImmediate(t, o, r);
+                                });
+                        });
+                      var at = {},
+                        ht = 0;
+                      function pt(t, e) {
+                        for (
+                          var n = t.material,
+                            r = !1,
+                            i =
+                              ((void 0 !== at[e.id] && !0 !== e.groupsNeedUpdate) ||
+                                (delete x[t.id],
+                                (at[e.id] = (function (t, e) {
+                                  for (
+                                    var n,
+                                      r,
+                                      i = D.get('OES_element_index_uint') ? 4294967296 : 65535,
+                                      o = {},
+                                      a = t.morphTargets.length,
+                                      s = t.morphNormals.length,
+                                      l = {},
+                                      u = [],
+                                      c = 0,
+                                      A = t.faces.length;
+                                    c < A;
+                                    c++
+                                  ) {
+                                    var h = t.faces[c],
+                                      h = e ? h.materialIndex : 0;
+                                    (h in o) || (o[h] = { hash: h, counter: 0 }),
+                                      ((n = o[h].hash + '_' + o[h].counter) in l) ||
+                                        ((r = {
+                                          id: ht++,
+                                          faces3: [],
+                                          materialIndex: h,
+                                          vertices: 0,
+                                          numMorphTargets: a,
+                                          numMorphNormals: s,
+                                        }),
+                                        (l[n] = r),
+                                        u.push(r)),
+                                      l[n].vertices + 3 > i &&
+                                        ((o[h].counter += 1),
+                                        ((n = o[h].hash + '_' + o[h].counter) in l) ||
+                                          ((r = {
+                                            id: ht++,
+                                            faces3: [],
+                                            materialIndex: h,
+                                            vertices: 0,
+                                            numMorphTargets: a,
+                                            numMorphNormals: s,
+                                          }),
+                                          (l[n] = r),
+                                          u.push(r))),
+                                      l[n].faces3.push(c),
+                                      (l[n].vertices += 3);
+                                  }
+                                  return u;
+                                })(e, n instanceof Jt.MeshFaceMaterial)),
+                                (e.groupsNeedUpdate = !1)),
+                              at[e.id]),
+                            o = 0,
+                            a = i.length;
+                          o < a;
+                          o++
+                        ) {
+                          var s = i[o];
+                          if (void 0 === s.__webglVertexBuffer) {
+                            h = c = u = h = l = void 0;
+                            var l = s;
+                            if (
+                              ((l.__webglVertexBuffer = Mt.createBuffer()),
+                              (l.__webglNormalBuffer = Mt.createBuffer()),
+                              (l.__webglTangentBuffer = Mt.createBuffer()),
+                              (l.__webglColorBuffer = Mt.createBuffer()),
+                              (l.__webglUVBuffer = Mt.createBuffer()),
+                              (l.__webglUV2Buffer = Mt.createBuffer()),
+                              (l.__webglSkinIndicesBuffer = Mt.createBuffer()),
+                              (l.__webglSkinWeightsBuffer = Mt.createBuffer()),
+                              (l.__webglFaceBuffer = Mt.createBuffer()),
+                              (l.__webglLineBuffer = Mt.createBuffer()),
+                              (h = l.numMorphTargets))
+                            ) {
+                              l.__webglMorphTargetsBuffers = [];
+                              for (var u = 0, c = h; u < c; u++)
+                                l.__webglMorphTargetsBuffers.push(Mt.createBuffer());
+                            }
+                            if ((h = l.numMorphNormals)) {
+                              l.__webglMorphNormalsBuffers = [];
+                              for (u = 0, c = h; u < c; u++)
+                                l.__webglMorphNormalsBuffers.push(Mt.createBuffer());
+                            }
+                            ft.info.memory.geometries++,
+                              (E =
+                                w =
+                                C =
+                                B =
+                                y =
+                                p =
+                                b =
+                                v =
+                                h =
+                                p =
+                                m =
+                                g =
+                                f =
+                                d =
+                                g =
+                                p =
+                                h =
+                                A =
+                                  void 0);
+                            var A = s,
+                              h = t,
+                              p = h.geometry,
+                              d = 3 * (g = A.faces3).length,
+                              f = +g.length,
+                              g = 3 * g.length,
+                              m = ot(h, A),
+                              p =
+                                ((A.__vertexArray = new Float32Array(3 * d)),
+                                (A.__normalArray = new Float32Array(3 * d)),
+                                (A.__colorArray = new Float32Array(3 * d)),
+                                (A.__uvArray = new Float32Array(2 * d)),
+                                1 < p.faceVertexUvs.length &&
+                                  (A.__uv2Array = new Float32Array(2 * d)),
+                                p.hasTangents && (A.__tangentArray = new Float32Array(4 * d)),
+                                h.geometry.skinWeights.length &&
+                                  h.geometry.skinIndices.length &&
+                                  ((A.__skinIndexArray = new Float32Array(4 * d)),
+                                  (A.__skinWeightArray = new Float32Array(4 * d))),
+                                null !== D.get('OES_element_index_uint') && 21845 < f
+                                  ? Uint32Array
+                                  : Uint16Array);
+                            if (
+                              ((A.__typeArray = p),
+                              (A.__faceArray = new p(3 * f)),
+                              (A.__lineArray = new p(2 * g)),
+                              (h = A.numMorphTargets))
+                            ) {
+                              A.__morphTargetsArrays = [];
+                              for (var v = 0, b = h; v < b; v++)
+                                A.__morphTargetsArrays.push(new Float32Array(3 * d));
+                            }
+                            if ((p = A.numMorphNormals)) {
+                              A.__morphNormalsArrays = [];
+                              for (v = 0, b = p; v < b; v++)
+                                A.__morphNormalsArrays.push(new Float32Array(3 * d));
+                            }
+                            if (
+                              ((A.__webglFaceCount = 3 * f),
+                              (A.__webglLineCount = 2 * g),
+                              m.attributes)
+                            )
+                              for (var y in (void 0 === A.__webglCustomAttributesList &&
+                                (A.__webglCustomAttributesList = []),
+                              m.attributes)) {
+                                var w,
+                                  E,
+                                  B = m.attributes[y],
+                                  C = {};
+                                for (w in B) C[w] = B[w];
+                                (C.__webglInitialized && !C.createUniqueBuffers) ||
+                                  ((C.__webglInitialized = !0),
+                                  (E = 1),
+                                  'v2' === C.type
+                                    ? (E = 2)
+                                    : 'v3' === C.type
+                                      ? (E = 3)
+                                      : 'v4' === C.type
+                                        ? (E = 4)
+                                        : 'c' === C.type && (E = 3),
+                                  (C.size = E),
+                                  (C.array = new Float32Array(d * E)),
+                                  (C.buffer = Mt.createBuffer()),
+                                  (C.buffer.belongsToAttribute = y),
+                                  (B.needsUpdate = !0),
+                                  (C.__original = B)),
+                                  A.__webglCustomAttributesList.push(C);
+                              }
+                            (A.__inittedArrays = !0),
+                              (e.verticesNeedUpdate = !0),
+                              (e.morphTargetsNeedUpdate = !0),
+                              (e.elementsNeedUpdate = !0),
+                              (e.uvsNeedUpdate = !0),
+                              (e.normalsNeedUpdate = !0),
+                              (e.tangentsNeedUpdate = !0),
+                              (r = e.colorsNeedUpdate = !0);
+                          } else r = !1;
+                          (!r && void 0 !== t.__webglActive) || S(x, s, t);
+                        }
+                        t.__webglActive = !0;
+                      }
+                      function S(t, e, n) {
+                        var r = n.id;
+                        (t[r] = t[r] || []),
+                          t[r].push({ id: r, buffer: e, object: n, material: null, z: 0 });
+                      }
+                      function Tt(t) {
+                        var e = t.geometry;
+                        if (e instanceof Jt.BufferGeometry)
+                          for (
+                            var U = e.attributes, N = e.attributesKeys, n = 0, P = N.length;
+                            n < P;
+                            n++
+                          ) {
+                            var r = N[n],
+                              i = U[r],
+                              r = 'index' === r ? Mt.ELEMENT_ARRAY_BUFFER : Mt.ARRAY_BUFFER;
+                            void 0 === i.buffer
+                              ? ((i.buffer = Mt.createBuffer()),
+                                Mt.bindBuffer(r, i.buffer),
+                                Mt.bufferData(
+                                  r,
+                                  i.array,
+                                  i instanceof Jt.DynamicBufferAttribute
+                                    ? Mt.DYNAMIC_DRAW
+                                    : Mt.STATIC_DRAW,
+                                ),
+                                (i.needsUpdate = !1))
+                              : !0 === i.needsUpdate &&
+                                (Mt.bindBuffer(r, i.buffer),
+                                void 0 === i.updateRange || -1 === i.updateRange.count
+                                  ? Mt.bufferSubData(r, 0, i.array)
+                                  : 0 === i.updateRange.count
+                                    ? console.error(
+                                        'THREE.WebGLRenderer.updateObject: using updateRange for THREE.DynamicBufferAttribute and marked as needsUpdate but count is 0, ensure you are using set methods or updating manually.',
+                                      )
+                                    : (Mt.bufferSubData(
+                                        r,
+                                        i.updateRange.offset * i.array.BYTES_PER_ELEMENT,
+                                        i.array.subarray(
+                                          i.updateRange.offset,
+                                          i.updateRange.offset + i.updateRange.count,
+                                        ),
+                                      ),
+                                      (i.updateRange.count = 0)),
+                                (i.needsUpdate = !1));
+                          }
+                        else if (t instanceof Jt.Mesh) {
+                          !0 === e.groupsNeedUpdate && pt(t, e);
+                          for (var L = at[e.id], n = 0, Y = L.length; n < Y; n++) {
+                            var O = L[n],
+                              o = (B = ot(t, O)).attributes && Rt(B);
+                            (e.verticesNeedUpdate ||
+                              e.morphTargetsNeedUpdate ||
+                              e.elementsNeedUpdate ||
+                              e.uvsNeedUpdate ||
+                              e.normalsNeedUpdate ||
+                              e.colorsNeedUpdate ||
+                              e.tangentsNeedUpdate ||
+                              o) &&
+                              st(O, t, Mt.DYNAMIC_DRAW, !e.dynamic, B);
+                          }
+                          (e.verticesNeedUpdate = !1),
+                            (e.morphTargetsNeedUpdate = !1),
+                            (e.elementsNeedUpdate = !1),
+                            (e.uvsNeedUpdate = !1),
+                            (e.normalsNeedUpdate = !1),
+                            (e.colorsNeedUpdate = !1),
+                            (e.tangentsNeedUpdate = !1),
+                            B.attributes && Ut(B);
+                        } else if (t instanceof Jt.Line) {
+                          o = (B = ot(t, e)).attributes && Rt(B);
+                          if (
+                            e.verticesNeedUpdate ||
+                            e.colorsNeedUpdate ||
+                            e.lineDistancesNeedUpdate ||
+                            o
+                          ) {
+                            var a,
+                              s,
+                              l,
+                              u,
+                              c,
+                              A,
+                              h,
+                              G,
+                              p,
+                              d,
+                              f,
+                              g,
+                              m = e,
+                              v = Mt.DYNAMIC_DRAW,
+                              z = m.vertices,
+                              H = m.colors,
+                              j = m.lineDistances,
+                              V = z.length,
+                              q = H.length,
+                              W = j.length,
+                              b = m.__vertexArray,
+                              y = m.__colorArray,
+                              J = m.__lineDistanceArray,
+                              w = m.verticesNeedUpdate,
+                              K = m.colorsNeedUpdate,
+                              Z = m.lineDistancesNeedUpdate,
+                              E = m.__webglCustomAttributesList;
+                            if (w) {
+                              for (a = 0; a < V; a++)
+                                (u = z[a]),
+                                  (b[(c = 3 * a)] = u.x),
+                                  (b[c + 1] = u.y),
+                                  (b[c + 2] = u.z);
+                              Mt.bindBuffer(Mt.ARRAY_BUFFER, m.__webglVertexBuffer),
+                                Mt.bufferData(Mt.ARRAY_BUFFER, b, v);
+                            }
+                            if (K) {
+                              for (s = 0; s < q; s++)
+                                (A = H[s]),
+                                  (y[(c = 3 * s)] = A.r),
+                                  (y[c + 1] = A.g),
+                                  (y[c + 2] = A.b);
+                              Mt.bindBuffer(Mt.ARRAY_BUFFER, m.__webglColorBuffer),
+                                Mt.bufferData(Mt.ARRAY_BUFFER, y, v);
+                            }
+                            if (Z) {
+                              for (l = 0; l < W; l++) J[l] = j[l];
+                              Mt.bindBuffer(Mt.ARRAY_BUFFER, m.__webglLineDistanceBuffer),
+                                Mt.bufferData(Mt.ARRAY_BUFFER, J, v);
+                            }
+                            if (E)
+                              for (h = 0, G = E.length; h < G; h++)
+                                if (
+                                  (g = E[h]).needsUpdate &&
+                                  (void 0 === g.boundTo || 'vertices' === g.boundTo)
+                                ) {
+                                  if (((c = 0), (d = g.value.length), 1 === g.size))
+                                    for (p = 0; p < d; p++) g.array[p] = g.value[p];
+                                  else if (2 === g.size)
+                                    for (p = 0; p < d; p++)
+                                      (f = g.value[p]),
+                                        (g.array[c] = f.x),
+                                        (g.array[c + 1] = f.y),
+                                        (c += 2);
+                                  else if (3 === g.size)
+                                    if ('c' === g.type)
+                                      for (p = 0; p < d; p++)
+                                        (f = g.value[p]),
+                                          (g.array[c] = f.r),
+                                          (g.array[c + 1] = f.g),
+                                          (g.array[c + 2] = f.b),
+                                          (c += 3);
+                                    else
+                                      for (p = 0; p < d; p++)
+                                        (f = g.value[p]),
+                                          (g.array[c] = f.x),
+                                          (g.array[c + 1] = f.y),
+                                          (g.array[c + 2] = f.z),
+                                          (c += 3);
+                                  else if (4 === g.size)
+                                    for (p = 0; p < d; p++)
+                                      (f = g.value[p]),
+                                        (g.array[c] = f.x),
+                                        (g.array[c + 1] = f.y),
+                                        (g.array[c + 2] = f.z),
+                                        (g.array[c + 3] = f.w),
+                                        (c += 4);
+                                  Mt.bindBuffer(Mt.ARRAY_BUFFER, g.buffer),
+                                    Mt.bufferData(Mt.ARRAY_BUFFER, g.array, v),
+                                    (g.needsUpdate = !1);
+                                }
+                          }
+                          (e.verticesNeedUpdate = !1),
+                            (e.colorsNeedUpdate = !1),
+                            (e.lineDistancesNeedUpdate = !1),
+                            B.attributes && Ut(B);
+                        } else if (t instanceof Jt.PointCloud) {
+                          var B,
+                            o = (B = ot(t, e)).attributes && Rt(B);
+                          if (e.verticesNeedUpdate || e.colorsNeedUpdate || o) {
+                            var C,
+                              x,
+                              I,
+                              M,
+                              D,
+                              S,
+                              X,
+                              k,
+                              F,
+                              Q,
+                              _,
+                              w = e,
+                              $ = Mt.DYNAMIC_DRAW,
+                              tt = w.vertices,
+                              et = tt.length,
+                              nt = w.colors,
+                              rt = nt.length,
+                              T = w.__vertexArray,
+                              R = w.__colorArray,
+                              K = w.verticesNeedUpdate,
+                              Z = w.colorsNeedUpdate,
+                              it = w.__webglCustomAttributesList;
+                            if (K) {
+                              for (C = 0; C < et; C++)
+                                (I = tt[C]),
+                                  (T[(M = 3 * C)] = I.x),
+                                  (T[M + 1] = I.y),
+                                  (T[M + 2] = I.z);
+                              Mt.bindBuffer(Mt.ARRAY_BUFFER, w.__webglVertexBuffer),
+                                Mt.bufferData(Mt.ARRAY_BUFFER, T, $);
+                            }
+                            if (Z) {
+                              for (x = 0; x < rt; x++)
+                                (D = nt[x]),
+                                  (R[(M = 3 * x)] = D.r),
+                                  (R[M + 1] = D.g),
+                                  (R[M + 2] = D.b);
+                              Mt.bindBuffer(Mt.ARRAY_BUFFER, w.__webglColorBuffer),
+                                Mt.bufferData(Mt.ARRAY_BUFFER, R, $);
+                            }
+                            if (it)
+                              for (S = 0, X = it.length; S < X; S++) {
+                                if (
+                                  (_ = it[S]).needsUpdate &&
+                                  (void 0 === _.boundTo || 'vertices' === _.boundTo)
+                                )
+                                  if (((F = _.value.length), (M = 0), 1 === _.size))
+                                    for (k = 0; k < F; k++) _.array[k] = _.value[k];
+                                  else if (2 === _.size)
+                                    for (k = 0; k < F; k++)
+                                      (Q = _.value[k]),
+                                        (_.array[M] = Q.x),
+                                        (_.array[M + 1] = Q.y),
+                                        (M += 2);
+                                  else if (3 === _.size)
+                                    if ('c' === _.type)
+                                      for (k = 0; k < F; k++)
+                                        (Q = _.value[k]),
+                                          (_.array[M] = Q.r),
+                                          (_.array[M + 1] = Q.g),
+                                          (_.array[M + 2] = Q.b),
+                                          (M += 3);
+                                    else
+                                      for (k = 0; k < F; k++)
+                                        (Q = _.value[k]),
+                                          (_.array[M] = Q.x),
+                                          (_.array[M + 1] = Q.y),
+                                          (_.array[M + 2] = Q.z),
+                                          (M += 3);
+                                  else if (4 === _.size)
+                                    for (k = 0; k < F; k++)
+                                      (Q = _.value[k]),
+                                        (_.array[M] = Q.x),
+                                        (_.array[M + 1] = Q.y),
+                                        (_.array[M + 2] = Q.z),
+                                        (_.array[M + 3] = Q.w),
+                                        (M += 4);
+                                Mt.bindBuffer(Mt.ARRAY_BUFFER, _.buffer),
+                                  Mt.bufferData(Mt.ARRAY_BUFFER, _.array, $),
+                                  (_.needsUpdate = !1);
+                              }
+                          }
+                          (e.verticesNeedUpdate = !1),
+                            (e.colorsNeedUpdate = !1),
+                            B.attributes && Ut(B);
+                        }
+                      }
+                      function Rt(t) {
+                        for (var e in t.attributes) if (t.attributes[e].needsUpdate) return !0;
+                        return !1;
+                      }
+                      function Ut(t) {
+                        for (var e in t.attributes) t.attributes[e].needsUpdate = !1;
+                      }
+                      var Nt = {
+                        MeshDepthMaterial: 'depth',
+                        MeshNormalMaterial: 'normal',
+                        MeshBasicMaterial: 'basic',
+                        MeshLambertMaterial: 'lambert',
+                        MeshPhongMaterial: 'phong',
+                        LineBasicMaterial: 'basic',
+                        LineDashedMaterial: 'dashed',
+                        PointCloudMaterial: 'particle_basic',
+                      };
+                      function Pt(t, e, n, r) {
+                        t.addEventListener('dispose', Z);
+                        var i = Nt[t.type],
+                          o =
+                            (i
+                              ? ((o = Jt.ShaderLib[i]),
+                                (t.__webglShader = {
+                                  uniforms: Jt.UniformsUtils.clone(o.uniforms),
+                                  vertexShader: o.vertexShader,
+                                  fragmentShader: o.fragmentShader,
+                                }))
+                              : (t.__webglShader = {
+                                  uniforms: t.uniforms,
+                                  vertexShader: t.vertexShader,
+                                  fragmentShader: t.fragmentShader,
+                                }),
+                            (function (t) {
+                              for (
+                                var e = 0, n = 0, r = 0, i = 0, o = 0, a = t.length;
+                                o < a;
+                                o++
+                              ) {
+                                var s = t[o];
+                                s.onlyShadow ||
+                                  !1 === s.visible ||
+                                  (s instanceof Jt.DirectionalLight && e++,
+                                  s instanceof Jt.PointLight && n++,
+                                  s instanceof Jt.SpotLight && r++,
+                                  s instanceof Jt.HemisphereLight && i++);
+                              }
+                              return { directional: e, point: n, spot: r, hemi: i };
+                            })(e)),
+                          e = (function (t) {
+                            for (var e = 0, n = 0, r = t.length; n < r; n++) {
+                              var i = t[n];
+                              i.castShadow &&
+                                (i instanceof Jt.SpotLight && e++,
+                                i instanceof Jt.DirectionalLight && !i.shadowCascade && e++);
+                            }
+                            return e;
+                          })(e),
+                          a = (function (t) {
+                            {
+                              var e;
+                              return kt && t && t.skeleton && t.skeleton.useVertexTexture
+                                ? 1024
+                                : ((e = Mt.getParameter(Mt.MAX_VERTEX_UNIFORM_VECTORS)),
+                                  (e = Math.floor((e - 20) / 4)),
+                                  void 0 !== t &&
+                                    t instanceof Jt.SkinnedMesh &&
+                                    (e = Math.min(t.skeleton.bones.length, e)) <
+                                      t.skeleton.bones.length &&
+                                    Jt.warn(
+                                      'WebGLRenderer: too many bones - ' +
+                                        t.skeleton.bones.length +
+                                        ', this GPU supports just ' +
+                                        e +
+                                        ' (try OpenGL instead of ANGLE)',
+                                    ),
+                                  e);
+                            }
+                          })(r),
+                          s = {
+                            precision: y,
+                            supportsVertexTextures: H,
+                            map: !!t.map,
+                            envMap: !!t.envMap,
+                            envMapMode: t.envMap && t.envMap.mapping,
+                            lightMap: !!t.lightMap,
+                            bumpMap: !!t.bumpMap,
+                            normalMap: !!t.normalMap,
+                            specularMap: !!t.specularMap,
+                            alphaMap: !!t.alphaMap,
+                            combine: t.combine,
+                            vertexColors: t.vertexColors,
+                            fog: n,
+                            useFog: t.fog,
+                            fogExp: n instanceof Jt.FogExp2,
+                            flatShading: t.shading === Jt.FlatShading,
+                            sizeAttenuation: t.sizeAttenuation,
+                            logarithmicDepthBuffer: Ct,
+                            skinning: t.skinning,
+                            maxBones: a,
+                            useVertexTexture: kt && r && r.skeleton && r.skeleton.useVertexTexture,
+                            morphTargets: t.morphTargets,
+                            morphNormals: t.morphNormals,
+                            maxMorphTargets: ft.maxMorphTargets,
+                            maxMorphNormals: ft.maxMorphNormals,
+                            maxDirLights: o.directional,
+                            maxPointLights: o.point,
+                            maxSpotLights: o.spot,
+                            maxHemiLights: o.hemi,
+                            maxShadows: e,
+                            shadowMapEnabled: ft.shadowMapEnabled && r.receiveShadow && 0 < e,
+                            shadowMapType: ft.shadowMapType,
+                            shadowMapDebug: ft.shadowMapDebug,
+                            shadowMapCascade: ft.shadowMapCascade,
+                            alphaTest: t.alphaTest,
+                            metal: t.metal,
+                            wrapAround: t.wrapAround,
+                            doubleSided: t.side === Jt.DoubleSide,
+                            flipSided: t.side === Jt.BackSide,
+                          },
+                          l = [];
+                        if (
+                          (i ? l.push(i) : (l.push(t.fragmentShader), l.push(t.vertexShader)),
+                          void 0 !== t.defines)
+                        )
+                          for (var u in t.defines) l.push(u), l.push(t.defines[u]);
+                        for (u in s) l.push(u), l.push(s[u]);
+                        for (var c, A = l.join(), h = 0, p = w.length; h < p; h++) {
+                          var d = w[h];
+                          if (d.code === A) {
+                            (c = d).usedTimes++;
+                            break;
+                          }
+                        }
+                        void 0 === c &&
+                          ((c = new Jt.WebGLProgram(ft, A, t, s)),
+                          w.push(c),
+                          (ft.info.memory.programs = w.length));
+                        var f,
+                          g = (t.program = c).attributes;
+                        if (t.morphTargets)
+                          for (
+                            var m = 'morphTarget', v = (t.numSupportedMorphTargets = 0);
+                            v < ft.maxMorphTargets;
+                            v++
+                          )
+                            0 <= g[m + v] && t.numSupportedMorphTargets++;
+                        if (t.morphNormals)
+                          for (
+                            m = 'morphNormal', v = t.numSupportedMorphNormals = 0;
+                            v < ft.maxMorphNormals;
+                            v++
+                          )
+                            0 <= g[m + v] && t.numSupportedMorphNormals++;
+                        for (f in ((t.uniformsList = []), t.__webglShader.uniforms)) {
+                          var b = t.program.uniforms[f];
+                          b && t.uniformsList.push([t.__webglShader.uniforms[f], b]);
+                        }
+                      }
+                      function Lt(t) {
+                        !0 === t.transparent
+                          ? M.setBlending(
+                              t.blending,
+                              t.blendEquation,
+                              t.blendSrc,
+                              t.blendDst,
+                              t.blendEquationAlpha,
+                              t.blendSrcAlpha,
+                              t.blendDstAlpha,
+                            )
+                          : M.setBlending(Jt.NoBlending),
+                          M.setDepthTest(t.depthTest),
+                          M.setDepthWrite(t.depthWrite),
+                          M.setColorWrite(t.colorWrite),
+                          M.setPolygonOffset(
+                            t.polygonOffset,
+                            t.polygonOffsetFactor,
+                            t.polygonOffsetUnits,
+                          );
+                      }
+                      function Yt(t, U, e, n, r) {
+                        (It = 0),
+                          n.needsUpdate &&
+                            (n.program && _t(n), Pt(n, U, e, r), (n.needsUpdate = !1)),
+                          n.morphTargets &&
+                            !r.__webglMorphTargetInfluences &&
+                            (r.__webglMorphTargetInfluences = new Float32Array(ft.maxMorphTargets));
+                        var i,
+                          o = !1,
+                          a = !1,
+                          s = !1,
+                          l = n.program,
+                          u = l.uniforms,
+                          c = n.__webglShader.uniforms;
+                        if (
+                          (l.id !== xt && (Mt.useProgram(l.program), (xt = l.id), (s = a = o = !0)),
+                          n.id !== gt && (-1 === gt && (s = !0), (gt = n.id), (a = !0)),
+                          (!o && t === mt) ||
+                            (Mt.uniformMatrix4fv(
+                              u.projectionMatrix,
+                              !1,
+                              t.projectionMatrix.elements,
+                            ),
+                            Ct &&
+                              Mt.uniform1f(u.logDepthBufFC, 2 / (Math.log(t.far + 1) / Math.LN2)),
+                            t !== mt && (mt = t),
+                            (n instanceof Jt.ShaderMaterial ||
+                              n instanceof Jt.MeshPhongMaterial ||
+                              n.envMap) &&
+                              null !== u.cameraPosition &&
+                              (vt.setFromMatrixPosition(t.matrixWorld),
+                              Mt.uniform3f(u.cameraPosition, vt.x, vt.y, vt.z)),
+                            (n instanceof Jt.MeshPhongMaterial ||
+                              n instanceof Jt.MeshLambertMaterial ||
+                              n instanceof Jt.MeshBasicMaterial ||
+                              n instanceof Jt.ShaderMaterial ||
+                              n.skinning) &&
+                              null !== u.viewMatrix &&
+                              Mt.uniformMatrix4fv(u.viewMatrix, !1, t.matrixWorldInverse.elements)),
+                          n.skinning &&
+                            (r.bindMatrix &&
+                              null !== u.bindMatrix &&
+                              Mt.uniformMatrix4fv(u.bindMatrix, !1, r.bindMatrix.elements),
+                            r.bindMatrixInverse &&
+                              null !== u.bindMatrixInverse &&
+                              Mt.uniformMatrix4fv(
+                                u.bindMatrixInverse,
+                                !1,
+                                r.bindMatrixInverse.elements,
+                              ),
+                            kt && r.skeleton && r.skeleton.useVertexTexture
+                              ? (null !== u.boneTexture &&
+                                  ((o = zt()),
+                                  Mt.uniform1i(u.boneTexture, o),
+                                  ft.setTexture(r.skeleton.boneTexture, o)),
+                                null !== u.boneTextureWidth &&
+                                  Mt.uniform1i(u.boneTextureWidth, r.skeleton.boneTextureWidth),
+                                null !== u.boneTextureHeight &&
+                                  Mt.uniform1i(u.boneTextureHeight, r.skeleton.boneTextureHeight))
+                              : r.skeleton &&
+                                r.skeleton.boneMatrices &&
+                                null !== u.boneGlobalMatrices &&
+                                Mt.uniformMatrix4fv(
+                                  u.boneGlobalMatrices,
+                                  !1,
+                                  r.skeleton.boneMatrices,
+                                )),
+                          a)
+                        ) {
+                          if (
+                            (e &&
+                              n.fog &&
+                              ((o = e),
+                              ((a = c).fogColor.value = o.color),
+                              o instanceof Jt.Fog
+                                ? ((a.fogNear.value = o.near), (a.fogFar.value = o.far))
+                                : o instanceof Jt.FogExp2 && (a.fogDensity.value = o.density)),
+                            n instanceof Jt.MeshPhongMaterial ||
+                              n instanceof Jt.MeshLambertMaterial ||
+                              n.lights)
+                          ) {
+                            if (yt) {
+                              var A,
+                                h,
+                                p,
+                                d,
+                                f,
+                                g,
+                                s = !0,
+                                N = U,
+                                P = 0,
+                                L = 0,
+                                Y = 0,
+                                e = Dt,
+                                O = e.directional.colors,
+                                G = e.directional.positions,
+                                z = e.point.colors,
+                                H = e.point.positions,
+                                j = e.point.distances,
+                                V = e.point.decays,
+                                q = e.spot.colors,
+                                W = e.spot.positions,
+                                J = e.spot.distances,
+                                K = e.spot.directions,
+                                Z = e.spot.anglesCos,
+                                X = e.spot.exponents,
+                                $ = e.spot.decays,
+                                tt = e.hemi.skyColors,
+                                et = e.hemi.groundColors,
+                                nt = e.hemi.positions,
+                                m = 0,
+                                v = 0,
+                                b = 0,
+                                y = 0,
+                                rt = 0,
+                                it = 0,
+                                ot = 0,
+                                at = 0,
+                                w = 0,
+                                E = 0,
+                                B = 0,
+                                C = 0;
+                              for (A = 0, h = N.length; A < h; A++)
+                                (p = N[A]).onlyShadow ||
+                                  ((d = p.color),
+                                  (f = p.intensity),
+                                  (g = p.distance),
+                                  p instanceof Jt.AmbientLight
+                                    ? p.visible && ((P += d.r), (L += d.g), (Y += d.b))
+                                    : p instanceof Jt.DirectionalLight
+                                      ? ((rt += 1),
+                                        p.visible &&
+                                          (bt.setFromMatrixPosition(p.matrixWorld),
+                                          vt.setFromMatrixPosition(p.target.matrixWorld),
+                                          bt.sub(vt),
+                                          bt.normalize(),
+                                          (G[(w = 3 * m)] = bt.x),
+                                          (G[1 + w] = bt.y),
+                                          (G[2 + w] = bt.z),
+                                          wt(O, w, d, f),
+                                          (m += 1)))
+                                      : p instanceof Jt.PointLight
+                                        ? ((it += 1),
+                                          p.visible &&
+                                            (wt(z, (E = 3 * v), d, f),
+                                            vt.setFromMatrixPosition(p.matrixWorld),
+                                            (H[E] = vt.x),
+                                            (H[1 + E] = vt.y),
+                                            (H[2 + E] = vt.z),
+                                            (j[v] = g),
+                                            (V[v] = 0 === p.distance ? 0 : p.decay),
+                                            (v += 1)))
+                                        : p instanceof Jt.SpotLight
+                                          ? ((ot += 1),
+                                            p.visible &&
+                                              (wt(q, (B = 3 * b), d, f),
+                                              bt.setFromMatrixPosition(p.matrixWorld),
+                                              (W[B] = bt.x),
+                                              (W[1 + B] = bt.y),
+                                              (W[2 + B] = bt.z),
+                                              (J[b] = g),
+                                              vt.setFromMatrixPosition(p.target.matrixWorld),
+                                              bt.sub(vt),
+                                              bt.normalize(),
+                                              (K[B] = bt.x),
+                                              (K[1 + B] = bt.y),
+                                              (K[2 + B] = bt.z),
+                                              (Z[b] = Math.cos(p.angle)),
+                                              (X[b] = p.exponent),
+                                              ($[b] = 0 === p.distance ? 0 : p.decay),
+                                              (b += 1)))
+                                          : p instanceof Jt.HemisphereLight &&
+                                            ((at += 1),
+                                            p.visible &&
+                                              (bt.setFromMatrixPosition(p.matrixWorld),
+                                              bt.normalize(),
+                                              (nt[(C = 3 * y)] = bt.x),
+                                              (nt[1 + C] = bt.y),
+                                              (nt[2 + C] = bt.z),
+                                              (d = p.color),
+                                              (g = p.groundColor),
+                                              wt(tt, C, d, f),
+                                              wt(et, C, g, f),
+                                              (y += 1))));
+                              for (A = 3 * m, h = Math.max(O.length, 3 * rt); A < h; A++) O[A] = 0;
+                              for (A = 3 * v, h = Math.max(z.length, 3 * it); A < h; A++) z[A] = 0;
+                              for (A = 3 * b, h = Math.max(q.length, 3 * ot); A < h; A++) q[A] = 0;
+                              for (A = 3 * y, h = Math.max(tt.length, 3 * at); A < h; A++)
+                                tt[A] = 0;
+                              for (A = 3 * y, h = Math.max(et.length, 3 * at); A < h; A++)
+                                et[A] = 0;
+                              (e.directional.length = m),
+                                (e.point.length = v),
+                                (e.spot.length = b),
+                                (e.hemi.length = y),
+                                (e.ambient[0] = P),
+                                (e.ambient[1] = L),
+                                (e.ambient[2] = Y),
+                                (yt = !1);
+                            }
+                            s
+                              ? ((a = Dt),
+                                ((o = c).ambientLightColor.value = a.ambient),
+                                (o.directionalLightColor.value = a.directional.colors),
+                                (o.directionalLightDirection.value = a.directional.positions),
+                                (o.pointLightColor.value = a.point.colors),
+                                (o.pointLightPosition.value = a.point.positions),
+                                (o.pointLightDistance.value = a.point.distances),
+                                (o.pointLightDecay.value = a.point.decays),
+                                (o.spotLightColor.value = a.spot.colors),
+                                (o.spotLightPosition.value = a.spot.positions),
+                                (o.spotLightDistance.value = a.spot.distances),
+                                (o.spotLightDirection.value = a.spot.directions),
+                                (o.spotLightAngleCos.value = a.spot.anglesCos),
+                                (o.spotLightExponent.value = a.spot.exponents),
+                                (o.spotLightDecay.value = a.spot.decays),
+                                (o.hemisphereLightSkyColor.value = a.hemi.skyColors),
+                                (o.hemisphereLightGroundColor.value = a.hemi.groundColors),
+                                (o.hemisphereLightDirection.value = a.hemi.positions),
+                                Gt(c, !0))
+                              : Gt(c, !1);
+                          }
+                          if (
+                            ((n instanceof Jt.MeshBasicMaterial ||
+                              n instanceof Jt.MeshLambertMaterial ||
+                              n instanceof Jt.MeshPhongMaterial) &&
+                              ((e = n),
+                              ((s = c).opacity.value = e.opacity),
+                              (s.diffuse.value = e.color),
+                              (s.map.value = e.map),
+                              (s.lightMap.value = e.lightMap),
+                              (s.specularMap.value = e.specularMap),
+                              (s.alphaMap.value = e.alphaMap),
+                              e.bumpMap &&
+                                ((s.bumpMap.value = e.bumpMap), (s.bumpScale.value = e.bumpScale)),
+                              e.normalMap &&
+                                ((s.normalMap.value = e.normalMap),
+                                s.normalScale.value.copy(e.normalScale)),
+                              e.map
+                                ? (i = e.map)
+                                : e.specularMap
+                                  ? (i = e.specularMap)
+                                  : e.normalMap
+                                    ? (i = e.normalMap)
+                                    : e.bumpMap
+                                      ? (i = e.bumpMap)
+                                      : e.alphaMap && (i = e.alphaMap),
+                              void 0 !== i &&
+                                ((o = i.offset),
+                                (i = i.repeat),
+                                s.offsetRepeat.value.set(o.x, o.y, i.x, i.y)),
+                              (s.envMap.value = e.envMap),
+                              (s.flipEnvMap.value =
+                                e.envMap instanceof Jt.WebGLRenderTargetCube ? 1 : -1),
+                              (s.reflectivity.value = e.reflectivity),
+                              (s.refractionRatio.value = e.refractionRatio)),
+                            n instanceof Jt.LineBasicMaterial
+                              ? Ot(c, n)
+                              : n instanceof Jt.LineDashedMaterial
+                                ? (Ot(c, n),
+                                  (a = n),
+                                  ((o = c).dashSize.value = a.dashSize),
+                                  (o.totalSize.value = a.dashSize + a.gapSize),
+                                  (o.scale.value = a.scale))
+                                : n instanceof Jt.PointCloudMaterial
+                                  ? ((i = n),
+                                    ((s = c).psColor.value = i.color),
+                                    (s.opacity.value = i.opacity),
+                                    (s.size.value = i.size),
+                                    (s.scale.value = dt.height / 2),
+                                    (s.map.value = i.map),
+                                    null !== i.map &&
+                                      ((e = i.map.offset),
+                                      (i = i.map.repeat),
+                                      s.offsetRepeat.value.set(e.x, e.y, i.x, i.y)))
+                                  : n instanceof Jt.MeshPhongMaterial
+                                    ? ((o = n),
+                                      ((a = c).shininess.value = o.shininess),
+                                      (a.emissive.value = o.emissive),
+                                      (a.specular.value = o.specular),
+                                      o.wrapAround && a.wrapRGB.value.copy(o.wrapRGB))
+                                    : n instanceof Jt.MeshLambertMaterial
+                                      ? ((s = n),
+                                        ((e = c).emissive.value = s.emissive),
+                                        s.wrapAround && e.wrapRGB.value.copy(s.wrapRGB))
+                                      : n instanceof Jt.MeshDepthMaterial
+                                        ? ((c.mNear.value = t.near),
+                                          (c.mFar.value = t.far),
+                                          (c.opacity.value = n.opacity))
+                                        : n instanceof Jt.MeshNormalMaterial &&
+                                          (c.opacity.value = n.opacity),
+                            r.receiveShadow && !n._shadowPass)
+                          ) {
+                            var x = c,
+                              st = U;
+                            if (x.shadowMatrix)
+                              for (var I = 0, lt = 0, ut = st.length; lt < ut; lt++) {
+                                var M = st[lt];
+                                M.castShadow &&
+                                  (M instanceof Jt.SpotLight ||
+                                    (M instanceof Jt.DirectionalLight && !M.shadowCascade)) &&
+                                  ((x.shadowMap.value[I] = M.shadowMap),
+                                  (x.shadowMapSize.value[I] = M.shadowMapSize),
+                                  (x.shadowMatrix.value[I] = M.shadowMatrix),
+                                  (x.shadowDarkness.value[I] = M.shadowDarkness),
+                                  (x.shadowBias.value[I] = M.shadowBias),
+                                  I++);
+                              }
+                          }
+                          for (
+                            var D, S, k, ct = n.uniformsList, At = 0, ht = ct.length;
+                            At < ht;
+                            At++
+                          ) {
+                            var F = ct[At][0];
+                            if (!1 !== F.needsUpdate) {
+                              var pt = F.type,
+                                Q = F.value,
+                                _ = ct[At][1];
+                              switch (pt) {
+                                case '1i':
+                                  Mt.uniform1i(_, Q);
+                                  break;
+                                case '1f':
+                                  Mt.uniform1f(_, Q);
+                                  break;
+                                case '2f':
+                                  Mt.uniform2f(_, Q[0], Q[1]);
+                                  break;
+                                case '3f':
+                                  Mt.uniform3f(_, Q[0], Q[1], Q[2]);
+                                  break;
+                                case '4f':
+                                  Mt.uniform4f(_, Q[0], Q[1], Q[2], Q[3]);
+                                  break;
+                                case '1iv':
+                                  Mt.uniform1iv(_, Q);
+                                  break;
+                                case '3iv':
+                                  Mt.uniform3iv(_, Q);
+                                  break;
+                                case '1fv':
+                                  Mt.uniform1fv(_, Q);
+                                  break;
+                                case '2fv':
+                                  Mt.uniform2fv(_, Q);
+                                  break;
+                                case '3fv':
+                                  Mt.uniform3fv(_, Q);
+                                  break;
+                                case '4fv':
+                                  Mt.uniform4fv(_, Q);
+                                  break;
+                                case 'Matrix3fv':
+                                  Mt.uniformMatrix3fv(_, !1, Q);
+                                  break;
+                                case 'Matrix4fv':
+                                  Mt.uniformMatrix4fv(_, !1, Q);
+                                  break;
+                                case 'i':
+                                  Mt.uniform1i(_, Q);
+                                  break;
+                                case 'f':
+                                  Mt.uniform1f(_, Q);
+                                  break;
+                                case 'v2':
+                                  Mt.uniform2f(_, Q.x, Q.y);
+                                  break;
+                                case 'v3':
+                                  Mt.uniform3f(_, Q.x, Q.y, Q.z);
+                                  break;
+                                case 'v4':
+                                  Mt.uniform4f(_, Q.x, Q.y, Q.z, Q.w);
+                                  break;
+                                case 'c':
+                                  Mt.uniform3f(_, Q.r, Q.g, Q.b);
+                                  break;
+                                case 'iv1':
+                                  Mt.uniform1iv(_, Q);
+                                  break;
+                                case 'iv':
+                                  Mt.uniform3iv(_, Q);
+                                  break;
+                                case 'fv1':
+                                  Mt.uniform1fv(_, Q);
+                                  break;
+                                case 'fv':
+                                  Mt.uniform3fv(_, Q);
+                                  break;
+                                case 'v2v':
+                                  void 0 === F._array &&
+                                    (F._array = new Float32Array(2 * Q.length));
+                                  for (var T = 0, R = Q.length; T < R; T++)
+                                    (k = 2 * T), (F._array[k] = Q[T].x), (F._array[k + 1] = Q[T].y);
+                                  Mt.uniform2fv(_, F._array);
+                                  break;
+                                case 'v3v':
+                                  void 0 === F._array &&
+                                    (F._array = new Float32Array(3 * Q.length));
+                                  for (T = 0, R = Q.length; T < R; T++)
+                                    (k = 3 * T),
+                                      (F._array[k] = Q[T].x),
+                                      (F._array[k + 1] = Q[T].y),
+                                      (F._array[k + 2] = Q[T].z);
+                                  Mt.uniform3fv(_, F._array);
+                                  break;
+                                case 'v4v':
+                                  void 0 === F._array &&
+                                    (F._array = new Float32Array(4 * Q.length));
+                                  for (T = 0, R = Q.length; T < R; T++)
+                                    (k = 4 * T),
+                                      (F._array[k] = Q[T].x),
+                                      (F._array[k + 1] = Q[T].y),
+                                      (F._array[k + 2] = Q[T].z),
+                                      (F._array[k + 3] = Q[T].w);
+                                  Mt.uniform4fv(_, F._array);
+                                  break;
+                                case 'm3':
+                                  Mt.uniformMatrix3fv(_, !1, Q.elements);
+                                  break;
+                                case 'm3v':
+                                  void 0 === F._array &&
+                                    (F._array = new Float32Array(9 * Q.length));
+                                  for (T = 0, R = Q.length; T < R; T++)
+                                    Q[T].flattenToArrayOffset(F._array, 9 * T);
+                                  Mt.uniformMatrix3fv(_, !1, F._array);
+                                  break;
+                                case 'm4':
+                                  Mt.uniformMatrix4fv(_, !1, Q.elements);
+                                  break;
+                                case 'm4v':
+                                  void 0 === F._array &&
+                                    (F._array = new Float32Array(16 * Q.length));
+                                  for (T = 0, R = Q.length; T < R; T++)
+                                    Q[T].flattenToArrayOffset(F._array, 16 * T);
+                                  Mt.uniformMatrix4fv(_, !1, F._array);
+                                  break;
+                                case 't':
+                                  if (((D = Q), (S = zt()), Mt.uniform1i(_, S), !D)) continue;
+                                  D instanceof Jt.CubeTexture ||
+                                  (D.image instanceof Array && 6 === D.image.length)
+                                    ? (function (t, e) {
+                                        if (6 === t.image.length)
+                                          if (t.needsUpdate) {
+                                            t.image.__webglTextureCube ||
+                                              (t.addEventListener('dispose', Qt),
+                                              (t.image.__webglTextureCube = Mt.createTexture()),
+                                              ft.info.memory.textures++),
+                                              Mt.activeTexture(Mt.TEXTURE0 + e),
+                                              Mt.bindTexture(
+                                                Mt.TEXTURE_CUBE_MAP,
+                                                t.image.__webglTextureCube,
+                                              ),
+                                              Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL, t.flipY);
+                                            for (
+                                              var n = t instanceof Jt.CompressedTexture,
+                                                r = t.image[0] instanceof Jt.DataTexture,
+                                                i = [],
+                                                o = 0;
+                                              o < 6;
+                                              o++
+                                            )
+                                              !ft.autoScaleCubemaps || n || r
+                                                ? (i[o] = r ? t.image[o].image : t.image[o])
+                                                : (i[o] = jt(t.image[o], St));
+                                            var a = i[0],
+                                              a =
+                                                Jt.Math.isPowerOfTwo(a.width) &&
+                                                Jt.Math.isPowerOfTwo(a.height),
+                                              s = Bt(t.format),
+                                              l = Bt(t.type);
+                                            Et(Mt.TEXTURE_CUBE_MAP, t, a);
+                                            for (o = 0; o < 6; o++)
+                                              if (n)
+                                                for (
+                                                  var u, c = i[o].mipmaps, A = 0, h = c.length;
+                                                  A < h;
+                                                  A++
+                                                )
+                                                  (u = c[A]),
+                                                    t.format !== Jt.RGBAFormat &&
+                                                    t.format !== Jt.RGBFormat
+                                                      ? -1 < Ft().indexOf(s)
+                                                        ? Mt.compressedTexImage2D(
+                                                            Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o,
+                                                            A,
+                                                            s,
+                                                            u.width,
+                                                            u.height,
+                                                            0,
+                                                            u.data,
+                                                          )
+                                                        : Jt.warn(
+                                                            'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()',
+                                                          )
+                                                      : Mt.texImage2D(
+                                                          Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o,
+                                                          A,
+                                                          s,
+                                                          u.width,
+                                                          u.height,
+                                                          0,
+                                                          s,
+                                                          l,
+                                                          u.data,
+                                                        );
+                                              else
+                                                r
+                                                  ? Mt.texImage2D(
+                                                      Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o,
+                                                      0,
+                                                      s,
+                                                      i[o].width,
+                                                      i[o].height,
+                                                      0,
+                                                      s,
+                                                      l,
+                                                      i[o].data,
+                                                    )
+                                                  : Mt.texImage2D(
+                                                      Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o,
+                                                      0,
+                                                      s,
+                                                      s,
+                                                      l,
+                                                      i[o],
+                                                    );
+                                            t.generateMipmaps &&
+                                              a &&
+                                              Mt.generateMipmap(Mt.TEXTURE_CUBE_MAP),
+                                              (t.needsUpdate = !1),
+                                              t.onUpdate && t.onUpdate();
+                                          } else
+                                            Mt.activeTexture(Mt.TEXTURE0 + e),
+                                              Mt.bindTexture(
+                                                Mt.TEXTURE_CUBE_MAP,
+                                                t.image.__webglTextureCube,
+                                              );
+                                      })(D, S)
+                                    : D instanceof Jt.WebGLRenderTargetCube
+                                      ? (function (t, e) {
+                                          Mt.activeTexture(Mt.TEXTURE0 + e),
+                                            Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, t.__webglTexture);
+                                        })(D, S)
+                                      : ft.setTexture(D, S);
+                                  break;
+                                case 'tv':
+                                  void 0 === F._array && (F._array = []);
+                                  for (T = 0, R = F.value.length; T < R; T++) F._array[T] = zt();
+                                  Mt.uniform1iv(_, F._array);
+                                  for (T = 0, R = F.value.length; T < R; T++)
+                                    (D = F.value[T]), (S = F._array[T]), D && ft.setTexture(D, S);
+                                  break;
+                                default:
+                                  Jt.warn('THREE.WebGLRenderer: Unknown uniform type: ' + pt);
+                              }
+                            }
+                          }
+                        }
+                        return (
+                          (a = u),
+                          (o = r),
+                          Mt.uniformMatrix4fv(a.modelViewMatrix, !1, o._modelViewMatrix.elements),
+                          a.normalMatrix &&
+                            Mt.uniformMatrix3fv(a.normalMatrix, !1, o._normalMatrix.elements),
+                          null !== u.modelMatrix &&
+                            Mt.uniformMatrix4fv(u.modelMatrix, !1, r.matrixWorld.elements),
+                          l
+                        );
+                      }
+                      function Ot(t, e) {
+                        (t.diffuse.value = e.color), (t.opacity.value = e.opacity);
+                      }
+                      function Gt(t, e) {
+                        (t.ambientLightColor.needsUpdate = e),
+                          (t.directionalLightColor.needsUpdate = e),
+                          (t.directionalLightDirection.needsUpdate = e),
+                          (t.pointLightColor.needsUpdate = e),
+                          (t.pointLightPosition.needsUpdate = e),
+                          (t.pointLightDistance.needsUpdate = e),
+                          (t.pointLightDecay.needsUpdate = e),
+                          (t.spotLightColor.needsUpdate = e),
+                          (t.spotLightPosition.needsUpdate = e),
+                          (t.spotLightDistance.needsUpdate = e),
+                          (t.spotLightDirection.needsUpdate = e),
+                          (t.spotLightAngleCos.needsUpdate = e),
+                          (t.spotLightExponent.needsUpdate = e),
+                          (t.spotLightDecay.needsUpdate = e),
+                          (t.hemisphereLightSkyColor.needsUpdate = e),
+                          (t.hemisphereLightGroundColor.needsUpdate = e),
+                          (t.hemisphereLightDirection.needsUpdate = e);
+                      }
+                      function zt() {
+                        var t = It;
+                        return (
+                          G <= t &&
+                            Jt.warn(
+                              'WebGLRenderer: trying to use ' +
+                                t +
+                                ' texture units while this GPU supports only ' +
+                                G,
+                            ),
+                          (It += 1),
+                          t
+                        );
+                      }
+                      function Ht(t, e) {
+                        t._modelViewMatrix.multiplyMatrices(e.matrixWorldInverse, t.matrixWorld),
+                          t._normalMatrix.getNormalMatrix(t._modelViewMatrix);
+                      }
+                      function wt(t, e, n, r) {
+                        (t[e] = n.r * r), (t[e + 1] = n.g * r), (t[e + 2] = n.b * r);
+                      }
+                      function Et(t, e, n) {
+                        n
+                          ? (Mt.texParameteri(t, Mt.TEXTURE_WRAP_S, Bt(e.wrapS)),
+                            Mt.texParameteri(t, Mt.TEXTURE_WRAP_T, Bt(e.wrapT)),
+                            Mt.texParameteri(t, Mt.TEXTURE_MAG_FILTER, Bt(e.magFilter)),
+                            Mt.texParameteri(t, Mt.TEXTURE_MIN_FILTER, Bt(e.minFilter)))
+                          : (Mt.texParameteri(t, Mt.TEXTURE_WRAP_S, Mt.CLAMP_TO_EDGE),
+                            Mt.texParameteri(t, Mt.TEXTURE_WRAP_T, Mt.CLAMP_TO_EDGE),
+                            (e.wrapS === Jt.ClampToEdgeWrapping &&
+                              e.wrapT === Jt.ClampToEdgeWrapping) ||
+                              Jt.warn(
+                                'THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping. ( ' +
+                                  e.sourceFile +
+                                  ' )',
+                              ),
+                            Mt.texParameteri(t, Mt.TEXTURE_MAG_FILTER, Wt(e.magFilter)),
+                            Mt.texParameteri(t, Mt.TEXTURE_MIN_FILTER, Wt(e.minFilter)),
+                            e.minFilter !== Jt.NearestFilter &&
+                              e.minFilter !== Jt.LinearFilter &&
+                              Jt.warn(
+                                'THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. ( ' +
+                                  e.sourceFile +
+                                  ' )',
+                              )),
+                          (n = D.get('EXT_texture_filter_anisotropic')) &&
+                            e.type !== Jt.FloatType &&
+                            e.type !== Jt.HalfFloatType &&
+                            (1 < e.anisotropy || e.__currentAnisotropy) &&
+                            (Mt.texParameterf(
+                              t,
+                              n.TEXTURE_MAX_ANISOTROPY_EXT,
+                              Math.min(e.anisotropy, ft.getMaxAnisotropy()),
+                            ),
+                            (e.__currentAnisotropy = e.anisotropy));
+                      }
+                      function jt(t, e) {
+                        var n;
+                        return t.width > e || t.height > e
+                          ? ((e = e / Math.max(t.width, t.height)),
+                            ((n = document.createElement('canvas')).width = Math.floor(
+                              t.width * e,
+                            )),
+                            (n.height = Math.floor(t.height * e)),
+                            n
+                              .getContext('2d')
+                              .drawImage(t, 0, 0, t.width, t.height, 0, 0, n.width, n.height),
+                            Jt.warn(
+                              'THREE.WebGLRenderer: image is too big (' +
+                                t.width +
+                                'x' +
+                                t.height +
+                                '). Resized to ' +
+                                n.width +
+                                'x' +
+                                n.height,
+                              t,
+                            ),
+                            n)
+                          : t;
+                      }
+                      function Vt(t, e, n) {
+                        Mt.bindFramebuffer(Mt.FRAMEBUFFER, t),
+                          Mt.framebufferTexture2D(
+                            Mt.FRAMEBUFFER,
+                            Mt.COLOR_ATTACHMENT0,
+                            n,
+                            e.__webglTexture,
+                            0,
+                          );
+                      }
+                      function qt(t, e) {
+                        Mt.bindRenderbuffer(Mt.RENDERBUFFER, t),
+                          e.depthBuffer && !e.stencilBuffer
+                            ? (Mt.renderbufferStorage(
+                                Mt.RENDERBUFFER,
+                                Mt.DEPTH_COMPONENT16,
+                                e.width,
+                                e.height,
+                              ),
+                              Mt.framebufferRenderbuffer(
+                                Mt.FRAMEBUFFER,
+                                Mt.DEPTH_ATTACHMENT,
+                                Mt.RENDERBUFFER,
+                                t,
+                              ))
+                            : e.depthBuffer && e.stencilBuffer
+                              ? (Mt.renderbufferStorage(
+                                  Mt.RENDERBUFFER,
+                                  Mt.DEPTH_STENCIL,
+                                  e.width,
+                                  e.height,
+                                ),
+                                Mt.framebufferRenderbuffer(
+                                  Mt.FRAMEBUFFER,
+                                  Mt.DEPTH_STENCIL_ATTACHMENT,
+                                  Mt.RENDERBUFFER,
+                                  t,
+                                ))
+                              : Mt.renderbufferStorage(
+                                  Mt.RENDERBUFFER,
+                                  Mt.RGBA4,
+                                  e.width,
+                                  e.height,
+                                );
+                      }
+                      function Wt(t) {
+                        return t === Jt.NearestFilter ||
+                          t === Jt.NearestMipMapNearestFilter ||
+                          t === Jt.NearestMipMapLinearFilter
+                          ? Mt.NEAREST
+                          : Mt.LINEAR;
+                      }
+                      function Bt(t) {
+                        var e;
+                        if (t === Jt.RepeatWrapping) return Mt.REPEAT;
+                        if (t === Jt.ClampToEdgeWrapping) return Mt.CLAMP_TO_EDGE;
+                        if (t === Jt.MirroredRepeatWrapping) return Mt.MIRRORED_REPEAT;
+                        if (t === Jt.NearestFilter) return Mt.NEAREST;
+                        if (t === Jt.NearestMipMapNearestFilter) return Mt.NEAREST_MIPMAP_NEAREST;
+                        if (t === Jt.NearestMipMapLinearFilter) return Mt.NEAREST_MIPMAP_LINEAR;
+                        if (t === Jt.LinearFilter) return Mt.LINEAR;
+                        if (t === Jt.LinearMipMapNearestFilter) return Mt.LINEAR_MIPMAP_NEAREST;
+                        if (t === Jt.LinearMipMapLinearFilter) return Mt.LINEAR_MIPMAP_LINEAR;
+                        if (t === Jt.UnsignedByteType) return Mt.UNSIGNED_BYTE;
+                        if (t === Jt.UnsignedShort4444Type) return Mt.UNSIGNED_SHORT_4_4_4_4;
+                        if (t === Jt.UnsignedShort5551Type) return Mt.UNSIGNED_SHORT_5_5_5_1;
+                        if (t === Jt.UnsignedShort565Type) return Mt.UNSIGNED_SHORT_5_6_5;
+                        if (t === Jt.ByteType) return Mt.BYTE;
+                        if (t === Jt.ShortType) return Mt.SHORT;
+                        if (t === Jt.UnsignedShortType) return Mt.UNSIGNED_SHORT;
+                        if (t === Jt.IntType) return Mt.INT;
+                        if (t === Jt.UnsignedIntType) return Mt.UNSIGNED_INT;
+                        if (t === Jt.FloatType) return Mt.FLOAT;
+                        if (
+                          null !== (e = D.get('OES_texture_half_float')) &&
+                          t === Jt.HalfFloatType
+                        )
+                          return e.HALF_FLOAT_OES;
+                        if (t === Jt.AlphaFormat) return Mt.ALPHA;
+                        if (t === Jt.RGBFormat) return Mt.RGB;
+                        if (t === Jt.RGBAFormat) return Mt.RGBA;
+                        if (t === Jt.LuminanceFormat) return Mt.LUMINANCE;
+                        if (t === Jt.LuminanceAlphaFormat) return Mt.LUMINANCE_ALPHA;
+                        if (t === Jt.AddEquation) return Mt.FUNC_ADD;
+                        if (t === Jt.SubtractEquation) return Mt.FUNC_SUBTRACT;
+                        if (t === Jt.ReverseSubtractEquation) return Mt.FUNC_REVERSE_SUBTRACT;
+                        if (t === Jt.ZeroFactor) return Mt.ZERO;
+                        if (t === Jt.OneFactor) return Mt.ONE;
+                        if (t === Jt.SrcColorFactor) return Mt.SRC_COLOR;
+                        if (t === Jt.OneMinusSrcColorFactor) return Mt.ONE_MINUS_SRC_COLOR;
+                        if (t === Jt.SrcAlphaFactor) return Mt.SRC_ALPHA;
+                        if (t === Jt.OneMinusSrcAlphaFactor) return Mt.ONE_MINUS_SRC_ALPHA;
+                        if (t === Jt.DstAlphaFactor) return Mt.DST_ALPHA;
+                        if (t === Jt.OneMinusDstAlphaFactor) return Mt.ONE_MINUS_DST_ALPHA;
+                        if (t === Jt.DstColorFactor) return Mt.DST_COLOR;
+                        if (t === Jt.OneMinusDstColorFactor) return Mt.ONE_MINUS_DST_COLOR;
+                        if (t === Jt.SrcAlphaSaturateFactor) return Mt.SRC_ALPHA_SATURATE;
+                        if (null !== (e = D.get('WEBGL_compressed_texture_s3tc'))) {
+                          if (t === Jt.RGB_S3TC_DXT1_Format) return e.COMPRESSED_RGB_S3TC_DXT1_EXT;
+                          if (t === Jt.RGBA_S3TC_DXT1_Format)
+                            return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;
+                          if (t === Jt.RGBA_S3TC_DXT3_Format)
+                            return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;
+                          if (t === Jt.RGBA_S3TC_DXT5_Format)
+                            return e.COMPRESSED_RGBA_S3TC_DXT5_EXT;
+                        }
+                        if (null !== (e = D.get('WEBGL_compressed_texture_pvrtc'))) {
+                          if (t === Jt.RGB_PVRTC_4BPPV1_Format)
+                            return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
+                          if (t === Jt.RGB_PVRTC_2BPPV1_Format)
+                            return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;
+                          if (t === Jt.RGBA_PVRTC_4BPPV1_Format)
+                            return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
+                          if (t === Jt.RGBA_PVRTC_2BPPV1_Format)
+                            return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;
+                        }
+                        if (null !== (e = D.get('EXT_blend_minmax'))) {
+                          if (t === Jt.MinEquation) return e.MIN_EXT;
+                          if (t === Jt.MaxEquation) return e.MAX_EXT;
+                        }
+                        return 0;
+                      }
+                      (this.setFaceCulling = function (t, e) {
+                        t === Jt.CullFaceNone
+                          ? Mt.disable(Mt.CULL_FACE)
+                          : (e === Jt.FrontFaceDirectionCW
+                              ? Mt.frontFace(Mt.CW)
+                              : Mt.frontFace(Mt.CCW),
+                            t === Jt.CullFaceBack
+                              ? Mt.cullFace(Mt.BACK)
+                              : t === Jt.CullFaceFront
+                                ? Mt.cullFace(Mt.FRONT)
+                                : Mt.cullFace(Mt.FRONT_AND_BACK),
+                            Mt.enable(Mt.CULL_FACE));
+                      }),
+                        (this.setMaterialFaces = function (t) {
+                          M.setDoubleSided(t.side === Jt.DoubleSide),
+                            M.setFlipSided(t.side === Jt.BackSide);
+                        }),
+                        (this.uploadTexture = function (t) {
+                          void 0 === t.__webglInit &&
+                            ((t.__webglInit = !0),
+                            t.addEventListener('dispose', Qt),
+                            (t.__webglTexture = Mt.createTexture()),
+                            ft.info.memory.textures++),
+                            Mt.bindTexture(Mt.TEXTURE_2D, t.__webglTexture),
+                            Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL, t.flipY),
+                            Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t.premultiplyAlpha),
+                            Mt.pixelStorei(Mt.UNPACK_ALIGNMENT, t.unpackAlignment),
+                            (t.image = jt(t.image, z));
+                          var e = t.image,
+                            n = Jt.Math.isPowerOfTwo(e.width) && Jt.Math.isPowerOfTwo(e.height),
+                            r = Bt(t.format),
+                            i = Bt(t.type);
+                          Et(Mt.TEXTURE_2D, t, n);
+                          var o,
+                            a = t.mipmaps;
+                          if (t instanceof Jt.DataTexture)
+                            if (0 < a.length && n) {
+                              for (var s = 0, l = a.length; s < l; s++)
+                                (o = a[s]),
+                                  Mt.texImage2D(
+                                    Mt.TEXTURE_2D,
+                                    s,
+                                    r,
+                                    o.width,
+                                    o.height,
+                                    0,
+                                    r,
+                                    i,
+                                    o.data,
+                                  );
+                              t.generateMipmaps = !1;
+                            } else
+                              Mt.texImage2D(
+                                Mt.TEXTURE_2D,
+                                0,
+                                r,
+                                e.width,
+                                e.height,
+                                0,
+                                r,
+                                i,
+                                e.data,
+                              );
+                          else if (t instanceof Jt.CompressedTexture)
+                            for (s = 0, l = a.length; s < l; s++)
+                              (o = a[s]),
+                                t.format !== Jt.RGBAFormat && t.format !== Jt.RGBFormat
+                                  ? -1 < Ft().indexOf(r)
+                                    ? Mt.compressedTexImage2D(
+                                        Mt.TEXTURE_2D,
+                                        s,
+                                        r,
+                                        o.width,
+                                        o.height,
+                                        0,
+                                        o.data,
+                                      )
+                                    : Jt.warn(
+                                        'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()',
+                                      )
+                                  : Mt.texImage2D(
+                                      Mt.TEXTURE_2D,
+                                      s,
+                                      r,
+                                      o.width,
+                                      o.height,
+                                      0,
+                                      r,
+                                      i,
+                                      o.data,
+                                    );
+                          else if (0 < a.length && n) {
+                            for (s = 0, l = a.length; s < l; s++)
+                              (o = a[s]), Mt.texImage2D(Mt.TEXTURE_2D, s, r, r, i, o);
+                            t.generateMipmaps = !1;
+                          } else Mt.texImage2D(Mt.TEXTURE_2D, 0, r, r, i, t.image);
+                          t.generateMipmaps && n && Mt.generateMipmap(Mt.TEXTURE_2D),
+                            (t.needsUpdate = !1),
+                            t.onUpdate && t.onUpdate();
+                        }),
+                        (this.setTexture = function (t, e) {
+                          Mt.activeTexture(Mt.TEXTURE0 + e),
+                            t.needsUpdate
+                              ? ft.uploadTexture(t)
+                              : Mt.bindTexture(Mt.TEXTURE_2D, t.__webglTexture);
+                        }),
+                        (this.setRenderTarget = function (t) {
+                          var e,
+                            n,
+                            r,
+                            i,
+                            o = t instanceof Jt.WebGLRenderTargetCube;
+                          if (t && void 0 === t.__webglFramebuffer) {
+                            void 0 === t.depthBuffer && (t.depthBuffer = !0),
+                              void 0 === t.stencilBuffer && (t.stencilBuffer = !0),
+                              t.addEventListener('dispose', K),
+                              (t.__webglTexture = Mt.createTexture()),
+                              ft.info.memory.textures++;
+                            var a = Jt.Math.isPowerOfTwo(t.width) && Jt.Math.isPowerOfTwo(t.height),
+                              s = Bt(t.format),
+                              l = Bt(t.type);
+                            if (o) {
+                              (t.__webglFramebuffer = []),
+                                (t.__webglRenderbuffer = []),
+                                Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, t.__webglTexture),
+                                Et(Mt.TEXTURE_CUBE_MAP, t, a);
+                              for (var u = 0; u < 6; u++)
+                                (t.__webglFramebuffer[u] = Mt.createFramebuffer()),
+                                  (t.__webglRenderbuffer[u] = Mt.createRenderbuffer()),
+                                  Mt.texImage2D(
+                                    Mt.TEXTURE_CUBE_MAP_POSITIVE_X + u,
+                                    0,
+                                    s,
+                                    t.width,
+                                    t.height,
+                                    0,
+                                    s,
+                                    l,
+                                    null,
+                                  ),
+                                  Vt(
+                                    t.__webglFramebuffer[u],
+                                    t,
+                                    Mt.TEXTURE_CUBE_MAP_POSITIVE_X + u,
+                                  ),
+                                  qt(t.__webglRenderbuffer[u], t);
+                              a && Mt.generateMipmap(Mt.TEXTURE_CUBE_MAP);
+                            } else
+                              (t.__webglFramebuffer = Mt.createFramebuffer()),
+                                t.shareDepthFrom
+                                  ? (t.__webglRenderbuffer = t.shareDepthFrom.__webglRenderbuffer)
+                                  : (t.__webglRenderbuffer = Mt.createRenderbuffer()),
+                                Mt.bindTexture(Mt.TEXTURE_2D, t.__webglTexture),
+                                Et(Mt.TEXTURE_2D, t, a),
+                                Mt.texImage2D(
+                                  Mt.TEXTURE_2D,
+                                  0,
+                                  s,
+                                  t.width,
+                                  t.height,
+                                  0,
+                                  s,
+                                  l,
+                                  null,
+                                ),
+                                Vt(t.__webglFramebuffer, t, Mt.TEXTURE_2D),
+                                t.shareDepthFrom
+                                  ? t.depthBuffer && !t.stencilBuffer
+                                    ? Mt.framebufferRenderbuffer(
+                                        Mt.FRAMEBUFFER,
+                                        Mt.DEPTH_ATTACHMENT,
+                                        Mt.RENDERBUFFER,
+                                        t.__webglRenderbuffer,
+                                      )
+                                    : t.depthBuffer &&
+                                      t.stencilBuffer &&
+                                      Mt.framebufferRenderbuffer(
+                                        Mt.FRAMEBUFFER,
+                                        Mt.DEPTH_STENCIL_ATTACHMENT,
+                                        Mt.RENDERBUFFER,
+                                        t.__webglRenderbuffer,
+                                      )
+                                  : qt(t.__webglRenderbuffer, t),
+                                a && Mt.generateMipmap(Mt.TEXTURE_2D);
+                            o
+                              ? Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, null)
+                              : Mt.bindTexture(Mt.TEXTURE_2D, null),
+                              Mt.bindRenderbuffer(Mt.RENDERBUFFER, null),
+                              Mt.bindFramebuffer(Mt.FRAMEBUFFER, null);
+                          }
+                          (a = t
+                            ? ((e = o
+                                ? t.__webglFramebuffer[t.activeCubeFace]
+                                : t.__webglFramebuffer),
+                              (n = t.width),
+                              (r = t.height),
+                              (i = 0))
+                            : ((e = null), (n = g), (r = m), (i = d), f)),
+                            e !== p &&
+                              (Mt.bindFramebuffer(Mt.FRAMEBUFFER, e),
+                              Mt.viewport(i, a, n, r),
+                              (p = e)),
+                            (_ = n),
+                            (T = r);
+                        }),
+                        (this.readRenderTargetPixels = function (t, e, n, r, i, o) {
+                          var a;
+                          t instanceof Jt.WebGLRenderTarget
+                            ? t.__webglFramebuffer &&
+                              (t.format !== Jt.RGBAFormat
+                                ? console.error(
+                                    'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA format. readPixels can read only RGBA format.',
+                                  )
+                                : ((a = !1),
+                                  t.__webglFramebuffer !== p &&
+                                    (Mt.bindFramebuffer(Mt.FRAMEBUFFER, t.__webglFramebuffer),
+                                    (a = !0)),
+                                  Mt.checkFramebufferStatus(Mt.FRAMEBUFFER) ===
+                                  Mt.FRAMEBUFFER_COMPLETE
+                                    ? Mt.readPixels(e, n, r, i, Mt.RGBA, Mt.UNSIGNED_BYTE, o)
+                                    : console.error(
+                                        'THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.',
+                                      ),
+                                  a && Mt.bindFramebuffer(Mt.FRAMEBUFFER, p)))
+                            : console.error(
+                                'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.',
+                              );
+                        }),
+                        (this.initMaterial = function () {
+                          Jt.warn('THREE.WebGLRenderer: .initMaterial() has been removed.');
+                        }),
+                        (this.addPrePlugin = function () {
+                          Jt.warn('THREE.WebGLRenderer: .addPrePlugin() has been removed.');
+                        }),
+                        (this.addPostPlugin = function () {
+                          Jt.warn('THREE.WebGLRenderer: .addPostPlugin() has been removed.');
+                        }),
+                        (this.updateShadowMap = function () {
+                          Jt.warn('THREE.WebGLRenderer: .updateShadowMap() has been removed.');
+                        });
+                    }),
+                    (Jt.WebGLRenderTarget = function (t, e, n) {
+                      (this.width = t),
+                        (this.height = e),
+                        (this.wrapS =
+                          void 0 !== (n = n || {}).wrapS ? n.wrapS : Jt.ClampToEdgeWrapping),
+                        (this.wrapT = void 0 !== n.wrapT ? n.wrapT : Jt.ClampToEdgeWrapping),
+                        (this.magFilter = void 0 !== n.magFilter ? n.magFilter : Jt.LinearFilter),
+                        (this.minFilter =
+                          void 0 !== n.minFilter ? n.minFilter : Jt.LinearMipMapLinearFilter),
+                        (this.anisotropy = void 0 !== n.anisotropy ? n.anisotropy : 1),
+                        (this.offset = new Jt.Vector2(0, 0)),
+                        (this.repeat = new Jt.Vector2(1, 1)),
+                        (this.format = void 0 !== n.format ? n.format : Jt.RGBAFormat),
+                        (this.type = void 0 !== n.type ? n.type : Jt.UnsignedByteType),
+                        (this.depthBuffer = void 0 === n.depthBuffer || n.depthBuffer),
+                        (this.stencilBuffer = void 0 === n.stencilBuffer || n.stencilBuffer),
+                        (this.generateMipmaps = !0),
+                        (this.shareDepthFrom =
+                          void 0 !== n.shareDepthFrom ? n.shareDepthFrom : null);
+                    }),
+                    (Jt.WebGLRenderTarget.prototype = {
+                      constructor: Jt.WebGLRenderTarget,
+                      setSize: function (t, e) {
+                        (this.width === t && this.height === e) ||
+                          ((this.width = t), (this.height = e), this.dispose());
+                      },
+                      clone: function () {
+                        var t = new Jt.WebGLRenderTarget(this.width, this.height);
+                        return (
+                          (t.wrapS = this.wrapS),
+                          (t.wrapT = this.wrapT),
+                          (t.magFilter = this.magFilter),
+                          (t.minFilter = this.minFilter),
+                          (t.anisotropy = this.anisotropy),
+                          t.offset.copy(this.offset),
+                          t.repeat.copy(this.repeat),
+                          (t.format = this.format),
+                          (t.type = this.type),
+                          (t.depthBuffer = this.depthBuffer),
+                          (t.stencilBuffer = this.stencilBuffer),
+                          (t.generateMipmaps = this.generateMipmaps),
+                          (t.shareDepthFrom = this.shareDepthFrom),
+                          t
+                        );
+                      },
+                      dispose: function () {
+                        this.dispatchEvent({ type: 'dispose' });
+                      },
+                    }),
+                    Jt.EventDispatcher.prototype.apply(Jt.WebGLRenderTarget.prototype),
+                    (Jt.WebGLRenderTargetCube = function (t, e, n) {
+                      Jt.WebGLRenderTarget.call(this, t, e, n), (this.activeCubeFace = 0);
+                    }),
+                    (Jt.WebGLRenderTargetCube.prototype = Object.create(
+                      Jt.WebGLRenderTarget.prototype,
+                    )),
+                    (Jt.WebGLRenderTargetCube.prototype.constructor = Jt.WebGLRenderTargetCube),
+                    (Jt.WebGLExtensions = function (n) {
+                      var r = {};
+                      this.get = function (t) {
+                        if (void 0 !== r[t]) return r[t];
+                        var e;
+                        switch (t) {
+                          case 'EXT_texture_filter_anisotropic':
+                            e =
+                              n.getExtension('EXT_texture_filter_anisotropic') ||
+                              n.getExtension('MOZ_EXT_texture_filter_anisotropic') ||
+                              n.getExtension('WEBKIT_EXT_texture_filter_anisotropic');
+                            break;
+                          case 'WEBGL_compressed_texture_s3tc':
+                            e =
+                              n.getExtension('WEBGL_compressed_texture_s3tc') ||
+                              n.getExtension('MOZ_WEBGL_compressed_texture_s3tc') ||
+                              n.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc');
+                            break;
+                          case 'WEBGL_compressed_texture_pvrtc':
+                            e =
+                              n.getExtension('WEBGL_compressed_texture_pvrtc') ||
+                              n.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');
+                            break;
+                          default:
+                            e = n.getExtension(t);
+                        }
+                        return (
+                          null === e &&
+                            Jt.warn('THREE.WebGLRenderer: ' + t + ' extension not supported.'),
+                          (r[t] = e)
+                        );
+                      };
+                    }),
+                    (Jt.WebGLProgram =
+                      ((Qn = 0),
+                      function (t, e, n, r) {
+                        var i = t,
+                          o = i.context,
+                          a = n.defines,
+                          s = n.__webglShader.uniforms,
+                          l = n.attributes,
+                          u = n.__webglShader.vertexShader,
+                          c = n.__webglShader.fragmentShader,
+                          A = n.index0AttributeName,
+                          h =
+                            (void 0 === A && !0 === r.morphTargets && (A = 'position'),
+                            'SHADOWMAP_TYPE_BASIC'),
+                          p =
+                            (r.shadowMapType === Jt.PCFShadowMap
+                              ? (h = 'SHADOWMAP_TYPE_PCF')
+                              : r.shadowMapType === Jt.PCFSoftShadowMap &&
+                                (h = 'SHADOWMAP_TYPE_PCF_SOFT'),
+                            'ENVMAP_TYPE_CUBE'),
+                          d = 'ENVMAP_MODE_REFLECTION',
+                          f = 'ENVMAP_BLENDING_MULTIPLY';
+                        if (r.envMap) {
+                          switch (n.envMap.mapping) {
+                            case Jt.CubeReflectionMapping:
+                            case Jt.CubeRefractionMapping:
+                              p = 'ENVMAP_TYPE_CUBE';
+                              break;
+                            case Jt.EquirectangularReflectionMapping:
+                            case Jt.EquirectangularRefractionMapping:
+                              p = 'ENVMAP_TYPE_EQUIREC';
+                              break;
+                            case Jt.SphericalReflectionMapping:
+                              p = 'ENVMAP_TYPE_SPHERE';
+                          }
+                          switch (n.envMap.mapping) {
+                            case Jt.CubeRefractionMapping:
+                            case Jt.EquirectangularRefractionMapping:
+                              d = 'ENVMAP_MODE_REFRACTION';
+                          }
+                          switch (n.combine) {
+                            case Jt.MultiplyOperation:
+                              f = 'ENVMAP_BLENDING_MULTIPLY';
+                              break;
+                            case Jt.MixOperation:
+                              f = 'ENVMAP_BLENDING_MIX';
+                              break;
+                            case Jt.AddOperation:
+                              f = 'ENVMAP_BLENDING_ADD';
+                          }
+                        }
+                        var g,
+                          m,
+                          t = 0 < t.gammaFactor ? t.gammaFactor : 1,
+                          a = (function (t) {
+                            var e,
+                              n,
+                              r = [];
+                            for (n in t) !1 !== (e = t[n]) && r.push('#define ' + n + ' ' + e);
+                            return r.join('\n');
+                          })(a),
+                          v = o.createProgram(),
+                          n =
+                            n instanceof Jt.RawShaderMaterial
+                              ? (g = '')
+                              : ((g = [
+                                  'precision ' + r.precision + ' float;',
+                                  'precision ' + r.precision + ' int;',
+                                  a,
+                                  r.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '',
+                                  i.gammaInput ? '#define GAMMA_INPUT' : '',
+                                  i.gammaOutput ? '#define GAMMA_OUTPUT' : '',
+                                  '#define GAMMA_FACTOR ' + t,
+                                  '#define MAX_DIR_LIGHTS ' + r.maxDirLights,
+                                  '#define MAX_POINT_LIGHTS ' + r.maxPointLights,
+                                  '#define MAX_SPOT_LIGHTS ' + r.maxSpotLights,
+                                  '#define MAX_HEMI_LIGHTS ' + r.maxHemiLights,
+                                  '#define MAX_SHADOWS ' + r.maxShadows,
+                                  '#define MAX_BONES ' + r.maxBones,
+                                  r.map ? '#define USE_MAP' : '',
+                                  r.envMap ? '#define USE_ENVMAP' : '',
+                                  r.envMap ? '#define ' + d : '',
+                                  r.lightMap ? '#define USE_LIGHTMAP' : '',
+                                  r.bumpMap ? '#define USE_BUMPMAP' : '',
+                                  r.normalMap ? '#define USE_NORMALMAP' : '',
+                                  r.specularMap ? '#define USE_SPECULARMAP' : '',
+                                  r.alphaMap ? '#define USE_ALPHAMAP' : '',
+                                  r.vertexColors ? '#define USE_COLOR' : '',
+                                  r.flatShading ? '#define FLAT_SHADED' : '',
+                                  r.skinning ? '#define USE_SKINNING' : '',
+                                  r.useVertexTexture ? '#define BONE_TEXTURE' : '',
+                                  r.morphTargets ? '#define USE_MORPHTARGETS' : '',
+                                  r.morphNormals ? '#define USE_MORPHNORMALS' : '',
+                                  r.wrapAround ? '#define WRAP_AROUND' : '',
+                                  r.doubleSided ? '#define DOUBLE_SIDED' : '',
+                                  r.flipSided ? '#define FLIP_SIDED' : '',
+                                  r.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',
+                                  r.shadowMapEnabled ? '#define ' + h : '',
+                                  r.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '',
+                                  r.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '',
+                                  r.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',
+                                  r.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
+                                  'uniform mat4 modelMatrix;',
+                                  'uniform mat4 modelViewMatrix;',
+                                  'uniform mat4 projectionMatrix;',
+                                  'uniform mat4 viewMatrix;',
+                                  'uniform mat3 normalMatrix;',
+                                  'uniform vec3 cameraPosition;',
+                                  'attribute vec3 position;',
+                                  'attribute vec3 normal;',
+                                  'attribute vec2 uv;',
+                                  'attribute vec2 uv2;',
+                                  '#ifdef USE_COLOR',
+                                  '\tattribute vec3 color;',
+                                  '#endif',
+                                  '#ifdef USE_MORPHTARGETS',
+                                  '\tattribute vec3 morphTarget0;',
+                                  '\tattribute vec3 morphTarget1;',
+                                  '\tattribute vec3 morphTarget2;',
+                                  '\tattribute vec3 morphTarget3;',
+                                  '\t#ifdef USE_MORPHNORMALS',
+                                  '\t\tattribute vec3 morphNormal0;',
+                                  '\t\tattribute vec3 morphNormal1;',
+                                  '\t\tattribute vec3 morphNormal2;',
+                                  '\t\tattribute vec3 morphNormal3;',
+                                  '\t#else',
+                                  '\t\tattribute vec3 morphTarget4;',
+                                  '\t\tattribute vec3 morphTarget5;',
+                                  '\t\tattribute vec3 morphTarget6;',
+                                  '\t\tattribute vec3 morphTarget7;',
+                                  '\t#endif',
+                                  '#endif',
+                                  '#ifdef USE_SKINNING',
+                                  '\tattribute vec4 skinIndex;',
+                                  '\tattribute vec4 skinWeight;',
+                                  '#endif',
+                                  '',
+                                ].join('\n')),
+                                [
+                                  r.bumpMap || r.normalMap || r.flatShading
+                                    ? '#extension GL_OES_standard_derivatives : enable'
+                                    : '',
+                                  'precision ' + r.precision + ' float;',
+                                  'precision ' + r.precision + ' int;',
+                                  a,
+                                  '#define MAX_DIR_LIGHTS ' + r.maxDirLights,
+                                  '#define MAX_POINT_LIGHTS ' + r.maxPointLights,
+                                  '#define MAX_SPOT_LIGHTS ' + r.maxSpotLights,
+                                  '#define MAX_HEMI_LIGHTS ' + r.maxHemiLights,
+                                  '#define MAX_SHADOWS ' + r.maxShadows,
+                                  r.alphaTest ? '#define ALPHATEST ' + r.alphaTest : '',
+                                  i.gammaInput ? '#define GAMMA_INPUT' : '',
+                                  i.gammaOutput ? '#define GAMMA_OUTPUT' : '',
+                                  '#define GAMMA_FACTOR ' + t,
+                                  r.useFog && r.fog ? '#define USE_FOG' : '',
+                                  r.useFog && r.fogExp ? '#define FOG_EXP2' : '',
+                                  r.map ? '#define USE_MAP' : '',
+                                  r.envMap ? '#define USE_ENVMAP' : '',
+                                  r.envMap ? '#define ' + p : '',
+                                  r.envMap ? '#define ' + d : '',
+                                  r.envMap ? '#define ' + f : '',
+                                  r.lightMap ? '#define USE_LIGHTMAP' : '',
+                                  r.bumpMap ? '#define USE_BUMPMAP' : '',
+                                  r.normalMap ? '#define USE_NORMALMAP' : '',
+                                  r.specularMap ? '#define USE_SPECULARMAP' : '',
+                                  r.alphaMap ? '#define USE_ALPHAMAP' : '',
+                                  r.vertexColors ? '#define USE_COLOR' : '',
+                                  r.flatShading ? '#define FLAT_SHADED' : '',
+                                  r.metal ? '#define METAL' : '',
+                                  r.wrapAround ? '#define WRAP_AROUND' : '',
+                                  r.doubleSided ? '#define DOUBLE_SIDED' : '',
+                                  r.flipSided ? '#define FLIP_SIDED' : '',
+                                  r.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',
+                                  r.shadowMapEnabled ? '#define ' + h : '',
+                                  r.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '',
+                                  r.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '',
+                                  r.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
+                                  'uniform mat4 viewMatrix;',
+                                  'uniform vec3 cameraPosition;',
+                                  '',
+                                ].join('\n')),
+                          a = new Jt.WebGLShader(o, o.VERTEX_SHADER, g + u),
+                          i = new Jt.WebGLShader(o, o.FRAGMENT_SHADER, n + c),
+                          t =
+                            (o.attachShader(v, a),
+                            o.attachShader(v, i),
+                            void 0 !== A && o.bindAttribLocation(v, 0, A),
+                            o.linkProgram(v),
+                            o.getProgramInfoLog(v)),
+                          b =
+                            (!1 === o.getProgramParameter(v, o.LINK_STATUS) &&
+                              Jt.error(
+                                'THREE.WebGLProgram: shader error: ' + o.getError(),
+                                'gl.VALIDATE_STATUS',
+                                o.getProgramParameter(v, o.VALIDATE_STATUS),
+                                'gl.getPRogramInfoLog',
+                                t,
+                              ),
+                            o.deleteShader(a),
+                            o.deleteShader(i),
+                            [
+                              'viewMatrix',
+                              'modelViewMatrix',
+                              'projectionMatrix',
+                              'normalMatrix',
+                              'modelMatrix',
+                              'cameraPosition',
+                              'morphTargetInfluences',
+                              'bindMatrix',
+                              'bindMatrixInverse',
+                            ]);
+                        for (m in (r.useVertexTexture
+                          ? (b.push('boneTexture'),
+                            b.push('boneTextureWidth'),
+                            b.push('boneTextureHeight'))
+                          : b.push('boneGlobalMatrices'),
+                        r.logarithmicDepthBuffer && b.push('logDepthBufFC'),
+                        s))
+                          b.push(m);
+                        this.uniforms = (function (t, e, n) {
+                          for (var r = {}, i = 0, o = n.length; i < o; i++) {
+                            var a = n[i];
+                            r[a] = t.getUniformLocation(e, a);
+                          }
+                          return r;
+                        })(o, v, b);
+                        for (
+                          var b = [
+                              'position',
+                              'normal',
+                              'uv',
+                              'uv2',
+                              'tangent',
+                              'color',
+                              'skinIndex',
+                              'skinWeight',
+                              'lineDistance',
+                            ],
+                            y = 0;
+                          y < r.maxMorphTargets;
+                          y++
+                        )
+                          b.push('morphTarget' + y);
+                        for (var w, y = 0; y < r.maxMorphNormals; y++) b.push('morphNormal' + y);
+                        for (w in l) b.push(w);
+                        return (
+                          (this.attributes = (function (t, e, n) {
+                            for (var r = {}, i = 0, o = n.length; i < o; i++) {
+                              var a = n[i];
+                              r[a] = t.getAttribLocation(e, a);
+                            }
+                            return r;
+                          })(o, v, b)),
+                          (this.attributesKeys = Object.keys(this.attributes)),
+                          (this.id = Qn++),
+                          (this.code = e),
+                          (this.usedTimes = 1),
+                          (this.program = v),
+                          (this.vertexShader = a),
+                          (this.fragmentShader = i),
+                          this
+                        );
+                      })),
+                    (Jt.WebGLShader = function (t, e, n) {
+                      e = t.createShader(e);
+                      return (
+                        t.shaderSource(e, n),
+                        t.compileShader(e),
+                        !1 === t.getShaderParameter(e, t.COMPILE_STATUS) &&
+                          Jt.error("THREE.WebGLShader: Shader couldn't compile."),
+                        e
+                      );
+                    }),
+                    (Jt.WebGLState = function (s, l) {
+                      var n = new Uint8Array(16),
+                        r = new Uint8Array(16),
+                        u = null,
+                        c = null,
+                        A = null,
+                        h = null,
+                        p = null,
+                        d = null,
+                        f = null,
+                        e = null,
+                        i = null,
+                        o = null,
+                        a = null,
+                        g = null,
+                        m = null,
+                        v = null,
+                        b = null,
+                        y = null;
+                      (this.initAttributes = function () {
+                        for (var t = 0, e = n.length; t < e; t++) n[t] = 0;
+                      }),
+                        (this.enableAttribute = function (t) {
+                          (n[t] = 1), 0 === r[t] && (s.enableVertexAttribArray(t), (r[t] = 1));
+                        }),
+                        (this.disableUnusedAttributes = function () {
+                          for (var t = 0, e = r.length; t < e; t++)
+                            r[t] !== n[t] && (s.disableVertexAttribArray(t), (r[t] = 0));
+                        }),
+                        (this.setBlending = function (t, e, n, r, i, o, a) {
+                          t !== u &&
+                            (t === Jt.NoBlending
+                              ? s.disable(s.BLEND)
+                              : t === Jt.AdditiveBlending
+                                ? (s.enable(s.BLEND),
+                                  s.blendEquation(s.FUNC_ADD),
+                                  s.blendFunc(s.SRC_ALPHA, s.ONE))
+                                : t === Jt.SubtractiveBlending
+                                  ? (s.enable(s.BLEND),
+                                    s.blendEquation(s.FUNC_ADD),
+                                    s.blendFunc(s.ZERO, s.ONE_MINUS_SRC_COLOR))
+                                  : t === Jt.MultiplyBlending
+                                    ? (s.enable(s.BLEND),
+                                      s.blendEquation(s.FUNC_ADD),
+                                      s.blendFunc(s.ZERO, s.SRC_COLOR))
+                                    : t === Jt.CustomBlending
+                                      ? s.enable(s.BLEND)
+                                      : (s.enable(s.BLEND),
+                                        s.blendEquationSeparate(s.FUNC_ADD, s.FUNC_ADD),
+                                        s.blendFuncSeparate(
+                                          s.SRC_ALPHA,
+                                          s.ONE_MINUS_SRC_ALPHA,
+                                          s.ONE,
+                                          s.ONE_MINUS_SRC_ALPHA,
+                                        )),
+                            (u = t)),
+                            t === Jt.CustomBlending
+                              ? ((i = i || e),
+                                (o = o || n),
+                                (a = a || r),
+                                (e === c && i === p) ||
+                                  (s.blendEquationSeparate(l(e), l(i)), (c = e), (p = i)),
+                                (n === A && r === h && o === d && a === f) ||
+                                  (s.blendFuncSeparate(l(n), l(r), l(o), l(a)),
+                                  (A = n),
+                                  (h = r),
+                                  (d = o),
+                                  (f = a)))
+                              : (f = d = p = h = A = c = null);
+                        }),
+                        (this.setDepthTest = function (t) {
+                          e !== t &&
+                            (t ? s.enable(s.DEPTH_TEST) : s.disable(s.DEPTH_TEST), (e = t));
+                        }),
+                        (this.setDepthWrite = function (t) {
+                          i !== t && (s.depthMask(t), (i = t));
+                        }),
+                        (this.setColorWrite = function (t) {
+                          o !== t && (s.colorMask(t, t, t, t), (o = t));
+                        }),
+                        (this.setDoubleSided = function (t) {
+                          a !== t && (t ? s.disable(s.CULL_FACE) : s.enable(s.CULL_FACE), (a = t));
+                        }),
+                        (this.setFlipSided = function (t) {
+                          g !== t && (t ? s.frontFace(s.CW) : s.frontFace(s.CCW), (g = t));
+                        }),
+                        (this.setLineWidth = function (t) {
+                          t !== m && (s.lineWidth(t), (m = t));
+                        }),
+                        (this.setPolygonOffset = function (t, e, n) {
+                          v !== t &&
+                            (t ? s.enable(s.POLYGON_OFFSET_FILL) : s.disable(s.POLYGON_OFFSET_FILL),
+                            (v = t)),
+                            !t || (b === e && y === n) || (s.polygonOffset(e, n), (b = e), (y = n));
+                        }),
+                        (this.reset = function () {
+                          for (var t = 0; t < r.length; t++) r[t] = 0;
+                          g = a = o = i = e = u = null;
+                        });
+                    }),
+                    (Jt.LensFlarePlugin = function (v, b) {
+                      function y() {
+                        var t,
+                          e,
+                          n,
+                          r = new Float32Array([
+                            -1, -1, 0, 0, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1,
+                          ]),
+                          i = new Uint16Array([0, 1, 2, 0, 2, 3]);
+                        (w = S.createBuffer()),
+                          (E = S.createBuffer()),
+                          S.bindBuffer(S.ARRAY_BUFFER, w),
+                          S.bufferData(S.ARRAY_BUFFER, r, S.STATIC_DRAW),
+                          S.bindBuffer(S.ELEMENT_ARRAY_BUFFER, E),
+                          S.bufferData(S.ELEMENT_ARRAY_BUFFER, i, S.STATIC_DRAW),
+                          (M = S.createTexture()),
+                          (D = S.createTexture()),
+                          S.bindTexture(S.TEXTURE_2D, M),
+                          S.texImage2D(
+                            S.TEXTURE_2D,
+                            0,
+                            S.RGB,
+                            16,
+                            16,
+                            0,
+                            S.RGB,
+                            S.UNSIGNED_BYTE,
+                            null,
+                          ),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_S, S.CLAMP_TO_EDGE),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_T, S.CLAMP_TO_EDGE),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MAG_FILTER, S.NEAREST),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MIN_FILTER, S.NEAREST),
+                          S.bindTexture(S.TEXTURE_2D, D),
+                          S.texImage2D(
+                            S.TEXTURE_2D,
+                            0,
+                            S.RGBA,
+                            16,
+                            16,
+                            0,
+                            S.RGBA,
+                            S.UNSIGNED_BYTE,
+                            null,
+                          ),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_S, S.CLAMP_TO_EDGE),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_T, S.CLAMP_TO_EDGE),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MAG_FILTER, S.NEAREST),
+                          S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MIN_FILTER, S.NEAREST),
+                          (r = (I = 0 < S.getParameter(S.MAX_VERTEX_TEXTURE_IMAGE_UNITS))
+                            ? {
+                                vertexShader: [
+                                  'uniform lowp int renderType;',
+                                  'uniform vec3 screenPosition;',
+                                  'uniform vec2 scale;',
+                                  'uniform float rotation;',
+                                  'uniform sampler2D occlusionMap;',
+                                  'attribute vec2 position;',
+                                  'attribute vec2 uv;',
+                                  'varying vec2 vUV;',
+                                  'varying float vVisibility;',
+                                  'void main() {',
+                                  'vUV = uv;',
+                                  'vec2 pos = position;',
+                                  'if( renderType == 2 ) {',
+                                  'vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );',
+                                  'vVisibility =        visibility.r / 9.0;',
+                                  'vVisibility *= 1.0 - visibility.g / 9.0;',
+                                  'vVisibility *=       visibility.b / 9.0;',
+                                  'vVisibility *= 1.0 - visibility.a / 9.0;',
+                                  'pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;',
+                                  'pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;',
+                                  '}',
+                                  'gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );',
+                                  '}',
+                                ].join('\n'),
+                                fragmentShader: [
+                                  'uniform lowp int renderType;',
+                                  'uniform sampler2D map;',
+                                  'uniform float opacity;',
+                                  'uniform vec3 color;',
+                                  'varying vec2 vUV;',
+                                  'varying float vVisibility;',
+                                  'void main() {',
+                                  'if( renderType == 0 ) {',
+                                  'gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );',
+                                  '} else if( renderType == 1 ) {',
+                                  'gl_FragColor = texture2D( map, vUV );',
+                                  '} else {',
+                                  'vec4 texture = texture2D( map, vUV );',
+                                  'texture.a *= opacity * vVisibility;',
+                                  'gl_FragColor = texture;',
+                                  'gl_FragColor.rgb *= color;',
+                                  '}',
+                                  '}',
+                                ].join('\n'),
+                              }
+                            : {
+                                vertexShader: [
+                                  'uniform lowp int renderType;',
+                                  'uniform vec3 screenPosition;',
+                                  'uniform vec2 scale;',
+                                  'uniform float rotation;',
+                                  'attribute vec2 position;',
+                                  'attribute vec2 uv;',
+                                  'varying vec2 vUV;',
+                                  'void main() {',
+                                  'vUV = uv;',
+                                  'vec2 pos = position;',
+                                  'if( renderType == 2 ) {',
+                                  'pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;',
+                                  'pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;',
+                                  '}',
+                                  'gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );',
+                                  '}',
+                                ].join('\n'),
+                                fragmentShader: [
+                                  'precision mediump float;',
+                                  'uniform lowp int renderType;',
+                                  'uniform sampler2D map;',
+                                  'uniform sampler2D occlusionMap;',
+                                  'uniform float opacity;',
+                                  'uniform vec3 color;',
+                                  'varying vec2 vUV;',
+                                  'void main() {',
+                                  'if( renderType == 0 ) {',
+                                  'gl_FragColor = vec4( texture2D( map, vUV ).rgb, 0.0 );',
+                                  '} else if( renderType == 1 ) {',
+                                  'gl_FragColor = texture2D( map, vUV );',
+                                  '} else {',
+                                  'float visibility = texture2D( occlusionMap, vec2( 0.5, 0.1 ) ).a;',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) ).a;',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) ).a;',
+                                  'visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) ).a;',
+                                  'visibility = ( 1.0 - visibility / 4.0 );',
+                                  'vec4 texture = texture2D( map, vUV );',
+                                  'texture.a *= opacity * visibility;',
+                                  'gl_FragColor = texture;',
+                                  'gl_FragColor.rgb *= color;',
+                                  '}',
+                                  '}',
+                                ].join('\n'),
+                              }),
+                          (i = r),
+                          (r = S.createProgram()),
+                          (t = S.createShader(S.FRAGMENT_SHADER)),
+                          (e = S.createShader(S.VERTEX_SHADER)),
+                          (n = 'precision ' + v.getPrecision() + ' float;\n'),
+                          S.shaderSource(t, n + i.fragmentShader),
+                          S.shaderSource(e, n + i.vertexShader),
+                          S.compileShader(t),
+                          S.compileShader(e),
+                          S.attachShader(r, t),
+                          S.attachShader(r, e),
+                          S.linkProgram(r),
+                          (B = r),
+                          (C = {
+                            vertex: S.getAttribLocation(B, 'position'),
+                            uv: S.getAttribLocation(B, 'uv'),
+                          }),
+                          (x = {
+                            renderType: S.getUniformLocation(B, 'renderType'),
+                            map: S.getUniformLocation(B, 'map'),
+                            occlusionMap: S.getUniformLocation(B, 'occlusionMap'),
+                            opacity: S.getUniformLocation(B, 'opacity'),
+                            color: S.getUniformLocation(B, 'color'),
+                            scale: S.getUniformLocation(B, 'scale'),
+                            rotation: S.getUniformLocation(B, 'rotation'),
+                            screenPosition: S.getUniformLocation(B, 'screenPosition'),
+                          });
+                      }
+                      var w,
+                        E,
+                        B,
+                        C,
+                        x,
+                        I,
+                        M,
+                        D,
+                        S = v.context;
+                      this.render = function (t, e, n, r) {
+                        if (0 !== b.length) {
+                          var i = new Jt.Vector3(),
+                            o = r / n,
+                            a = 0.5 * n,
+                            s = 0.5 * r,
+                            l = 16 / r,
+                            u = new Jt.Vector2(l * o, l),
+                            c = new Jt.Vector3(1, 1, 0),
+                            A = new Jt.Vector2(1, 1);
+                          void 0 === B && y(),
+                            S.useProgram(B),
+                            S.enableVertexAttribArray(C.vertex),
+                            S.enableVertexAttribArray(C.uv),
+                            S.uniform1i(x.occlusionMap, 0),
+                            S.uniform1i(x.map, 1),
+                            S.bindBuffer(S.ARRAY_BUFFER, w),
+                            S.vertexAttribPointer(C.vertex, 2, S.FLOAT, !1, 16, 0),
+                            S.vertexAttribPointer(C.uv, 2, S.FLOAT, !1, 16, 8),
+                            S.bindBuffer(S.ELEMENT_ARRAY_BUFFER, E),
+                            S.disable(S.CULL_FACE),
+                            S.depthMask(!1);
+                          for (var h = 0, p = b.length; h < p; h++) {
+                            u.set((l = 16 / r) * o, l);
+                            var d = b[h];
+                            if (
+                              (i.set(
+                                d.matrixWorld.elements[12],
+                                d.matrixWorld.elements[13],
+                                d.matrixWorld.elements[14],
+                              ),
+                              i.applyMatrix4(e.matrixWorldInverse),
+                              i.applyProjection(e.projectionMatrix),
+                              c.copy(i),
+                              (A.x = c.x * a + a),
+                              (A.y = c.y * s + s),
+                              I || (0 < A.x && A.x < n && 0 < A.y && A.y < r))
+                            ) {
+                              S.activeTexture(S.TEXTURE1),
+                                S.bindTexture(S.TEXTURE_2D, M),
+                                S.copyTexImage2D(
+                                  S.TEXTURE_2D,
+                                  0,
+                                  S.RGB,
+                                  A.x - 8,
+                                  A.y - 8,
+                                  16,
+                                  16,
+                                  0,
+                                ),
+                                S.uniform1i(x.renderType, 0),
+                                S.uniform2f(x.scale, u.x, u.y),
+                                S.uniform3f(x.screenPosition, c.x, c.y, c.z),
+                                S.disable(S.BLEND),
+                                S.enable(S.DEPTH_TEST),
+                                S.drawElements(S.TRIANGLES, 6, S.UNSIGNED_SHORT, 0),
+                                S.activeTexture(S.TEXTURE0),
+                                S.bindTexture(S.TEXTURE_2D, D),
+                                S.copyTexImage2D(
+                                  S.TEXTURE_2D,
+                                  0,
+                                  S.RGBA,
+                                  A.x - 8,
+                                  A.y - 8,
+                                  16,
+                                  16,
+                                  0,
+                                ),
+                                S.uniform1i(x.renderType, 1),
+                                S.disable(S.DEPTH_TEST),
+                                S.activeTexture(S.TEXTURE1),
+                                S.bindTexture(S.TEXTURE_2D, M),
+                                S.drawElements(S.TRIANGLES, 6, S.UNSIGNED_SHORT, 0),
+                                d.positionScreen.copy(c),
+                                d.customUpdateCallback
+                                  ? d.customUpdateCallback(d)
+                                  : d.updateLensFlares(),
+                                S.uniform1i(x.renderType, 2),
+                                S.enable(S.BLEND);
+                              for (var f = 0, g = d.lensFlares.length; f < g; f++) {
+                                var m = d.lensFlares[f];
+                                0.001 < m.opacity &&
+                                  0.001 < m.scale &&
+                                  ((c.x = m.x),
+                                  (c.y = m.y),
+                                  (c.z = m.z),
+                                  (l = (m.size * m.scale) / r),
+                                  (u.x = l * o),
+                                  (u.y = l),
+                                  S.uniform3f(x.screenPosition, c.x, c.y, c.z),
+                                  S.uniform2f(x.scale, u.x, u.y),
+                                  S.uniform1f(x.rotation, m.rotation),
+                                  S.uniform1f(x.opacity, m.opacity),
+                                  S.uniform3f(x.color, m.color.r, m.color.g, m.color.b),
+                                  v.state.setBlending(
+                                    m.blending,
+                                    m.blendEquation,
+                                    m.blendSrc,
+                                    m.blendDst,
+                                  ),
+                                  v.setTexture(m.texture, 1),
+                                  S.drawElements(S.TRIANGLES, 6, S.UNSIGNED_SHORT, 0));
+                              }
+                            }
+                          }
+                          S.enable(S.CULL_FACE),
+                            S.enable(S.DEPTH_TEST),
+                            S.depthMask(!0),
+                            v.resetGLState();
+                        }
+                      };
+                    }),
+                    (Jt.ShadowMapPlugin = function (_, T, R, U) {
+                      var N,
+                        P,
+                        L,
+                        Y,
+                        O = _.context,
+                        G = new Jt.Frustum(),
+                        z = new Jt.Matrix4(),
+                        H = new Jt.Vector3(),
+                        j = new Jt.Vector3(),
+                        V = new Jt.Vector3(),
+                        q = [],
+                        t = Jt.ShaderLib.depthRGBA,
+                        e = Jt.UniformsUtils.clone(t.uniforms);
+                      (N = new Jt.ShaderMaterial({
+                        uniforms: e,
+                        vertexShader: t.vertexShader,
+                        fragmentShader: t.fragmentShader,
+                      })),
+                        (P = new Jt.ShaderMaterial({
+                          uniforms: e,
+                          vertexShader: t.vertexShader,
+                          fragmentShader: t.fragmentShader,
+                          morphTargets: !0,
+                        })),
+                        (L = new Jt.ShaderMaterial({
+                          uniforms: e,
+                          vertexShader: t.vertexShader,
+                          fragmentShader: t.fragmentShader,
+                          skinning: !0,
+                        })),
+                        (Y = new Jt.ShaderMaterial({
+                          uniforms: e,
+                          vertexShader: t.vertexShader,
+                          fragmentShader: t.fragmentShader,
+                          morphTargets: !0,
+                          skinning: !0,
+                        })),
+                        (N._shadowPass = !0),
+                        (P._shadowPass = !0),
+                        (L._shadowPass = !0),
+                        (Y._shadowPass = !0),
+                        (this.render = function (t, e) {
+                          if (!1 !== _.shadowMapEnabled) {
+                            var n,
+                              r,
+                              i,
+                              o,
+                              a,
+                              s,
+                              l,
+                              u,
+                              c,
+                              A,
+                              h,
+                              p,
+                              d,
+                              f,
+                              g,
+                              m,
+                              v,
+                              b,
+                              y,
+                              w,
+                              E = [],
+                              B = 0;
+                            for (
+                              O.clearColor(1, 1, 1, 1),
+                                O.disable(O.BLEND),
+                                O.enable(O.CULL_FACE),
+                                O.frontFace(O.CCW),
+                                _.shadowMapCullFace === Jt.CullFaceFront
+                                  ? O.cullFace(O.FRONT)
+                                  : O.cullFace(O.BACK),
+                                _.state.setDepthTest(!0),
+                                n = 0,
+                                r = T.length;
+                              n < r;
+                              n++
+                            )
+                              if ((v = T[n]).castShadow)
+                                if (v instanceof Jt.DirectionalLight && v.shadowCascade)
+                                  for (a = 0; a < v.shadowCascadeCount; a++)
+                                    v.shadowCascadeArray[a]
+                                      ? (p = v.shadowCascadeArray[a])
+                                      : (((p = (function (t, e) {
+                                          for (
+                                            var n = new Jt.DirectionalLight(),
+                                              r =
+                                                ((n.isVirtual = !0),
+                                                (n.onlyShadow = !0),
+                                                (n.castShadow = !0),
+                                                (n.shadowCameraNear = t.shadowCameraNear),
+                                                (n.shadowCameraFar = t.shadowCameraFar),
+                                                (n.shadowCameraLeft = t.shadowCameraLeft),
+                                                (n.shadowCameraRight = t.shadowCameraRight),
+                                                (n.shadowCameraBottom = t.shadowCameraBottom),
+                                                (n.shadowCameraTop = t.shadowCameraTop),
+                                                (n.shadowCameraVisible = t.shadowCameraVisible),
+                                                (n.shadowDarkness = t.shadowDarkness),
+                                                (n.shadowBias = t.shadowCascadeBias[e]),
+                                                (n.shadowMapWidth = t.shadowCascadeWidth[e]),
+                                                (n.shadowMapHeight = t.shadowCascadeHeight[e]),
+                                                (n.pointsWorld = []),
+                                                (n.pointsFrustum = []),
+                                                n.pointsWorld),
+                                              i = n.pointsFrustum,
+                                              o = 0;
+                                            o < 8;
+                                            o++
+                                          )
+                                            (r[o] = new Jt.Vector3()), (i[o] = new Jt.Vector3());
+                                          var a = t.shadowCascadeNearZ[e],
+                                            t = t.shadowCascadeFarZ[e];
+                                          return (
+                                            i[0].set(-1, -1, a),
+                                            i[1].set(1, -1, a),
+                                            i[2].set(-1, 1, a),
+                                            i[3].set(1, 1, a),
+                                            i[4].set(-1, -1, t),
+                                            i[5].set(1, -1, t),
+                                            i[6].set(-1, 1, t),
+                                            i[7].set(1, 1, t),
+                                            n
+                                          );
+                                        })(v, a)).originalCamera = e),
+                                        (f = new Jt.Gyroscope()).position.copy(
+                                          v.shadowCascadeOffset,
+                                        ),
+                                        f.add(p),
+                                        f.add(p.target),
+                                        e.add(f),
+                                        (v.shadowCascadeArray[a] = p)),
+                                      (f = a),
+                                      (m = g = void 0),
+                                      (g = (d = v).shadowCascadeArray[f]).position.copy(d.position),
+                                      g.target.position.copy(d.target.position),
+                                      g.lookAt(g.target),
+                                      (g.shadowCameraVisible = d.shadowCameraVisible),
+                                      (g.shadowDarkness = d.shadowDarkness),
+                                      (g.shadowBias = d.shadowCascadeBias[f]),
+                                      (m = d.shadowCascadeNearZ[f]),
+                                      (d = d.shadowCascadeFarZ[f]),
+                                      ((f = g.pointsFrustum)[0].z = m),
+                                      (f[1].z = m),
+                                      (f[2].z = m),
+                                      (f[3].z = m),
+                                      (f[4].z = d),
+                                      (f[5].z = d),
+                                      (f[6].z = d),
+                                      (f[7].z = d),
+                                      (E[B] = p),
+                                      B++;
+                                else (E[B] = v), B++;
+                            for (n = 0, r = E.length; n < r; n++) {
+                              if (
+                                ((v = E[n]).shadowMap ||
+                                  ((x = Jt.LinearFilter),
+                                  (x = {
+                                    minFilter: (x =
+                                      _.shadowMapType === Jt.PCFSoftShadowMap
+                                        ? Jt.NearestFilter
+                                        : x),
+                                    magFilter: x,
+                                    format: Jt.RGBAFormat,
+                                  }),
+                                  (v.shadowMap = new Jt.WebGLRenderTarget(
+                                    v.shadowMapWidth,
+                                    v.shadowMapHeight,
+                                    x,
+                                  )),
+                                  (v.shadowMapSize = new Jt.Vector2(
+                                    v.shadowMapWidth,
+                                    v.shadowMapHeight,
+                                  )),
+                                  (v.shadowMatrix = new Jt.Matrix4())),
+                                !v.shadowCamera)
+                              ) {
+                                if (v instanceof Jt.SpotLight)
+                                  v.shadowCamera = new Jt.PerspectiveCamera(
+                                    v.shadowCameraFov,
+                                    v.shadowMapWidth / v.shadowMapHeight,
+                                    v.shadowCameraNear,
+                                    v.shadowCameraFar,
+                                  );
+                                else {
+                                  if (!(v instanceof Jt.DirectionalLight)) {
+                                    Jt.error(
+                                      'THREE.ShadowMapPlugin: Unsupported light type for shadow',
+                                      v,
+                                    );
+                                    continue;
+                                  }
+                                  v.shadowCamera = new Jt.OrthographicCamera(
+                                    v.shadowCameraLeft,
+                                    v.shadowCameraRight,
+                                    v.shadowCameraTop,
+                                    v.shadowCameraBottom,
+                                    v.shadowCameraNear,
+                                    v.shadowCameraFar,
+                                  );
+                                }
+                                t.add(v.shadowCamera), !0 === t.autoUpdate && t.updateMatrixWorld();
+                              }
+                              if (
+                                (v.shadowCameraVisible &&
+                                  !v.cameraHelper &&
+                                  ((v.cameraHelper = new Jt.CameraHelper(v.shadowCamera)),
+                                  t.add(v.cameraHelper)),
+                                v.isVirtual && p.originalCamera == e)
+                              ) {
+                                k = S = D = M = I = x = C = void 0;
+                                var C = e,
+                                  x = v,
+                                  I = x.shadowCamera,
+                                  M = x.pointsFrustum,
+                                  D = x.pointsWorld;
+                                H.set(1 / 0, 1 / 0, 1 / 0), j.set(-1 / 0, -1 / 0, -1 / 0);
+                                for (var S = 0; S < 8; S++) {
+                                  var k = D[S];
+                                  k.copy(M[S]),
+                                    k.unproject(C),
+                                    k.applyMatrix4(I.matrixWorldInverse),
+                                    k.x < H.x && (H.x = k.x),
+                                    k.x > j.x && (j.x = k.x),
+                                    k.y < H.y && (H.y = k.y),
+                                    k.y > j.y && (j.y = k.y),
+                                    k.z < H.z && (H.z = k.z),
+                                    k.z > j.z && (j.z = k.z);
+                                }
+                                (I.left = H.x),
+                                  (I.right = j.x),
+                                  (I.top = j.y),
+                                  (I.bottom = H.y),
+                                  I.updateProjectionMatrix();
+                              }
+                              for (
+                                s = v.shadowMap,
+                                  l = v.shadowMatrix,
+                                  (u = v.shadowCamera).position.setFromMatrixPosition(
+                                    v.matrixWorld,
+                                  ),
+                                  V.setFromMatrixPosition(v.target.matrixWorld),
+                                  u.lookAt(V),
+                                  u.updateMatrixWorld(),
+                                  u.matrixWorldInverse.getInverse(u.matrixWorld),
+                                  v.cameraHelper &&
+                                    (v.cameraHelper.visible = v.shadowCameraVisible),
+                                  v.shadowCameraVisible && v.cameraHelper.update(),
+                                  l.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1),
+                                  l.multiply(u.projectionMatrix),
+                                  l.multiply(u.matrixWorldInverse),
+                                  z.multiplyMatrices(u.projectionMatrix, u.matrixWorldInverse),
+                                  G.setFromMatrix(z),
+                                  _.setRenderTarget(s),
+                                  _.clear(),
+                                  q.length = 0,
+                                  !(function t(e, n, r) {
+                                    if (n.visible) {
+                                      var i = R[n.id];
+                                      if (
+                                        i &&
+                                        n.castShadow &&
+                                        (!1 === n.frustumCulled || !0 === G.intersectsObject(n))
+                                      )
+                                        for (var o = 0, a = i.length; o < a; o++) {
+                                          var s = i[o];
+                                          n._modelViewMatrix.multiplyMatrices(
+                                            r.matrixWorldInverse,
+                                            n.matrixWorld,
+                                          ),
+                                            q.push(s);
+                                        }
+                                      for (o = 0, a = n.children.length; o < a; o++)
+                                        t(e, n.children[o], r);
+                                    }
+                                  })(t, t, u),
+                                  i = 0,
+                                  o = q.length;
+                                i < o;
+                                i++
+                              )
+                                (A = q[i]),
+                                  (h = A.object),
+                                  (c = A.buffer),
+                                  (w =
+                                    (w = h).material instanceof Jt.MeshFaceMaterial
+                                      ? w.material.materials[0]
+                                      : w.material),
+                                  (b =
+                                    void 0 !== h.geometry.morphTargets &&
+                                    0 < h.geometry.morphTargets.length &&
+                                    w.morphTargets),
+                                  (y = h instanceof Jt.SkinnedMesh && w.skinning),
+                                  (y = h.customDepthMaterial || (y ? (b ? Y : L) : b ? P : N)),
+                                  _.setMaterialFaces(w),
+                                  c instanceof Jt.BufferGeometry
+                                    ? _.renderBufferDirect(u, T, null, y, c, h)
+                                    : _.renderBuffer(u, T, null, y, c, h);
+                              for (i = 0, o = U.length; i < o; i++)
+                                (A = U[i]),
+                                  (h = A.object).visible &&
+                                    h.castShadow &&
+                                    (h._modelViewMatrix.multiplyMatrices(
+                                      u.matrixWorldInverse,
+                                      h.matrixWorld,
+                                    ),
+                                    _.renderImmediateObject(u, T, null, N, h));
+                            }
+                            var F = _.getClearColor(),
+                              Q = _.getClearAlpha();
+                            O.clearColor(F.r, F.g, F.b, Q),
+                              O.enable(O.BLEND),
+                              _.shadowMapCullFace === Jt.CullFaceFront && O.cullFace(O.BACK),
+                              _.resetGLState();
+                          }
+                        });
+                    }),
+                    (Jt.SpritePlugin = function (A, h) {
+                      function p() {
+                        var t = new Float32Array([
+                            -0.5, -0.5, 0, 0, 0.5, -0.5, 1, 0, 0.5, 0.5, 1, 1, -0.5, 0.5, 0, 1,
+                          ]),
+                          e = new Uint16Array([0, 1, 2, 0, 2, 3]);
+                        (d = y.createBuffer()),
+                          (f = y.createBuffer()),
+                          y.bindBuffer(y.ARRAY_BUFFER, d),
+                          y.bufferData(y.ARRAY_BUFFER, t, y.STATIC_DRAW),
+                          y.bindBuffer(y.ELEMENT_ARRAY_BUFFER, f),
+                          y.bufferData(y.ELEMENT_ARRAY_BUFFER, e, y.STATIC_DRAW),
+                          (t = y.createProgram()),
+                          (e = y.createShader(y.VERTEX_SHADER)),
+                          (n = y.createShader(y.FRAGMENT_SHADER)),
+                          y.shaderSource(
+                            e,
+                            [
+                              'precision ' + A.getPrecision() + ' float;',
+                              'uniform mat4 modelViewMatrix;',
+                              'uniform mat4 projectionMatrix;',
+                              'uniform float rotation;',
+                              'uniform vec2 scale;',
+                              'uniform vec2 uvOffset;',
+                              'uniform vec2 uvScale;',
+                              'attribute vec2 position;',
+                              'attribute vec2 uv;',
+                              'varying vec2 vUV;',
+                              'void main() {',
+                              'vUV = uvOffset + uv * uvScale;',
+                              'vec2 alignedPosition = position * scale;',
+                              'vec2 rotatedPosition;',
+                              'rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;',
+                              'rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;',
+                              'vec4 finalPosition;',
+                              'finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );',
+                              'finalPosition.xy += rotatedPosition;',
+                              'finalPosition = projectionMatrix * finalPosition;',
+                              'gl_Position = finalPosition;',
+                              '}',
+                            ].join('\n'),
+                          ),
+                          y.shaderSource(
+                            n,
+                            [
+                              'precision ' + A.getPrecision() + ' float;',
+                              'uniform vec3 color;',
+                              'uniform sampler2D map;',
+                              'uniform float opacity;',
+                              'uniform int fogType;',
+                              'uniform vec3 fogColor;',
+                              'uniform float fogDensity;',
+                              'uniform float fogNear;',
+                              'uniform float fogFar;',
+                              'uniform float alphaTest;',
+                              'varying vec2 vUV;',
+                              'void main() {',
+                              'vec4 texture = texture2D( map, vUV );',
+                              'if ( texture.a < alphaTest ) discard;',
+                              'gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );',
+                              'if ( fogType > 0 ) {',
+                              'float depth = gl_FragCoord.z / gl_FragCoord.w;',
+                              'float fogFactor = 0.0;',
+                              'if ( fogType == 1 ) {',
+                              'fogFactor = smoothstep( fogNear, fogFar, depth );',
+                              '} else {',
+                              'const float LOG2 = 1.442695;',
+                              'float fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );',
+                              'fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );',
+                              '}',
+                              'gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );',
+                              '}',
+                              '}',
+                            ].join('\n'),
+                          ),
+                          y.compileShader(e),
+                          y.compileShader(n),
+                          y.attachShader(t, e),
+                          y.attachShader(t, n),
+                          y.linkProgram(t),
+                          (g = t),
+                          (m = {
+                            position: y.getAttribLocation(g, 'position'),
+                            uv: y.getAttribLocation(g, 'uv'),
+                          }),
+                          (v = {
+                            uvOffset: y.getUniformLocation(g, 'uvOffset'),
+                            uvScale: y.getUniformLocation(g, 'uvScale'),
+                            rotation: y.getUniformLocation(g, 'rotation'),
+                            scale: y.getUniformLocation(g, 'scale'),
+                            color: y.getUniformLocation(g, 'color'),
+                            map: y.getUniformLocation(g, 'map'),
+                            opacity: y.getUniformLocation(g, 'opacity'),
+                            modelViewMatrix: y.getUniformLocation(g, 'modelViewMatrix'),
+                            projectionMatrix: y.getUniformLocation(g, 'projectionMatrix'),
+                            fogType: y.getUniformLocation(g, 'fogType'),
+                            fogDensity: y.getUniformLocation(g, 'fogDensity'),
+                            fogNear: y.getUniformLocation(g, 'fogNear'),
+                            fogFar: y.getUniformLocation(g, 'fogFar'),
+                            fogColor: y.getUniformLocation(g, 'fogColor'),
+                            alphaTest: y.getUniformLocation(g, 'alphaTest'),
+                          });
+                        ((e = document.createElement('canvas')).width = 8), (e.height = 8);
+                        var n = e.getContext('2d');
+                        (n.fillStyle = 'white'),
+                          n.fillRect(0, 0, 8, 8),
+                          ((b = new Jt.Texture(e)).needsUpdate = !0);
+                      }
+                      var d,
+                        f,
+                        g,
+                        m,
+                        v,
+                        b,
+                        y = A.context,
+                        w = new Jt.Vector3(),
+                        E = new Jt.Quaternion(),
+                        B = new Jt.Vector3();
+                      function C(t, e) {
+                        return t.z !== e.z ? e.z - t.z : e.id - t.id;
+                      }
+                      this.render = function (t, e) {
+                        if (0 !== h.length) {
+                          void 0 === g && p(),
+                            y.useProgram(g),
+                            y.enableVertexAttribArray(m.position),
+                            y.enableVertexAttribArray(m.uv),
+                            y.disable(y.CULL_FACE),
+                            y.enable(y.BLEND),
+                            y.bindBuffer(y.ARRAY_BUFFER, d),
+                            y.vertexAttribPointer(m.position, 2, y.FLOAT, !1, 16, 0),
+                            y.vertexAttribPointer(m.uv, 2, y.FLOAT, !1, 16, 8),
+                            y.bindBuffer(y.ELEMENT_ARRAY_BUFFER, f),
+                            y.uniformMatrix4fv(v.projectionMatrix, !1, e.projectionMatrix.elements),
+                            y.activeTexture(y.TEXTURE0),
+                            y.uniform1i(v.map, 0);
+                          var n = 0,
+                            r = 0,
+                            i = t.fog;
+                          i
+                            ? (y.uniform3f(v.fogColor, i.color.r, i.color.g, i.color.b),
+                              i instanceof Jt.Fog
+                                ? (y.uniform1f(v.fogNear, i.near),
+                                  y.uniform1f(v.fogFar, i.far),
+                                  y.uniform1i(v.fogType, 1),
+                                  (r = n = 1))
+                                : i instanceof Jt.FogExp2 &&
+                                  (y.uniform1f(v.fogDensity, i.density),
+                                  y.uniform1i(v.fogType, 2),
+                                  (r = n = 2)))
+                            : (y.uniform1i(v.fogType, 0), (r = n = 0));
+                          for (var o = 0, a = h.length; o < a; o++)
+                            (l = h[o])._modelViewMatrix.multiplyMatrices(
+                              e.matrixWorldInverse,
+                              l.matrixWorld,
+                            ),
+                              (l.z = -l._modelViewMatrix.elements[14]);
+                          h.sort(C);
+                          for (var s = [], o = 0, a = h.length; o < a; o++) {
+                            var l,
+                              u = (l = h[o]).material,
+                              c =
+                                (y.uniform1f(v.alphaTest, u.alphaTest),
+                                y.uniformMatrix4fv(
+                                  v.modelViewMatrix,
+                                  !1,
+                                  l._modelViewMatrix.elements,
+                                ),
+                                l.matrixWorld.decompose(w, E, B),
+                                (s[0] = B.x),
+                                (s[1] = B.y),
+                                0);
+                            n !== (c = t.fog && u.fog ? r : c) &&
+                              (y.uniform1i(v.fogType, c), (n = c)),
+                              null !== u.map
+                                ? (y.uniform2f(v.uvOffset, u.map.offset.x, u.map.offset.y),
+                                  y.uniform2f(v.uvScale, u.map.repeat.x, u.map.repeat.y))
+                                : (y.uniform2f(v.uvOffset, 0, 0), y.uniform2f(v.uvScale, 1, 1)),
+                              y.uniform1f(v.opacity, u.opacity),
+                              y.uniform3f(v.color, u.color.r, u.color.g, u.color.b),
+                              y.uniform1f(v.rotation, u.rotation),
+                              y.uniform2fv(v.scale, s),
+                              A.state.setBlending(
+                                u.blending,
+                                u.blendEquation,
+                                u.blendSrc,
+                                u.blendDst,
+                              ),
+                              A.state.setDepthTest(u.depthTest),
+                              A.state.setDepthWrite(u.depthWrite),
+                              u.map && u.map.image && u.map.image.width
+                                ? A.setTexture(u.map, 0)
+                                : A.setTexture(b, 0),
+                              y.drawElements(y.TRIANGLES, 6, y.UNSIGNED_SHORT, 0);
+                          }
+                          y.enable(y.CULL_FACE), A.resetGLState();
+                        }
+                      };
+                    }),
+                    (Jt.GeometryUtils = {
+                      merge: function (t, e, n) {
+                        var r;
+                        Jt.warn(
+                          'THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.',
+                        ),
+                          e instanceof Jt.Mesh &&
+                            (e.matrixAutoUpdate && e.updateMatrix(),
+                            (r = e.matrix),
+                            (e = e.geometry)),
+                          t.merge(e, r, n);
+                      },
+                      center: function (t) {
+                        return (
+                          Jt.warn(
+                            'THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.',
+                          ),
+                          t.center()
+                        );
+                      },
+                    }),
+                    (Jt.ImageUtils = {
+                      crossOrigin: void 0,
+                      loadTexture: function (t, e, n, r) {
+                        var i = new Jt.ImageLoader(),
+                          o = ((i.crossOrigin = this.crossOrigin), new Jt.Texture(void 0, e));
+                        return (
+                          i.load(
+                            t,
+                            function (t) {
+                              (o.image = t), (o.needsUpdate = !0), n && n(o);
+                            },
+                            void 0,
+                            function (t) {
+                              r && r(t);
+                            },
+                          ),
+                          (o.sourceFile = t),
+                          o
+                        );
+                      },
+                      loadTextureCube: function (t, e, n, r) {
+                        for (
+                          var i = new Jt.ImageLoader(),
+                            o = ((i.crossOrigin = this.crossOrigin), new Jt.CubeTexture([], e)),
+                            a = ((o.flipY = !1), 0),
+                            s = 0,
+                            l = t.length;
+                          s < l;
+                          ++s
+                        )
+                          !(function (e) {
+                            i.load(
+                              t[e],
+                              function (t) {
+                                (o.images[e] = t),
+                                  6 === (a += 1) && ((o.needsUpdate = !0), n && n(o));
+                              },
+                              void 0,
+                              r,
+                            );
+                          })(s);
+                        return o;
+                      },
+                      loadCompressedTexture: function () {
+                        Jt.error(
+                          'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.',
+                        );
+                      },
+                      loadCompressedTextureCube: function () {
+                        Jt.error(
+                          'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.',
+                        );
+                      },
+                      getNormalMap: function (t, e) {
+                        for (
+                          var n = function (t, e) {
+                              return [t[0] - e[0], t[1] - e[1], t[2] - e[2]];
+                            },
+                            r = ((e |= 1), t.width),
+                            i = t.height,
+                            o = document.createElement('canvas'),
+                            a = ((o.width = r), (o.height = i), o.getContext('2d')),
+                            s = (a.drawImage(t, 0, 0), a.getImageData(0, 0, r, i).data),
+                            t = a.createImageData(r, i),
+                            l = t.data,
+                            u = 0;
+                          u < r;
+                          u++
+                        )
+                          for (var c = 0; c < i; c++) {
+                            for (
+                              var A = c - 1 < 0 ? 0 : c - 1,
+                                h = i - 1 < c + 1 ? i - 1 : c + 1,
+                                p = u - 1 < 0 ? 0 : u - 1,
+                                d = r - 1 < u + 1 ? r - 1 : u + 1,
+                                f = [],
+                                g = [0, 0, (s[4 * (c * r + u)] / 255) * e],
+                                m =
+                                  (f.push([-1, 0, (s[4 * (c * r + p)] / 255) * e]),
+                                  f.push([-1, -1, (s[4 * (A * r + p)] / 255) * e]),
+                                  f.push([0, -1, (s[4 * (A * r + u)] / 255) * e]),
+                                  f.push([1, -1, (s[4 * (A * r + d)] / 255) * e]),
+                                  f.push([1, 0, (s[4 * (c * r + d)] / 255) * e]),
+                                  f.push([1, 1, (s[4 * (h * r + d)] / 255) * e]),
+                                  f.push([0, 1, (s[4 * (h * r + u)] / 255) * e]),
+                                  f.push([-1, 1, (s[4 * (h * r + p)] / 255) * e]),
+                                  []),
+                                v = f.length,
+                                b = 0;
+                              b < v;
+                              b++
+                            ) {
+                              var y = f[b],
+                                w = f[(b + 1) % v],
+                                y = n(y, g),
+                                w = n(w, g);
+                              m.push(
+                                ((y = [
+                                  y[1] * w[2] - y[2] * w[1],
+                                  y[2] * w[0] - y[0] * w[2],
+                                  y[0] * w[1] - y[1] * w[0],
+                                ]),
+                                (w = void 0),
+                                (w = Math.sqrt(y[0] * y[0] + y[1] * y[1] + y[2] * y[2])),
+                                [y[0] / w, y[1] / w, y[2] / w]),
+                              );
+                            }
+                            for (var E = [0, 0, 0], b = 0; b < m.length; b++)
+                              (E[0] += m[b][0]), (E[1] += m[b][1]), (E[2] += m[b][2]);
+                            (E[0] /= m.length), (E[1] /= m.length), (E[2] /= m.length);
+                            A = 4 * (c * r + u);
+                            (l[A] = (((E[0] + 1) / 2) * 255) | 0),
+                              (l[1 + A] = (((E[1] + 1) / 2) * 255) | 0),
+                              (l[2 + A] = (255 * E[2]) | 0),
+                              (l[3 + A] = 255);
+                          }
+                        return a.putImageData(t, 0, 0), o;
+                      },
+                      generateDataTexture: function (t, e, n) {
+                        for (
+                          var r = t * e,
+                            i = new Uint8Array(3 * r),
+                            o = Math.floor(255 * n.r),
+                            a = Math.floor(255 * n.g),
+                            s = Math.floor(255 * n.b),
+                            l = 0;
+                          l < r;
+                          l++
+                        )
+                          (i[3 * l] = o), (i[3 * l + 1] = a), (i[3 * l + 2] = s);
+                        n = new Jt.DataTexture(i, t, e, Jt.RGBFormat);
+                        return (n.needsUpdate = !0), n;
+                      },
+                    }),
+                    (Jt.SceneUtils = {
+                      createMultiMaterialObject: function (t, e) {
+                        for (var n = new Jt.Object3D(), r = 0, i = e.length; r < i; r++)
+                          n.add(new Jt.Mesh(t, e[r]));
+                        return n;
+                      },
+                      detach: function (t, e, n) {
+                        t.applyMatrix(e.matrixWorld), e.remove(t), n.add(t);
+                      },
+                      attach: function (t, e, n) {
+                        var r = new Jt.Matrix4();
+                        r.getInverse(n.matrixWorld), t.applyMatrix(r), e.remove(t), n.add(t);
+                      },
+                    }),
+                    (Jt.FontUtils = {
+                      faces: {},
+                      face: 'helvetiker',
+                      weight: 'normal',
+                      style: 'normal',
+                      size: 150,
+                      divisions: 10,
+                      getFace: function () {
+                        try {
+                          return this.faces[this.face][this.weight][this.style];
+                        } catch (t) {
+                          throw (
+                            'The font ' +
+                            this.face +
+                            ' with ' +
+                            this.weight +
+                            ' weight and ' +
+                            this.style +
+                            ' style is missing.'
+                          );
+                        }
+                      },
+                      loadFace: function (t) {
+                        var e = t.familyName.toLowerCase();
+                        return (
+                          (this.faces[e] = this.faces[e] || {}),
+                          (this.faces[e][t.cssFontWeight] = this.faces[e][t.cssFontWeight] || {}),
+                          (this.faces[e][t.cssFontWeight][t.cssFontStyle] = t),
+                          (this.faces[e][t.cssFontWeight][t.cssFontStyle] = t)
+                        );
+                      },
+                      drawText: function (t) {
+                        for (
+                          var e = this.getFace(),
+                            n = this.size / e.resolution,
+                            r = 0,
+                            i = String(t).split(''),
+                            o = i.length,
+                            a = [],
+                            s = 0;
+                          s < o;
+                          s++
+                        ) {
+                          var l = new Jt.Path(),
+                            l = this.extractGlyphPoints(i[s], e, n, r, l);
+                          (r += l.offset), a.push(l.path);
+                        }
+                        return { paths: a, offset: r / 2 };
+                      },
+                      extractGlyphPoints: function (t, e, n, r, i) {
+                        var o,
+                          a,
+                          s,
+                          l,
+                          u,
+                          c,
+                          A,
+                          h,
+                          p,
+                          d,
+                          f,
+                          g,
+                          m,
+                          v,
+                          b,
+                          y,
+                          w,
+                          E,
+                          B = [],
+                          t = e.glyphs[t] || e.glyphs['?'];
+                        if (t) {
+                          if (t.o)
+                            for (
+                              u = (l = t._cachedOutline || (t._cachedOutline = t.o.split(' ')))
+                                .length,
+                                A = c = n,
+                                o = 0;
+                              o < u;
+
+                            )
+                              switch (l[o++]) {
+                                case 'm':
+                                  (h = l[o++] * c + r), (p = l[o++] * A), i.moveTo(h, p);
+                                  break;
+                                case 'l':
+                                  (h = l[o++] * c + r), (p = l[o++] * A), i.lineTo(h, p);
+                                  break;
+                                case 'q':
+                                  if (
+                                    ((d = l[o++] * c + r),
+                                    (f = l[o++] * A),
+                                    (v = l[o++] * c + r),
+                                    (b = l[o++] * A),
+                                    i.quadraticCurveTo(v, b, d, f),
+                                    (E = B[B.length - 1]))
+                                  )
+                                    for (g = E.x, m = E.y, a = 1, s = this.divisions; a <= s; a++) {
+                                      var C = a / s;
+                                      Jt.Shape.Utils.b2(C, g, v, d), Jt.Shape.Utils.b2(C, m, b, f);
+                                    }
+                                  break;
+                                case 'b':
+                                  if (
+                                    ((d = l[o++] * c + r),
+                                    (f = l[o++] * A),
+                                    (v = l[o++] * c + r),
+                                    (b = l[o++] * A),
+                                    (y = l[o++] * c + r),
+                                    (w = l[o++] * A),
+                                    i.bezierCurveTo(v, b, y, w, d, f),
+                                    (E = B[B.length - 1]))
+                                  )
+                                    for (g = E.x, m = E.y, a = 1, s = this.divisions; a <= s; a++) {
+                                      C = a / s;
+                                      Jt.Shape.Utils.b3(C, g, v, y, d),
+                                        Jt.Shape.Utils.b3(C, m, b, w, f);
+                                    }
+                              }
+                          return { offset: t.ha * n, path: i };
+                        }
+                      },
+                    }),
+                    (Jt.FontUtils.generateShapes = function (t, e) {
+                      var n = void 0 !== (e = e || {}).size ? e.size : 100,
+                        r = void 0 !== e.curveSegments ? e.curveSegments : 4,
+                        i = void 0 !== e.font ? e.font : 'helvetiker',
+                        o = void 0 !== e.weight ? e.weight : 'normal',
+                        e = void 0 !== e.style ? e.style : 'normal';
+                      (Jt.FontUtils.size = n),
+                        (Jt.FontUtils.divisions = r),
+                        (Jt.FontUtils.face = i),
+                        (Jt.FontUtils.weight = o),
+                        (Jt.FontUtils.style = e);
+                      for (
+                        var a = Jt.FontUtils.drawText(t).paths, s = [], l = 0, u = a.length;
+                        l < u;
+                        l++
+                      )
+                        Array.prototype.push.apply(s, a[l].toShapes());
+                      return s;
+                    }),
+                    (E = Jt.FontUtils),
+                    (_n = function (t) {
+                      for (var e = t.length, n = 0, r = e - 1, i = 0; i < e; r = i++)
+                        n += t[r].x * t[i].y - t[i].x * t[r].y;
+                      return 0.5 * n;
+                    }),
+                    (Tn = function (t, e, n, r, i, o) {
+                      var a,
+                        s,
+                        l,
+                        u,
+                        c,
+                        A,
+                        h,
+                        p,
+                        d,
+                        f = t[o[e]].x,
+                        g = t[o[e]].y,
+                        m = t[o[n]].x,
+                        v = t[o[n]].y,
+                        b = t[o[r]].x,
+                        y = t[o[r]].y;
+                      if ((m - f) * (y - g) - (v - g) * (b - f) < 1e-10) return !1;
+                      for (
+                        u = b - m, c = y - v, A = f - b, h = g - y, p = m - f, d = v - g, a = 0;
+                        a < i;
+                        a++
+                      )
+                        if (
+                          ((s = t[o[a]].x),
+                          (l = t[o[a]].y),
+                          !((s === f && l === g) || (s === m && l === v) || (s === b && l === y)) &&
+                            -1e-10 <= u * (l - v) - c * (s - m) &&
+                            -1e-10 <= A * (l - y) - h * (s - b) &&
+                            -1e-10 <= p * (l - g) - d * (s - f))
+                        )
+                          return !1;
+                      return !0;
+                    }),
+                    (E.Triangulate = function (t, e) {
+                      var n = t.length;
+                      if (n < 3) return null;
+                      var r,
+                        i,
+                        o = [],
+                        a = [],
+                        s = [];
+                      if (0 < _n(t)) for (c = 0; c < n; c++) a[c] = c;
+                      else for (c = 0; c < n; c++) a[c] = n - 1 - c;
+                      for (var l = n, u = 2 * l, c = l - 1; 2 < l; ) {
+                        if (u-- <= 0)
+                          return (
+                            Jt.warn(
+                              'THREE.FontUtils: Warning, unable to triangulate polygon! in Triangulate.process()',
+                            ),
+                            e ? s : o
+                          );
+                        if (
+                          Tn(
+                            t,
+                            (r = l <= (r = c) ? 0 : r),
+                            (c = l <= (c = r + 1) ? 0 : c),
+                            (i = l <= (i = c + 1) ? 0 : i),
+                            l,
+                            a,
+                          )
+                        ) {
+                          var A,
+                            h,
+                            p = a[r],
+                            d = a[c],
+                            f = a[i];
+                          for (
+                            o.push([t[p], t[d], t[f]]), s.push([a[r], a[c], a[i]]), h = (A = c) + 1;
+                            h < l;
+                            A++, h++
+                          )
+                            a[A] = a[h];
+                          u = 2 * --l;
+                        }
+                      }
+                      return e ? s : o;
+                    }),
+                    (E.Triangulate.area = _n),
+                    (self._typeface_js = {
+                      faces: Jt.FontUtils.faces,
+                      loadFace: Jt.FontUtils.loadFace,
+                    }),
+                    (Jt.typeface_js = self._typeface_js),
+                    (Jt.Audio = function (t) {
+                      Jt.Object3D.call(this),
+                        (this.type = 'Audio'),
+                        (this.context = t.context),
+                        (this.source = this.context.createBufferSource()),
+                        (this.source.onended = this.onEnded.bind(this)),
+                        (this.gain = this.context.createGain()),
+                        this.gain.connect(this.context.destination),
+                        (this.panner = this.context.createPanner()),
+                        this.panner.connect(this.gain),
+                        (this.autoplay = !1),
+                        (this.startTime = 0),
+                        (this.isPlaying = !1);
+                    }),
+                    (Jt.Audio.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Audio.prototype.constructor = Jt.Audio),
+                    (Jt.Audio.prototype.load = function (t) {
+                      var e = this,
+                        n = new XMLHttpRequest();
+                      return (
+                        n.open('GET', t, !0),
+                        (n.responseType = 'arraybuffer'),
+                        (n.onload = function (t) {
+                          e.context.decodeAudioData(this.response, function (t) {
+                            (e.source.buffer = t), e.autoplay && e.play();
+                          });
+                        }),
+                        n.send(),
+                        this
+                      );
+                    }),
+                    (Jt.Audio.prototype.play = function () {
+                      var t;
+                      !0 === this.isPlaying
+                        ? Jt.warn('THREE.Audio: Audio is already playing.')
+                        : (((t = this.context.createBufferSource()).buffer = this.source.buffer),
+                          (t.loop = this.source.loop),
+                          (t.onended = this.source.onended),
+                          t.connect(this.panner),
+                          t.start(0, this.startTime),
+                          (this.isPlaying = !0),
+                          (this.source = t));
+                    }),
+                    (Jt.Audio.prototype.pause = function () {
+                      this.source.stop(), (this.startTime = this.context.currentTime);
+                    }),
+                    (Jt.Audio.prototype.stop = function () {
+                      this.source.stop(), (this.startTime = 0);
+                    }),
+                    (Jt.Audio.prototype.onEnded = function () {
+                      this.isPlaying = !1;
+                    }),
+                    (Jt.Audio.prototype.setLoop = function (t) {
+                      this.source.loop = t;
+                    }),
+                    (Jt.Audio.prototype.setRefDistance = function (t) {
+                      this.panner.refDistance = t;
+                    }),
+                    (Jt.Audio.prototype.setRolloffFactor = function (t) {
+                      this.panner.rolloffFactor = t;
+                    }),
+                    (Jt.Audio.prototype.setVolume = function (t) {
+                      this.gain.gain.value = t;
+                    }),
+                    (Jt.Audio.prototype.updateMatrixWorld =
+                      ((Rn = new Jt.Vector3()),
+                      function (t) {
+                        Jt.Object3D.prototype.updateMatrixWorld.call(this, t),
+                          Rn.setFromMatrixPosition(this.matrixWorld),
+                          this.panner.setPosition(Rn.x, Rn.y, Rn.z);
+                      })),
+                    (Jt.AudioListener = function () {
+                      Jt.Object3D.call(this),
+                        (this.type = 'AudioListener'),
+                        (this.context = new (window.AudioContext || window.webkitAudioContext)());
+                    }),
+                    (Jt.AudioListener.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.AudioListener.prototype.constructor = Jt.AudioListener),
+                    (Jt.AudioListener.prototype.updateMatrixWorld =
+                      ((Un = new Jt.Vector3()),
+                      (Nn = new Jt.Quaternion()),
+                      (Pn = new Jt.Vector3()),
+                      (Ln = new Jt.Vector3()),
+                      (Yn = new Jt.Vector3()),
+                      (On = new Jt.Vector3()),
+                      function (t) {
+                        Jt.Object3D.prototype.updateMatrixWorld.call(this, t);
+                        var t = this.context.listener,
+                          e = this.up;
+                        this.matrixWorld.decompose(Un, Nn, Pn),
+                          Ln.set(0, 0, -1).applyQuaternion(Nn),
+                          Yn.subVectors(Un, On),
+                          t.setPosition(Un.x, Un.y, Un.z),
+                          t.setOrientation(Ln.x, Ln.y, Ln.z, e.x, e.y, e.z),
+                          t.setVelocity(Yn.x, Yn.y, Yn.z),
+                          On.copy(Un);
+                      })),
+                    (Jt.Curve = function () {}),
+                    (Jt.Curve.prototype.getPoint = function (t) {
+                      return Jt.warn('THREE.Curve: Warning, getPoint() not implemented!'), null;
+                    }),
+                    (Jt.Curve.prototype.getPointAt = function (t) {
+                      t = this.getUtoTmapping(t);
+                      return this.getPoint(t);
+                    }),
+                    (Jt.Curve.prototype.getPoints = function (t) {
+                      t = t || 5;
+                      for (var e = [], n = 0; n <= t; n++) e.push(this.getPoint(n / t));
+                      return e;
+                    }),
+                    (Jt.Curve.prototype.getSpacedPoints = function (t) {
+                      t = t || 5;
+                      for (var e = [], n = 0; n <= t; n++) e.push(this.getPointAt(n / t));
+                      return e;
+                    }),
+                    (Jt.Curve.prototype.getLength = function () {
+                      var t = this.getLengths();
+                      return t[t.length - 1];
+                    }),
+                    (Jt.Curve.prototype.getLengths = function (t) {
+                      if (
+                        ((t = t || this.__arcLengthDivisions || 200),
+                        this.cacheArcLengths &&
+                          this.cacheArcLengths.length == t + 1 &&
+                          !this.needsUpdate)
+                      )
+                        return this.cacheArcLengths;
+                      this.needsUpdate = !1;
+                      var e,
+                        n,
+                        r = [],
+                        i = this.getPoint(0),
+                        o = 0;
+                      for (r.push(0), n = 1; n <= t; n++)
+                        (o += (e = this.getPoint(n / t)).distanceTo(i)), r.push(o), (i = e);
+                      return (this.cacheArcLengths = r);
+                    }),
+                    (Jt.Curve.prototype.updateArcLengths = function () {
+                      (this.needsUpdate = !0), this.getLengths();
+                    }),
+                    (Jt.Curve.prototype.getUtoTmapping = function (t, e) {
+                      for (
+                        var n,
+                          r = this.getLengths(),
+                          i = 0,
+                          o = r.length,
+                          a = e || t * r[o - 1],
+                          s = 0,
+                          l = o - 1;
+                        s <= l;
+
+                      )
+                        if ((n = r[(i = Math.floor(s + (l - s) / 2))] - a) < 0) s = i + 1;
+                        else {
+                          if (!(0 < n)) {
+                            l = i;
+                            break;
+                          }
+                          l = i - 1;
+                        }
+                      if (r[(i = l)] == a) return i / (o - 1);
+                      e = r[i];
+                      return (i + (a - e) / (r[i + 1] - e)) / (o - 1);
+                    }),
+                    (Jt.Curve.prototype.getTangent = function (t) {
+                      var e = t - 1e-4,
+                        t = t + 1e-4,
+                        e = (1 < t && (t = 1), this.getPoint((e = e < 0 ? 0 : e)));
+                      return this.getPoint(t).clone().sub(e).normalize();
+                    }),
+                    (Jt.Curve.prototype.getTangentAt = function (t) {
+                      t = this.getUtoTmapping(t);
+                      return this.getTangent(t);
+                    }),
+                    (Jt.Curve.Utils = {
+                      tangentQuadraticBezier: function (t, e, n, r) {
+                        return 2 * (1 - t) * (n - e) + 2 * t * (r - n);
+                      },
+                      tangentCubicBezier: function (t, e, n, r, i) {
+                        return (
+                          -3 * e * (1 - t) * (1 - t) +
+                          3 * n * (1 - t) * (1 - t) -
+                          6 * t * n * (1 - t) +
+                          6 * t * r * (1 - t) -
+                          3 * t * t * r +
+                          3 * t * t * i
+                        );
+                      },
+                      tangentSpline: function (t, e, n, r, i) {
+                        return (
+                          6 * t * t -
+                          6 * t +
+                          (3 * t * t - 4 * t + 1) +
+                          (-6 * t * t + 6 * t) +
+                          (3 * t * t - 2 * t)
+                        );
+                      },
+                      interpolate: function (t, e, n, r, i) {
+                        var t = 0.5 * (n - t),
+                          r = 0.5 * (r - e),
+                          o = i * i;
+                        return (
+                          (2 * e - 2 * n + t + r) * (i * o) +
+                          (-3 * e + 3 * n - 2 * t - r) * o +
+                          t * i +
+                          e
+                        );
+                      },
+                    }),
+                    (Jt.Curve.create = function (t, e) {
+                      return (
+                        (t.prototype = Object.create(Jt.Curve.prototype)),
+                        ((t.prototype.constructor = t).prototype.getPoint = e),
+                        t
+                      );
+                    }),
+                    (Jt.CurvePath = function () {
+                      (this.curves = []), (this.bends = []), (this.autoClose = !1);
+                    }),
+                    (Jt.CurvePath.prototype = Object.create(Jt.Curve.prototype)),
+                    (Jt.CurvePath.prototype.constructor = Jt.CurvePath),
+                    (Jt.CurvePath.prototype.add = function (t) {
+                      this.curves.push(t);
+                    }),
+                    (Jt.CurvePath.prototype.checkConnection = function () {}),
+                    (Jt.CurvePath.prototype.closePath = function () {
+                      var t = this.curves[0].getPoint(0),
+                        e = this.curves[this.curves.length - 1].getPoint(1);
+                      t.equals(e) || this.curves.push(new Jt.LineCurve(e, t));
+                    }),
+                    (Jt.CurvePath.prototype.getPoint = function (t) {
+                      for (
+                        var e, n, r = t * this.getLength(), i = this.getCurveLengths(), o = 0;
+                        o < i.length;
+
+                      ) {
+                        if (i[o] >= r)
+                          return (
+                            (n = 1 - (i[o] - r) / (e = this.curves[o]).getLength()), e.getPointAt(n)
+                          );
+                        o++;
+                      }
+                      return null;
+                    }),
+                    (Jt.CurvePath.prototype.getLength = function () {
+                      var t = this.getCurveLengths();
+                      return t[t.length - 1];
+                    }),
+                    (Jt.CurvePath.prototype.getCurveLengths = function () {
+                      if (this.cacheLengths && this.cacheLengths.length == this.curves.length)
+                        return this.cacheLengths;
+                      for (var t = [], e = 0, n = this.curves.length, r = 0; r < n; r++)
+                        (e += this.curves[r].getLength()), t.push(e);
+                      return (this.cacheLengths = t);
+                    }),
+                    (Jt.CurvePath.prototype.getBoundingBox = function () {
+                      for (
+                        var t,
+                          e,
+                          n,
+                          r,
+                          i,
+                          o = this.getPoints(),
+                          a = (t = Number.NEGATIVE_INFINITY),
+                          s = (n = Number.POSITIVE_INFINITY),
+                          l = o[0] instanceof Jt.Vector3,
+                          u = new (l ? Jt.Vector3 : Jt.Vector2)(),
+                          c = 0,
+                          A = o.length;
+                        c < A;
+                        c++
+                      )
+                        (i = o[c]).x > a ? (a = i.x) : i.x < s && (s = i.x),
+                          i.y > t ? (t = i.y) : i.y < n && (n = i.y),
+                          l && (i.z > e ? (e = i.z) : i.z < r && (r = i.z)),
+                          u.add(i);
+                      var h = { minX: s, minY: n, maxX: a, maxY: t };
+                      return l && ((h.maxZ = e), (h.minZ = r)), h;
+                    }),
+                    (Jt.CurvePath.prototype.createPointsGeometry = function (t) {
+                      t = this.getPoints(t, !0);
+                      return this.createGeometry(t);
+                    }),
+                    (Jt.CurvePath.prototype.createSpacedPointsGeometry = function (t) {
+                      t = this.getSpacedPoints(t, !0);
+                      return this.createGeometry(t);
+                    }),
+                    (Jt.CurvePath.prototype.createGeometry = function (t) {
+                      for (var e = new Jt.Geometry(), n = 0; n < t.length; n++)
+                        e.vertices.push(new Jt.Vector3(t[n].x, t[n].y, t[n].z || 0));
+                      return e;
+                    }),
+                    (Jt.CurvePath.prototype.addWrapPath = function (t) {
+                      this.bends.push(t);
+                    }),
+                    (Jt.CurvePath.prototype.getTransformedPoints = function (t, e) {
+                      for (
+                        var n = this.getPoints(t), r = 0, i = (e = e || this.bends).length;
+                        r < i;
+                        r++
+                      )
+                        n = this.getWrapPoints(n, e[r]);
+                      return n;
+                    }),
+                    (Jt.CurvePath.prototype.getTransformedSpacedPoints = function (t, e) {
+                      for (
+                        var n = this.getSpacedPoints(t), r = 0, i = (e = e || this.bends).length;
+                        r < i;
+                        r++
+                      )
+                        n = this.getWrapPoints(n, e[r]);
+                      return n;
+                    }),
+                    (Jt.CurvePath.prototype.getWrapPoints = function (t, e) {
+                      for (var n, r, i = this.getBoundingBox(), o = 0, a = t.length; o < a; o++) {
+                        (l = (n = t[o]).x), (r = n.y), (s = l / i.maxX);
+                        var s = e.getUtoTmapping(s, l),
+                          l = e.getPoint(s),
+                          s = e.getTangent(s);
+                        s.set(-s.y, s.x).multiplyScalar(r), (n.x = l.x + s.x), (n.y = l.y + s.y);
+                      }
+                      return t;
+                    }),
+                    (Jt.Gyroscope = function () {
+                      Jt.Object3D.call(this);
+                    }),
+                    (Jt.Gyroscope.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.Gyroscope.prototype.constructor = Jt.Gyroscope),
+                    (Jt.Gyroscope.prototype.updateMatrixWorld =
+                      ((Gn = new Jt.Vector3()),
+                      (zn = new Jt.Quaternion()),
+                      (Hn = new Jt.Vector3()),
+                      (jn = new Jt.Vector3()),
+                      (Vn = new Jt.Quaternion()),
+                      (qn = new Jt.Vector3()),
+                      function (t) {
+                        this.matrixAutoUpdate && this.updateMatrix(),
+                          (this.matrixWorldNeedsUpdate || t) &&
+                            (this.parent
+                              ? (this.matrixWorld.multiplyMatrices(
+                                  this.parent.matrixWorld,
+                                  this.matrix,
+                                ),
+                                this.matrixWorld.decompose(jn, Vn, qn),
+                                this.matrix.decompose(Gn, zn, Hn),
+                                this.matrixWorld.compose(jn, zn, qn))
+                              : this.matrixWorld.copy(this.matrix),
+                            (t = !(this.matrixWorldNeedsUpdate = !1)));
+                        for (var e = 0, n = this.children.length; e < n; e++)
+                          this.children[e].updateMatrixWorld(t);
+                      })),
+                    (Jt.Path = function (t) {
+                      Jt.CurvePath.call(this), (this.actions = []), t && this.fromPoints(t);
+                    }),
+                    (Jt.Path.prototype = Object.create(Jt.CurvePath.prototype)),
+                    (Jt.Path.prototype.constructor = Jt.Path),
+                    (Jt.PathActions = {
+                      MOVE_TO: 'moveTo',
+                      LINE_TO: 'lineTo',
+                      QUADRATIC_CURVE_TO: 'quadraticCurveTo',
+                      BEZIER_CURVE_TO: 'bezierCurveTo',
+                      CSPLINE_THRU: 'splineThru',
+                      ARC: 'arc',
+                      ELLIPSE: 'ellipse',
+                    }),
+                    (Jt.Path.prototype.fromPoints = function (t) {
+                      this.moveTo(t[0].x, t[0].y);
+                      for (var e = 1, n = t.length; e < n; e++) this.lineTo(t[e].x, t[e].y);
+                    }),
+                    (Jt.Path.prototype.moveTo = function (t, e) {
+                      var n = Array.prototype.slice.call(arguments);
+                      this.actions.push({ action: Jt.PathActions.MOVE_TO, args: n });
+                    }),
+                    (Jt.Path.prototype.lineTo = function (t, e) {
+                      var n = Array.prototype.slice.call(arguments),
+                        r = this.actions[this.actions.length - 1].args,
+                        i = r[r.length - 2],
+                        r = r[r.length - 1],
+                        i = new Jt.LineCurve(new Jt.Vector2(i, r), new Jt.Vector2(t, e));
+                      this.curves.push(i),
+                        this.actions.push({ action: Jt.PathActions.LINE_TO, args: n });
+                    }),
+                    (Jt.Path.prototype.quadraticCurveTo = function (t, e, n, r) {
+                      var i = Array.prototype.slice.call(arguments),
+                        o = this.actions[this.actions.length - 1].args,
+                        a = o[o.length - 2],
+                        o = o[o.length - 1],
+                        a = new Jt.QuadraticBezierCurve(
+                          new Jt.Vector2(a, o),
+                          new Jt.Vector2(t, e),
+                          new Jt.Vector2(n, r),
+                        );
+                      this.curves.push(a),
+                        this.actions.push({ action: Jt.PathActions.QUADRATIC_CURVE_TO, args: i });
+                    }),
+                    (Jt.Path.prototype.bezierCurveTo = function (t, e, n, r, i, o) {
+                      var a = Array.prototype.slice.call(arguments),
+                        s = this.actions[this.actions.length - 1].args,
+                        l = s[s.length - 2],
+                        s = s[s.length - 1],
+                        l = new Jt.CubicBezierCurve(
+                          new Jt.Vector2(l, s),
+                          new Jt.Vector2(t, e),
+                          new Jt.Vector2(n, r),
+                          new Jt.Vector2(i, o),
+                        );
+                      this.curves.push(l),
+                        this.actions.push({ action: Jt.PathActions.BEZIER_CURVE_TO, args: a });
+                    }),
+                    (Jt.Path.prototype.splineThru = function (t) {
+                      var e = Array.prototype.slice.call(arguments),
+                        n = this.actions[this.actions.length - 1].args,
+                        r = n[n.length - 2],
+                        n = n[n.length - 1],
+                        r = [new Jt.Vector2(r, n)],
+                        n = (Array.prototype.push.apply(r, t), new Jt.SplineCurve(r));
+                      this.curves.push(n),
+                        this.actions.push({ action: Jt.PathActions.CSPLINE_THRU, args: e });
+                    }),
+                    (Jt.Path.prototype.arc = function (t, e, n, r, i, o) {
+                      var a = this.actions[this.actions.length - 1].args,
+                        s = a[a.length - 2],
+                        a = a[a.length - 1];
+                      this.absarc(t + s, e + a, n, r, i, o);
+                    }),
+                    (Jt.Path.prototype.absarc = function (t, e, n, r, i, o) {
+                      this.absellipse(t, e, n, n, r, i, o);
+                    }),
+                    (Jt.Path.prototype.ellipse = function (t, e, n, r, i, o, a) {
+                      var s = this.actions[this.actions.length - 1].args,
+                        l = s[s.length - 2],
+                        s = s[s.length - 1];
+                      this.absellipse(t + l, e + s, n, r, i, o, a);
+                    }),
+                    (Jt.Path.prototype.absellipse = function (t, e, n, r, i, o, a) {
+                      var s = Array.prototype.slice.call(arguments),
+                        t = new Jt.EllipseCurve(t, e, n, r, i, o, a),
+                        e = (this.curves.push(t), t.getPoint(1));
+                      s.push(e.x),
+                        s.push(e.y),
+                        this.actions.push({ action: Jt.PathActions.ELLIPSE, args: s });
+                    }),
+                    (Jt.Path.prototype.getSpacedPoints = function (t, e) {
+                      t = t || 40;
+                      for (var n = [], r = 0; r < t; r++) n.push(this.getPoint(r / t));
+                      return n;
+                    }),
+                    (Jt.Path.prototype.getPoints = function (t, e) {
+                      if (this.useSpacedPoints)
+                        return console.log('tata'), this.getSpacedPoints(t, e);
+                      t = t || 12;
+                      for (
+                        var n,
+                          r,
+                          i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u,
+                          c,
+                          A,
+                          h,
+                          p,
+                          d,
+                          f,
+                          g = [],
+                          m = 0,
+                          v = this.actions.length;
+                        m < v;
+                        m++
+                      )
+                        switch (((r = (n = this.actions[m]).action), (i = n.args), r)) {
+                          case Jt.PathActions.MOVE_TO:
+                          case Jt.PathActions.LINE_TO:
+                            g.push(new Jt.Vector2(i[0], i[1]));
+                            break;
+                          case Jt.PathActions.QUADRATIC_CURVE_TO:
+                            for (
+                              o = i[2],
+                                a = i[3],
+                                u = i[0],
+                                c = i[1],
+                                h =
+                                  0 < g.length
+                                    ? ((A = (b = g[g.length - 1]).x), b.y)
+                                    : ((A = (b = this.actions[m - 1].args)[b.length - 2]),
+                                      b[b.length - 1]),
+                                B = 1;
+                              B <= t;
+                              B++
+                            )
+                              (d = Jt.Shape.Utils.b2((p = B / t), A, u, o)),
+                                (f = Jt.Shape.Utils.b2(p, h, c, a)),
+                                g.push(new Jt.Vector2(d, f));
+                            break;
+                          case Jt.PathActions.BEZIER_CURVE_TO:
+                            for (
+                              o = i[4],
+                                a = i[5],
+                                u = i[0],
+                                c = i[1],
+                                s = i[2],
+                                l = i[3],
+                                h =
+                                  0 < g.length
+                                    ? ((A = (b = g[g.length - 1]).x), b.y)
+                                    : ((A = (b = this.actions[m - 1].args)[b.length - 2]),
+                                      b[b.length - 1]),
+                                B = 1;
+                              B <= t;
+                              B++
+                            )
+                              (d = Jt.Shape.Utils.b3((p = B / t), A, u, s, o)),
+                                (f = Jt.Shape.Utils.b3(p, h, c, l, a)),
+                                g.push(new Jt.Vector2(d, f));
+                            break;
+                          case Jt.PathActions.CSPLINE_THRU:
+                            for (
+                              var b = this.actions[m - 1].args,
+                                y = [new Jt.Vector2(b[b.length - 2], b[b.length - 1])],
+                                w = t * i[0].length,
+                                y = y.concat(i[0]),
+                                E = new Jt.SplineCurve(y),
+                                B = 1;
+                              B <= w;
+                              B++
+                            )
+                              g.push(E.getPointAt(B / w));
+                            break;
+                          case Jt.PathActions.ARC:
+                            var C = i[0],
+                              x = i[1],
+                              I = i[2],
+                              M = i[3],
+                              D = i[4],
+                              S = !!i[5],
+                              k = D - M,
+                              F = 2 * t;
+                            for (B = 1; B <= F; B++)
+                              (p = B / F),
+                                (Q = M + (p = S ? p : 1 - p) * k),
+                                (d = C + I * Math.cos(Q)),
+                                (f = x + I * Math.sin(Q)),
+                                g.push(new Jt.Vector2(d, f));
+                            break;
+                          case Jt.PathActions.ELLIPSE:
+                            var Q,
+                              C = i[0],
+                              x = i[1],
+                              _ = i[2],
+                              T = i[3],
+                              M = i[4],
+                              D = i[5],
+                              S = !!i[6],
+                              k = D - M,
+                              F = 2 * t;
+                            for (B = 1; B <= F; B++)
+                              (p = B / F),
+                                (Q = M + (p = S ? p : 1 - p) * k),
+                                (d = C + _ * Math.cos(Q)),
+                                (f = x + T * Math.sin(Q)),
+                                g.push(new Jt.Vector2(d, f));
+                        }
+                      var R = g[g.length - 1];
+                      return (
+                        Math.abs(R.x - g[0].x) < 1e-10 &&
+                          Math.abs(R.y - g[0].y) < 1e-10 &&
+                          g.splice(g.length - 1, 1),
+                        e && g.push(g[0]),
+                        g
+                      );
+                    }),
+                    (Jt.Path.prototype.toShapes = function (t, e) {
+                      function n(t) {
+                        for (var e = [], n = 0, r = t.length; n < r; n++) {
+                          var i = t[n],
+                            o = new Jt.Shape();
+                          (o.actions = i.actions), (o.curves = i.curves), e.push(o);
+                        }
+                        return e;
+                      }
+                      var r = (function (t) {
+                        for (var e, n, r = [], i = new Jt.Path(), o = 0, a = t.length; o < a; o++)
+                          (n = (e = t[o]).args),
+                            (e = e.action) == Jt.PathActions.MOVE_TO &&
+                              0 != i.actions.length &&
+                              (r.push(i), (i = new Jt.Path())),
+                            i[e].apply(i, n);
+                        return 0 != i.actions.length && r.push(i), r;
+                      })(this.actions);
+                      if (0 == r.length) return [];
+                      if (!0 === e) return n(r);
+                      var i,
+                        o,
+                        a,
+                        s = [];
+                      if (1 == r.length)
+                        return (
+                          (o = r[0]),
+                          ((a = new Jt.Shape()).actions = o.actions),
+                          (a.curves = o.curves),
+                          s.push(a),
+                          s
+                        );
+                      var l,
+                        u,
+                        c,
+                        A,
+                        h,
+                        p,
+                        d = !Jt.Shape.Utils.isClockWise(r[0].getPoints()),
+                        d = t ? !d : d,
+                        f = [],
+                        g = [],
+                        m = [],
+                        v = 0;
+                      for (g[v] = void 0, m[v] = [], u = 0, c = r.length; u < c; u++)
+                        (l = (o = r[u]).getPoints()),
+                          (i = Jt.Shape.Utils.isClockWise(l)),
+                          (i = t ? !i : i)
+                            ? (!d && g[v] && v++,
+                              (g[v] = { s: new Jt.Shape(), p: l }),
+                              (g[v].s.actions = o.actions),
+                              (g[v].s.curves = o.curves),
+                              d && v++,
+                              (m[v] = []))
+                            : m[v].push({ h: o, p: l[0] });
+                      if (!g[0]) return n(r);
+                      if (1 < g.length) {
+                        for (var b = !1, y = [], w = 0, E = g.length; w < E; w++) f[w] = [];
+                        for (w = 0, E = g.length; w < E; w++)
+                          for (var B = m[w], C = 0; C < B.length; C++) {
+                            for (var x = B[C], I = !0, M = 0; M < g.length; M++)
+                              !(function (t, e) {
+                                for (var n = e.length, r = !1, i = n - 1, o = 0; o < n; i = o++) {
+                                  var a = e[i],
+                                    s = e[o],
+                                    l = s.x - a.x,
+                                    u = s.y - a.y;
+                                  if (1e-10 < Math.abs(u)) {
+                                    if (
+                                      (u < 0 && ((a = e[o]), (l = -l), (s = e[i]), (u = -u)),
+                                      !(t.y < a.y || t.y > s.y))
+                                    )
+                                      if (t.y == a.y) {
+                                        if (t.x == a.x) return 1;
+                                      } else {
+                                        u = u * (t.x - a.x) - l * (t.y - a.y);
+                                        if (0 == u) return 1;
+                                        u < 0 || (r = !r);
+                                      }
+                                  } else if (
+                                    t.y == a.y &&
+                                    ((s.x <= t.x && t.x <= a.x) || (a.x <= t.x && t.x <= s.x))
+                                  )
+                                    return 1;
+                                }
+                                return r;
+                              })(x.p, g[M].p) ||
+                                (w != M && y.push({ froms: w, tos: M, hole: C }),
+                                I ? ((I = !1), f[M].push(x)) : (b = !0));
+                            I && f[w].push(x);
+                          }
+                        0 < y.length && (b || (m = f));
+                      }
+                      for (u = 0, c = g.length; u < c; u++)
+                        for (a = g[u].s, s.push(a), h = 0, p = (A = m[u]).length; h < p; h++)
+                          a.holes.push(A[h].h);
+                      return s;
+                    }),
+                    (Jt.Shape = function () {
+                      Jt.Path.apply(this, arguments), (this.holes = []);
+                    }),
+                    (Jt.Shape.prototype = Object.create(Jt.Path.prototype)),
+                    (Jt.Shape.prototype.constructor = Jt.Shape),
+                    (Jt.Shape.prototype.extrude = function (t) {
+                      return new Jt.ExtrudeGeometry(this, t);
+                    }),
+                    (Jt.Shape.prototype.makeGeometry = function (t) {
+                      return new Jt.ShapeGeometry(this, t);
+                    }),
+                    (Jt.Shape.prototype.getPointsHoles = function (t) {
+                      for (var e = this.holes.length, n = [], r = 0; r < e; r++)
+                        n[r] = this.holes[r].getTransformedPoints(t, this.bends);
+                      return n;
+                    }),
+                    (Jt.Shape.prototype.getSpacedPointsHoles = function (t) {
+                      for (var e = this.holes.length, n = [], r = 0; r < e; r++)
+                        n[r] = this.holes[r].getTransformedSpacedPoints(t, this.bends);
+                      return n;
+                    }),
+                    (Jt.Shape.prototype.extractAllPoints = function (t) {
+                      return { shape: this.getTransformedPoints(t), holes: this.getPointsHoles(t) };
+                    }),
+                    (Jt.Shape.prototype.extractPoints = function (t) {
+                      return this.useSpacedPoints
+                        ? this.extractAllSpacedPoints(t)
+                        : this.extractAllPoints(t);
+                    }),
+                    (Jt.Shape.prototype.extractAllSpacedPoints = function (t) {
+                      return {
+                        shape: this.getTransformedSpacedPoints(t),
+                        holes: this.getSpacedPointsHoles(t),
+                      };
+                    }),
+                    (Jt.Shape.Utils = {
+                      triangulateShape: function (t, e) {
+                        function w(t, e, n) {
+                          return t.x != e.x
+                            ? t.x < e.x
+                              ? t.x <= n.x && n.x <= e.x
+                              : e.x <= n.x && n.x <= t.x
+                            : t.y < e.y
+                              ? t.y <= n.y && n.y <= e.y
+                              : e.y <= n.y && n.y <= t.y;
+                        }
+                        function y(t, e, n, r, i) {
+                          var o = e.x - t.x,
+                            a = e.y - t.y,
+                            s = r.x - n.x,
+                            l = r.y - n.y,
+                            u = t.x - n.x,
+                            c = t.y - n.y,
+                            A = a * s - o * l,
+                            h = a * u - o * c;
+                          if (1e-10 < Math.abs(A)) {
+                            if (0 < A) {
+                              if (h < 0 || A < h) return [];
+                              if ((p = l * u - s * c) < 0 || A < p) return [];
+                            } else {
+                              if (0 < h || h < A) return [];
+                              if (0 < (p = l * u - s * c) || p < A) return [];
+                            }
+                            if (0 == p) return !i || (0 != h && h != A) ? [t] : [];
+                            if (p == A) return !i || (0 != h && h != A) ? [e] : [];
+                            if (0 == h) return [n];
+                            if (h == A) return [r];
+                            var p = p / A;
+                            return [{ x: t.x + p * o, y: t.y + p * a }];
+                          }
+                          if (0 != h || l * u != s * c) return [];
+                          var d,
+                            f,
+                            g,
+                            m,
+                            v,
+                            b,
+                            y,
+                            A = 0 == o && 0 == a,
+                            p = 0 == s && 0 == l;
+                          return A && p
+                            ? t.x != n.x || t.y != n.y
+                              ? []
+                              : [t]
+                            : A
+                              ? w(n, r, t)
+                                ? [t]
+                                : []
+                              : p
+                                ? w(t, e, n)
+                                  ? [n]
+                                  : []
+                                : ((h =
+                                    0 != o
+                                      ? ((m =
+                                          t.x < e.x
+                                            ? ((g = (d = t).x), (f = e).x)
+                                            : ((g = (d = e).x), (f = t).x)),
+                                        n.x < r.x
+                                          ? ((y = (v = n).x), (b = r).x)
+                                          : ((y = (v = r).x), (b = n).x))
+                                      : ((m =
+                                          t.y < e.y
+                                            ? ((g = (d = t).y), (f = e).y)
+                                            : ((g = (d = e).y), (f = t).y)),
+                                        n.y < r.y
+                                          ? ((y = (v = n).y), (b = r).y)
+                                          : ((y = (v = r).y), (b = n).y))),
+                                  g <= y
+                                    ? m < y
+                                      ? []
+                                      : m == y
+                                        ? i
+                                          ? []
+                                          : [v]
+                                        : m <= h
+                                          ? [v, f]
+                                          : [v, b]
+                                    : h < g
+                                      ? []
+                                      : g == h
+                                        ? i
+                                          ? []
+                                          : [d]
+                                        : m <= h
+                                          ? [d, f]
+                                          : [d, b]);
+                        }
+                        function E(t, e, n, r) {
+                          var i = e.x - t.x,
+                            e = e.y - t.y,
+                            o = n.x - t.x,
+                            n = n.y - t.y,
+                            a = r.x - t.x,
+                            r = r.y - t.y,
+                            t = i * n - e * o,
+                            i = i * r - e * a;
+                          return 1e-10 < Math.abs(t)
+                            ? ((e = a * n - r * o), 0 < t ? 0 <= i && 0 <= e : 0 <= i || 0 <= e)
+                            : 0 < i;
+                        }
+                        for (
+                          var n, r, i, o, a = {}, s = t.concat(), l = 0, u = e.length;
+                          l < u;
+                          l++
+                        )
+                          Array.prototype.push.apply(s, e[l]);
+                        for (A = 0, h = s.length; A < h; A++)
+                          void 0 !== a[(i = s[A].x + ':' + s[A].y)] &&
+                            Jt.warn('THREE.Shape: Duplicate point', i),
+                            (a[i] = A);
+                        for (
+                          var t = (function (t, a) {
+                              for (
+                                var e,
+                                  n,
+                                  r,
+                                  i,
+                                  o,
+                                  s,
+                                  l,
+                                  u = t.concat(),
+                                  c = [],
+                                  A = [],
+                                  h = 0,
+                                  p = a.length;
+                                h < p;
+                                h++
+                              )
+                                c.push(h);
+                              for (var d = 0, f = 2 * c.length; 0 < c.length; ) {
+                                if (--f < 0) {
+                                  console.log(
+                                    'Infinite Loop! Holes left:' +
+                                      c.length +
+                                      ', Probably Hole outside Shape!',
+                                  );
+                                  break;
+                                }
+                                for (e = d; e < u.length; e++) {
+                                  for (var g = u[e], m = -1, h = 0; h < c.length; h++)
+                                    if (
+                                      ((n = c[h]), void 0 === A[(r = g.x + ':' + g.y + ':' + n)])
+                                    ) {
+                                      for (var v = a[n], b = 0; b < v.length; b++)
+                                        if (
+                                          ((i = v[b]),
+                                          (function (t, e) {
+                                            var n = u.length - 1,
+                                              r = t - 1,
+                                              i = t + 1;
+                                            if (
+                                              E(
+                                                u[t],
+                                                u[(r = r < 0 ? n : r)],
+                                                u[(i = n < i ? 0 : i)],
+                                                v[e],
+                                              )
+                                            )
+                                              return (
+                                                (r = v.length - 1),
+                                                (n = e - 1),
+                                                (i = e + 1),
+                                                E(
+                                                  v[e],
+                                                  v[(n = n < 0 ? r : n)],
+                                                  v[(i = r < i ? 0 : i)],
+                                                  u[t],
+                                                )
+                                                  ? 1
+                                                  : void 0
+                                              );
+                                          })(e, b) &&
+                                            !(function (t, e) {
+                                              for (var n, r = 0; r < u.length; r++)
+                                                if (
+                                                  ((n = r + 1),
+                                                  (n %= u.length),
+                                                  0 < y(t, e, u[r], u[n], !0).length)
+                                                )
+                                                  return 1;
+                                            })(g, i) &&
+                                            !(function (t, e) {
+                                              for (var n, r, i, o = 0; o < c.length; o++)
+                                                for (n = a[c[o]], r = 0; r < n.length; r++)
+                                                  if (
+                                                    ((i = r + 1),
+                                                    (i %= n.length),
+                                                    0 < y(t, e, n[r], n[i], !0).length)
+                                                  )
+                                                    return 1;
+                                            })(g, i))
+                                        ) {
+                                          (m = b),
+                                            c.splice(h, 1),
+                                            (i = u.slice(0, e + 1)),
+                                            (o = u.slice(e)),
+                                            (s = v.slice(m)),
+                                            (l = v.slice(0, m + 1)),
+                                            (u = i.concat(s).concat(l).concat(o)),
+                                            (d = e);
+                                          break;
+                                        }
+                                      if (0 <= m) break;
+                                      A[r] = !0;
+                                    }
+                                  if (0 <= m) break;
+                                }
+                              }
+                              return u;
+                            })(t, e),
+                            c = Jt.FontUtils.Triangulate(t, !1),
+                            A = 0,
+                            h = c.length;
+                          A < h;
+                          A++
+                        )
+                          for (r = c[A], n = 0; n < 3; n++)
+                            void 0 !== (o = a[(i = r[n].x + ':' + r[n].y)]) && (r[n] = o);
+                        return c.concat();
+                      },
+                      isClockWise: function (t) {
+                        return Jt.FontUtils.Triangulate.area(t) < 0;
+                      },
+                      b2p0: function (t, e) {
+                        t = 1 - t;
+                        return t * t * e;
+                      },
+                      b2p1: function (t, e) {
+                        return 2 * (1 - t) * t * e;
+                      },
+                      b2p2: function (t, e) {
+                        return t * t * e;
+                      },
+                      b2: function (t, e, n, r) {
+                        return this.b2p0(t, e) + this.b2p1(t, n) + this.b2p2(t, r);
+                      },
+                      b3p0: function (t, e) {
+                        t = 1 - t;
+                        return t * t * t * e;
+                      },
+                      b3p1: function (t, e) {
+                        var n = 1 - t;
+                        return 3 * n * n * t * e;
+                      },
+                      b3p2: function (t, e) {
+                        return 3 * (1 - t) * t * t * e;
+                      },
+                      b3p3: function (t, e) {
+                        return t * t * t * e;
+                      },
+                      b3: function (t, e, n, r, i) {
+                        return (
+                          this.b3p0(t, e) + this.b3p1(t, n) + this.b3p2(t, r) + this.b3p3(t, i)
+                        );
+                      },
+                    }),
+                    (Jt.LineCurve = function (t, e) {
+                      (this.v1 = t), (this.v2 = e);
+                    }),
+                    (Jt.LineCurve.prototype = Object.create(Jt.Curve.prototype)),
+                    (Jt.LineCurve.prototype.constructor = Jt.LineCurve),
+                    (Jt.LineCurve.prototype.getPoint = function (t) {
+                      var e = this.v2.clone().sub(this.v1);
+                      return e.multiplyScalar(t).add(this.v1), e;
+                    }),
+                    (Jt.LineCurve.prototype.getPointAt = function (t) {
+                      return this.getPoint(t);
+                    }),
+                    (Jt.LineCurve.prototype.getTangent = function (t) {
+                      return this.v2.clone().sub(this.v1).normalize();
+                    }),
+                    (Jt.QuadraticBezierCurve = function (t, e, n) {
+                      (this.v0 = t), (this.v1 = e), (this.v2 = n);
+                    }),
+                    (Jt.QuadraticBezierCurve.prototype = Object.create(Jt.Curve.prototype)),
+                    (Jt.QuadraticBezierCurve.prototype.constructor = Jt.QuadraticBezierCurve),
+                    (Jt.QuadraticBezierCurve.prototype.getPoint = function (t) {
+                      var e = new Jt.Vector2();
+                      return (
+                        (e.x = Jt.Shape.Utils.b2(t, this.v0.x, this.v1.x, this.v2.x)),
+                        (e.y = Jt.Shape.Utils.b2(t, this.v0.y, this.v1.y, this.v2.y)),
+                        e
+                      );
+                    }),
+                    (Jt.QuadraticBezierCurve.prototype.getTangent = function (t) {
+                      var e = new Jt.Vector2();
+                      return (
+                        (e.x = Jt.Curve.Utils.tangentQuadraticBezier(
+                          t,
+                          this.v0.x,
+                          this.v1.x,
+                          this.v2.x,
+                        )),
+                        (e.y = Jt.Curve.Utils.tangentQuadraticBezier(
+                          t,
+                          this.v0.y,
+                          this.v1.y,
+                          this.v2.y,
+                        )),
+                        e.normalize()
+                      );
+                    }),
+                    (Jt.CubicBezierCurve = function (t, e, n, r) {
+                      (this.v0 = t), (this.v1 = e), (this.v2 = n), (this.v3 = r);
+                    }),
+                    (Jt.CubicBezierCurve.prototype = Object.create(Jt.Curve.prototype)),
+                    (Jt.CubicBezierCurve.prototype.constructor = Jt.CubicBezierCurve),
+                    (Jt.CubicBezierCurve.prototype.getPoint = function (t) {
+                      var e = Jt.Shape.Utils.b3(t, this.v0.x, this.v1.x, this.v2.x, this.v3.x),
+                        t = Jt.Shape.Utils.b3(t, this.v0.y, this.v1.y, this.v2.y, this.v3.y);
+                      return new Jt.Vector2(e, t);
+                    }),
+                    (Jt.CubicBezierCurve.prototype.getTangent = function (t) {
+                      var e = Jt.Curve.Utils.tangentCubicBezier(
+                          t,
+                          this.v0.x,
+                          this.v1.x,
+                          this.v2.x,
+                          this.v3.x,
+                        ),
+                        t = Jt.Curve.Utils.tangentCubicBezier(
+                          t,
+                          this.v0.y,
+                          this.v1.y,
+                          this.v2.y,
+                          this.v3.y,
+                        ),
+                        e = new Jt.Vector2(e, t);
+                      return e.normalize(), e;
+                    }),
+                    (Jt.SplineCurve = function (t) {
+                      this.points = null == t ? [] : t;
+                    }),
+                    (Jt.SplineCurve.prototype = Object.create(Jt.Curve.prototype)),
+                    (Jt.SplineCurve.prototype.constructor = Jt.SplineCurve),
+                    (Jt.SplineCurve.prototype.getPoint = function (t) {
+                      var e = this.points,
+                        t = (e.length - 1) * t,
+                        n = Math.floor(t),
+                        t = t - n,
+                        r = e[0 == n ? n : n - 1],
+                        i = e[n],
+                        o = e[n > e.length - 2 ? e.length - 1 : n + 1],
+                        e = e[n > e.length - 3 ? e.length - 1 : n + 2],
+                        n = new Jt.Vector2();
+                      return (
+                        (n.x = Jt.Curve.Utils.interpolate(r.x, i.x, o.x, e.x, t)),
+                        (n.y = Jt.Curve.Utils.interpolate(r.y, i.y, o.y, e.y, t)),
+                        n
+                      );
+                    }),
+                    (Jt.EllipseCurve = function (t, e, n, r, i, o, a) {
+                      (this.aX = t),
+                        (this.aY = e),
+                        (this.xRadius = n),
+                        (this.yRadius = r),
+                        (this.aStartAngle = i),
+                        (this.aEndAngle = o),
+                        (this.aClockwise = a);
+                    }),
+                    (Jt.EllipseCurve.prototype = Object.create(Jt.Curve.prototype)),
+                    (Jt.EllipseCurve.prototype.constructor = Jt.EllipseCurve),
+                    (Jt.EllipseCurve.prototype.getPoint = function (t) {
+                      var e = this.aEndAngle - this.aStartAngle,
+                        e =
+                          (e < 0 && (e += 2 * Math.PI),
+                          e > 2 * Math.PI && (e -= 2 * Math.PI),
+                          (t =
+                            !0 === this.aClockwise
+                              ? this.aEndAngle + (1 - t) * (2 * Math.PI - e)
+                              : this.aStartAngle + t * e),
+                          new Jt.Vector2());
+                      return (
+                        (e.x = this.aX + this.xRadius * Math.cos(t)),
+                        (e.y = this.aY + this.yRadius * Math.sin(t)),
+                        e
+                      );
+                    }),
+                    (Jt.ArcCurve = function (t, e, n, r, i, o) {
+                      Jt.EllipseCurve.call(this, t, e, n, n, r, i, o);
+                    }),
+                    (Jt.ArcCurve.prototype = Object.create(Jt.EllipseCurve.prototype)),
+                    (Jt.ArcCurve.prototype.constructor = Jt.ArcCurve),
+                    (Jt.LineCurve3 = Jt.Curve.create(
+                      function (t, e) {
+                        (this.v1 = t), (this.v2 = e);
+                      },
+                      function (t) {
+                        var e = new Jt.Vector3();
+                        return (
+                          e.subVectors(this.v2, this.v1), e.multiplyScalar(t), e.add(this.v1), e
+                        );
+                      },
+                    )),
+                    (Jt.QuadraticBezierCurve3 = Jt.Curve.create(
+                      function (t, e, n) {
+                        (this.v0 = t), (this.v1 = e), (this.v2 = n);
+                      },
+                      function (t) {
+                        var e = new Jt.Vector3();
+                        return (
+                          (e.x = Jt.Shape.Utils.b2(t, this.v0.x, this.v1.x, this.v2.x)),
+                          (e.y = Jt.Shape.Utils.b2(t, this.v0.y, this.v1.y, this.v2.y)),
+                          (e.z = Jt.Shape.Utils.b2(t, this.v0.z, this.v1.z, this.v2.z)),
+                          e
+                        );
+                      },
+                    )),
+                    (Jt.CubicBezierCurve3 = Jt.Curve.create(
+                      function (t, e, n, r) {
+                        (this.v0 = t), (this.v1 = e), (this.v2 = n), (this.v3 = r);
+                      },
+                      function (t) {
+                        var e = new Jt.Vector3();
+                        return (
+                          (e.x = Jt.Shape.Utils.b3(t, this.v0.x, this.v1.x, this.v2.x, this.v3.x)),
+                          (e.y = Jt.Shape.Utils.b3(t, this.v0.y, this.v1.y, this.v2.y, this.v3.y)),
+                          (e.z = Jt.Shape.Utils.b3(t, this.v0.z, this.v1.z, this.v2.z, this.v3.z)),
+                          e
+                        );
+                      },
+                    )),
+                    (Jt.SplineCurve3 = Jt.Curve.create(
+                      function (t) {
+                        this.points = null == t ? [] : t;
+                      },
+                      function (t) {
+                        var e = this.points,
+                          t = (e.length - 1) * t,
+                          n = Math.floor(t),
+                          t = t - n,
+                          r = e[0 == n ? n : n - 1],
+                          i = e[n],
+                          o = e[n > e.length - 2 ? e.length - 1 : n + 1],
+                          e = e[n > e.length - 3 ? e.length - 1 : n + 2],
+                          n = new Jt.Vector3();
+                        return (
+                          (n.x = Jt.Curve.Utils.interpolate(r.x, i.x, o.x, e.x, t)),
+                          (n.y = Jt.Curve.Utils.interpolate(r.y, i.y, o.y, e.y, t)),
+                          (n.z = Jt.Curve.Utils.interpolate(r.z, i.z, o.z, e.z, t)),
+                          n
+                        );
+                      },
+                    )),
+                    (Jt.ClosedSplineCurve3 = Jt.Curve.create(
+                      function (t) {
+                        this.points = null == t ? [] : t;
+                      },
+                      function (t) {
+                        var e = this.points,
+                          t = +e.length * t,
+                          n = Math.floor(t),
+                          t = t - n,
+                          r =
+                            e[
+                              ((n +=
+                                0 < n ? 0 : (Math.floor(Math.abs(n) / e.length) + 1) * e.length) -
+                                1) %
+                                e.length
+                            ],
+                          i = e[n % e.length],
+                          o = e[(n + 1) % e.length],
+                          n = e[(n + 2) % e.length],
+                          e = new Jt.Vector3();
+                        return (
+                          (e.x = Jt.Curve.Utils.interpolate(r.x, i.x, o.x, n.x, t)),
+                          (e.y = Jt.Curve.Utils.interpolate(r.y, i.y, o.y, n.y, t)),
+                          (e.z = Jt.Curve.Utils.interpolate(r.z, i.z, o.z, n.z, t)),
+                          e
+                        );
+                      },
+                    )),
+                    (Jt.AnimationHandler = {
+                      LINEAR: 0,
+                      CATMULLROM: 1,
+                      CATMULLROM_FORWARD: 2,
+                      add: function () {
+                        Jt.warn('THREE.AnimationHandler.add() has been deprecated.');
+                      },
+                      get: function () {
+                        Jt.warn('THREE.AnimationHandler.get() has been deprecated.');
+                      },
+                      remove: function () {
+                        Jt.warn('THREE.AnimationHandler.remove() has been deprecated.');
+                      },
+                      animations: [],
+                      init: function (t) {
+                        if (!0 !== t.initialized) {
+                          for (var e = 0; e < t.hierarchy.length; e++) {
+                            for (var n, r = 0; r < t.hierarchy[e].keys.length; r++)
+                              t.hierarchy[e].keys[r].time < 0 && (t.hierarchy[e].keys[r].time = 0),
+                                void 0 === t.hierarchy[e].keys[r].rot ||
+                                  t.hierarchy[e].keys[r].rot instanceof Jt.Quaternion ||
+                                  ((n = t.hierarchy[e].keys[r].rot),
+                                  (t.hierarchy[e].keys[r].rot = new Jt.Quaternion().fromArray(n)));
+                            if (
+                              t.hierarchy[e].keys.length &&
+                              void 0 !== t.hierarchy[e].keys[0].morphTargets
+                            ) {
+                              for (var i = {}, r = 0; r < t.hierarchy[e].keys.length; r++)
+                                for (var o = 0; o < t.hierarchy[e].keys[r].morphTargets.length; o++)
+                                  i[(a = t.hierarchy[e].keys[r].morphTargets[o])] = -1;
+                              t.hierarchy[e].usedMorphTargets = i;
+                              for (r = 0; r < t.hierarchy[e].keys.length; r++) {
+                                var a,
+                                  s = {};
+                                for (a in i) {
+                                  for (o = 0; o < t.hierarchy[e].keys[r].morphTargets.length; o++)
+                                    if (t.hierarchy[e].keys[r].morphTargets[o] === a) {
+                                      s[a] = t.hierarchy[e].keys[r].morphTargetsInfluences[o];
+                                      break;
+                                    }
+                                  o === t.hierarchy[e].keys[r].morphTargets.length && (s[a] = 0);
+                                }
+                                t.hierarchy[e].keys[r].morphTargetsInfluences = s;
+                              }
+                            }
+                            for (r = 1; r < t.hierarchy[e].keys.length; r++)
+                              t.hierarchy[e].keys[r].time === t.hierarchy[e].keys[r - 1].time &&
+                                (t.hierarchy[e].keys.splice(r, 1), r--);
+                            for (r = 0; r < t.hierarchy[e].keys.length; r++)
+                              t.hierarchy[e].keys[r].index = r;
+                          }
+                          t.initialized = !0;
+                        }
+                        return t;
+                      },
+                      parse: function (t) {
+                        var r = function (t, e) {
+                            e.push(t);
+                            for (var n = 0; n < t.children.length; n++) r(t.children[n], e);
+                          },
+                          e = [];
+                        if (t instanceof Jt.SkinnedMesh)
+                          for (var n = 0; n < t.skeleton.bones.length; n++)
+                            e.push(t.skeleton.bones[n]);
+                        else r(t, e);
+                        return e;
+                      },
+                      play: function (t) {
+                        -1 === this.animations.indexOf(t) && this.animations.push(t);
+                      },
+                      stop: function (t) {
+                        t = this.animations.indexOf(t);
+                        -1 !== t && this.animations.splice(t, 1);
+                      },
+                      update: function (t) {
+                        for (var e = 0; e < this.animations.length; e++)
+                          this.animations[e].resetBlendWeights();
+                        for (e = 0; e < this.animations.length; e++) this.animations[e].update(t);
+                      },
+                    }),
+                    (Jt.Animation = function (t, e) {
+                      (this.root = t),
+                        (this.data = Jt.AnimationHandler.init(e)),
+                        (this.hierarchy = Jt.AnimationHandler.parse(t)),
+                        (this.currentTime = 0),
+                        (this.timeScale = 1),
+                        (this.isPlaying = !1),
+                        (this.loop = !0),
+                        (this.weight = 0),
+                        (this.interpolationType = Jt.AnimationHandler.LINEAR);
+                    }),
+                    (Jt.Animation.prototype = {
+                      constructor: Jt.Animation,
+                      keyTypes: ['pos', 'rot', 'scl'],
+                      play: function (t, e) {
+                        (this.currentTime = void 0 !== t ? t : 0),
+                          (this.weight = void 0 !== e ? e : 1),
+                          (this.isPlaying = !0),
+                          this.reset(),
+                          Jt.AnimationHandler.play(this);
+                      },
+                      stop: function () {
+                        (this.isPlaying = !1), Jt.AnimationHandler.stop(this);
+                      },
+                      reset: function () {
+                        for (var t = 0, e = this.hierarchy.length; t < e; t++) {
+                          var n = this.hierarchy[t],
+                            r =
+                              (void 0 === n.animationCache &&
+                                (n.animationCache = {
+                                  animations: {},
+                                  blending: {
+                                    positionWeight: 0,
+                                    quaternionWeight: 0,
+                                    scaleWeight: 0,
+                                  },
+                                }),
+                              this.data.name),
+                            i = n.animationCache.animations,
+                            o = i[r];
+                          void 0 === o &&
+                            ((o = {
+                              prevKey: { pos: 0, rot: 0, scl: 0 },
+                              nextKey: { pos: 0, rot: 0, scl: 0 },
+                              originalMatrix: n.matrix,
+                            }),
+                            (i[r] = o));
+                          for (var a = 0; a < 3; a++) {
+                            for (
+                              var s = this.keyTypes[a],
+                                l = this.data.hierarchy[t].keys[0],
+                                u = this.getNextKeyWith(s, t, 1);
+                              u.time < this.currentTime && u.index > l.index;
+
+                            )
+                              (l = u), (u = this.getNextKeyWith(s, t, u.index + 1));
+                            (o.prevKey[s] = l), (o.nextKey[s] = u);
+                          }
+                        }
+                      },
+                      resetBlendWeights: function () {
+                        for (var t = 0, e = this.hierarchy.length; t < e; t++) {
+                          var n = this.hierarchy[t].animationCache;
+                          void 0 !== n &&
+                            (((n = n.blending).positionWeight = 0),
+                            (n.quaternionWeight = 0),
+                            (n.scaleWeight = 0));
+                        }
+                      },
+                      update:
+                        ((Wn = []),
+                        (Jn = new Jt.Vector3()),
+                        (Kn = new Jt.Vector3()),
+                        (Zn = new Jt.Quaternion()),
+                        (Xn = function (t, e, n, r, i, o, a) {
+                          (t = 0.5 * (n - t)), (r = 0.5 * (r - e));
+                          return (
+                            (2 * (e - n) + t + r) * a + (-3 * (e - n) - 2 * t - r) * o + t * i + e
+                          );
+                        }),
+                        function (t) {
+                          if (
+                            !1 !== this.isPlaying &&
+                            ((this.currentTime += t * this.timeScale), 0 !== this.weight)
+                          ) {
+                            t = this.data.length;
+                            (this.currentTime > t || this.currentTime < 0) &&
+                              (this.loop
+                                ? ((this.currentTime %= t),
+                                  this.currentTime < 0 && (this.currentTime += t),
+                                  this.reset())
+                                : this.stop());
+                            for (var e = 0, n = this.hierarchy.length; e < n; e++)
+                              for (
+                                var r = this.hierarchy[e],
+                                  i = r.animationCache.animations[this.data.name],
+                                  o = r.animationCache.blending,
+                                  a = 0;
+                                a < 3;
+                                a++
+                              ) {
+                                var s = this.keyTypes[a],
+                                  l = i.prevKey[s],
+                                  u = i.nextKey[s];
+                                if (
+                                  (0 < this.timeScale && u.time <= this.currentTime) ||
+                                  (this.timeScale < 0 && l.time >= this.currentTime)
+                                ) {
+                                  for (
+                                    l = this.data.hierarchy[e].keys[0],
+                                      u = this.getNextKeyWith(s, e, 1);
+                                    u.time < this.currentTime && u.index > l.index;
+
+                                  )
+                                    (l = u), (u = this.getNextKeyWith(s, e, u.index + 1));
+                                  (i.prevKey[s] = l), (i.nextKey[s] = u);
+                                }
+                                var c,
+                                  A,
+                                  h,
+                                  p = (this.currentTime - l.time) / (u.time - l.time),
+                                  d = l[s],
+                                  f = u[s];
+                                1 < (p = p < 0 ? 0 : p) && (p = 1),
+                                  'pos' === s
+                                    ? this.interpolationType === Jt.AnimationHandler.LINEAR
+                                      ? ((Kn.x = d[0] + (f[0] - d[0]) * p),
+                                        (Kn.y = d[1] + (f[1] - d[1]) * p),
+                                        (Kn.z = d[2] + (f[2] - d[2]) * p),
+                                        (h = this.weight / (this.weight + o.positionWeight)),
+                                        r.position.lerp(Kn, h),
+                                        (o.positionWeight += this.weight))
+                                      : (this.interpolationType !==
+                                          Jt.AnimationHandler.CATMULLROM &&
+                                          this.interpolationType !==
+                                            Jt.AnimationHandler.CATMULLROM_FORWARD) ||
+                                        ((Wn[0] = this.getPrevKeyWith('pos', e, l.index - 1).pos),
+                                        (Wn[1] = d),
+                                        (Wn[2] = f),
+                                        (Wn[3] = this.getNextKeyWith('pos', e, u.index + 1).pos),
+                                        (A = mr(Wn, (p = 0.33 * p + 0.33))),
+                                        (h = this.weight / (this.weight + o.positionWeight)),
+                                        (o.positionWeight += this.weight),
+                                        ((c = r.position).x = c.x + (A[0] - c.x) * h),
+                                        (c.y = c.y + (A[1] - c.y) * h),
+                                        (c.z = c.z + (A[2] - c.z) * h),
+                                        this.interpolationType ===
+                                          Jt.AnimationHandler.CATMULLROM_FORWARD &&
+                                          ((A = mr(Wn, 1.01 * p)),
+                                          Jn.set(A[0], A[1], A[2]),
+                                          Jn.sub(c),
+                                          (Jn.y = 0),
+                                          Jn.normalize(),
+                                          (A = Math.atan2(Jn.x, Jn.z)),
+                                          r.rotation.set(0, A, 0)))
+                                    : 'rot' === s
+                                      ? (Jt.Quaternion.slerp(d, f, Zn, p),
+                                        0 === o.quaternionWeight
+                                          ? (r.quaternion.copy(Zn),
+                                            (o.quaternionWeight = this.weight))
+                                          : ((h = this.weight / (this.weight + o.quaternionWeight)),
+                                            Jt.Quaternion.slerp(r.quaternion, Zn, r.quaternion, h),
+                                            (o.quaternionWeight += this.weight)))
+                                      : 'scl' === s &&
+                                        ((Kn.x = d[0] + (f[0] - d[0]) * p),
+                                        (Kn.y = d[1] + (f[1] - d[1]) * p),
+                                        (Kn.z = d[2] + (f[2] - d[2]) * p),
+                                        (h = this.weight / (this.weight + o.scaleWeight)),
+                                        r.scale.lerp(Kn, h),
+                                        (o.scaleWeight += this.weight));
+                              }
+                            return !0;
+                          }
+                        }),
+                      getNextKeyWith: function (t, e, n) {
+                        var r = this.data.hierarchy[e].keys;
+                        for (
+                          this.interpolationType === Jt.AnimationHandler.CATMULLROM ||
+                          this.interpolationType === Jt.AnimationHandler.CATMULLROM_FORWARD
+                            ? (n = n < r.length - 1 ? n : r.length - 1)
+                            : (n %= r.length);
+                          n < r.length;
+                          n++
+                        )
+                          if (void 0 !== r[n][t]) return r[n];
+                        return this.data.hierarchy[e].keys[0];
+                      },
+                      getPrevKeyWith: function (t, e, n) {
+                        var r = this.data.hierarchy[e].keys;
+                        for (
+                          n =
+                            this.interpolationType === Jt.AnimationHandler.CATMULLROM ||
+                            this.interpolationType === Jt.AnimationHandler.CATMULLROM_FORWARD
+                              ? 0 < n
+                                ? n
+                                : 0
+                              : 0 <= n
+                                ? n
+                                : n + r.length;
+                          0 <= n;
+                          n--
+                        )
+                          if (void 0 !== r[n][t]) return r[n];
+                        return this.data.hierarchy[e].keys[r.length - 1];
+                      },
+                    }),
+                    (Jt.KeyFrameAnimation = function (t) {
+                      (this.root = t.node),
+                        (this.data = Jt.AnimationHandler.init(t)),
+                        (this.hierarchy = Jt.AnimationHandler.parse(this.root)),
+                        (this.currentTime = 0),
+                        (this.timeScale = 0.001),
+                        (this.isPlaying = !1),
+                        (this.isPaused = !0),
+                        (this.loop = !0);
+                      for (var e = 0, n = this.hierarchy.length; e < n; e++) {
+                        var r = this.data.hierarchy[e].keys,
+                          i = this.data.hierarchy[e].sids,
+                          o = this.hierarchy[e];
+                        if (r.length && i) {
+                          for (var a = 0; a < i.length; a++) {
+                            var s = i[a],
+                              l = this.getNextKeyWith(s, e, 0);
+                            l && l.apply(s);
+                          }
+                          (o.matrixAutoUpdate = !1),
+                            this.data.hierarchy[e].node.updateMatrix(),
+                            (o.matrixWorldNeedsUpdate = !0);
+                        }
+                      }
+                    }),
+                    (Jt.KeyFrameAnimation.prototype = {
+                      constructor: Jt.KeyFrameAnimation,
+                      play: function (t) {
+                        if (((this.currentTime = void 0 !== t ? t : 0), !1 === this.isPlaying)) {
+                          this.isPlaying = !0;
+                          for (var e, n = this.hierarchy.length, r = 0; r < n; r++) {
+                            (i = this.hierarchy[r]),
+                              void 0 === (e = this.data.hierarchy[r]).animationCache &&
+                                ((e.animationCache = {}),
+                                (e.animationCache.prevKey = null),
+                                (e.animationCache.nextKey = null),
+                                (e.animationCache.originalMatrix = i.matrix));
+                            var i = this.data.hierarchy[r].keys;
+                            i.length &&
+                              ((e.animationCache.prevKey = i[0]),
+                              (e.animationCache.nextKey = i[1]),
+                              (this.startTime = Math.min(i[0].time, this.startTime)),
+                              (this.endTime = Math.max(i[i.length - 1].time, this.endTime)));
+                          }
+                          this.update(0);
+                        }
+                        (this.isPaused = !1), Jt.AnimationHandler.play(this);
+                      },
+                      stop: function () {
+                        (this.isPlaying = !1), (this.isPaused = !1), Jt.AnimationHandler.stop(this);
+                        for (var t = 0; t < this.data.hierarchy.length; t++) {
+                          var e,
+                            n = this.hierarchy[t],
+                            r = this.data.hierarchy[t];
+                          void 0 !== r.animationCache &&
+                            ((e = r.animationCache.originalMatrix).copy(n.matrix),
+                            (n.matrix = e),
+                            delete r.animationCache);
+                        }
+                      },
+                      update: function (t) {
+                        if (!1 !== this.isPlaying) {
+                          this.currentTime += t * this.timeScale;
+                          t = this.data.length;
+                          !0 === this.loop && this.currentTime > t && (this.currentTime %= t),
+                            (this.currentTime = Math.min(this.currentTime, t));
+                          for (var e = 0, n = this.hierarchy.length; e < n; e++) {
+                            var r = this.hierarchy[e],
+                              i = this.data.hierarchy[e],
+                              o = i.keys,
+                              i = i.animationCache;
+                            if (o.length) {
+                              var a = i.prevKey,
+                                s = i.nextKey;
+                              if (s.time <= this.currentTime) {
+                                for (; s.time < this.currentTime && s.index > a.index; )
+                                  s = o[(a = s).index + 1];
+                                (i.prevKey = a), (i.nextKey = s);
+                              }
+                              s.time >= this.currentTime
+                                ? a.interpolate(s, this.currentTime)
+                                : a.interpolate(s, s.time),
+                                this.data.hierarchy[e].node.updateMatrix(),
+                                (r.matrixWorldNeedsUpdate = !0);
+                            }
+                          }
+                        }
+                      },
+                      getNextKeyWith: function (t, e, n) {
+                        var r = this.data.hierarchy[e].keys;
+                        for (n %= r.length; n < r.length; n++) if (r[n].hasTarget(t)) return r[n];
+                        return r[0];
+                      },
+                      getPrevKeyWith: function (t, e, n) {
+                        var r = this.data.hierarchy[e].keys;
+                        for (n = 0 <= n ? n : n + r.length; 0 <= n; n--)
+                          if (r[n].hasTarget(t)) return r[n];
+                        return r[r.length - 1];
+                      },
+                    }),
+                    (Jt.MorphAnimation = function (t) {
+                      (this.mesh = t),
+                        (this.frames = t.morphTargetInfluences.length),
+                        (this.currentTime = 0),
+                        (this.duration = 1e3),
+                        (this.loop = !0),
+                        (this.lastFrame = 0),
+                        (this.currentFrame = 0),
+                        (this.isPlaying = !1);
+                    }),
+                    (Jt.MorphAnimation.prototype = {
+                      constructor: Jt.MorphAnimation,
+                      play: function () {
+                        this.isPlaying = !0;
+                      },
+                      pause: function () {
+                        this.isPlaying = !1;
+                      },
+                      update: function (t) {
+                        var e, n;
+                        !1 !== this.isPlaying &&
+                          ((this.currentTime += t),
+                          !0 === this.loop &&
+                            this.currentTime > this.duration &&
+                            (this.currentTime %= this.duration),
+                          (this.currentTime = Math.min(this.currentTime, this.duration)),
+                          (t = this.duration / this.frames),
+                          (e = Math.floor(this.currentTime / t)),
+                          (n = this.mesh.morphTargetInfluences),
+                          e != this.currentFrame &&
+                            ((n[this.lastFrame] = 0),
+                            (n[this.currentFrame] = 1),
+                            (n[e] = 0),
+                            (this.lastFrame = this.currentFrame),
+                            (this.currentFrame = e)),
+                          (n[e] = (this.currentTime % t) / t),
+                          (n[this.lastFrame] = 1 - n[e]));
+                      },
+                    }),
+                    (Jt.BoxGeometry = function (t, e, n, r, i, o) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'BoxGeometry'),
+                        (this.parameters = {
+                          width: t,
+                          height: e,
+                          depth: n,
+                          widthSegments: r,
+                          heightSegments: i,
+                          depthSegments: o,
+                        }),
+                        (this.widthSegments = r || 1),
+                        (this.heightSegments = i || 1),
+                        (this.depthSegments = o || 1);
+                      var k = this,
+                        r = t / 2,
+                        i = e / 2,
+                        o = n / 2;
+                      function a(t, e, n, r, i, o, a, s) {
+                        var l,
+                          u,
+                          c,
+                          A = k.widthSegments,
+                          h = k.heightSegments,
+                          p = i / 2,
+                          d = o / 2,
+                          f = k.vertices.length,
+                          g =
+                            (('x' === t && 'y' === e) || ('y' === t && 'x' === e)
+                              ? (l = 'z')
+                              : ('x' === t && 'z' === e) || ('z' === t && 'x' === e)
+                                ? ((l = 'y'), (h = k.depthSegments))
+                                : (('z' === t && 'y' === e) || ('y' === t && 'z' === e)) &&
+                                  ((l = 'x'), (A = k.depthSegments)),
+                            A + 1),
+                          m = h + 1,
+                          v = i / A,
+                          b = o / h,
+                          y = new Jt.Vector3();
+                        for (y[l] = 0 < a ? 1 : -1, c = 0; c < m; c++)
+                          for (u = 0; u < g; u++) {
+                            var w = new Jt.Vector3();
+                            (w[t] = (u * v - p) * n),
+                              (w[e] = (c * b - d) * r),
+                              (w[l] = a),
+                              k.vertices.push(w);
+                          }
+                        for (c = 0; c < h; c++)
+                          for (u = 0; u < A; u++) {
+                            var E = u + g * c,
+                              B = u + g * (c + 1),
+                              C = u + 1 + g * (c + 1),
+                              x = u + 1 + g * c,
+                              I = new Jt.Vector2(u / A, 1 - c / h),
+                              M = new Jt.Vector2(u / A, 1 - (c + 1) / h),
+                              D = new Jt.Vector2((u + 1) / A, 1 - (c + 1) / h),
+                              S = new Jt.Vector2((u + 1) / A, 1 - c / h),
+                              E = new Jt.Face3(E + f, B + f, x + f);
+                            E.normal.copy(y),
+                              E.vertexNormals.push(y.clone(), y.clone(), y.clone()),
+                              (E.materialIndex = s),
+                              k.faces.push(E),
+                              k.faceVertexUvs[0].push([I, M, S]),
+                              (E = new Jt.Face3(B + f, C + f, x + f)).normal.copy(y),
+                              E.vertexNormals.push(y.clone(), y.clone(), y.clone()),
+                              (E.materialIndex = s),
+                              k.faces.push(E),
+                              k.faceVertexUvs[0].push([M.clone(), D, S.clone()]);
+                          }
+                      }
+                      a('z', 'y', -1, -1, n, e, r, 0),
+                        a('z', 'y', 1, -1, n, e, -r, 1),
+                        a('x', 'z', 1, 1, t, n, i, 2),
+                        a('x', 'z', 1, -1, t, n, -i, 3),
+                        a('x', 'y', 1, -1, t, e, o, 4),
+                        a('x', 'y', -1, -1, t, e, -o, 5),
+                        this.mergeVertices();
+                    }),
+                    (Jt.BoxGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.BoxGeometry.prototype.constructor = Jt.BoxGeometry),
+                    (Jt.CircleGeometry = function (t, e, n, r) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'CircleGeometry'),
+                        (this.parameters = {
+                          radius: t,
+                          segments: e,
+                          thetaStart: n,
+                          thetaLength: r,
+                        }),
+                        (t = t || 50),
+                        (e = void 0 !== e ? Math.max(3, e) : 8),
+                        (n = void 0 !== n ? n : 0),
+                        (r = void 0 !== r ? r : 2 * Math.PI);
+                      var i = [],
+                        o = new Jt.Vector3(),
+                        a = new Jt.Vector2(0.5, 0.5);
+                      for (this.vertices.push(o), i.push(a), c = 0; c <= e; c++) {
+                        var s = new Jt.Vector3(),
+                          l = n + (c / e) * r;
+                        (s.x = t * Math.cos(l)),
+                          (s.y = t * Math.sin(l)),
+                          this.vertices.push(s),
+                          i.push(new Jt.Vector2((s.x / t + 1) / 2, (s.y / t + 1) / 2));
+                      }
+                      for (var u = new Jt.Vector3(0, 0, 1), c = 1; c <= e; c++)
+                        this.faces.push(
+                          new Jt.Face3(c, c + 1, 0, [u.clone(), u.clone(), u.clone()]),
+                        ),
+                          this.faceVertexUvs[0].push([i[c].clone(), i[c + 1].clone(), a.clone()]);
+                      this.computeFaceNormals(),
+                        (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), t));
+                    }),
+                    (Jt.CircleGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.CircleGeometry.prototype.constructor = Jt.CircleGeometry),
+                    (Jt.CubeGeometry = function (t, e, n, r, i, o) {
+                      return (
+                        Jt.warn('THREE.CubeGeometry has been renamed to THREE.BoxGeometry.'),
+                        new Jt.BoxGeometry(t, e, n, r, i, o)
+                      );
+                    }),
+                    (Jt.CylinderGeometry = function (t, e, n, r, i, o, a, s) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'CylinderGeometry'),
+                        (this.parameters = {
+                          radiusTop: t,
+                          radiusBottom: e,
+                          height: n,
+                          radialSegments: r,
+                          heightSegments: i,
+                          openEnded: o,
+                          thetaStart: a,
+                          thetaLength: s,
+                        }),
+                        (t = void 0 !== t ? t : 20),
+                        (e = void 0 !== e ? e : 20),
+                        (n = void 0 !== n ? n : 100),
+                        (r = r || 8),
+                        (i = i || 1),
+                        (o = void 0 !== o && o),
+                        (a = void 0 !== a ? a : 0),
+                        (s = void 0 !== s ? s : 2 * Math.PI);
+                      for (var l = n / 2, u = [], c = [], A = 0; A <= i; A++) {
+                        for (
+                          var h = [], p = [], d = A / i, f = d * (e - t) + t, g = 0;
+                          g <= r;
+                          g++
+                        ) {
+                          var m = g / r,
+                            v = new Jt.Vector3();
+                          (v.x = f * Math.sin(m * s + a)),
+                            (v.y = -d * n + l),
+                            (v.z = f * Math.cos(m * s + a)),
+                            this.vertices.push(v),
+                            h.push(this.vertices.length - 1),
+                            p.push(new Jt.Vector2(m, 1 - d));
+                        }
+                        u.push(h), c.push(p);
+                      }
+                      var b,
+                        y,
+                        w = (e - t) / n;
+                      for (g = 0; g < r; g++)
+                        for (
+                          y =
+                            0 !== t
+                              ? ((b = this.vertices[u[0][g]].clone()),
+                                this.vertices[u[0][g + 1]].clone())
+                              : ((b = this.vertices[u[1][g]].clone()),
+                                this.vertices[u[1][g + 1]].clone()),
+                            b.setY(Math.sqrt(b.x * b.x + b.z * b.z) * w).normalize(),
+                            y.setY(Math.sqrt(y.x * y.x + y.z * y.z) * w).normalize(),
+                            A = 0;
+                          A < i;
+                          A++
+                        ) {
+                          var E = u[A][g],
+                            B = u[A + 1][g],
+                            C = u[A + 1][g + 1],
+                            x = u[A][g + 1],
+                            I = b.clone(),
+                            M = b.clone(),
+                            D = y.clone(),
+                            S = y.clone(),
+                            k = c[A][g].clone(),
+                            F = c[A + 1][g].clone(),
+                            Q = c[A + 1][g + 1].clone(),
+                            _ = c[A][g + 1].clone();
+                          this.faces.push(new Jt.Face3(E, B, x, [I, M, S])),
+                            this.faceVertexUvs[0].push([k, F, _]),
+                            this.faces.push(new Jt.Face3(B, C, x, [M.clone(), D, S.clone()])),
+                            this.faceVertexUvs[0].push([F.clone(), Q, _.clone()]);
+                        }
+                      if (!1 === o && 0 < t)
+                        for (this.vertices.push(new Jt.Vector3(0, l, 0)), g = 0; g < r; g++) {
+                          (E = u[0][g]),
+                            (B = u[0][g + 1]),
+                            (C = this.vertices.length - 1),
+                            (I = new Jt.Vector3(0, 1, 0)),
+                            (M = new Jt.Vector3(0, 1, 0)),
+                            (D = new Jt.Vector3(0, 1, 0)),
+                            (k = c[0][g].clone()),
+                            (F = c[0][g + 1].clone()),
+                            (Q = new Jt.Vector2(F.x, 0));
+                          this.faces.push(new Jt.Face3(E, B, C, [I, M, D])),
+                            this.faceVertexUvs[0].push([k, F, Q]);
+                        }
+                      if (!1 === o && 0 < e)
+                        for (this.vertices.push(new Jt.Vector3(0, -l, 0)), g = 0; g < r; g++) {
+                          (E = u[i][g + 1]),
+                            (B = u[i][g]),
+                            (C = this.vertices.length - 1),
+                            (I = new Jt.Vector3(0, -1, 0)),
+                            (M = new Jt.Vector3(0, -1, 0)),
+                            (D = new Jt.Vector3(0, -1, 0)),
+                            (k = c[i][g + 1].clone()),
+                            (F = c[i][g].clone()),
+                            (Q = new Jt.Vector2(F.x, 1));
+                          this.faces.push(new Jt.Face3(E, B, C, [I, M, D])),
+                            this.faceVertexUvs[0].push([k, F, Q]);
+                        }
+                      this.computeFaceNormals();
+                    }),
+                    (Jt.CylinderGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.CylinderGeometry.prototype.constructor = Jt.CylinderGeometry),
+                    (Jt.ExtrudeGeometry = function (t, e) {
+                      void 0 === t
+                        ? (t = [])
+                        : (Jt.Geometry.call(this),
+                          (this.type = 'ExtrudeGeometry'),
+                          (t = t instanceof Array ? t : [t]),
+                          this.addShapeList(t, e),
+                          this.computeFaceNormals());
+                    }),
+                    (Jt.ExtrudeGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.ExtrudeGeometry.prototype.constructor = Jt.ExtrudeGeometry),
+                    (Jt.ExtrudeGeometry.prototype.addShapeList = function (t, e) {
+                      for (var n = t.length, r = 0; r < n; r++) {
+                        var i = t[r];
+                        this.addShape(i, e);
+                      }
+                    }),
+                    (Jt.ExtrudeGeometry.prototype.addShape = function (U, t) {
+                      var e,
+                        n,
+                        r,
+                        i,
+                        o,
+                        a,
+                        N = void 0 !== t.amount ? t.amount : 100,
+                        s = void 0 !== t.bevelThickness ? t.bevelThickness : 6,
+                        l = void 0 !== t.bevelSize ? t.bevelSize : s - 2,
+                        h = void 0 !== t.bevelSegments ? t.bevelSegments : 3,
+                        u = void 0 === t.bevelEnabled || t.bevelEnabled,
+                        P = void 0 !== t.curveSegments ? t.curveSegments : 12,
+                        p = void 0 !== t.steps ? t.steps : 1,
+                        L = t.extrudePath,
+                        c = !1,
+                        Y = t.material,
+                        O = t.extrudeMaterial,
+                        G =
+                          void 0 !== t.UVGenerator
+                            ? t.UVGenerator
+                            : Jt.ExtrudeGeometry.WorldUVGenerator,
+                        d =
+                          (L &&
+                            ((e = L.getSpacedPoints(p)),
+                            (u = !(c = !0)),
+                            (n =
+                              void 0 !== t.frames
+                                ? t.frames
+                                : new Jt.TubeGeometry.FrenetFrames(L, p, !1)),
+                            (r = new Jt.Vector3()),
+                            (i = new Jt.Vector3()),
+                            (o = new Jt.Vector3())),
+                          u || (l = s = h = 0),
+                          this),
+                        f = this.vertices.length,
+                        t = U.extractPoints(P),
+                        A = t.shape,
+                        g = t.holes;
+                      if (!Jt.Shape.Utils.isClockWise(A))
+                        for (A = A.reverse(), b = 0, y = g.length; b < y; b++)
+                          (a = g[b]), Jt.Shape.Utils.isClockWise(a) && (g[b] = a.reverse());
+                      for (
+                        var m = Jt.Shape.Utils.triangulateShape(A, g), v = A, b = 0, y = g.length;
+                        b < y;
+                        b++
+                      )
+                        (a = g[b]), (A = A.concat(a));
+                      function w(t, e, n) {
+                        return (
+                          e || Jt.error('THREE.ExtrudeGeometry: vec does not exist'),
+                          e.clone().multiplyScalar(n).add(t)
+                        );
+                      }
+                      var E,
+                        B,
+                        z,
+                        C,
+                        x,
+                        I,
+                        M = A.length,
+                        H = m.length;
+                      function j(t, e, n) {
+                        var r = 1,
+                          i = t.x - e.x,
+                          o = t.y - e.y,
+                          a = n.x - t.x,
+                          s = n.y - t.y,
+                          l = i * i + o * o;
+                        if (1e-10 < Math.abs(i * s - o * a)) {
+                          var u = Math.sqrt(l),
+                            c = Math.sqrt(a * a + s * s),
+                            A = e.x - o / u,
+                            e = e.y + i / u,
+                            u = ((n.x - s / c - A) * s - (n.y + a / c - e) * a) / (i * s - o * a),
+                            n = (c = A + i * u - t.x) * c + (A = e + o * u - t.y) * A;
+                          if (n <= 2) return new Jt.Vector2(c, A);
+                          r = Math.sqrt(n / 2);
+                        } else {
+                          e = !1;
+                          1e-10 < i
+                            ? 1e-10 < a && (e = !0)
+                            : i < -1e-10
+                              ? a < -1e-10 && (e = !0)
+                              : Math.sign(o) == Math.sign(s) && (e = !0),
+                            (r = e
+                              ? ((c = -o), (A = i), Math.sqrt(l))
+                              : ((c = i), (A = o), Math.sqrt(l / 2)));
+                        }
+                        return new Jt.Vector2(c / r, A / r);
+                      }
+                      for (
+                        var V = [], D = 0, S = v.length, k = S - 1, F = D + 1;
+                        D < S;
+                        D++, k++, F++
+                      )
+                        V[D] = j(v[D], v[(k = k === S ? 0 : k)], v[(F = F === S ? 0 : F)]);
+                      var Q,
+                        _,
+                        q = [],
+                        W = V.concat();
+                      for (b = 0, y = g.length; b < y; b++) {
+                        for (
+                          a = g[b], Q = [], D = 0, k = (S = a.length) - 1, F = D + 1;
+                          D < S;
+                          D++, k++, F++
+                        )
+                          k === S && (k = 0), F === S && (F = 0), (Q[D] = j(a[D], a[k], a[F]));
+                        q.push(Q), (W = W.concat(Q));
+                      }
+                      for (E = 0; E < h; E++) {
+                        for (
+                          C = s * (1 - (z = E / h)),
+                            B = l * Math.sin((z * Math.PI) / 2),
+                            D = 0,
+                            S = v.length;
+                          D < S;
+                          D++
+                        )
+                          R((x = w(v[D], V[D], B)).x, x.y, -C);
+                        for (b = 0, y = g.length; b < y; b++)
+                          for (a = g[b], Q = q[b], D = 0, S = a.length; D < S; D++)
+                            R((x = w(a[D], Q[D], B)).x, x.y, -C);
+                      }
+                      for (B = l, D = 0; D < M; D++)
+                        (x = u ? w(A[D], W[D], B) : A[D]),
+                          c
+                            ? (i.copy(n.normals[0]).multiplyScalar(x.x),
+                              r.copy(n.binormals[0]).multiplyScalar(x.y),
+                              o.copy(e[0]).add(i).add(r),
+                              R(o.x, o.y, o.z))
+                            : R(x.x, x.y, 0);
+                      for (_ = 1; _ <= p; _++)
+                        for (D = 0; D < M; D++)
+                          (x = u ? w(A[D], W[D], B) : A[D]),
+                            c
+                              ? (i.copy(n.normals[_]).multiplyScalar(x.x),
+                                r.copy(n.binormals[_]).multiplyScalar(x.y),
+                                o.copy(e[_]).add(i).add(r),
+                                R(o.x, o.y, o.z))
+                              : R(x.x, x.y, (N / p) * _);
+                      for (E = h - 1; 0 <= E; E--) {
+                        for (
+                          C = s * (1 - (z = E / h)),
+                            B = l * Math.sin((z * Math.PI) / 2),
+                            D = 0,
+                            S = v.length;
+                          D < S;
+                          D++
+                        )
+                          R((x = w(v[D], V[D], B)).x, x.y, N + C);
+                        for (b = 0, y = g.length; b < y; b++)
+                          for (a = g[b], Q = q[b], D = 0, S = a.length; D < S; D++)
+                            (x = w(a[D], Q[D], B)),
+                              c ? R(x.x, x.y + e[p - 1].y, e[p - 1].x + C) : R(x.x, x.y, N + C);
+                      }
+                      if (u) {
+                        var T = 0 * M;
+                        for (D = 0; D < H; D++) Z((I = m[D])[2] + T, I[1] + T, I[0] + T);
+                        for (T = M * (p + 2 * h), D = 0; D < H; D++)
+                          Z((I = m[D])[0] + T, I[1] + T, I[2] + T);
+                      } else {
+                        for (D = 0; D < H; D++) Z((I = m[D])[2], I[1], I[0]);
+                        for (D = 0; D < H; D++)
+                          Z((I = m[D])[0] + M * p, I[1] + M * p, I[2] + M * p);
+                      }
+                      var J = 0;
+                      for (K(v, J), J += v.length, b = 0, y = g.length; b < y; b++)
+                        K((a = g[b]), J), (J += a.length);
+                      function K(t, e) {
+                        var n, r;
+                        for (D = t.length; 0 <= --D; ) {
+                          (r = (n = D) - 1) < 0 && (r = t.length - 1);
+                          for (var i = 0, o = p + 2 * h, i = 0; i < o; i++) {
+                            var a = M * i,
+                              s = M * (i + 1),
+                              l = ((l = A = c = u = l = void 0), e + n + a),
+                              u = e + r + a,
+                              c = e + r + s,
+                              A = e + n + s;
+                            (l += f),
+                              (u += f),
+                              (c += f),
+                              (A += f),
+                              d.faces.push(new Jt.Face3(l, u, A, null, null, O)),
+                              d.faces.push(new Jt.Face3(u, c, A, null, null, O)),
+                              (l = G.generateSideWallUV(d, l, u, c, A)),
+                              d.faceVertexUvs[0].push([l[0], l[1], l[3]]),
+                              d.faceVertexUvs[0].push([l[1], l[2], l[3]]);
+                          }
+                        }
+                      }
+                      function R(t, e, n) {
+                        d.vertices.push(new Jt.Vector3(t, e, n));
+                      }
+                      function Z(t, e, n) {
+                        d.faces.push(new Jt.Face3((t += f), (e += f), (n += f), null, null, Y));
+                        t = G.generateTopUV(d, t, e, n);
+                        d.faceVertexUvs[0].push(t);
+                      }
+                    }),
+                    (Jt.ExtrudeGeometry.WorldUVGenerator = {
+                      generateTopUV: function (t, e, n, r) {
+                        (t = t.vertices), (e = t[e]), (n = t[n]), (t = t[r]);
+                        return [
+                          new Jt.Vector2(e.x, e.y),
+                          new Jt.Vector2(n.x, n.y),
+                          new Jt.Vector2(t.x, t.y),
+                        ];
+                      },
+                      generateSideWallUV: function (t, e, n, r, i) {
+                        (t = t.vertices), (e = t[e]), (n = t[n]), (r = t[r]), (t = t[i]);
+                        return Math.abs(e.y - n.y) < 0.01
+                          ? [
+                              new Jt.Vector2(e.x, 1 - e.z),
+                              new Jt.Vector2(n.x, 1 - n.z),
+                              new Jt.Vector2(r.x, 1 - r.z),
+                              new Jt.Vector2(t.x, 1 - t.z),
+                            ]
+                          : [
+                              new Jt.Vector2(e.y, 1 - e.z),
+                              new Jt.Vector2(n.y, 1 - n.z),
+                              new Jt.Vector2(r.y, 1 - r.z),
+                              new Jt.Vector2(t.y, 1 - t.z),
+                            ];
+                      },
+                    }),
+                    (Jt.ShapeGeometry = function (t, e) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'ShapeGeometry'),
+                        t instanceof Array == !1 && (t = [t]),
+                        this.addShapeList(t, e),
+                        this.computeFaceNormals();
+                    }),
+                    (Jt.ShapeGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.ShapeGeometry.prototype.constructor = Jt.ShapeGeometry),
+                    (Jt.ShapeGeometry.prototype.addShapeList = function (t, e) {
+                      for (var n = 0, r = t.length; n < r; n++) this.addShape(t[n], e);
+                      return this;
+                    }),
+                    (Jt.ShapeGeometry.prototype.addShape = function (t, e) {
+                      var n,
+                        r =
+                          void 0 !== (e = void 0 === e ? {} : e).curveSegments
+                            ? e.curveSegments
+                            : 12,
+                        i = e.material,
+                        o =
+                          void 0 === e.UVGenerator
+                            ? Jt.ExtrudeGeometry.WorldUVGenerator
+                            : e.UVGenerator,
+                        a = this.vertices.length,
+                        e = t.extractPoints(r),
+                        s = e.shape,
+                        l = e.holes;
+                      if (!Jt.Shape.Utils.isClockWise(s))
+                        for (s = s.reverse(), c = 0, A = l.length; c < A; c++)
+                          (n = l[c]), Jt.Shape.Utils.isClockWise(n) && (l[c] = n.reverse());
+                      for (
+                        var u = Jt.Shape.Utils.triangulateShape(s, l), c = 0, A = l.length;
+                        c < A;
+                        c++
+                      )
+                        (n = l[c]), (s = s.concat(n));
+                      var h,
+                        p = s.length,
+                        d = u.length;
+                      for (c = 0; c < p; c++)
+                        (h = s[c]), this.vertices.push(new Jt.Vector3(h.x, h.y, 0));
+                      for (c = 0; c < d; c++) {
+                        var f = (m = u[c])[0] + a,
+                          g = m[1] + a,
+                          m = m[2] + a;
+                        this.faces.push(new Jt.Face3(f, g, m, null, null, i)),
+                          this.faceVertexUvs[0].push(o.generateTopUV(this, f, g, m));
+                      }
+                    }),
+                    (Jt.LatheGeometry = function (t, e, n, r) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'LatheGeometry'),
+                        (this.parameters = { points: t, segments: e, phiStart: n, phiLength: r }),
+                        (e = e || 12),
+                        (n = n || 0),
+                        (r = r || 2 * Math.PI);
+                      for (var i = 1 / (t.length - 1), o = 1 / e, a = 0, s = e; a <= s; a++)
+                        for (
+                          var l = n + a * o * r,
+                            u = Math.cos(l),
+                            c = Math.sin(l),
+                            A = 0,
+                            h = t.length;
+                          A < h;
+                          A++
+                        ) {
+                          var p = t[A],
+                            d = new Jt.Vector3();
+                          (d.x = u * p.x - c * p.y),
+                            (d.y = c * p.x + u * p.y),
+                            (d.z = p.z),
+                            this.vertices.push(d);
+                        }
+                      for (var f = t.length, a = 0, s = e; a < s; a++)
+                        for (A = 0, h = t.length - 1; A < h; A++) {
+                          var g = A + f * a,
+                            m = g + f,
+                            u = g + 1 + f,
+                            v = g + 1,
+                            b = a * o,
+                            y = A * i,
+                            w = b + o,
+                            E = y + i;
+                          this.faces.push(new Jt.Face3(g, m, v)),
+                            this.faceVertexUvs[0].push([
+                              new Jt.Vector2(b, y),
+                              new Jt.Vector2(w, y),
+                              new Jt.Vector2(b, E),
+                            ]),
+                            this.faces.push(new Jt.Face3(m, u, v)),
+                            this.faceVertexUvs[0].push([
+                              new Jt.Vector2(w, y),
+                              new Jt.Vector2(w, E),
+                              new Jt.Vector2(b, E),
+                            ]);
+                        }
+                      this.mergeVertices(), this.computeFaceNormals(), this.computeVertexNormals();
+                    }),
+                    (Jt.LatheGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.LatheGeometry.prototype.constructor = Jt.LatheGeometry),
+                    (Jt.PlaneGeometry = function (t, e, n, r) {
+                      console.info(
+                        'THREE.PlaneGeometry: Consider using THREE.PlaneBufferGeometry for lower memory footprint.',
+                      ),
+                        Jt.Geometry.call(this),
+                        (this.type = 'PlaneGeometry'),
+                        (this.parameters = {
+                          width: t,
+                          height: e,
+                          widthSegments: n,
+                          heightSegments: r,
+                        }),
+                        this.fromBufferGeometry(new Jt.PlaneBufferGeometry(t, e, n, r));
+                    }),
+                    (Jt.PlaneGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.PlaneGeometry.prototype.constructor = Jt.PlaneGeometry),
+                    (Jt.PlaneBufferGeometry = function (t, e, n, r) {
+                      Jt.BufferGeometry.call(this),
+                        (this.type = 'PlaneBufferGeometry'),
+                        (this.parameters = {
+                          width: t,
+                          height: e,
+                          widthSegments: n,
+                          heightSegments: r,
+                        });
+                      for (
+                        var i = t / 2,
+                          o = e / 2,
+                          a = n || 1,
+                          s = r || 1,
+                          l = a + 1,
+                          u = s + 1,
+                          c = t / a,
+                          A = e / s,
+                          h = new Float32Array(l * u * 3),
+                          p = new Float32Array(l * u * 3),
+                          d = new Float32Array(l * u * 2),
+                          f = 0,
+                          g = 0,
+                          m = 0;
+                        m < u;
+                        m++
+                      )
+                        for (var v = m * A - o, b = 0; b < l; b++)
+                          (h[f] = b * c - i),
+                            (h[f + 1] = -v),
+                            (p[f + 2] = 1),
+                            (d[g] = b / a),
+                            (d[g + 1] = 1 - m / s),
+                            (f += 3),
+                            (g += 2);
+                      for (
+                        var f = 0,
+                          y = new (65535 < h.length / 3 ? Uint32Array : Uint16Array)(a * s * 6),
+                          m = 0;
+                        m < s;
+                        m++
+                      )
+                        for (b = 0; b < a; b++) {
+                          var w = b + l * (m + 1),
+                            E = b + 1 + l * (m + 1),
+                            B = b + 1 + l * m;
+                          (y[f] = b + l * m),
+                            (y[f + 1] = w),
+                            (y[f + 2] = B),
+                            (y[f + 3] = w),
+                            (y[f + 4] = E),
+                            (y[f + 5] = B),
+                            (f += 6);
+                        }
+                      this.addAttribute('index', new Jt.BufferAttribute(y, 1)),
+                        this.addAttribute('position', new Jt.BufferAttribute(h, 3)),
+                        this.addAttribute('normal', new Jt.BufferAttribute(p, 3)),
+                        this.addAttribute('uv', new Jt.BufferAttribute(d, 2));
+                    }),
+                    (Jt.PlaneBufferGeometry.prototype = Object.create(Jt.BufferGeometry.prototype)),
+                    (Jt.PlaneBufferGeometry.prototype.constructor = Jt.PlaneBufferGeometry),
+                    (Jt.RingGeometry = function (t, e, n, r, i, o) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'RingGeometry'),
+                        (this.parameters = {
+                          innerRadius: t,
+                          outerRadius: e,
+                          thetaSegments: n,
+                          phiSegments: r,
+                          thetaStart: i,
+                          thetaLength: o,
+                        }),
+                        (t = t || 0),
+                        (e = e || 50),
+                        (i = void 0 !== i ? i : 0),
+                        (o = void 0 !== o ? o : 2 * Math.PI),
+                        (n = void 0 !== n ? Math.max(3, n) : 8);
+                      for (
+                        var a = [],
+                          s = t,
+                          l = (e - t) / (r = void 0 !== r ? Math.max(1, r) : 8),
+                          u = 0;
+                        u < r + 1;
+                        u++
+                      ) {
+                        for (d = 0; d < n + 1; d++) {
+                          var c = new Jt.Vector3(),
+                            A = i + (d / n) * o;
+                          (c.x = s * Math.cos(A)),
+                            (c.y = s * Math.sin(A)),
+                            this.vertices.push(c),
+                            a.push(new Jt.Vector2((c.x / e + 1) / 2, (c.y / e + 1) / 2));
+                        }
+                        s += l;
+                      }
+                      var h = new Jt.Vector3(0, 0, 1);
+                      for (u = 0; u < r; u++)
+                        for (var p = u * (n + 1), d = 0; d < n; d++) {
+                          var f = (A = d + p),
+                            g = A + n + 1,
+                            m = A + n + 2;
+                          this.faces.push(new Jt.Face3(f, g, m, [h.clone(), h.clone(), h.clone()])),
+                            this.faceVertexUvs[0].push([a[f].clone(), a[g].clone(), a[m].clone()]),
+                            this.faces.push(
+                              new Jt.Face3((f = A), (g = A + n + 2), (m = A + 1), [
+                                h.clone(),
+                                h.clone(),
+                                h.clone(),
+                              ]),
+                            ),
+                            this.faceVertexUvs[0].push([a[f].clone(), a[g].clone(), a[m].clone()]);
+                        }
+                      this.computeFaceNormals(),
+                        (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), s));
+                    }),
+                    (Jt.RingGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.RingGeometry.prototype.constructor = Jt.RingGeometry),
+                    (Jt.SphereGeometry = function (t, e, n, r, i, o, a) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'SphereGeometry'),
+                        (this.parameters = {
+                          radius: t,
+                          widthSegments: e,
+                          heightSegments: n,
+                          phiStart: r,
+                          phiLength: i,
+                          thetaStart: o,
+                          thetaLength: a,
+                        }),
+                        (t = t || 50),
+                        (e = Math.max(3, Math.floor(e) || 8)),
+                        (n = Math.max(2, Math.floor(n) || 6)),
+                        (r = void 0 !== r ? r : 0),
+                        (i = void 0 !== i ? i : 2 * Math.PI),
+                        (o = void 0 !== o ? o : 0),
+                        (a = void 0 !== a ? a : Math.PI);
+                      for (var s = [], l = [], u = 0; u <= n; u++) {
+                        for (var c = [], A = [], h = 0; h <= e; h++) {
+                          var p = h / e,
+                            d = u / n,
+                            f = new Jt.Vector3();
+                          (f.x = -t * Math.cos(r + p * i) * Math.sin(o + d * a)),
+                            (f.y = t * Math.cos(o + d * a)),
+                            (f.z = t * Math.sin(r + p * i) * Math.sin(o + d * a)),
+                            this.vertices.push(f),
+                            c.push(this.vertices.length - 1),
+                            A.push(new Jt.Vector2(p, 1 - d));
+                        }
+                        s.push(c), l.push(A);
+                      }
+                      for (u = 0; u < n; u++)
+                        for (h = 0; h < e; h++) {
+                          var g = s[u][h + 1],
+                            m = s[u][h],
+                            v = s[u + 1][h],
+                            b = s[u + 1][h + 1],
+                            y = this.vertices[g].clone().normalize(),
+                            w = this.vertices[m].clone().normalize(),
+                            E = this.vertices[v].clone().normalize(),
+                            B = this.vertices[b].clone().normalize(),
+                            C = l[u][h + 1].clone(),
+                            x = l[u][h].clone(),
+                            I = l[u + 1][h].clone(),
+                            M = l[u + 1][h + 1].clone();
+                          Math.abs(this.vertices[g].y) === t
+                            ? ((C.x = (C.x + x.x) / 2),
+                              this.faces.push(new Jt.Face3(g, v, b, [y, E, B])),
+                              this.faceVertexUvs[0].push([C, I, M]))
+                            : Math.abs(this.vertices[v].y) === t
+                              ? ((I.x = (I.x + M.x) / 2),
+                                this.faces.push(new Jt.Face3(g, m, v, [y, w, E])),
+                                this.faceVertexUvs[0].push([C, x, I]))
+                              : (this.faces.push(new Jt.Face3(g, m, b, [y, w, B])),
+                                this.faceVertexUvs[0].push([C, x, M]),
+                                this.faces.push(new Jt.Face3(m, v, b, [w.clone(), E, B.clone()])),
+                                this.faceVertexUvs[0].push([x.clone(), I, M.clone()]));
+                        }
+                      this.computeFaceNormals(),
+                        (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), t));
+                    }),
+                    (Jt.SphereGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.SphereGeometry.prototype.constructor = Jt.SphereGeometry),
+                    (Jt.TextGeometry = function (t, e) {
+                      t = Jt.FontUtils.generateShapes(t, (e = e || {}));
+                      (e.amount = void 0 !== e.height ? e.height : 50),
+                        void 0 === e.bevelThickness && (e.bevelThickness = 10),
+                        void 0 === e.bevelSize && (e.bevelSize = 8),
+                        void 0 === e.bevelEnabled && (e.bevelEnabled = !1),
+                        Jt.ExtrudeGeometry.call(this, t, e),
+                        (this.type = 'TextGeometry');
+                    }),
+                    (Jt.TextGeometry.prototype = Object.create(Jt.ExtrudeGeometry.prototype)),
+                    (Jt.TextGeometry.prototype.constructor = Jt.TextGeometry),
+                    (Jt.TorusGeometry = function (t, e, n, r, i) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'TorusGeometry'),
+                        (this.parameters = {
+                          radius: t,
+                          tube: e,
+                          radialSegments: n,
+                          tubularSegments: r,
+                          arc: i,
+                        }),
+                        (t = t || 100),
+                        (e = e || 40),
+                        (n = n || 8),
+                        (r = r || 6),
+                        (i = i || 2 * Math.PI);
+                      for (var o = new Jt.Vector3(), a = [], s = [], l = 0; l <= n; l++)
+                        for (var u = 0; u <= r; u++) {
+                          var c = (u / r) * i,
+                            A = (l / n) * Math.PI * 2,
+                            h =
+                              ((o.x = t * Math.cos(c)), (o.y = t * Math.sin(c)), new Jt.Vector3());
+                          (h.x = (t + e * Math.cos(A)) * Math.cos(c)),
+                            (h.y = (t + e * Math.cos(A)) * Math.sin(c)),
+                            (h.z = e * Math.sin(A)),
+                            this.vertices.push(h),
+                            a.push(new Jt.Vector2(u / r, l / n)),
+                            s.push(h.clone().sub(o).normalize());
+                        }
+                      for (l = 1; l <= n; l++)
+                        for (u = 1; u <= r; u++) {
+                          var p = (r + 1) * l + u - 1,
+                            d = (r + 1) * (l - 1) + u - 1,
+                            f = (r + 1) * (l - 1) + u,
+                            g = (r + 1) * l + u,
+                            m = new Jt.Face3(p, d, g, [s[p].clone(), s[d].clone(), s[g].clone()]);
+                          this.faces.push(m),
+                            this.faceVertexUvs[0].push([a[p].clone(), a[d].clone(), a[g].clone()]),
+                            (m = new Jt.Face3(d, f, g, [s[d].clone(), s[f].clone(), s[g].clone()])),
+                            this.faces.push(m),
+                            this.faceVertexUvs[0].push([a[d].clone(), a[f].clone(), a[g].clone()]);
+                        }
+                      this.computeFaceNormals();
+                    }),
+                    (Jt.TorusGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.TorusGeometry.prototype.constructor = Jt.TorusGeometry),
+                    (Jt.TorusKnotGeometry = function (t, e, n, r, i, o, a) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'TorusKnotGeometry'),
+                        (this.parameters = {
+                          radius: t,
+                          tube: e,
+                          radialSegments: n,
+                          tubularSegments: r,
+                          p: i,
+                          q: o,
+                          heightScale: a,
+                        }),
+                        (t = t || 100),
+                        (e = e || 40),
+                        (n = n || 64),
+                        (r = r || 8),
+                        (i = i || 2),
+                        (o = o || 3),
+                        (a = a || 1);
+                      for (
+                        var s = new Array(n),
+                          l = new Jt.Vector3(),
+                          u = new Jt.Vector3(),
+                          c = new Jt.Vector3(),
+                          A = 0;
+                        A < n;
+                        ++A
+                      ) {
+                        s[A] = new Array(r);
+                        var h = (A / n) * 2 * i * Math.PI,
+                          p = I(h, o, i, t, a),
+                          h = I(0.01 + h, o, i, t, a);
+                        l.subVectors(h, p),
+                          u.addVectors(h, p),
+                          c.crossVectors(l, u),
+                          u.crossVectors(c, l),
+                          c.normalize(),
+                          u.normalize();
+                        for (var d = 0; d < r; ++d) {
+                          var f = (d / r) * 2 * Math.PI,
+                            g = -e * Math.cos(f),
+                            f = e * Math.sin(f),
+                            m = new Jt.Vector3();
+                          (m.x = p.x + g * u.x + f * c.x),
+                            (m.y = p.y + g * u.y + f * c.y),
+                            (m.z = p.z + g * u.z + f * c.z),
+                            (s[A][d] = this.vertices.push(m) - 1);
+                        }
+                      }
+                      for (A = 0; A < n; ++A)
+                        for (d = 0; d < r; ++d) {
+                          var v = (A + 1) % n,
+                            b = (d + 1) % r,
+                            y = s[A][d],
+                            w = s[v][d],
+                            v = s[v][b],
+                            b = s[A][b],
+                            E = new Jt.Vector2(A / n, d / r),
+                            B = new Jt.Vector2((A + 1) / n, d / r),
+                            C = new Jt.Vector2((A + 1) / n, (d + 1) / r),
+                            x = new Jt.Vector2(A / n, (d + 1) / r);
+                          this.faces.push(new Jt.Face3(y, w, b)),
+                            this.faceVertexUvs[0].push([E, B, x]),
+                            this.faces.push(new Jt.Face3(w, v, b)),
+                            this.faceVertexUvs[0].push([B.clone(), C, x.clone()]);
+                        }
+                      function I(t, e, n, r, i) {
+                        var o = Math.cos(t),
+                          a = Math.sin(t),
+                          e = (e / n) * t,
+                          n = Math.cos(e),
+                          t = r * (2 + n) * 0.5 * o,
+                          o = r * (2 + n) * a * 0.5,
+                          n = i * r * Math.sin(e) * 0.5;
+                        return new Jt.Vector3(t, o, n);
+                      }
+                      this.computeFaceNormals(), this.computeVertexNormals();
+                    }),
+                    (Jt.TorusKnotGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.TorusKnotGeometry.prototype.constructor = Jt.TorusKnotGeometry),
+                    (Jt.TubeGeometry = function (t, e, n, r, i, o) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'TubeGeometry'),
+                        (this.parameters = {
+                          path: t,
+                          segments: e,
+                          radius: n,
+                          radialSegments: r,
+                          closed: i,
+                        }),
+                        (n = n || 1),
+                        (r = r || 8),
+                        (i = i || !1),
+                        (o = o || Jt.TubeGeometry.NoTaper);
+                      var a,
+                        s,
+                        l,
+                        u,
+                        c,
+                        A,
+                        h,
+                        p,
+                        d,
+                        f,
+                        g,
+                        m,
+                        v,
+                        b,
+                        y,
+                        w,
+                        E,
+                        B,
+                        C = [],
+                        x = this,
+                        I = (e = e || 64) + 1,
+                        M = new Jt.Vector3(),
+                        D = new Jt.TubeGeometry.FrenetFrames(t, e, i),
+                        S = D.tangents,
+                        k = D.normals,
+                        F = D.binormals;
+                      for (
+                        this.tangents = S, this.normals = k, this.binormals = F, A = 0;
+                        A < I;
+                        A++
+                      )
+                        for (
+                          C[A] = [],
+                            c = t.getPointAt((l = A / (I - 1))),
+                            S[A],
+                            a = k[A],
+                            s = F[A],
+                            u = n * o(l),
+                            h = 0;
+                          h < r;
+                          h++
+                        )
+                          (E = (h / r) * 2 * Math.PI),
+                            (w = -u * Math.cos(E)),
+                            (E = u * Math.sin(E)),
+                            M.copy(c),
+                            (M.x += w * a.x + E * s.x),
+                            (M.y += w * a.y + E * s.y),
+                            (M.z += w * a.z + E * s.z),
+                            (C[A][h] =
+                              ((w = M.x),
+                              (E = M.y),
+                              (B = M.z),
+                              x.vertices.push(new Jt.Vector3(w, E, B)) - 1));
+                      for (A = 0; A < e; A++)
+                        for (h = 0; h < r; h++)
+                          (p = C[A][h]),
+                            (d = C[(g = i ? (A + 1) % e : A + 1)][h]),
+                            (f = C[g][(g = (h + 1) % r)]),
+                            (g = C[A][g]),
+                            (m = new Jt.Vector2(A / e, h / r)),
+                            (v = new Jt.Vector2((A + 1) / e, h / r)),
+                            (b = new Jt.Vector2((A + 1) / e, (h + 1) / r)),
+                            (y = new Jt.Vector2(A / e, (h + 1) / r)),
+                            this.faces.push(new Jt.Face3(p, d, g)),
+                            this.faceVertexUvs[0].push([m, v, y]),
+                            this.faces.push(new Jt.Face3(d, f, g)),
+                            this.faceVertexUvs[0].push([v.clone(), b, y.clone()]);
+                      this.computeFaceNormals(), this.computeVertexNormals();
+                    }),
+                    (Jt.TubeGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.TubeGeometry.prototype.constructor = Jt.TubeGeometry),
+                    (Jt.TubeGeometry.NoTaper = function (t) {
+                      return 1;
+                    }),
+                    (Jt.TubeGeometry.SinusoidalTaper = function (t) {
+                      return Math.sin(Math.PI * t);
+                    }),
+                    (Jt.TubeGeometry.FrenetFrames = function (t, e, n) {
+                      var r,
+                        i,
+                        o,
+                        a,
+                        s,
+                        l = new Jt.Vector3(),
+                        u = [],
+                        c = [],
+                        A = [],
+                        h = new Jt.Vector3(),
+                        p = new Jt.Matrix4(),
+                        d = e + 1;
+                      for (
+                        this.tangents = u, this.normals = c, this.binormals = A, s = 0;
+                        s < d;
+                        s++
+                      )
+                        (u[s] = t.getTangentAt(s / (d - 1))), u[s].normalize();
+                      for (
+                        c[0] = new Jt.Vector3(),
+                          A[0] = new Jt.Vector3(),
+                          e = Number.MAX_VALUE,
+                          i = Math.abs(u[0].x),
+                          o = Math.abs(u[0].y),
+                          a = Math.abs(u[0].z),
+                          i <= e && ((e = i), l.set(1, 0, 0)),
+                          o <= e && ((e = o), l.set(0, 1, 0)),
+                          a <= e && l.set(0, 0, 1),
+                          h.crossVectors(u[0], l).normalize(),
+                          c[0].crossVectors(u[0], h),
+                          A[0].crossVectors(u[0], c[0]),
+                          s = 1;
+                        s < d;
+                        s++
+                      )
+                        (c[s] = c[s - 1].clone()),
+                          (A[s] = A[s - 1].clone()),
+                          h.crossVectors(u[s - 1], u[s]),
+                          1e-4 < h.length() &&
+                            (h.normalize(),
+                            (r = Math.acos(Jt.Math.clamp(u[s - 1].dot(u[s]), -1, 1))),
+                            c[s].applyMatrix4(p.makeRotationAxis(h, r))),
+                          A[s].crossVectors(u[s], c[s]);
+                      if (n)
+                        for (
+                          r = Math.acos(Jt.Math.clamp(c[0].dot(c[d - 1]), -1, 1)),
+                            r /= d - 1,
+                            0 < u[0].dot(h.crossVectors(c[0], c[d - 1])) && (r = -r),
+                            s = 1;
+                          s < d;
+                          s++
+                        )
+                          c[s].applyMatrix4(p.makeRotationAxis(u[s], r * s)),
+                            A[s].crossVectors(u[s], c[s]);
+                    }),
+                    (Jt.PolyhedronGeometry = function (t, e, n, r) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'PolyhedronGeometry'),
+                        (this.parameters = { vertices: t, indices: e, radius: n, detail: r }),
+                        (n = n || 1),
+                        (r = r || 0);
+                      for (var i = this, o = 0, a = t.length; o < a; o += 3)
+                        Q(new Jt.Vector3(t[o], t[o + 1], t[o + 2]));
+                      for (
+                        var s = this.vertices, l = [], o = 0, u = 0, a = e.length;
+                        o < a;
+                        o += 3, u++
+                      ) {
+                        var c = s[e[o]],
+                          A = s[e[o + 1]],
+                          h = s[e[o + 2]];
+                        l[u] = new Jt.Face3(c.index, A.index, h.index, [
+                          c.clone(),
+                          A.clone(),
+                          h.clone(),
+                        ]);
+                      }
+                      for (var p = new Jt.Vector3(), o = 0, a = l.length; o < a; o++) {
+                        I = x = C = B = E = w = y = b = v = m = g = f = d = void 0;
+                        for (
+                          var d = l[o],
+                            f = r,
+                            g = Math.pow(2, f),
+                            m = Q(i.vertices[d.a]),
+                            v = Q(i.vertices[d.b]),
+                            b = Q(i.vertices[d.c]),
+                            y = [],
+                            w = 0;
+                          w <= g;
+                          w++
+                        ) {
+                          y[w] = [];
+                          for (
+                            var E = Q(m.clone().lerp(b, w / g)),
+                              B = Q(v.clone().lerp(b, w / g)),
+                              C = g - w,
+                              x = 0;
+                            x <= C;
+                            x++
+                          )
+                            y[w][x] = 0 == x && w == g ? E : Q(E.clone().lerp(B, x / C));
+                        }
+                        for (w = 0; w < g; w++)
+                          for (x = 0; x < 2 * (g - w) - 1; x++) {
+                            var I = Math.floor(x / 2);
+                            x % 2 == 0
+                              ? _(y[w][I + 1], y[w + 1][I], y[w][I])
+                              : _(y[w][I + 1], y[w + 1][I + 1], y[w + 1][I]);
+                          }
+                      }
+                      for (o = 0, a = this.faceVertexUvs[0].length; o < a; o++) {
+                        var M = this.faceVertexUvs[0][o],
+                          D = M[0].x,
+                          S = M[1].x,
+                          k = M[2].x,
+                          F = Math.max(D, Math.max(S, k)),
+                          U = Math.min(D, Math.min(S, k));
+                        0.9 < F &&
+                          U < 0.1 &&
+                          (D < 0.2 && (M[0].x += 1),
+                          S < 0.2 && (M[1].x += 1),
+                          k < 0.2 && (M[2].x += 1));
+                      }
+                      for (o = 0, a = this.vertices.length; o < a; o++)
+                        this.vertices[o].multiplyScalar(n);
+                      function Q(t) {
+                        var e = t.normalize().clone(),
+                          n = ((e.index = i.vertices.push(e) - 1), T(t) / 2 / Math.PI + 0.5),
+                          t = Math.atan2(-t.y, Math.sqrt(t.x * t.x + t.z * t.z)) / Math.PI + 0.5;
+                        return (e.uv = new Jt.Vector2(n, 1 - t)), e;
+                      }
+                      function _(t, e, n) {
+                        var r = new Jt.Face3(t.index, e.index, n.index, [
+                            t.clone(),
+                            e.clone(),
+                            n.clone(),
+                          ]),
+                          r = (i.faces.push(r), p.copy(t).add(e).add(n).divideScalar(3), T(p));
+                        i.faceVertexUvs[0].push([R(t.uv, t, r), R(e.uv, e, r), R(n.uv, n, r)]);
+                      }
+                      function T(t) {
+                        return Math.atan2(t.z, -t.x);
+                      }
+                      function R(t, e, n) {
+                        return (
+                          n < 0 && 1 === t.x && (t = new Jt.Vector2(t.x - 1, t.y)),
+                          (t =
+                            0 === e.x && 0 === e.z
+                              ? new Jt.Vector2(n / 2 / Math.PI + 0.5, t.y)
+                              : t).clone()
+                        );
+                      }
+                      this.mergeVertices(),
+                        this.computeFaceNormals(),
+                        (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), n));
+                    }),
+                    (Jt.PolyhedronGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.PolyhedronGeometry.prototype.constructor = Jt.PolyhedronGeometry),
+                    (Jt.DodecahedronGeometry = function (t, e) {
+                      this.parameters = { radius: t, detail: e };
+                      var n = (1 + Math.sqrt(5)) / 2,
+                        r = 1 / n;
+                      Jt.PolyhedronGeometry.call(
+                        this,
+                        [
+                          -1,
+                          -1,
+                          -1,
+                          -1,
+                          -1,
+                          1,
+                          -1,
+                          1,
+                          -1,
+                          -1,
+                          1,
+                          1,
+                          1,
+                          -1,
+                          -1,
+                          1,
+                          -1,
+                          1,
+                          1,
+                          1,
+                          -1,
+                          1,
+                          1,
+                          1,
+                          0,
+                          -r,
+                          -n,
+                          0,
+                          -r,
+                          n,
+                          0,
+                          r,
+                          -n,
+                          0,
+                          r,
+                          n,
+                          -r,
+                          -n,
+                          0,
+                          -r,
+                          n,
+                          0,
+                          r,
+                          -n,
+                          0,
+                          r,
+                          n,
+                          0,
+                          -n,
+                          0,
+                          -r,
+                          n,
+                          0,
+                          -r,
+                          -n,
+                          0,
+                          r,
+                          n,
+                          0,
+                          r,
+                        ],
+                        [
+                          3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, 8,
+                          17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, 18, 0,
+                          18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, 3, 13, 18,
+                          1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, 11, 9, 5, 11, 5,
+                          19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, 12, 14, 1, 14, 5, 1, 5,
+                          9,
+                        ],
+                        t,
+                        e,
+                      );
+                    }),
+                    (Jt.DodecahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.DodecahedronGeometry.prototype.constructor = Jt.DodecahedronGeometry),
+                    (Jt.IcosahedronGeometry = function (t, e) {
+                      var n = (1 + Math.sqrt(5)) / 2;
+                      Jt.PolyhedronGeometry.call(
+                        this,
+                        [
+                          -1,
+                          n,
+                          0,
+                          1,
+                          n,
+                          0,
+                          -1,
+                          -n,
+                          0,
+                          1,
+                          -n,
+                          0,
+                          0,
+                          -1,
+                          n,
+                          0,
+                          1,
+                          n,
+                          0,
+                          -1,
+                          -n,
+                          0,
+                          1,
+                          -n,
+                          n,
+                          0,
+                          -1,
+                          n,
+                          0,
+                          1,
+                          -n,
+                          0,
+                          -1,
+                          -n,
+                          0,
+                          1,
+                        ],
+                        [
+                          0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, 11,
+                          10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, 4,
+                          9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1,
+                        ],
+                        t,
+                        e,
+                      ),
+                        (this.type = 'IcosahedronGeometry'),
+                        (this.parameters = { radius: t, detail: e });
+                    }),
+                    (Jt.IcosahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.IcosahedronGeometry.prototype.constructor = Jt.IcosahedronGeometry),
+                    (Jt.OctahedronGeometry = function (t, e) {
+                      this.parameters = { radius: t, detail: e };
+                      Jt.PolyhedronGeometry.call(
+                        this,
+                        [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1],
+                        [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2],
+                        t,
+                        e,
+                      ),
+                        (this.type = 'OctahedronGeometry'),
+                        (this.parameters = { radius: t, detail: e });
+                    }),
+                    (Jt.OctahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.OctahedronGeometry.prototype.constructor = Jt.OctahedronGeometry),
+                    (Jt.TetrahedronGeometry = function (t, e) {
+                      Jt.PolyhedronGeometry.call(
+                        this,
+                        [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1],
+                        [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1],
+                        t,
+                        e,
+                      ),
+                        (this.type = 'TetrahedronGeometry'),
+                        (this.parameters = { radius: t, detail: e });
+                    }),
+                    (Jt.TetrahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.TetrahedronGeometry.prototype.constructor = Jt.TetrahedronGeometry),
+                    (Jt.ParametricGeometry = function (t, e, n) {
+                      Jt.Geometry.call(this),
+                        (this.type = 'ParametricGeometry'),
+                        (this.parameters = { func: t, slices: e, stacks: n });
+                      for (
+                        var r,
+                          i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u,
+                          c,
+                          A,
+                          h,
+                          p,
+                          d = this.vertices,
+                          f = this.faces,
+                          g = this.faceVertexUvs[0],
+                          m = e + 1,
+                          v = 0;
+                        v <= n;
+                        v++
+                      )
+                        for (o = v / n, r = 0; r <= e; r++) (i = t(r / e, o)), d.push(i);
+                      for (v = 0; v < n; v++)
+                        for (r = 0; r < e; r++)
+                          (s = (a = v * m + r) + 1),
+                            (l = (v + 1) * m + r + 1),
+                            (u = (v + 1) * m + r),
+                            (c = new Jt.Vector2(r / e, v / n)),
+                            (A = new Jt.Vector2((r + 1) / e, v / n)),
+                            (h = new Jt.Vector2((r + 1) / e, (v + 1) / n)),
+                            (p = new Jt.Vector2(r / e, (v + 1) / n)),
+                            f.push(new Jt.Face3(a, s, u)),
+                            g.push([c, A, p]),
+                            f.push(new Jt.Face3(s, l, u)),
+                            g.push([A.clone(), h, p.clone()]);
+                      this.computeFaceNormals(), this.computeVertexNormals();
+                    }),
+                    (Jt.ParametricGeometry.prototype = Object.create(Jt.Geometry.prototype)),
+                    (Jt.ParametricGeometry.prototype.constructor = Jt.ParametricGeometry),
+                    (Jt.AxisHelper = function (t) {
+                      t = t || 1;
+                      var t = new Float32Array([
+                          0,
+                          0,
+                          0,
+                          t,
+                          0,
+                          0,
+                          0,
+                          0,
+                          0,
+                          0,
+                          t,
+                          0,
+                          0,
+                          0,
+                          0,
+                          0,
+                          0,
+                          t,
+                        ]),
+                        e = new Float32Array([
+                          1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1,
+                        ]),
+                        n = new Jt.BufferGeometry(),
+                        t =
+                          (n.addAttribute('position', new Jt.BufferAttribute(t, 3)),
+                          n.addAttribute('color', new Jt.BufferAttribute(e, 3)),
+                          new Jt.LineBasicMaterial({ vertexColors: Jt.VertexColors }));
+                      Jt.Line.call(this, n, t, Jt.LinePieces);
+                    }),
+                    (Jt.AxisHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.AxisHelper.prototype.constructor = Jt.AxisHelper),
+                    (Jt.ArrowHelper =
+                      (($n = new Jt.Geometry()).vertices.push(
+                        new Jt.Vector3(0, 0, 0),
+                        new Jt.Vector3(0, 1, 0),
+                      ),
+                      (tr = new Jt.CylinderGeometry(0, 0.5, 1, 5, 1)).applyMatrix(
+                        new Jt.Matrix4().makeTranslation(0, -0.5, 0),
+                      ),
+                      function (t, e, n, r, i, o) {
+                        Jt.Object3D.call(this),
+                          void 0 === r && (r = 16776960),
+                          void 0 === n && (n = 1),
+                          void 0 === i && (i = 0.2 * n),
+                          void 0 === o && (o = 0.2 * i),
+                          this.position.copy(e),
+                          (this.line = new Jt.Line($n, new Jt.LineBasicMaterial({ color: r }))),
+                          (this.line.matrixAutoUpdate = !1),
+                          this.add(this.line),
+                          (this.cone = new Jt.Mesh(tr, new Jt.MeshBasicMaterial({ color: r }))),
+                          (this.cone.matrixAutoUpdate = !1),
+                          this.add(this.cone),
+                          this.setDirection(t),
+                          this.setLength(n, i, o);
+                      })),
+                    (Jt.ArrowHelper.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.ArrowHelper.prototype.constructor = Jt.ArrowHelper),
+                    (Jt.ArrowHelper.prototype.setDirection =
+                      ((nr = new Jt.Vector3()),
+                      function (t) {
+                        0.99999 < t.y
+                          ? this.quaternion.set(0, 0, 0, 1)
+                          : t.y < -0.99999
+                            ? this.quaternion.set(1, 0, 0, 0)
+                            : (nr.set(t.z, 0, -t.x).normalize(),
+                              (er = Math.acos(t.y)),
+                              this.quaternion.setFromAxisAngle(nr, er));
+                      })),
+                    (Jt.ArrowHelper.prototype.setLength = function (t, e, n) {
+                      void 0 === e && (e = 0.2 * t),
+                        void 0 === n && (n = 0.2 * e),
+                        this.line.scale.set(1, t - e, 1),
+                        this.line.updateMatrix(),
+                        this.cone.scale.set(n, e, n),
+                        (this.cone.position.y = t),
+                        this.cone.updateMatrix();
+                    }),
+                    (Jt.ArrowHelper.prototype.setColor = function (t) {
+                      this.line.material.color.set(t), this.cone.material.color.set(t);
+                    }),
+                    (Jt.BoxHelper = function (t) {
+                      var e = new Jt.BufferGeometry();
+                      e.addAttribute('position', new Jt.BufferAttribute(new Float32Array(72), 3)),
+                        Jt.Line.call(
+                          this,
+                          e,
+                          new Jt.LineBasicMaterial({ color: 16776960 }),
+                          Jt.LinePieces,
+                        ),
+                        void 0 !== t && this.update(t);
+                    }),
+                    (Jt.BoxHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.BoxHelper.prototype.constructor = Jt.BoxHelper),
+                    (Jt.BoxHelper.prototype.update = function (t) {
+                      var e = t.geometry,
+                        n = (null === e.boundingBox && e.computeBoundingBox(), e.boundingBox.min),
+                        e = e.boundingBox.max,
+                        r = this.geometry.attributes.position.array;
+                      (r[0] = e.x),
+                        (r[1] = e.y),
+                        (r[2] = e.z),
+                        (r[3] = n.x),
+                        (r[4] = e.y),
+                        (r[5] = e.z),
+                        (r[6] = n.x),
+                        (r[7] = e.y),
+                        (r[8] = e.z),
+                        (r[9] = n.x),
+                        (r[10] = n.y),
+                        (r[11] = e.z),
+                        (r[12] = n.x),
+                        (r[13] = n.y),
+                        (r[14] = e.z),
+                        (r[15] = e.x),
+                        (r[16] = n.y),
+                        (r[17] = e.z),
+                        (r[18] = e.x),
+                        (r[19] = n.y),
+                        (r[20] = e.z),
+                        (r[21] = e.x),
+                        (r[22] = e.y),
+                        (r[23] = e.z),
+                        (r[24] = e.x),
+                        (r[25] = e.y),
+                        (r[26] = n.z),
+                        (r[27] = n.x),
+                        (r[28] = e.y),
+                        (r[29] = n.z),
+                        (r[30] = n.x),
+                        (r[31] = e.y),
+                        (r[32] = n.z),
+                        (r[33] = n.x),
+                        (r[34] = n.y),
+                        (r[35] = n.z),
+                        (r[36] = n.x),
+                        (r[37] = n.y),
+                        (r[38] = n.z),
+                        (r[39] = e.x),
+                        (r[40] = n.y),
+                        (r[41] = n.z),
+                        (r[42] = e.x),
+                        (r[43] = n.y),
+                        (r[44] = n.z),
+                        (r[45] = e.x),
+                        (r[46] = e.y),
+                        (r[47] = n.z),
+                        (r[48] = e.x),
+                        (r[49] = e.y),
+                        (r[50] = e.z),
+                        (r[51] = e.x),
+                        (r[52] = e.y),
+                        (r[53] = n.z),
+                        (r[54] = n.x),
+                        (r[55] = e.y),
+                        (r[56] = e.z),
+                        (r[57] = n.x),
+                        (r[58] = e.y),
+                        (r[59] = n.z),
+                        (r[60] = n.x),
+                        (r[61] = n.y),
+                        (r[62] = e.z),
+                        (r[63] = n.x),
+                        (r[64] = n.y),
+                        (r[65] = n.z),
+                        (r[66] = e.x),
+                        (r[67] = n.y),
+                        (r[68] = e.z),
+                        (r[69] = e.x),
+                        (r[70] = n.y),
+                        (r[71] = n.z),
+                        (this.geometry.attributes.position.needsUpdate = !0),
+                        this.geometry.computeBoundingSphere(),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1);
+                    }),
+                    (Jt.BoundingBoxHelper = function (t, e) {
+                      e = void 0 !== e ? e : 8947848;
+                      (this.object = t),
+                        (this.box = new Jt.Box3()),
+                        Jt.Mesh.call(
+                          this,
+                          new Jt.BoxGeometry(1, 1, 1),
+                          new Jt.MeshBasicMaterial({ color: e, wireframe: !0 }),
+                        );
+                    }),
+                    (Jt.BoundingBoxHelper.prototype = Object.create(Jt.Mesh.prototype)),
+                    (Jt.BoundingBoxHelper.prototype.constructor = Jt.BoundingBoxHelper),
+                    (Jt.BoundingBoxHelper.prototype.update = function () {
+                      this.box.setFromObject(this.object),
+                        this.box.size(this.scale),
+                        this.box.center(this.position);
+                    }),
+                    (Jt.CameraHelper = function (t) {
+                      var n = new Jt.Geometry(),
+                        e = new Jt.LineBasicMaterial({
+                          color: 16777215,
+                          vertexColors: Jt.FaceColors,
+                        }),
+                        r = {},
+                        i = 16755200,
+                        o = 16711680,
+                        a = 3355443;
+                      function s(t, e, n) {
+                        l(t, n), l(e, n);
+                      }
+                      function l(t, e) {
+                        n.vertices.push(new Jt.Vector3()),
+                          n.colors.push(new Jt.Color(e)),
+                          void 0 === r[t] && (r[t] = []),
+                          r[t].push(n.vertices.length - 1);
+                      }
+                      s('n1', 'n2', i),
+                        s('n2', 'n4', i),
+                        s('n4', 'n3', i),
+                        s('n3', 'n1', i),
+                        s('f1', 'f2', i),
+                        s('f2', 'f4', i),
+                        s('f4', 'f3', i),
+                        s('f3', 'f1', i),
+                        s('n1', 'f1', i),
+                        s('n2', 'f2', i),
+                        s('n3', 'f3', i),
+                        s('n4', 'f4', i),
+                        s('p', 'n1', o),
+                        s('p', 'n2', o),
+                        s('p', 'n3', o),
+                        s('p', 'n4', o),
+                        s('u1', 'u2', 43775),
+                        s('u2', 'u3', 43775),
+                        s('u3', 'u1', 43775),
+                        s('c', 't', 16777215),
+                        s('p', 'c', a),
+                        s('cn1', 'cn2', a),
+                        s('cn3', 'cn4', a),
+                        s('cf1', 'cf2', a),
+                        s('cf3', 'cf4', a),
+                        Jt.Line.call(this, n, e, Jt.LinePieces),
+                        (this.camera = t),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1),
+                        (this.pointMap = r),
+                        this.update();
+                    }),
+                    (Jt.CameraHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.CameraHelper.prototype.constructor = Jt.CameraHelper),
+                    (Jt.CameraHelper.prototype.update =
+                      ((or = new Jt.Vector3()),
+                      (ar = new Jt.Camera()),
+                      function () {
+                        (rr = this.geometry), (ir = this.pointMap);
+                        ar.projectionMatrix.copy(this.camera.projectionMatrix),
+                          vr('c', 0, 0, -1),
+                          vr('t', 0, 0, 1),
+                          vr('n1', -1, -1, -1),
+                          vr('n2', 1, -1, -1),
+                          vr('n3', -1, 1, -1),
+                          vr('n4', 1, 1, -1),
+                          vr('f1', -1, -1, 1),
+                          vr('f2', 1, -1, 1),
+                          vr('f3', -1, 1, 1),
+                          vr('f4', 1, 1, 1),
+                          vr('u1', 0.7, 1.1, -1),
+                          vr('u2', -0.7, 1.1, -1),
+                          vr('u3', 0, 2, -1),
+                          vr('cf1', -1, 0, 1),
+                          vr('cf2', 1, 0, 1),
+                          vr('cf3', 0, -1, 1),
+                          vr('cf4', 0, 1, 1),
+                          vr('cn1', -1, 0, -1),
+                          vr('cn2', 1, 0, -1),
+                          vr('cn3', 0, -1, -1),
+                          vr('cn4', 0, 1, -1),
+                          (rr.verticesNeedUpdate = !0);
+                      })),
+                    (Jt.DirectionalLightHelper = function (t, e) {
+                      Jt.Object3D.call(this),
+                        (this.light = t),
+                        this.light.updateMatrixWorld(),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1),
+                        (e = e || 1);
+                      (t = new Jt.Geometry()),
+                        t.vertices.push(
+                          new Jt.Vector3(-e, e, 0),
+                          new Jt.Vector3(e, e, 0),
+                          new Jt.Vector3(e, -e, 0),
+                          new Jt.Vector3(-e, -e, 0),
+                          new Jt.Vector3(-e, e, 0),
+                        ),
+                        (e = new Jt.LineBasicMaterial({ fog: !1 }));
+                      e.color.copy(this.light.color).multiplyScalar(this.light.intensity),
+                        (this.lightPlane = new Jt.Line(t, e)),
+                        this.add(this.lightPlane),
+                        (t = new Jt.Geometry()).vertices.push(new Jt.Vector3(), new Jt.Vector3()),
+                        (e = new Jt.LineBasicMaterial({ fog: !1 })).color
+                          .copy(this.light.color)
+                          .multiplyScalar(this.light.intensity),
+                        (this.targetLine = new Jt.Line(t, e)),
+                        this.add(this.targetLine),
+                        this.update();
+                    }),
+                    (Jt.DirectionalLightHelper.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.DirectionalLightHelper.prototype.constructor = Jt.DirectionalLightHelper),
+                    (Jt.DirectionalLightHelper.prototype.dispose = function () {
+                      this.lightPlane.geometry.dispose(),
+                        this.lightPlane.material.dispose(),
+                        this.targetLine.geometry.dispose(),
+                        this.targetLine.material.dispose();
+                    }),
+                    (Jt.DirectionalLightHelper.prototype.update =
+                      ((sr = new Jt.Vector3()),
+                      (lr = new Jt.Vector3()),
+                      (ur = new Jt.Vector3()),
+                      function () {
+                        sr.setFromMatrixPosition(this.light.matrixWorld),
+                          lr.setFromMatrixPosition(this.light.target.matrixWorld),
+                          ur.subVectors(lr, sr),
+                          this.lightPlane.lookAt(ur),
+                          this.lightPlane.material.color
+                            .copy(this.light.color)
+                            .multiplyScalar(this.light.intensity),
+                          this.targetLine.geometry.vertices[1].copy(ur),
+                          (this.targetLine.geometry.verticesNeedUpdate = !0),
+                          this.targetLine.material.color.copy(this.lightPlane.material.color);
+                      })),
+                    (Jt.EdgesHelper = function (t, e, n) {
+                      for (
+                        var r,
+                          e = void 0 !== e ? e : 16777215,
+                          i = ((n = void 0 !== n ? n : 1), Math.cos(Jt.Math.degToRad(n))),
+                          o = [0, 0],
+                          a = {},
+                          s = function (t, e) {
+                            return t - e;
+                          },
+                          l = ['a', 'b', 'c'],
+                          n = new Jt.BufferGeometry(),
+                          u =
+                            (t.geometry instanceof Jt.BufferGeometry
+                              ? (r = new Jt.Geometry()).fromBufferGeometry(t.geometry)
+                              : (r = t.geometry.clone()),
+                            r.mergeVertices(),
+                            r.computeFaceNormals(),
+                            r.vertices),
+                          c = r.faces,
+                          A = 0,
+                          h = 0,
+                          p = c.length;
+                        h < p;
+                        h++
+                      )
+                        for (var d = c[h], f = 0; f < 3; f++)
+                          (o[0] = d[l[f]]),
+                            (o[1] = d[l[(f + 1) % 3]]),
+                            o.sort(s),
+                            void 0 === a[(g = o.toString())]
+                              ? ((a[g] = { vert1: o[0], vert2: o[1], face1: h, face2: void 0 }),
+                                A++)
+                              : (a[g].face2 = h);
+                      var g,
+                        m = new Float32Array(2 * A * 3),
+                        v = 0;
+                      for (g in a) {
+                        var b,
+                          y = a[g];
+                        (void 0 === y.face2 || c[y.face1].normal.dot(c[y.face2].normal) <= i) &&
+                          ((b = u[y.vert1]),
+                          (m[v++] = b.x),
+                          (m[v++] = b.y),
+                          (m[v++] = b.z),
+                          (b = u[y.vert2]),
+                          (m[v++] = b.x),
+                          (m[v++] = b.y),
+                          (m[v++] = b.z));
+                      }
+                      n.addAttribute('position', new Jt.BufferAttribute(m, 3)),
+                        Jt.Line.call(
+                          this,
+                          n,
+                          new Jt.LineBasicMaterial({ color: e }),
+                          Jt.LinePieces,
+                        ),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1);
+                    }),
+                    (Jt.EdgesHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.EdgesHelper.prototype.constructor = Jt.EdgesHelper),
+                    (Jt.FaceNormalsHelper = function (t, e, n, r) {
+                      (this.object = t), (this.size = void 0 !== e ? e : 1);
+                      for (
+                        var t = void 0 !== n ? n : 16776960,
+                          e = void 0 !== r ? r : 1,
+                          i = new Jt.Geometry(),
+                          o = 0,
+                          a = this.object.geometry.faces.length;
+                        o < a;
+                        o++
+                      )
+                        i.vertices.push(new Jt.Vector3(), new Jt.Vector3());
+                      Jt.Line.call(
+                        this,
+                        i,
+                        new Jt.LineBasicMaterial({ color: t, linewidth: e }),
+                        Jt.LinePieces,
+                      ),
+                        (this.matrixAutoUpdate = !1),
+                        (this.normalMatrix = new Jt.Matrix3()),
+                        this.update();
+                    }),
+                    (Jt.FaceNormalsHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.FaceNormalsHelper.prototype.constructor = Jt.FaceNormalsHelper),
+                    (Jt.FaceNormalsHelper.prototype.update = function () {
+                      var t = this.geometry.vertices,
+                        e = this.object,
+                        n = e.geometry.vertices,
+                        r = e.geometry.faces,
+                        i = e.matrixWorld;
+                      e.updateMatrixWorld(!0), this.normalMatrix.getNormalMatrix(i);
+                      for (var o = 0, a = 0, s = r.length; o < s; o++, a += 2) {
+                        var l = r[o];
+                        t[a].copy(n[l.a]).add(n[l.b]).add(n[l.c]).divideScalar(3).applyMatrix4(i),
+                          t[a + 1]
+                            .copy(l.normal)
+                            .applyMatrix3(this.normalMatrix)
+                            .normalize()
+                            .multiplyScalar(this.size)
+                            .add(t[a]);
+                      }
+                      return (this.geometry.verticesNeedUpdate = !0), this;
+                    }),
+                    (Jt.GridHelper = function (t, e) {
+                      var n = new Jt.Geometry(),
+                        r = new Jt.LineBasicMaterial({ vertexColors: Jt.VertexColors });
+                      (this.color1 = new Jt.Color(4473924)), (this.color2 = new Jt.Color(8947848));
+                      for (var i = -t; i <= t; i += e) {
+                        n.vertices.push(
+                          new Jt.Vector3(-t, 0, i),
+                          new Jt.Vector3(t, 0, i),
+                          new Jt.Vector3(i, 0, -t),
+                          new Jt.Vector3(i, 0, t),
+                        );
+                        var o = 0 === i ? this.color1 : this.color2;
+                        n.colors.push(o, o, o, o);
+                      }
+                      Jt.Line.call(this, n, r, Jt.LinePieces);
+                    }),
+                    (Jt.GridHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.GridHelper.prototype.constructor = Jt.GridHelper),
+                    (Jt.GridHelper.prototype.setColors = function (t, e) {
+                      this.color1.set(t), this.color2.set(e), (this.geometry.colorsNeedUpdate = !0);
+                    }),
+                    (Jt.HemisphereLightHelper = function (t, e) {
+                      Jt.Object3D.call(this),
+                        (this.light = t),
+                        this.light.updateMatrixWorld(),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1),
+                        (this.colors = [new Jt.Color(), new Jt.Color()]);
+                      var n = new Jt.SphereGeometry(e, 4, 2);
+                      n.applyMatrix(new Jt.Matrix4().makeRotationX(-Math.PI / 2));
+                      for (var r = 0; r < 8; r++) n.faces[r].color = this.colors[r < 4 ? 0 : 1];
+                      t = new Jt.MeshBasicMaterial({ vertexColors: Jt.FaceColors, wireframe: !0 });
+                      (this.lightSphere = new Jt.Mesh(n, t)),
+                        this.add(this.lightSphere),
+                        this.update();
+                    }),
+                    (Jt.HemisphereLightHelper.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.HemisphereLightHelper.prototype.constructor = Jt.HemisphereLightHelper),
+                    (Jt.HemisphereLightHelper.prototype.dispose = function () {
+                      this.lightSphere.geometry.dispose(), this.lightSphere.material.dispose();
+                    }),
+                    (Jt.HemisphereLightHelper.prototype.update =
+                      ((cr = new Jt.Vector3()),
+                      function () {
+                        this.colors[0].copy(this.light.color).multiplyScalar(this.light.intensity),
+                          this.colors[1]
+                            .copy(this.light.groundColor)
+                            .multiplyScalar(this.light.intensity),
+                          this.lightSphere.lookAt(
+                            cr.setFromMatrixPosition(this.light.matrixWorld).negate(),
+                          ),
+                          (this.lightSphere.geometry.colorsNeedUpdate = !0);
+                      })),
+                    (Jt.PointLightHelper = function (t, e) {
+                      (this.light = t), this.light.updateMatrixWorld();
+                      (t = new Jt.SphereGeometry(e, 4, 2)),
+                        (e = new Jt.MeshBasicMaterial({ wireframe: !0, fog: !1 }));
+                      e.color.copy(this.light.color).multiplyScalar(this.light.intensity),
+                        Jt.Mesh.call(this, t, e),
+                        (this.matrix = this.light.matrixWorld),
+                        (this.matrixAutoUpdate = !1);
+                    }),
+                    (Jt.PointLightHelper.prototype = Object.create(Jt.Mesh.prototype)),
+                    (Jt.PointLightHelper.prototype.constructor = Jt.PointLightHelper),
+                    (Jt.PointLightHelper.prototype.dispose = function () {
+                      this.geometry.dispose(), this.material.dispose();
+                    }),
+                    (Jt.PointLightHelper.prototype.update = function () {
+                      this.material.color
+                        .copy(this.light.color)
+                        .multiplyScalar(this.light.intensity);
+                    }),
+                    (Jt.SkeletonHelper = function (t) {
+                      this.bones = this.getBoneList(t);
+                      for (var e = new Jt.Geometry(), n = 0; n < this.bones.length; n++)
+                        this.bones[n].parent instanceof Jt.Bone &&
+                          (e.vertices.push(new Jt.Vector3()),
+                          e.vertices.push(new Jt.Vector3()),
+                          e.colors.push(new Jt.Color(0, 0, 1)),
+                          e.colors.push(new Jt.Color(0, 1, 0)));
+                      var r = new Jt.LineBasicMaterial({
+                        vertexColors: Jt.VertexColors,
+                        depthTest: !1,
+                        depthWrite: !1,
+                        transparent: !0,
+                      });
+                      Jt.Line.call(this, e, r, Jt.LinePieces),
+                        (this.root = t),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1),
+                        this.update();
+                    }),
+                    (Jt.SkeletonHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.SkeletonHelper.prototype.constructor = Jt.SkeletonHelper),
+                    (Jt.SkeletonHelper.prototype.getBoneList = function (t) {
+                      var e = [];
+                      t instanceof Jt.Bone && e.push(t);
+                      for (var n = 0; n < t.children.length; n++)
+                        e.push.apply(e, this.getBoneList(t.children[n]));
+                      return e;
+                    }),
+                    (Jt.SkeletonHelper.prototype.update = function () {
+                      for (
+                        var t = this.geometry,
+                          e = new Jt.Matrix4().getInverse(this.root.matrixWorld),
+                          n = new Jt.Matrix4(),
+                          r = 0,
+                          i = 0;
+                        i < this.bones.length;
+                        i++
+                      ) {
+                        var o = this.bones[i];
+                        o.parent instanceof Jt.Bone &&
+                          (n.multiplyMatrices(e, o.matrixWorld),
+                          t.vertices[r].setFromMatrixPosition(n),
+                          n.multiplyMatrices(e, o.parent.matrixWorld),
+                          t.vertices[r + 1].setFromMatrixPosition(n),
+                          (r += 2));
+                      }
+                      (t.verticesNeedUpdate = !0), t.computeBoundingSphere();
+                    }),
+                    (Jt.SpotLightHelper = function (t) {
+                      Jt.Object3D.call(this),
+                        (this.light = t),
+                        this.light.updateMatrixWorld(),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1);
+                      var t = new Jt.CylinderGeometry(0, 1, 1, 8, 1, !0),
+                        e =
+                          (t.applyMatrix(new Jt.Matrix4().makeTranslation(0, -0.5, 0)),
+                          t.applyMatrix(new Jt.Matrix4().makeRotationX(-Math.PI / 2)),
+                          new Jt.MeshBasicMaterial({ wireframe: !0, fog: !1 }));
+                      (this.cone = new Jt.Mesh(t, e)), this.add(this.cone), this.update();
+                    }),
+                    (Jt.SpotLightHelper.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.SpotLightHelper.prototype.constructor = Jt.SpotLightHelper),
+                    (Jt.SpotLightHelper.prototype.dispose = function () {
+                      this.cone.geometry.dispose(), this.cone.material.dispose();
+                    }),
+                    (Jt.SpotLightHelper.prototype.update =
+                      ((Ar = new Jt.Vector3()),
+                      (hr = new Jt.Vector3()),
+                      function () {
+                        var t = this.light.distance || 1e4,
+                          e = t * Math.tan(this.light.angle);
+                        this.cone.scale.set(e, e, t),
+                          Ar.setFromMatrixPosition(this.light.matrixWorld),
+                          hr.setFromMatrixPosition(this.light.target.matrixWorld),
+                          this.cone.lookAt(hr.sub(Ar)),
+                          this.cone.material.color
+                            .copy(this.light.color)
+                            .multiplyScalar(this.light.intensity);
+                      })),
+                    (Jt.VertexNormalsHelper = function (t, e, n, r) {
+                      (this.object = t), (this.size = void 0 !== e ? e : 1);
+                      for (
+                        var e = void 0 !== n ? n : 16711680,
+                          n = void 0 !== r ? r : 1,
+                          i = new Jt.Geometry(),
+                          o = t.geometry.faces,
+                          a = 0,
+                          s = o.length;
+                        a < s;
+                        a++
+                      )
+                        for (var l = 0, u = o[a].vertexNormals.length; l < u; l++)
+                          i.vertices.push(new Jt.Vector3(), new Jt.Vector3());
+                      Jt.Line.call(
+                        this,
+                        i,
+                        new Jt.LineBasicMaterial({ color: e, linewidth: n }),
+                        Jt.LinePieces,
+                      ),
+                        (this.matrixAutoUpdate = !1),
+                        (this.normalMatrix = new Jt.Matrix3()),
+                        this.update();
+                    }),
+                    (Jt.VertexNormalsHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.VertexNormalsHelper.prototype.constructor = Jt.VertexNormalsHelper),
+                    (Jt.VertexNormalsHelper.prototype.update =
+                      ((pr = new Jt.Vector3()),
+                      function (t) {
+                        for (
+                          var e = ['a', 'b', 'c', 'd'],
+                            n =
+                              (this.object.updateMatrixWorld(!0),
+                              this.normalMatrix.getNormalMatrix(this.object.matrixWorld),
+                              this.geometry.vertices),
+                            r = this.object.geometry.vertices,
+                            i = this.object.geometry.faces,
+                            o = this.object.matrixWorld,
+                            a = 0,
+                            s = 0,
+                            l = i.length;
+                          s < l;
+                          s++
+                        )
+                          for (var u = i[s], c = 0, A = u.vertexNormals.length; c < A; c++) {
+                            var h = r[u[e[c]]],
+                              p = u.vertexNormals[c];
+                            n[a].copy(h).applyMatrix4(o),
+                              pr
+                                .copy(p)
+                                .applyMatrix3(this.normalMatrix)
+                                .normalize()
+                                .multiplyScalar(this.size),
+                              pr.add(n[a]),
+                              n[(a += 1)].copy(pr),
+                              (a += 1);
+                          }
+                        return (this.geometry.verticesNeedUpdate = !0), this;
+                      })),
+                    (Jt.VertexTangentsHelper = function (t, e, n, r) {
+                      (this.object = t), (this.size = void 0 !== e ? e : 1);
+                      for (
+                        var e = void 0 !== n ? n : 255,
+                          n = void 0 !== r ? r : 1,
+                          i = new Jt.Geometry(),
+                          o = t.geometry.faces,
+                          a = 0,
+                          s = o.length;
+                        a < s;
+                        a++
+                      )
+                        for (var l = 0, u = o[a].vertexTangents.length; l < u; l++)
+                          i.vertices.push(new Jt.Vector3()), i.vertices.push(new Jt.Vector3());
+                      Jt.Line.call(
+                        this,
+                        i,
+                        new Jt.LineBasicMaterial({ color: e, linewidth: n }),
+                        Jt.LinePieces,
+                      ),
+                        (this.matrixAutoUpdate = !1),
+                        this.update();
+                    }),
+                    (Jt.VertexTangentsHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.VertexTangentsHelper.prototype.constructor = Jt.VertexTangentsHelper),
+                    (Jt.VertexTangentsHelper.prototype.update =
+                      ((dr = new Jt.Vector3()),
+                      function (t) {
+                        for (
+                          var e = ['a', 'b', 'c', 'd'],
+                            n = (this.object.updateMatrixWorld(!0), this.geometry.vertices),
+                            r = this.object.geometry.vertices,
+                            i = this.object.geometry.faces,
+                            o = this.object.matrixWorld,
+                            a = 0,
+                            s = 0,
+                            l = i.length;
+                          s < l;
+                          s++
+                        )
+                          for (var u = i[s], c = 0, A = u.vertexTangents.length; c < A; c++) {
+                            var h = r[u[e[c]]],
+                              p = u.vertexTangents[c];
+                            n[a].copy(h).applyMatrix4(o),
+                              dr.copy(p).transformDirection(o).multiplyScalar(this.size),
+                              dr.add(n[a]),
+                              n[(a += 1)].copy(dr),
+                              (a += 1);
+                          }
+                        return (this.geometry.verticesNeedUpdate = !0), this;
+                      })),
+                    (Jt.WireframeHelper = function (t, e) {
+                      function n(t, e) {
+                        return t - e;
+                      }
+                      var e = void 0 !== e ? e : 16777215,
+                        r = [0, 0],
+                        i = {},
+                        o = ['a', 'b', 'c'],
+                        a = new Jt.BufferGeometry();
+                      if (t.geometry instanceof Jt.Geometry) {
+                        for (
+                          var s = t.geometry.vertices,
+                            l = t.geometry.faces,
+                            u = 0,
+                            c = new Uint32Array(6 * l.length),
+                            A = 0,
+                            h = l.length;
+                          A < h;
+                          A++
+                        )
+                          for (var p = l[A], d = 0; d < 3; d++)
+                            (r[0] = p[o[d]]),
+                              (r[1] = p[o[(d + 1) % 3]]),
+                              r.sort(n),
+                              void 0 === i[(x = r.toString())] &&
+                                ((c[2 * u] = r[0]), (c[2 * u + 1] = r[1]), (i[x] = !0), u++);
+                        for (var f = new Float32Array(2 * u * 3), A = 0, h = u; A < h; A++)
+                          for (d = 0; d < 2; d++) {
+                            var g = s[c[2 * A + d]];
+                            (f[(B = 6 * A + 3 * d) + 0] = g.x), (f[B + 1] = g.y), (f[B + 2] = g.z);
+                          }
+                        a.addAttribute('position', new Jt.BufferAttribute(f, 3));
+                      } else if (t.geometry instanceof Jt.BufferGeometry)
+                        if (void 0 !== t.geometry.attributes.index) {
+                          for (
+                            var s = t.geometry.attributes.position.array,
+                              m = t.geometry.attributes.index.array,
+                              v = t.geometry.drawcalls,
+                              u = 0,
+                              c =
+                                (0 === v.length && (v = [{ count: m.length, index: 0, start: 0 }]),
+                                new Uint32Array(2 * m.length)),
+                              b = 0,
+                              y = v.length;
+                            b < y;
+                            ++b
+                          )
+                            for (
+                              var w = v[b].start, E = v[b].count, B = v[b].index, A = w, C = w + E;
+                              A < C;
+                              A += 3
+                            )
+                              for (var x, d = 0; d < 3; d++)
+                                (r[0] = B + m[A + d]),
+                                  (r[1] = B + m[A + ((d + 1) % 3)]),
+                                  r.sort(n),
+                                  void 0 === i[(x = r.toString())] &&
+                                    ((c[2 * u] = r[0]), (c[2 * u + 1] = r[1]), (i[x] = !0), u++);
+                          for (f = new Float32Array(2 * u * 3), A = 0, h = u; A < h; A++)
+                            for (d = 0; d < 2; d++) {
+                              var B = 6 * A + 3 * d,
+                                I = 3 * c[2 * A + d];
+                              (f[B + 0] = s[I]), (f[B + 1] = s[I + 1]), (f[B + 2] = s[I + 2]);
+                            }
+                          a.addAttribute('position', new Jt.BufferAttribute(f, 3));
+                        } else {
+                          for (
+                            var M = (u = (s = t.geometry.attributes.position.array).length / 3) / 3,
+                              f = new Float32Array(2 * u * 3),
+                              A = 0,
+                              h = M;
+                            A < h;
+                            A++
+                          )
+                            for (d = 0; d < 3; d++) {
+                              var D = 9 * A + 3 * d,
+                                I =
+                                  ((f[(B = 18 * A + 6 * d) + 0] = s[D]),
+                                  (f[B + 1] = s[1 + D]),
+                                  (f[B + 2] = s[2 + D]),
+                                  9 * A + ((d + 1) % 3) * 3);
+                              (f[B + 3] = s[I]), (f[B + 4] = s[I + 1]), (f[B + 5] = s[I + 2]);
+                            }
+                          a.addAttribute('position', new Jt.BufferAttribute(f, 3));
+                        }
+                      Jt.Line.call(this, a, new Jt.LineBasicMaterial({ color: e }), Jt.LinePieces),
+                        (this.matrix = t.matrixWorld),
+                        (this.matrixAutoUpdate = !1);
+                    }),
+                    (Jt.WireframeHelper.prototype = Object.create(Jt.Line.prototype)),
+                    (Jt.WireframeHelper.prototype.constructor = Jt.WireframeHelper),
+                    (Jt.ImmediateRenderObject = function () {
+                      Jt.Object3D.call(this), (this.render = function (t) {});
+                    }),
+                    (Jt.ImmediateRenderObject.prototype = Object.create(Jt.Object3D.prototype)),
+                    (Jt.ImmediateRenderObject.prototype.constructor = Jt.ImmediateRenderObject),
+                    (Jt.MorphBlendMesh = function (t, e) {
+                      Jt.Mesh.call(this, t, e),
+                        (this.animationsMap = {}),
+                        (this.animationsList = []);
+                      t = this.geometry.morphTargets.length;
+                      this.createAnimation('__default', 0, t - 1, +t),
+                        this.setAnimationWeight('__default', 1);
+                    }),
+                    (Jt.MorphBlendMesh.prototype = Object.create(Jt.Mesh.prototype)),
+                    (Jt.MorphBlendMesh.prototype.constructor = Jt.MorphBlendMesh),
+                    (Jt.MorphBlendMesh.prototype.createAnimation = function (t, e, n, r) {
+                      n = {
+                        startFrame: e,
+                        endFrame: n,
+                        length: n - e + 1,
+                        fps: r,
+                        duration: (n - e) / r,
+                        lastFrame: 0,
+                        currentFrame: 0,
+                        active: !1,
+                        time: 0,
+                        direction: 1,
+                        weight: 1,
+                        directionBackwards: !1,
+                        mirroredLoop: !1,
+                      };
+                      (this.animationsMap[t] = n), this.animationsList.push(n);
+                    }),
+                    (Jt.MorphBlendMesh.prototype.autoCreateAnimations = function (t) {
+                      for (
+                        var e,
+                          n = /([a-z]+)_?(\d+)/,
+                          r = {},
+                          i = this.geometry,
+                          o = 0,
+                          a = i.morphTargets.length;
+                        o < a;
+                        o++
+                      ) {
+                        var s,
+                          l = i.morphTargets[o].name.match(n);
+                        l &&
+                          1 < l.length &&
+                          (r[(s = l[1])] || (r[s] = { start: 1 / 0, end: -1 / 0 }),
+                          o < (u = r[s]).start && (u.start = o),
+                          o > u.end && (u.end = o),
+                          (e = e || s));
+                      }
+                      for (s in r) {
+                        var u = r[s];
+                        this.createAnimation(s, u.start, u.end, t);
+                      }
+                      this.firstAnimation = e;
+                    }),
+                    (Jt.MorphBlendMesh.prototype.setAnimationDirectionForward = function (t) {
+                      t = this.animationsMap[t];
+                      t && ((t.direction = 1), (t.directionBackwards = !1));
+                    }),
+                    (Jt.MorphBlendMesh.prototype.setAnimationDirectionBackward = function (t) {
+                      t = this.animationsMap[t];
+                      t && ((t.direction = -1), (t.directionBackwards = !0));
+                    }),
+                    (Jt.MorphBlendMesh.prototype.setAnimationFPS = function (t, e) {
+                      t = this.animationsMap[t];
+                      t && ((t.fps = e), (t.duration = (t.end - t.start) / t.fps));
+                    }),
+                    (Jt.MorphBlendMesh.prototype.setAnimationDuration = function (t, e) {
+                      t = this.animationsMap[t];
+                      t && ((t.duration = e), (t.fps = (t.end - t.start) / t.duration));
+                    }),
+                    (Jt.MorphBlendMesh.prototype.setAnimationWeight = function (t, e) {
+                      t = this.animationsMap[t];
+                      t && (t.weight = e);
+                    }),
+                    (Jt.MorphBlendMesh.prototype.setAnimationTime = function (t, e) {
+                      t = this.animationsMap[t];
+                      t && (t.time = e);
+                    }),
+                    (Jt.MorphBlendMesh.prototype.getAnimationTime = function (t) {
+                      var e = 0,
+                        t = this.animationsMap[t];
+                      return (e = t ? t.time : e);
+                    }),
+                    (Jt.MorphBlendMesh.prototype.getAnimationDuration = function (t) {
+                      var e = -1,
+                        t = this.animationsMap[t];
+                      return (e = t ? t.duration : e);
+                    }),
+                    (Jt.MorphBlendMesh.prototype.playAnimation = function (t) {
+                      var e = this.animationsMap[t];
+                      e
+                        ? ((e.time = 0), (e.active = !0))
+                        : Jt.warn(
+                            'THREE.MorphBlendMesh: animation[' +
+                              t +
+                              '] undefined in .playAnimation()',
+                          );
+                    }),
+                    (Jt.MorphBlendMesh.prototype.stopAnimation = function (t) {
+                      t = this.animationsMap[t];
+                      t && (t.active = !1);
+                    }),
+                    (Jt.MorphBlendMesh.prototype.update = function (t) {
+                      for (var e = 0, n = this.animationsList.length; e < n; e++) {
+                        var r,
+                          i,
+                          o,
+                          a = this.animationsList[e];
+                        a.active &&
+                          ((r = a.duration / a.length),
+                          (a.time += a.direction * t),
+                          a.mirroredLoop
+                            ? (a.time > a.duration || a.time < 0) &&
+                              ((a.direction *= -1),
+                              a.time > a.duration &&
+                                ((a.time = a.duration), (a.directionBackwards = !0)),
+                              a.time < 0 && ((a.time = 0), (a.directionBackwards = !1)))
+                            : ((a.time = a.time % a.duration),
+                              a.time < 0 && (a.time += a.duration)),
+                          (o =
+                            a.startFrame + Jt.Math.clamp(Math.floor(a.time / r), 0, a.length - 1)),
+                          (i = a.weight),
+                          o !== a.currentFrame &&
+                            ((this.morphTargetInfluences[a.lastFrame] = 0),
+                            (this.morphTargetInfluences[a.currentFrame] = +i),
+                            (this.morphTargetInfluences[o] = 0),
+                            (a.lastFrame = a.currentFrame),
+                            (a.currentFrame = o)),
+                          (o = (a.time % r) / r),
+                          a.directionBackwards && (o = 1 - o),
+                          (this.morphTargetInfluences[a.currentFrame] = o * i),
+                          (this.morphTargetInfluences[a.lastFrame] = (1 - o) * i));
+                      }
+                    }),
+                    (w = 0),
+                    (n = /MSIE (\d+\.\d+);/.test(navigator.userAgent)),
+                    (E = !!navigator.userAgent.match(/Trident\/7.0/)),
+                    (r = navigator.userAgent.indexOf('rv:11.0')),
+                    n && (w = new Number(RegExp.$1)),
+                    -1 != navigator.appVersion.indexOf('MSIE 10') && (w = 10),
+                    0 < (w = E && -1 != r ? 11 : w) &&
+                      (HTMLElement.prototype.getBoundingClientRect =
+                        ((fr = HTMLElement.prototype.getBoundingClientRect),
+                        function () {
+                          try {
+                            return fr.apply(this, arguments);
+                          } catch (t) {
+                            return { left: '', right: '', top: '', bottom: '' };
+                          }
+                        })),
+                    Jt);
+                function gr(t, e) {
+                  return t.distance - e.distance;
+                }
+                function mr(t, e) {
+                  var n,
+                    r,
+                    i,
+                    o = [],
+                    a = [],
+                    e = (t.length - 1) * e,
+                    s = Math.floor(e),
+                    e = e - s;
+                  return (
+                    (o[0] = 0 === s ? s : s - 1),
+                    (o[1] = s),
+                    (o[2] = s > t.length - 2 ? s : s + 1),
+                    (o[3] = s > t.length - 3 ? s : s + 2),
+                    (s = t[o[0]]),
+                    (r = t[o[1]]),
+                    (i = t[o[2]]),
+                    (t = t[o[3]]),
+                    (a[0] = Xn(s[0], r[0], i[0], t[0], e, (o = e * e), (n = e * o))),
+                    (a[1] = Xn(s[1], r[1], i[1], t[1], e, o, n)),
+                    (a[2] = Xn(s[2], r[2], i[2], t[2], e, o, n)),
+                    a
+                  );
+                }
+                function vr(t, e, n, r) {
+                  or.set(e, n, r).unproject(ar);
+                  var i = ir[t];
+                  if (void 0 !== i)
+                    for (var o = 0, a = i.length; o < a; o++) rr.vertices[i[o]].copy(or);
+                }
+                E = (function () {
+                  'use strict';
+                  var r = Array.prototype.slice;
+                  function t(t, e) {
+                    if (e) t.prototype = Object.create(e.prototype);
+                    t.prototype.constructor = t;
+                  }
+                  function l(t) {
+                    return c(t) ? t : e(t);
+                  }
+                  function s(t) {
+                    return u(t) ? t : ht(t);
+                  }
+                  function U(t) {
+                    return A(t) ? t : w(t);
+                  }
+                  function i(t) {
+                    return c(t) && !N(t) ? t : pt(t);
+                  }
+                  function c(t) {
+                    return !!(t && t[L]);
+                  }
+                  function u(t) {
+                    return !!(t && t[Y]);
+                  }
+                  function A(t) {
+                    return !!(t && t[O]);
+                  }
+                  function N(t) {
+                    return u(t) || A(t);
+                  }
+                  function P(t) {
+                    return !!(t && t[G]);
+                  }
+                  t(s, l),
+                    t(U, l),
+                    t(i, l),
+                    (l.isIterable = c),
+                    (l.isKeyed = u),
+                    (l.isIndexed = A),
+                    (l.isAssociative = N),
+                    (l.isOrdered = P),
+                    (l.Keyed = s),
+                    (l.Indexed = U),
+                    (l.Set = i);
+                  var L = '@@__IMMUTABLE_ITERABLE__@@',
+                    Y = '@@__IMMUTABLE_KEYED__@@',
+                    O = '@@__IMMUTABLE_INDEXED__@@',
+                    G = '@@__IMMUTABLE_ORDERED__@@',
+                    z = 'delete',
+                    b = 5,
+                    h = 1 << b,
+                    y = h - 1,
+                    v = {},
+                    H = { value: false },
+                    j = { value: false };
+                  function V(t) {
+                    t.value = false;
+                    return t;
+                  }
+                  function d(t) {
+                    t && (t.value = true);
+                  }
+                  function q() {}
+                  function W(t, e) {
+                    e = e || 0;
+                    var n = Math.max(0, t.length - e);
+                    var r = new Array(n);
+                    for (var i = 0; i < n; i++) r[i] = t[i + e];
+                    return r;
+                  }
+                  function J(t) {
+                    if (t.size === undefined) t.size = t.__iterate(Z);
+                    return t.size;
+                  }
+                  function K(t, e) {
+                    if (typeof e !== 'number') {
+                      var n = e >>> 0;
+                      if ('' + n !== e || n === 4294967295) return NaN;
+                      e = n;
+                    }
+                    return e < 0 ? J(t) + e : e;
+                  }
+                  function Z() {
+                    return true;
+                  }
+                  function X(t, e, n) {
+                    return (
+                      (t === 0 || (n !== undefined && t <= -n)) &&
+                      (e === undefined || (n !== undefined && e >= n))
+                    );
+                  }
+                  function $(t, e) {
+                    return et(t, e, 0);
+                  }
+                  function tt(t, e) {
+                    return et(t, e, e);
+                  }
+                  function et(t, e, n) {
+                    return t === undefined
+                      ? n
+                      : t < 0
+                        ? Math.max(0, e + t)
+                        : e === undefined
+                          ? t
+                          : Math.min(e, t);
+                  }
+                  var nt = 0,
+                    p = 1,
+                    rt = 2,
+                    it = typeof Symbol === 'function' && Symbol.iterator,
+                    ot = '@@iterator',
+                    at = it || ot;
+                  function f(t) {
+                    this.next = t;
+                  }
+                  function g(t, e, n, r) {
+                    var i = t === 0 ? e : t === 1 ? n : [e, n];
+                    r ? (r.value = i) : (r = { value: i, done: false });
+                    return r;
+                  }
+                  function m() {
+                    return { value: undefined, done: true };
+                  }
+                  function st(t) {
+                    return !!ct(t);
+                  }
+                  function lt(t) {
+                    return t && typeof t.next === 'function';
+                  }
+                  function ut(t) {
+                    var e = ct(t);
+                    return e && e.call(t);
+                  }
+                  function ct(t) {
+                    var e = t && ((it && t[it]) || t[ot]);
+                    if (typeof e === 'function') return e;
+                  }
+                  function At(t) {
+                    return t && typeof t.length === 'number';
+                  }
+                  function e(t) {
+                    return t === null || t === undefined ? Bt() : c(t) ? t.toSeq() : It(t);
+                  }
+                  function ht(t) {
+                    return t === null || t === undefined
+                      ? Bt().toKeyedSeq()
+                      : c(t)
+                        ? u(t)
+                          ? t.toSeq()
+                          : t.fromEntrySeq()
+                        : Ct(t);
+                  }
+                  function w(t) {
+                    return t === null || t === undefined
+                      ? Bt()
+                      : !c(t)
+                        ? xt(t)
+                        : u(t)
+                          ? t.entrySeq()
+                          : t.toIndexedSeq();
+                  }
+                  function pt(t) {
+                    return (
+                      t === null || t === undefined ? Bt() : !c(t) ? xt(t) : u(t) ? t.entrySeq() : t
+                    ).toSetSeq();
+                  }
+                  (f.prototype.toString = function () {
+                    return '[Iterator]';
+                  }),
+                    (f.KEYS = nt),
+                    (f.VALUES = p),
+                    (f.ENTRIES = rt),
+                    (f.prototype.inspect = f.prototype.toSource =
+                      function () {
+                        return this.toString();
+                      }),
+                    (f.prototype[at] = function () {
+                      return this;
+                    }),
+                    t(e, l),
+                    (e.of = function () {
+                      return e(arguments);
+                    }),
+                    (e.prototype.toSeq = function () {
+                      return this;
+                    }),
+                    (e.prototype.toString = function () {
+                      return this.__toString('Seq {', '}');
+                    }),
+                    (e.prototype.cacheResult = function () {
+                      if (!this._cache && this.__iterateUncached) {
+                        this._cache = this.entrySeq().toArray();
+                        this.size = this._cache.length;
+                      }
+                      return this;
+                    }),
+                    (e.prototype.__iterate = function (t, e) {
+                      return Dt(this, t, e, true);
+                    }),
+                    (e.prototype.__iterator = function (t, e) {
+                      return St(this, t, e, true);
+                    }),
+                    t(ht, e),
+                    (ht.prototype.toKeyedSeq = function () {
+                      return this;
+                    }),
+                    t(w, e),
+                    (w.of = function () {
+                      return w(arguments);
+                    }),
+                    (w.prototype.toIndexedSeq = function () {
+                      return this;
+                    }),
+                    (w.prototype.toString = function () {
+                      return this.__toString('Seq [', ']');
+                    }),
+                    (w.prototype.__iterate = function (t, e) {
+                      return Dt(this, t, e, false);
+                    }),
+                    (w.prototype.__iterator = function (t, e) {
+                      return St(this, t, e, false);
+                    }),
+                    t(pt, e),
+                    (pt.of = function () {
+                      return pt(arguments);
+                    }),
+                    (pt.prototype.toSetSeq = function () {
+                      return this;
+                    }),
+                    (e.isSeq = Et),
+                    (e.Keyed = ht),
+                    (e.Set = pt),
+                    (e.Indexed = w);
+                  var dt = '@@__IMMUTABLE_SEQ__@@',
+                    ft,
+                    gt,
+                    mt;
+                  function vt(t) {
+                    this._array = t;
+                    this.size = t.length;
+                  }
+                  function bt(t) {
+                    var e = Object.keys(t);
+                    this._object = t;
+                    this._keys = e;
+                    this.size = e.length;
+                  }
+                  function yt(t) {
+                    this._iterable = t;
+                    this.size = t.length || t.size;
+                  }
+                  function wt(t) {
+                    this._iterator = t;
+                    this._iteratorCache = [];
+                  }
+                  function Et(t) {
+                    return !!(t && t[dt]);
+                  }
+                  function Bt() {
+                    return ft || (ft = new vt([]));
+                  }
+                  function Ct(t) {
+                    var e = Array.isArray(t)
+                      ? new vt(t).fromEntrySeq()
+                      : lt(t)
+                        ? new wt(t).fromEntrySeq()
+                        : st(t)
+                          ? new yt(t).fromEntrySeq()
+                          : typeof t === 'object'
+                            ? new bt(t)
+                            : undefined;
+                    if (!e)
+                      throw new TypeError(
+                        'Expected Array or iterable object of [k, v] entries, ' +
+                          'or keyed object: ' +
+                          t,
+                      );
+                    return e;
+                  }
+                  function xt(t) {
+                    var e = Mt(t);
+                    if (!e)
+                      throw new TypeError('Expected Array or iterable object of values: ' + t);
+                    return e;
+                  }
+                  function It(t) {
+                    var e = Mt(t) || (typeof t === 'object' && new bt(t));
+                    if (!e)
+                      throw new TypeError(
+                        'Expected Array or iterable object of values, or keyed object: ' + t,
+                      );
+                    return e;
+                  }
+                  function Mt(t) {
+                    return At(t) ? new vt(t) : lt(t) ? new wt(t) : st(t) ? new yt(t) : undefined;
+                  }
+                  function Dt(t, e, n, r) {
+                    var i = t._cache;
+                    if (i) {
+                      var o = i.length - 1;
+                      for (var a = 0; a <= o; a++) {
+                        var s = i[n ? o - a : a];
+                        if (e(s[1], r ? s[0] : a, t) === false) return a + 1;
+                      }
+                      return a;
+                    }
+                    return t.__iterateUncached(e, n);
+                  }
+                  function St(t, e, n, r) {
+                    var i = t._cache;
+                    if (i) {
+                      var o = i.length - 1;
+                      var a = 0;
+                      return new f(function () {
+                        var t = i[n ? o - a : a];
+                        return a++ > o ? m() : g(e, r ? t[0] : a - 1, t[1]);
+                      });
+                    }
+                    return t.__iteratorUncached(e, n);
+                  }
+                  function kt(t, e) {
+                    return e ? Ft(e, t, '', { '': t }) : Qt(t);
+                  }
+                  function Ft(n, r, t, e) {
+                    if (Array.isArray(r))
+                      return n.call(
+                        e,
+                        t,
+                        w(r).map(function (t, e) {
+                          return Ft(n, t, e, r);
+                        }),
+                      );
+                    if (_t(r))
+                      return n.call(
+                        e,
+                        t,
+                        ht(r).map(function (t, e) {
+                          return Ft(n, t, e, r);
+                        }),
+                      );
+                    return r;
+                  }
+                  function Qt(t) {
+                    if (Array.isArray(t)) return w(t).map(Qt).toList();
+                    if (_t(t)) return ht(t).map(Qt).toMap();
+                    return t;
+                  }
+                  function _t(t) {
+                    return t && (t.constructor === Object || t.constructor === undefined);
+                  }
+                  function E(t, e) {
+                    if (t === e || (t !== t && e !== e)) return true;
+                    if (!t || !e) return false;
+                    if (typeof t.valueOf === 'function' && typeof e.valueOf === 'function') {
+                      t = t.valueOf();
+                      e = e.valueOf();
+                      if (t === e || (t !== t && e !== e)) return true;
+                      if (!t || !e) return false;
+                    }
+                    if (
+                      typeof t.equals === 'function' &&
+                      typeof e.equals === 'function' &&
+                      t.equals(e)
+                    )
+                      return true;
+                    return false;
+                  }
+                  function Tt(n, t) {
+                    if (n === t) return true;
+                    if (
+                      !c(t) ||
+                      (n.size !== undefined && t.size !== undefined && n.size !== t.size) ||
+                      (n.__hash !== undefined && t.__hash !== undefined && n.__hash !== t.__hash) ||
+                      u(n) !== u(t) ||
+                      A(n) !== A(t) ||
+                      P(n) !== P(t)
+                    )
+                      return false;
+                    if (n.size === 0 && t.size === 0) return true;
+                    var r = !N(n);
+                    if (P(n)) {
+                      var i = n.entries();
+                      return (
+                        t.every(function (t, e) {
+                          var n = i.next().value;
+                          return n && E(n[1], t) && (r || E(n[0], e));
+                        }) && i.next().done
+                      );
+                    }
+                    var o = false;
+                    if (n.size === undefined)
+                      if (t.size === undefined) {
+                        if (typeof n.cacheResult === 'function') n.cacheResult();
+                      } else {
+                        o = true;
+                        var e = n;
+                        n = t;
+                        t = e;
+                      }
+                    var a = true;
+                    var s = t.__iterate(function (t, e) {
+                      if (r ? !n.has(t) : o ? !E(t, n.get(e, v)) : !E(n.get(e, v), t)) {
+                        a = false;
+                        return false;
+                      }
+                    });
+                    return a && n.size === s;
+                  }
+                  function o(t, e) {
+                    if (!(this instanceof o)) return new o(t, e);
+                    this._value = t;
+                    this.size = e === undefined ? Infinity : Math.max(0, e);
+                    if (this.size === 0) {
+                      if (gt) return gt;
+                      gt = this;
+                    }
+                  }
+                  function Rt(t, e) {
+                    if (!t) throw new Error(e);
+                  }
+                  function a(t, e, n) {
+                    if (!(this instanceof a)) return new a(t, e, n);
+                    Rt(n !== 0, 'Cannot step a Range by 0');
+                    t = t || 0;
+                    if (e === undefined) e = Infinity;
+                    n = n === undefined ? 1 : Math.abs(n);
+                    if (e < t) n = -n;
+                    this._start = t;
+                    this._end = e;
+                    this._step = n;
+                    this.size = Math.max(0, Math.ceil((e - t) / n - 1) + 1);
+                    if (this.size === 0) {
+                      if (mt) return mt;
+                      mt = this;
+                    }
+                  }
+                  function Ut() {
+                    throw TypeError('Abstract');
+                  }
+                  function Nt() {}
+                  function Pt() {}
+                  function Lt() {}
+                  (e.prototype[dt] = true),
+                    t(vt, w),
+                    (vt.prototype.get = function (t, e) {
+                      return this.has(t) ? this._array[K(this, t)] : e;
+                    }),
+                    (vt.prototype.__iterate = function (t, e) {
+                      var n = this._array;
+                      var r = n.length - 1;
+                      for (var i = 0; i <= r; i++)
+                        if (t(n[e ? r - i : i], i, this) === false) return i + 1;
+                      return i;
+                    }),
+                    (vt.prototype.__iterator = function (t, e) {
+                      var n = this._array;
+                      var r = n.length - 1;
+                      var i = 0;
+                      return new f(function () {
+                        return i > r ? m() : g(t, i, n[e ? r - i++ : i++]);
+                      });
+                    }),
+                    t(bt, ht),
+                    (bt.prototype.get = function (t, e) {
+                      if (e !== undefined && !this.has(t)) return e;
+                      return this._object[t];
+                    }),
+                    (bt.prototype.has = function (t) {
+                      return this._object.hasOwnProperty(t);
+                    }),
+                    (bt.prototype.__iterate = function (t, e) {
+                      var n = this._object;
+                      var r = this._keys;
+                      var i = r.length - 1;
+                      for (var o = 0; o <= i; o++) {
+                        var a = r[e ? i - o : o];
+                        if (t(n[a], a, this) === false) return o + 1;
+                      }
+                      return o;
+                    }),
+                    (bt.prototype.__iterator = function (e, n) {
+                      var r = this._object;
+                      var i = this._keys;
+                      var o = i.length - 1;
+                      var a = 0;
+                      return new f(function () {
+                        var t = i[n ? o - a : a];
+                        return a++ > o ? m() : g(e, t, r[t]);
+                      });
+                    }),
+                    (bt.prototype[G] = true),
+                    t(yt, w),
+                    (yt.prototype.__iterateUncached = function (t, e) {
+                      if (e) return this.cacheResult().__iterate(t, e);
+                      var n = this._iterable;
+                      var r = ut(n);
+                      var i = 0;
+                      if (lt(r)) {
+                        var o;
+                        while (!(o = r.next()).done) if (t(o.value, i++, this) === false) break;
+                      }
+                      return i;
+                    }),
+                    (yt.prototype.__iteratorUncached = function (e, t) {
+                      if (t) return this.cacheResult().__iterator(e, t);
+                      var n = this._iterable;
+                      var r = ut(n);
+                      if (!lt(r)) return new f(m);
+                      var i = 0;
+                      return new f(function () {
+                        var t = r.next();
+                        return t.done ? t : g(e, i++, t.value);
+                      });
+                    }),
+                    t(wt, w),
+                    (wt.prototype.__iterateUncached = function (t, e) {
+                      if (e) return this.cacheResult().__iterate(t, e);
+                      var n = this._iterator;
+                      var r = this._iteratorCache;
+                      var i = 0;
+                      while (i < r.length) if (t(r[i], i++, this) === false) return i;
+                      var o;
+                      while (!(o = n.next()).done) {
+                        var a = o.value;
+                        r[i] = a;
+                        if (t(a, i++, this) === false) break;
+                      }
+                      return i;
+                    }),
+                    (wt.prototype.__iteratorUncached = function (e, t) {
+                      if (t) return this.cacheResult().__iterator(e, t);
+                      var n = this._iterator;
+                      var r = this._iteratorCache;
+                      var i = 0;
+                      return new f(function () {
+                        if (i >= r.length) {
+                          var t = n.next();
+                          if (t.done) return t;
+                          r[i] = t.value;
+                        }
+                        return g(e, i, r[i++]);
+                      });
+                    }),
+                    t(o, w),
+                    (o.prototype.toString = function () {
+                      if (this.size === 0) return 'Repeat []';
+                      return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';
+                    }),
+                    (o.prototype.get = function (t, e) {
+                      return this.has(t) ? this._value : e;
+                    }),
+                    (o.prototype.includes = function (t) {
+                      return E(this._value, t);
+                    }),
+                    (o.prototype.slice = function (t, e) {
+                      var n = this.size;
+                      return X(t, e, n) ? this : new o(this._value, tt(e, n) - $(t, n));
+                    }),
+                    (o.prototype.reverse = function () {
+                      return this;
+                    }),
+                    (o.prototype.indexOf = function (t) {
+                      if (E(this._value, t)) return 0;
+                      return -1;
+                    }),
+                    (o.prototype.lastIndexOf = function (t) {
+                      if (E(this._value, t)) return this.size;
+                      return -1;
+                    }),
+                    (o.prototype.__iterate = function (t, e) {
+                      for (var n = 0; n < this.size; n++)
+                        if (t(this._value, n, this) === false) return n + 1;
+                      return n;
+                    }),
+                    (o.prototype.__iterator = function (t, e) {
+                      var n = this;
+                      var r = 0;
+                      return new f(function () {
+                        return r < n.size ? g(t, r++, n._value) : m();
+                      });
+                    }),
+                    (o.prototype.equals = function (t) {
+                      return t instanceof o ? E(this._value, t._value) : Tt(t);
+                    }),
+                    t(a, w),
+                    (a.prototype.toString = function () {
+                      if (this.size === 0) return 'Range []';
+                      return (
+                        'Range [ ' +
+                        this._start +
+                        '...' +
+                        this._end +
+                        (this._step !== 1 ? ' by ' + this._step : '') +
+                        ' ]'
+                      );
+                    }),
+                    (a.prototype.get = function (t, e) {
+                      return this.has(t) ? this._start + K(this, t) * this._step : e;
+                    }),
+                    (a.prototype.includes = function (t) {
+                      var e = (t - this._start) / this._step;
+                      return e >= 0 && e < this.size && e === Math.floor(e);
+                    }),
+                    (a.prototype.slice = function (t, e) {
+                      if (X(t, e, this.size)) return this;
+                      t = $(t, this.size);
+                      e = tt(e, this.size);
+                      if (e <= t) return new a(0, 0);
+                      return new a(this.get(t, this._end), this.get(e, this._end), this._step);
+                    }),
+                    (a.prototype.indexOf = function (t) {
+                      var e = t - this._start;
+                      if (e % this._step === 0) {
+                        var n = e / this._step;
+                        if (n >= 0 && n < this.size) return n;
+                      }
+                      return -1;
+                    }),
+                    (a.prototype.lastIndexOf = function (t) {
+                      return this.indexOf(t);
+                    }),
+                    (a.prototype.__iterate = function (t, e) {
+                      var n = this.size - 1;
+                      var r = this._step;
+                      var i = e ? this._start + n * r : this._start;
+                      for (var o = 0; o <= n; o++) {
+                        if (t(i, o, this) === false) return o + 1;
+                        i += e ? -r : r;
+                      }
+                      return o;
+                    }),
+                    (a.prototype.__iterator = function (e, n) {
+                      var r = this.size - 1;
+                      var i = this._step;
+                      var o = n ? this._start + r * i : this._start;
+                      var a = 0;
+                      return new f(function () {
+                        var t = o;
+                        o += n ? -i : i;
+                        return a > r ? m() : g(e, a++, t);
+                      });
+                    }),
+                    (a.prototype.equals = function (t) {
+                      return t instanceof a
+                        ? this._start === t._start && this._end === t._end && this._step === t._step
+                        : Tt(this, t);
+                    }),
+                    t(Ut, l),
+                    t(Nt, Ut),
+                    t(Pt, Ut),
+                    t(Lt, Ut),
+                    (Ut.Keyed = Nt),
+                    (Ut.Indexed = Pt),
+                    (Ut.Set = Lt);
+                  var Yt =
+                    typeof Math.imul === 'function' && Math.imul(4294967295, 2) === -2
+                      ? Math.imul
+                      : function t(e, n) {
+                          e = e | 0;
+                          n = n | 0;
+                          var r = e & 65535;
+                          var i = n & 65535;
+                          return (r * i + ((((e >>> 16) * i + r * (n >>> 16)) << 16) >>> 0)) | 0;
+                        };
+                  function Ot(t) {
+                    return ((t >>> 1) & 1073741824) | (t & 3221225471);
+                  }
+                  function B(t) {
+                    if (t === false || t === null || t === undefined) return 0;
+                    if (typeof t.valueOf === 'function') {
+                      t = t.valueOf();
+                      if (t === false || t === null || t === undefined) return 0;
+                    }
+                    if (t === true) return 1;
+                    var e = typeof t;
+                    if (e === 'number') {
+                      var n = t | 0;
+                      if (n !== t) n ^= t * 4294967295;
+                      while (t > 4294967295) {
+                        t /= 4294967295;
+                        n ^= t;
+                      }
+                      return Ot(n);
+                    }
+                    if (e === 'string') return t.length > Xt ? Gt(t) : zt(t);
+                    if (typeof t.hashCode === 'function') return t.hashCode();
+                    if (e === 'object') return Ht(t);
+                    if (typeof t.toString === 'function') return zt(t.toString());
+                    throw new Error('Value type ' + e + ' cannot be hashed.');
+                  }
+                  function Gt(t) {
+                    var e = ee[t];
+                    if (e === undefined) {
+                      e = zt(t);
+                      if (te === $t) {
+                        te = 0;
+                        ee = {};
+                      }
+                      te++;
+                      ee[t] = e;
+                    }
+                    return e;
+                  }
+                  function zt(t) {
+                    var e = 0;
+                    for (var n = 0; n < t.length; n++) e = (31 * e + t.charCodeAt(n)) | 0;
+                    return Ot(e);
+                  }
+                  function Ht(t) {
+                    var e;
+                    if (Wt) {
+                      e = Jt.get(t);
+                      if (e !== undefined) return e;
+                    }
+                    e = t[Zt];
+                    if (e !== undefined) return e;
+                    if (!Vt) {
+                      e = t.propertyIsEnumerable && t.propertyIsEnumerable[Zt];
+                      if (e !== undefined) return e;
+                      e = qt(t);
+                      if (e !== undefined) return e;
+                    }
+                    e = ++Kt;
+                    if (Kt & 1073741824) Kt = 0;
+                    if (Wt) Jt.set(t, e);
+                    else if (jt !== undefined && jt(t) === false)
+                      throw new Error('Non-extensible objects are not allowed as keys.');
+                    else if (Vt)
+                      Object.defineProperty(t, Zt, {
+                        enumerable: false,
+                        configurable: false,
+                        writable: false,
+                        value: e,
+                      });
+                    else if (
+                      t.propertyIsEnumerable !== undefined &&
+                      t.propertyIsEnumerable === t.constructor.prototype.propertyIsEnumerable
+                    ) {
+                      t.propertyIsEnumerable = function () {
+                        return this.constructor.prototype.propertyIsEnumerable.apply(
+                          this,
+                          arguments,
+                        );
+                      };
+                      t.propertyIsEnumerable[Zt] = e;
+                    } else if (t.nodeType !== undefined) t[Zt] = e;
+                    else throw new Error('Unable to set a non-enumerable property on object.');
+                    return e;
+                  }
+                  var jt = Object.isExtensible,
+                    Vt = (function () {
+                      try {
+                        Object.defineProperty({}, '@', {});
+                        return true;
+                      } catch (t) {
+                        return false;
+                      }
+                    })();
+                  function qt(t) {
+                    if (t && t.nodeType > 0)
+                      switch (t.nodeType) {
+                        case 1:
+                          return t.uniqueID;
+                        case 9:
+                          return t.documentElement && t.documentElement.uniqueID;
+                      }
+                  }
+                  var Wt = typeof WeakMap === 'function',
+                    Jt;
+                  if (Wt) Jt = new WeakMap();
+                  var Kt = 0,
+                    Zt = '__immutablehash__';
+                  if (typeof Symbol === 'function') Zt = Symbol(Zt);
+                  var Xt = 16,
+                    $t = 255,
+                    te = 0,
+                    ee = {};
+                  function C(t) {
+                    Rt(t !== Infinity, 'Cannot perform this action with an infinite size.');
+                  }
+                  function x(e) {
+                    return e === null || e === undefined
+                      ? de()
+                      : ne(e) && !P(e)
+                        ? e
+                        : de().withMutations(function (n) {
+                            var t = s(e);
+                            C(t.size);
+                            t.forEach(function (t, e) {
+                              return n.set(e, t);
+                            });
+                          });
+                  }
+                  function ne(t) {
+                    return !!(t && t[re]);
+                  }
+                  t(x, Nt),
+                    (x.of = function () {
+                      var n = r.call(arguments, 0);
+                      return de().withMutations(function (t) {
+                        for (var e = 0; e < n.length; e += 2) {
+                          if (e + 1 >= n.length) throw new Error('Missing value for key: ' + n[e]);
+                          t.set(n[e], n[e + 1]);
+                        }
+                      });
+                    }),
+                    (x.prototype.toString = function () {
+                      return this.__toString('Map {', '}');
+                    }),
+                    (x.prototype.get = function (t, e) {
+                      return this._root ? this._root.get(0, undefined, t, e) : e;
+                    }),
+                    (x.prototype.set = function (t, e) {
+                      return fe(this, t, e);
+                    }),
+                    (x.prototype.setIn = function (t, e) {
+                      return this.updateIn(t, v, function () {
+                        return e;
+                      });
+                    }),
+                    (x.prototype.remove = function (t) {
+                      return fe(this, t, v);
+                    }),
+                    (x.prototype.deleteIn = function (t) {
+                      return this.updateIn(t, function () {
+                        return v;
+                      });
+                    }),
+                    (x.prototype.update = function (t, e, n) {
+                      return arguments.length === 1 ? t(this) : this.updateIn([t], e, n);
+                    }),
+                    (x.prototype.updateIn = function (t, e, n) {
+                      if (!n) {
+                        n = e;
+                        e = undefined;
+                      }
+                      var r = Ie(this, Dn(t), e, n);
+                      return r === v ? undefined : r;
+                    }),
+                    (x.prototype.clear = function () {
+                      if (this.size === 0) return this;
+                      if (this.__ownerID) {
+                        this.size = 0;
+                        this._root = null;
+                        this.__hash = undefined;
+                        this.__altered = true;
+                        return this;
+                      }
+                      return de();
+                    }),
+                    (x.prototype.merge = function () {
+                      return Ee(this, undefined, arguments);
+                    }),
+                    (x.prototype.mergeWith = function (t) {
+                      var e = r.call(arguments, 1);
+                      return Ee(this, t, e);
+                    }),
+                    (x.prototype.mergeIn = function (t) {
+                      var e = r.call(arguments, 1);
+                      return this.updateIn(t, de(), function (t) {
+                        return typeof t.merge === 'function'
+                          ? t.merge.apply(t, e)
+                          : e[e.length - 1];
+                      });
+                    }),
+                    (x.prototype.mergeDeep = function () {
+                      return Ee(this, Be, arguments);
+                    }),
+                    (x.prototype.mergeDeepWith = function (t) {
+                      var e = r.call(arguments, 1);
+                      return Ee(this, Ce(t), e);
+                    }),
+                    (x.prototype.mergeDeepIn = function (t) {
+                      var e = r.call(arguments, 1);
+                      return this.updateIn(t, de(), function (t) {
+                        return typeof t.mergeDeep === 'function'
+                          ? t.mergeDeep.apply(t, e)
+                          : e[e.length - 1];
+                      });
+                    }),
+                    (x.prototype.sort = function (t) {
+                      return D(vn(this, t));
+                    }),
+                    (x.prototype.sortBy = function (t, e) {
+                      return D(vn(this, e, t));
+                    }),
+                    (x.prototype.withMutations = function (t) {
+                      var e = this.asMutable();
+                      t(e);
+                      return e.wasAltered() ? e.__ensureOwner(this.__ownerID) : this;
+                    }),
+                    (x.prototype.asMutable = function () {
+                      return this.__ownerID ? this : this.__ensureOwner(new q());
+                    }),
+                    (x.prototype.asImmutable = function () {
+                      return this.__ensureOwner();
+                    }),
+                    (x.prototype.wasAltered = function () {
+                      return this.__altered;
+                    }),
+                    (x.prototype.__iterator = function (t, e) {
+                      return new ce(this, t, e);
+                    }),
+                    (x.prototype.__iterate = function (e, t) {
+                      var n = this;
+                      var r = 0;
+                      this._root &&
+                        this._root.iterate(function (t) {
+                          r++;
+                          return e(t[1], t[0], n);
+                        }, t);
+                      return r;
+                    }),
+                    (x.prototype.__ensureOwner = function (t) {
+                      if (t === this.__ownerID) return this;
+                      if (!t) {
+                        this.__ownerID = t;
+                        this.__altered = false;
+                        return this;
+                      }
+                      return pe(this.size, this._root, t, this.__hash);
+                    }),
+                    (x.isMap = ne);
+                  var re = '@@__IMMUTABLE_MAP__@@',
+                    I = x.prototype,
+                    ie;
+                  function oe(t, e) {
+                    this.ownerID = t;
+                    this.entries = e;
+                  }
+                  function ae(t, e, n) {
+                    this.ownerID = t;
+                    this.bitmap = e;
+                    this.nodes = n;
+                  }
+                  function se(t, e, n) {
+                    this.ownerID = t;
+                    this.count = e;
+                    this.nodes = n;
+                  }
+                  function le(t, e, n) {
+                    this.ownerID = t;
+                    this.keyHash = e;
+                    this.entries = n;
+                  }
+                  function ue(t, e, n) {
+                    this.ownerID = t;
+                    this.keyHash = e;
+                    this.entry = n;
+                  }
+                  function ce(t, e, n) {
+                    this._type = e;
+                    this._reverse = n;
+                    this._stack = t._root && he(t._root);
+                  }
+                  function Ae(t, e) {
+                    return g(t, e[0], e[1]);
+                  }
+                  function he(t, e) {
+                    return { node: t, index: 0, __prev: e };
+                  }
+                  function pe(t, e, n, r) {
+                    var i = Object.create(I);
+                    i.size = t;
+                    i._root = e;
+                    i.__ownerID = n;
+                    i.__hash = r;
+                    i.__altered = false;
+                    return i;
+                  }
+                  function de() {
+                    return ie || (ie = pe(0));
+                  }
+                  function fe(t, e, n) {
+                    var r;
+                    var i;
+                    if (!t._root) {
+                      if (n === v) return t;
+                      i = 1;
+                      r = new oe(t.__ownerID, [[e, n]]);
+                    } else {
+                      var o = V(H);
+                      var a = V(j);
+                      r = ge(t._root, t.__ownerID, 0, undefined, e, n, o, a);
+                      if (!a.value) return t;
+                      i = t.size + (o.value ? (n === v ? -1 : 1) : 0);
+                    }
+                    if (t.__ownerID) {
+                      t.size = i;
+                      t._root = r;
+                      t.__hash = undefined;
+                      t.__altered = true;
+                      return t;
+                    }
+                    return r ? pe(i, r) : de();
+                  }
+                  function ge(t, e, n, r, i, o, a, s) {
+                    if (!t) {
+                      if (o === v) return t;
+                      d(s);
+                      d(a);
+                      return new ue(e, r, [i, o]);
+                    }
+                    return t.update(e, n, r, i, o, a, s);
+                  }
+                  function me(t) {
+                    return t.constructor === ue || t.constructor === le;
+                  }
+                  function ve(t, e, n, r, i) {
+                    if (t.keyHash === r) return new le(e, r, [t.entry, i]);
+                    var o = (n === 0 ? t.keyHash : t.keyHash >>> n) & y;
+                    var a = (n === 0 ? r : r >>> n) & y;
+                    var s;
+                    var l =
+                      o === a
+                        ? [ve(t, e, n + b, r, i)]
+                        : ((s = new ue(e, r, i)), o < a ? [t, s] : [s, t]);
+                    return new ae(e, (1 << o) | (1 << a), l);
+                  }
+                  function be(t, e, n, r) {
+                    if (!t) t = new q();
+                    var i = new ue(t, B(n), [n, r]);
+                    for (var o = 0; o < e.length; o++) {
+                      var a = e[o];
+                      i = i.update(t, 0, undefined, a[0], a[1]);
+                    }
+                    return i;
+                  }
+                  function ye(t, e, n, r) {
+                    var i = 0;
+                    var o = 0;
+                    var a = new Array(n);
+                    for (var s = 0, l = 1, u = e.length; s < u; s++, l <<= 1) {
+                      var c = e[s];
+                      if (c !== undefined && s !== r) {
+                        i |= l;
+                        a[o++] = c;
+                      }
+                    }
+                    return new ae(t, i, a);
+                  }
+                  function we(t, e, n, r, i) {
+                    var o = 0;
+                    var a = new Array(h);
+                    for (var s = 0; n !== 0; s++, n >>>= 1) a[s] = n & 1 ? e[o++] : undefined;
+                    a[r] = i;
+                    return new se(t, o + 1, a);
+                  }
+                  function Ee(t, e, n) {
+                    var r = [];
+                    for (var i = 0; i < n.length; i++) {
+                      var o = n[i];
+                      var a = s(o);
+                      if (!c(o))
+                        a = a.map(function (t) {
+                          return kt(t);
+                        });
+                      r.push(a);
+                    }
+                    return xe(t, e, r);
+                  }
+                  function Be(t, e, n) {
+                    return t && t.mergeDeep && c(e) ? t.mergeDeep(e) : E(t, e) ? t : e;
+                  }
+                  function Ce(i) {
+                    return function (t, e, n) {
+                      if (t && t.mergeDeepWith && c(e)) return t.mergeDeepWith(i, e);
+                      var r = i(t, e, n);
+                      return E(t, r) ? t : r;
+                    };
+                  }
+                  function xe(t, i, n) {
+                    n = n.filter(function (t) {
+                      return t.size !== 0;
+                    });
+                    if (n.length === 0) return t;
+                    if (t.size === 0 && !t.__ownerID && n.length === 1) return t.constructor(n[0]);
+                    return t.withMutations(function (r) {
+                      var t = i
+                        ? function (e, n) {
+                            r.update(n, v, function (t) {
+                              return t === v ? e : i(t, e, n);
+                            });
+                          }
+                        : function (t, e) {
+                            r.set(e, t);
+                          };
+                      for (var e = 0; e < n.length; e++) n[e].forEach(t);
+                    });
+                  }
+                  function Ie(t, e, n, r) {
+                    var i = t === v;
+                    var o = e.next();
+                    if (o.done) {
+                      var a = i ? n : t;
+                      var s = r(a);
+                      return s === a ? t : s;
+                    }
+                    Rt(i || (t && t.set), 'invalid keyPath');
+                    var l = o.value;
+                    var u = i ? v : t.get(l, v);
+                    var c = Ie(u, e, n, r);
+                    return c === u ? t : c === v ? t.remove(l) : (i ? de() : t).set(l, c);
+                  }
+                  function Me(t) {
+                    t = t - ((t >> 1) & 1431655765);
+                    t = (t & 858993459) + ((t >> 2) & 858993459);
+                    t = (t + (t >> 4)) & 252645135;
+                    t = t + (t >> 8);
+                    t = t + (t >> 16);
+                    return t & 127;
+                  }
+                  function De(t, e, n, r) {
+                    var i = r ? t : W(t);
+                    i[e] = n;
+                    return i;
+                  }
+                  function Se(t, e, n, r) {
+                    var i = t.length + 1;
+                    if (r && e + 1 === i) {
+                      t[e] = n;
+                      return t;
+                    }
+                    var o = new Array(i);
+                    var a = 0;
+                    for (var s = 0; s < i; s++)
+                      if (s === e) {
+                        o[s] = n;
+                        a = -1;
+                      } else o[s] = t[s + a];
+                    return o;
+                  }
+                  function ke(t, e, n) {
+                    var r = t.length - 1;
+                    if (n && e === r) {
+                      t.pop();
+                      return t;
+                    }
+                    var i = new Array(r);
+                    var o = 0;
+                    for (var a = 0; a < r; a++) {
+                      if (a === e) o = 1;
+                      i[a] = t[a + o];
+                    }
+                    return i;
+                  }
+                  (I[re] = true),
+                    (I[z] = I.remove),
+                    (I.removeIn = I.deleteIn),
+                    (oe.prototype.get = function (t, e, n, r) {
+                      var i = this.entries;
+                      for (var o = 0, a = i.length; o < a; o++) if (E(n, i[o][0])) return i[o][1];
+                      return r;
+                    }),
+                    (oe.prototype.update = function (t, e, n, r, i, o, a) {
+                      var s = i === v;
+                      var l = this.entries;
+                      var u = 0;
+                      for (var c = l.length; u < c; u++) if (E(r, l[u][0])) break;
+                      var A = u < c;
+                      if (A ? l[u][1] === i : s) return this;
+                      d(a);
+                      (s || !A) && d(o);
+                      if (s && l.length === 1) return;
+                      if (!A && !s && l.length >= Fe) return be(t, l, r, i);
+                      var h = t && t === this.ownerID;
+                      var p = h ? l : W(l);
+                      if (A)
+                        if (s) u === c - 1 ? p.pop() : (p[u] = p.pop());
+                        else p[u] = [r, i];
+                      else p.push([r, i]);
+                      if (h) {
+                        this.entries = p;
+                        return this;
+                      }
+                      return new oe(t, p);
+                    }),
+                    (ae.prototype.get = function (t, e, n, r) {
+                      if (e === undefined) e = B(n);
+                      var i = 1 << ((t === 0 ? e : e >>> t) & y);
+                      var o = this.bitmap;
+                      return (o & i) === 0 ? r : this.nodes[Me(o & (i - 1))].get(t + b, e, n, r);
+                    }),
+                    (ae.prototype.update = function (t, e, n, r, i, o, a) {
+                      if (n === undefined) n = B(r);
+                      var s = (e === 0 ? n : n >>> e) & y;
+                      var l = 1 << s;
+                      var u = this.bitmap;
+                      var c = (u & l) !== 0;
+                      if (!c && i === v) return this;
+                      var A = Me(u & (l - 1));
+                      var h = this.nodes;
+                      var p = c ? h[A] : undefined;
+                      var d = ge(p, t, e + b, n, r, i, o, a);
+                      if (d === p) return this;
+                      if (!c && d && h.length >= Qe) return we(t, h, u, s, d);
+                      if (c && !d && h.length === 2 && me(h[A ^ 1])) return h[A ^ 1];
+                      if (c && d && h.length === 1 && me(d)) return d;
+                      var f = t && t === this.ownerID;
+                      var g = c ? (d ? u : u ^ l) : u | l;
+                      var m = c ? (d ? De(h, A, d, f) : ke(h, A, f)) : Se(h, A, d, f);
+                      if (f) {
+                        this.bitmap = g;
+                        this.nodes = m;
+                        return this;
+                      }
+                      return new ae(t, g, m);
+                    }),
+                    (se.prototype.get = function (t, e, n, r) {
+                      if (e === undefined) e = B(n);
+                      var i = (t === 0 ? e : e >>> t) & y;
+                      var o = this.nodes[i];
+                      return o ? o.get(t + b, e, n, r) : r;
+                    }),
+                    (se.prototype.update = function (t, e, n, r, i, o, a) {
+                      if (n === undefined) n = B(r);
+                      var s = (e === 0 ? n : n >>> e) & y;
+                      var l = i === v;
+                      var u = this.nodes;
+                      var c = u[s];
+                      if (l && !c) return this;
+                      var A = ge(c, t, e + b, n, r, i, o, a);
+                      if (A === c) return this;
+                      var h = this.count;
+                      if (!c) h++;
+                      else if (!A) {
+                        h--;
+                        if (h < _e) return ye(t, u, h, s);
+                      }
+                      var p = t && t === this.ownerID;
+                      var d = De(u, s, A, p);
+                      if (p) {
+                        this.count = h;
+                        this.nodes = d;
+                        return this;
+                      }
+                      return new se(t, h, d);
+                    }),
+                    (le.prototype.get = function (t, e, n, r) {
+                      var i = this.entries;
+                      for (var o = 0, a = i.length; o < a; o++) if (E(n, i[o][0])) return i[o][1];
+                      return r;
+                    }),
+                    (le.prototype.update = function (t, e, n, r, i, o, a) {
+                      if (n === undefined) n = B(r);
+                      var s = i === v;
+                      if (n !== this.keyHash) {
+                        if (s) return this;
+                        d(a);
+                        d(o);
+                        return ve(this, t, e, n, [r, i]);
+                      }
+                      var l = this.entries;
+                      var u = 0;
+                      for (var c = l.length; u < c; u++) if (E(r, l[u][0])) break;
+                      var A = u < c;
+                      if (A ? l[u][1] === i : s) return this;
+                      d(a);
+                      (s || !A) && d(o);
+                      if (s && c === 2) return new ue(t, this.keyHash, l[u ^ 1]);
+                      var h = t && t === this.ownerID;
+                      var p = h ? l : W(l);
+                      if (A)
+                        if (s) u === c - 1 ? p.pop() : (p[u] = p.pop());
+                        else p[u] = [r, i];
+                      else p.push([r, i]);
+                      if (h) {
+                        this.entries = p;
+                        return this;
+                      }
+                      return new le(t, this.keyHash, p);
+                    }),
+                    (ue.prototype.get = function (t, e, n, r) {
+                      return E(n, this.entry[0]) ? this.entry[1] : r;
+                    }),
+                    (ue.prototype.update = function (t, e, n, r, i, o, a) {
+                      var s = i === v;
+                      var l = E(r, this.entry[0]);
+                      if (l ? i === this.entry[1] : s) return this;
+                      d(a);
+                      if (s) {
+                        d(o);
+                        return;
+                      }
+                      if (l) {
+                        if (t && t === this.ownerID) {
+                          this.entry[1] = i;
+                          return this;
+                        }
+                        return new ue(t, this.keyHash, [r, i]);
+                      }
+                      d(o);
+                      return ve(this, t, e, B(r), [r, i]);
+                    }),
+                    (oe.prototype.iterate = le.prototype.iterate =
+                      function (t, e) {
+                        var n = this.entries;
+                        for (var r = 0, i = n.length - 1; r <= i; r++)
+                          if (t(n[e ? i - r : r]) === false) return false;
+                      }),
+                    (ae.prototype.iterate = se.prototype.iterate =
+                      function (t, e) {
+                        var n = this.nodes;
+                        for (var r = 0, i = n.length - 1; r <= i; r++) {
+                          var o = n[e ? i - r : r];
+                          if (o && o.iterate(t, e) === false) return false;
+                        }
+                      }),
+                    (ue.prototype.iterate = function (t, e) {
+                      return t(this.entry);
+                    }),
+                    t(ce, f),
+                    (ce.prototype.next = function () {
+                      var t = this._type;
+                      var e = this._stack;
+                      while (e) {
+                        var n = e.node;
+                        var r = e.index++;
+                        var i;
+                        if (n.entry) {
+                          if (r === 0) return Ae(t, n.entry);
+                        } else if (n.entries) {
+                          i = n.entries.length - 1;
+                          if (r <= i) return Ae(t, n.entries[this._reverse ? i - r : r]);
+                        } else {
+                          i = n.nodes.length - 1;
+                          if (r <= i) {
+                            var o = n.nodes[this._reverse ? i - r : r];
+                            if (o) {
+                              if (o.entry) return Ae(t, o.entry);
+                              e = this._stack = he(o, e);
+                            }
+                            continue;
+                          }
+                        }
+                        e = this._stack = this._stack.__prev;
+                      }
+                      return m();
+                    });
+                  var Fe = h / 4,
+                    Qe = h / 2,
+                    _e = h / 4;
+                  function n(t) {
+                    var e = Ge();
+                    if (t === null || t === undefined) return e;
+                    if (Te(t)) return t;
+                    var r = U(t);
+                    var i = r.size;
+                    if (i === 0) return e;
+                    C(i);
+                    if (i > 0 && i < h) return Oe(0, i, b, null, new Ue(r.toArray()));
+                    return e.withMutations(function (n) {
+                      n.setSize(i);
+                      r.forEach(function (t, e) {
+                        return n.set(e, t);
+                      });
+                    });
+                  }
+                  function Te(t) {
+                    return !!(t && t[Re]);
+                  }
+                  t(n, Pt),
+                    (n.of = function () {
+                      return this(arguments);
+                    }),
+                    (n.prototype.toString = function () {
+                      return this.__toString('List [', ']');
+                    }),
+                    (n.prototype.get = function (t, e) {
+                      t = K(this, t);
+                      if (t >= 0 && t < this.size) {
+                        t += this._origin;
+                        var n = Ve(this, t);
+                        return n && n.array[t & y];
+                      }
+                      return e;
+                    }),
+                    (n.prototype.set = function (t, e) {
+                      return ze(this, t, e);
+                    }),
+                    (n.prototype.remove = function (t) {
+                      return !this.has(t)
+                        ? this
+                        : t === 0
+                          ? this.shift()
+                          : t === this.size - 1
+                            ? this.pop()
+                            : this.splice(t, 1);
+                    }),
+                    (n.prototype.insert = function (t, e) {
+                      return this.splice(t, 0, e);
+                    }),
+                    (n.prototype.clear = function () {
+                      if (this.size === 0) return this;
+                      if (this.__ownerID) {
+                        this.size = this._origin = this._capacity = 0;
+                        this._level = b;
+                        this._root = this._tail = null;
+                        this.__hash = undefined;
+                        this.__altered = true;
+                        return this;
+                      }
+                      return Ge();
+                    }),
+                    (n.prototype.push = function () {
+                      var n = arguments;
+                      var r = this.size;
+                      return this.withMutations(function (t) {
+                        qe(t, 0, r + n.length);
+                        for (var e = 0; e < n.length; e++) t.set(r + e, n[e]);
+                      });
+                    }),
+                    (n.prototype.pop = function () {
+                      return qe(this, 0, -1);
+                    }),
+                    (n.prototype.unshift = function () {
+                      var n = arguments;
+                      return this.withMutations(function (t) {
+                        qe(t, -n.length);
+                        for (var e = 0; e < n.length; e++) t.set(e, n[e]);
+                      });
+                    }),
+                    (n.prototype.shift = function () {
+                      return qe(this, 1);
+                    }),
+                    (n.prototype.merge = function () {
+                      return We(this, undefined, arguments);
+                    }),
+                    (n.prototype.mergeWith = function (t) {
+                      var e = r.call(arguments, 1);
+                      return We(this, t, e);
+                    }),
+                    (n.prototype.mergeDeep = function () {
+                      return We(this, Be, arguments);
+                    }),
+                    (n.prototype.mergeDeepWith = function (t) {
+                      var e = r.call(arguments, 1);
+                      return We(this, Ce(t), e);
+                    }),
+                    (n.prototype.setSize = function (t) {
+                      return qe(this, 0, t);
+                    }),
+                    (n.prototype.slice = function (t, e) {
+                      var n = this.size;
+                      if (X(t, e, n)) return this;
+                      return qe(this, $(t, n), tt(e, n));
+                    }),
+                    (n.prototype.__iterator = function (e, t) {
+                      var n = 0;
+                      var r = Ye(this, t);
+                      return new f(function () {
+                        var t = r();
+                        return t === Ne ? m() : g(e, n++, t);
+                      });
+                    }),
+                    (n.prototype.__iterate = function (t, e) {
+                      var n = 0;
+                      var r = Ye(this, e);
+                      var i;
+                      while ((i = r()) !== Ne) if (t(i, n++, this) === false) break;
+                      return n;
+                    }),
+                    (n.prototype.__ensureOwner = function (t) {
+                      if (t === this.__ownerID) return this;
+                      if (!t) {
+                        this.__ownerID = t;
+                        return this;
+                      }
+                      return Oe(
+                        this._origin,
+                        this._capacity,
+                        this._level,
+                        this._root,
+                        this._tail,
+                        t,
+                        this.__hash,
+                      );
+                    }),
+                    (n.isList = Te);
+                  var Re = '@@__IMMUTABLE_LIST__@@',
+                    M = n.prototype;
+                  function Ue(t, e) {
+                    this.array = t;
+                    this.ownerID = e;
+                  }
+                  (M[Re] = true),
+                    (M[z] = M.remove),
+                    (M.setIn = I.setIn),
+                    (M.deleteIn = M.removeIn = I.removeIn),
+                    (M.update = I.update),
+                    (M.updateIn = I.updateIn),
+                    (M.mergeIn = I.mergeIn),
+                    (M.mergeDeepIn = I.mergeDeepIn),
+                    (M.withMutations = I.withMutations),
+                    (M.asMutable = I.asMutable),
+                    (M.asImmutable = I.asImmutable),
+                    (M.wasAltered = I.wasAltered),
+                    (Ue.prototype.removeBefore = function (t, e, n) {
+                      if (n === e ? 1 << e : 0 || this.array.length === 0) return this;
+                      var r = (n >>> e) & y;
+                      if (r >= this.array.length) return new Ue([], t);
+                      var i = r === 0;
+                      var o;
+                      if (e > 0) {
+                        var a = this.array[r];
+                        o = a && a.removeBefore(t, e - b, n);
+                        if (o === a && i) return this;
+                      }
+                      if (i && !o) return this;
+                      var s = je(this, t);
+                      if (!i) for (var l = 0; l < r; l++) s.array[l] = undefined;
+                      if (o) s.array[r] = o;
+                      return s;
+                    }),
+                    (Ue.prototype.removeAfter = function (t, e, n) {
+                      if (n === (e ? 1 << e : 0) || this.array.length === 0) return this;
+                      var r = ((n - 1) >>> e) & y;
+                      if (r >= this.array.length) return this;
+                      var i;
+                      if (e > 0) {
+                        var o = this.array[r];
+                        i = o && o.removeAfter(t, e - b, n);
+                        if (i === o && r === this.array.length - 1) return this;
+                      }
+                      var a = je(this, t);
+                      a.array.splice(r + 1);
+                      if (i) a.array[r] = i;
+                      return a;
+                    });
+                  var Ne = {},
+                    Pe,
+                    Le;
+                  function Ye(t, l) {
+                    var u = t._origin;
+                    var c = t._capacity;
+                    var o = Je(c);
+                    var a = t._tail;
+                    return A(t._root, t._level, 0);
+                    function A(t, e, n) {
+                      return e === 0 ? r(t, n) : i(t, e, n);
+                    }
+                    function r(t, e) {
+                      var n = e === o ? a && a.array : t && t.array;
+                      var r = e > u ? 0 : u - e;
+                      var i = c - e;
+                      if (i > h) i = h;
+                      return function () {
+                        if (r === i) return Ne;
+                        var t = l ? --i : r++;
+                        return n && n[t];
+                      };
+                    }
+                    function i(t, n, r) {
+                      var i;
+                      var o = t && t.array;
+                      var a = r > u ? 0 : (u - r) >> n;
+                      var s = ((c - r) >> n) + 1;
+                      if (s > h) s = h;
+                      return function () {
+                        do {
+                          if (i) {
+                            var t = i();
+                            if (t !== Ne) return t;
+                            i = null;
+                          }
+                          if (a === s) return Ne;
+                          var e = l ? --s : a++;
+                          i = A(o && o[e], n - b, r + (e << n));
+                        } while (true);
+                      };
+                    }
+                  }
+                  function Oe(t, e, n, r, i, o, a) {
+                    var s = Object.create(M);
+                    s.size = e - t;
+                    s._origin = t;
+                    s._capacity = e;
+                    s._level = n;
+                    s._root = r;
+                    s._tail = i;
+                    s.__ownerID = o;
+                    s.__hash = a;
+                    s.__altered = false;
+                    return s;
+                  }
+                  function Ge() {
+                    return Pe || (Pe = Oe(0, 0, b));
+                  }
+                  function ze(t, e, n) {
+                    e = K(t, e);
+                    if (e !== e) return t;
+                    if (e >= t.size || e < 0)
+                      return t.withMutations(function (t) {
+                        e < 0 ? qe(t, e).set(0, n) : qe(t, 0, e + 1).set(e, n);
+                      });
+                    e += t._origin;
+                    var r = t._tail;
+                    var i = t._root;
+                    var o = V(j);
+                    if (e >= Je(t._capacity)) r = He(r, t.__ownerID, 0, e, n, o);
+                    else i = He(i, t.__ownerID, t._level, e, n, o);
+                    if (!o.value) return t;
+                    if (t.__ownerID) {
+                      t._root = i;
+                      t._tail = r;
+                      t.__hash = undefined;
+                      t.__altered = true;
+                      return t;
+                    }
+                    return Oe(t._origin, t._capacity, t._level, i, r);
+                  }
+                  function He(t, e, n, r, i, o) {
+                    var a = (r >>> n) & y;
+                    var s = t && a < t.array.length;
+                    if (!s && i === undefined) return t;
+                    var l;
+                    if (n > 0) {
+                      var u = t && t.array[a];
+                      var c = He(u, e, n - b, r, i, o);
+                      if (c === u) return t;
+                      l = je(t, e);
+                      l.array[a] = c;
+                      return l;
+                    }
+                    if (s && t.array[a] === i) return t;
+                    d(o);
+                    l = je(t, e);
+                    if (i === undefined && a === l.array.length - 1) l.array.pop();
+                    else l.array[a] = i;
+                    return l;
+                  }
+                  function je(t, e) {
+                    if (e && t && e === t.ownerID) return t;
+                    return new Ue(t ? t.array.slice() : [], e);
+                  }
+                  function Ve(t, e) {
+                    if (e >= Je(t._capacity)) return t._tail;
+                    if (e < 1 << (t._level + b)) {
+                      var n = t._root;
+                      var r = t._level;
+                      while (n && r > 0) {
+                        n = n.array[(e >>> r) & y];
+                        r -= b;
+                      }
+                      return n;
+                    }
+                  }
+                  function qe(t, e, n) {
+                    if (e !== undefined) e = e | 0;
+                    if (n !== undefined) n = n | 0;
+                    var r = t.__ownerID || new q();
+                    var i = t._origin;
+                    var o = t._capacity;
+                    var a = i + e;
+                    var s = n === undefined ? o : n < 0 ? o + n : i + n;
+                    if (a === i && s === o) return t;
+                    if (a >= s) return t.clear();
+                    var l = t._level;
+                    var u = t._root;
+                    var c = 0;
+                    while (a + c < 0) {
+                      u = new Ue(u && u.array.length ? [undefined, u] : [], r);
+                      l += b;
+                      c += 1 << l;
+                    }
+                    if (c) {
+                      a += c;
+                      i += c;
+                      s += c;
+                      o += c;
+                    }
+                    var A = Je(o);
+                    var h = Je(s);
+                    while (h >= 1 << (l + b)) {
+                      u = new Ue(u && u.array.length ? [u] : [], r);
+                      l += b;
+                    }
+                    var p = t._tail;
+                    var d = h < A ? Ve(t, s - 1) : h > A ? new Ue([], r) : p;
+                    if (p && h > A && a < o && p.array.length) {
+                      u = je(u, r);
+                      var f = u;
+                      for (var g = l; g > b; g -= b) {
+                        var m = (A >>> g) & y;
+                        f = f.array[m] = je(f.array[m], r);
+                      }
+                      f.array[(A >>> b) & y] = p;
+                    }
+                    if (s < o) d = d && d.removeAfter(r, 0, s);
+                    if (a >= h) {
+                      a -= h;
+                      s -= h;
+                      l = b;
+                      u = null;
+                      d = d && d.removeBefore(r, 0, a);
+                    } else if (a > i || h < A) {
+                      c = 0;
+                      while (u) {
+                        var v = (a >>> l) & y;
+                        if ((v !== h >>> l) & y) break;
+                        if (v) c += (1 << l) * v;
+                        l -= b;
+                        u = u.array[v];
+                      }
+                      if (u && a > i) u = u.removeBefore(r, l, a - c);
+                      if (u && h < A) u = u.removeAfter(r, l, h - c);
+                      if (c) {
+                        a -= c;
+                        s -= c;
+                      }
+                    }
+                    if (t.__ownerID) {
+                      t.size = s - a;
+                      t._origin = a;
+                      t._capacity = s;
+                      t._level = l;
+                      t._root = u;
+                      t._tail = d;
+                      t.__hash = undefined;
+                      t.__altered = true;
+                      return t;
+                    }
+                    return Oe(a, s, l, u, d);
+                  }
+                  function We(t, e, n) {
+                    var r = [];
+                    var i = 0;
+                    for (var o = 0; o < n.length; o++) {
+                      var a = n[o];
+                      var s = U(a);
+                      if (s.size > i) i = s.size;
+                      if (!c(a))
+                        s = s.map(function (t) {
+                          return kt(t);
+                        });
+                      r.push(s);
+                    }
+                    if (i > t.size) t = t.setSize(i);
+                    return xe(t, e, r);
+                  }
+                  function Je(t) {
+                    return t < h ? 0 : ((t - 1) >>> b) << b;
+                  }
+                  function D(e) {
+                    return e === null || e === undefined
+                      ? Xe()
+                      : Ke(e)
+                        ? e
+                        : Xe().withMutations(function (n) {
+                            var t = s(e);
+                            C(t.size);
+                            t.forEach(function (t, e) {
+                              return n.set(e, t);
+                            });
+                          });
+                  }
+                  function Ke(t) {
+                    return ne(t) && P(t);
+                  }
+                  function Ze(t, e, n, r) {
+                    var i = Object.create(D.prototype);
+                    i.size = t ? t.size : 0;
+                    i._map = t;
+                    i._list = e;
+                    i.__ownerID = n;
+                    i.__hash = r;
+                    return i;
+                  }
+                  function Xe() {
+                    return Le || (Le = Ze(de(), Ge()));
+                  }
+                  function $e(t, e, n) {
+                    var r = t._map;
+                    var i = t._list;
+                    var o = r.get(e);
+                    var a = o !== undefined;
+                    var s;
+                    var l;
+                    if (n === v) {
+                      if (!a) return t;
+                      if (i.size >= h && i.size >= r.size * 2) {
+                        l = i.filter(function (t, e) {
+                          return t !== undefined && o !== e;
+                        });
+                        s = l
+                          .toKeyedSeq()
+                          .map(function (t) {
+                            return t[0];
+                          })
+                          .flip()
+                          .toMap();
+                        if (t.__ownerID) s.__ownerID = l.__ownerID = t.__ownerID;
+                      } else {
+                        s = r.remove(e);
+                        l = o === i.size - 1 ? i.pop() : i.set(o, undefined);
+                      }
+                    } else if (a) {
+                      if (n === i.get(o)[1]) return t;
+                      s = r;
+                      l = i.set(o, [e, n]);
+                    } else {
+                      s = r.set(e, i.size);
+                      l = i.set(i.size, [e, n]);
+                    }
+                    if (t.__ownerID) {
+                      t.size = s.size;
+                      t._map = s;
+                      t._list = l;
+                      t.__hash = undefined;
+                      return t;
+                    }
+                    return Ze(s, l);
+                  }
+                  function tn(t, e) {
+                    this._iter = t;
+                    this._useKeys = e;
+                    this.size = t.size;
+                  }
+                  function en(t) {
+                    this._iter = t;
+                    this.size = t.size;
+                  }
+                  function nn(t) {
+                    this._iter = t;
+                    this.size = t.size;
+                  }
+                  function rn(t) {
+                    this._iter = t;
+                    this.size = t.size;
+                  }
+                  function on(i) {
+                    var t = xn(i);
+                    t._iter = i;
+                    t.size = i.size;
+                    t.flip = function () {
+                      return i;
+                    };
+                    t.reverse = function () {
+                      var t = i.reverse.apply(this);
+                      t.flip = function () {
+                        return i.reverse();
+                      };
+                      return t;
+                    };
+                    t.has = function (t) {
+                      return i.includes(t);
+                    };
+                    t.includes = function (t) {
+                      return i.has(t);
+                    };
+                    t.cacheResult = In;
+                    t.__iterateUncached = function (n, t) {
+                      var r = this;
+                      return i.__iterate(function (t, e) {
+                        return n(e, t, r) !== false;
+                      }, t);
+                    };
+                    t.__iteratorUncached = function (t, e) {
+                      if (t === rt) {
+                        var n = i.__iterator(t, e);
+                        return new f(function () {
+                          var t = n.next();
+                          if (!t.done) {
+                            var e = t.value[0];
+                            t.value[0] = t.value[1];
+                            t.value[1] = e;
+                          }
+                          return t;
+                        });
+                      }
+                      return i.__iterator(t === p ? nt : p, e);
+                    };
+                    return t;
+                  }
+                  function an(o, a, s) {
+                    var t = xn(o);
+                    t.size = o.size;
+                    t.has = function (t) {
+                      return o.has(t);
+                    };
+                    t.get = function (t, e) {
+                      var n = o.get(t, v);
+                      return n === v ? e : a.call(s, n, t, o);
+                    };
+                    t.__iterateUncached = function (r, t) {
+                      var i = this;
+                      return o.__iterate(function (t, e, n) {
+                        return r(a.call(s, t, e, n), e, i) !== false;
+                      }, t);
+                    };
+                    t.__iteratorUncached = function (r, t) {
+                      var i = o.__iterator(rt, t);
+                      return new f(function () {
+                        var t = i.next();
+                        if (t.done) return t;
+                        var e = t.value;
+                        var n = e[0];
+                        return g(r, n, a.call(s, e[1], n, o), t);
+                      });
+                    };
+                    return t;
+                  }
+                  function sn(i, n) {
+                    var t = xn(i);
+                    t._iter = i;
+                    t.size = i.size;
+                    t.reverse = function () {
+                      return i;
+                    };
+                    if (i.flip)
+                      t.flip = function () {
+                        var t = on(i);
+                        t.reverse = function () {
+                          return i.flip();
+                        };
+                        return t;
+                      };
+                    t.get = function (t, e) {
+                      return i.get(n ? t : -1 - t, e);
+                    };
+                    t.has = function (t) {
+                      return i.has(n ? t : -1 - t);
+                    };
+                    t.includes = function (t) {
+                      return i.includes(t);
+                    };
+                    t.cacheResult = In;
+                    t.__iterate = function (n, t) {
+                      var r = this;
+                      return i.__iterate(function (t, e) {
+                        return n(t, e, r);
+                      }, !t);
+                    };
+                    t.__iterator = function (t, e) {
+                      return i.__iterator(t, !e);
+                    };
+                    return t;
+                  }
+                  function ln(s, l, u, c) {
+                    var t = xn(s);
+                    if (c) {
+                      t.has = function (t) {
+                        var e = s.get(t, v);
+                        return e !== v && !!l.call(u, e, t, s);
+                      };
+                      t.get = function (t, e) {
+                        var n = s.get(t, v);
+                        return n !== v && l.call(u, n, t, s) ? n : e;
+                      };
+                    }
+                    t.__iterateUncached = function (r, t) {
+                      var i = this;
+                      var o = 0;
+                      s.__iterate(function (t, e, n) {
+                        if (l.call(u, t, e, n)) {
+                          o++;
+                          return r(t, c ? e : o - 1, i);
+                        }
+                      }, t);
+                      return o;
+                    };
+                    t.__iteratorUncached = function (i, t) {
+                      var o = s.__iterator(rt, t);
+                      var a = 0;
+                      return new f(function () {
+                        while (true) {
+                          var t = o.next();
+                          if (t.done) return t;
+                          var e = t.value;
+                          var n = e[0];
+                          var r = e[1];
+                          if (l.call(u, r, n, s)) return g(i, c ? n : a++, r, t);
+                        }
+                      });
+                    };
+                    return t;
+                  }
+                  function un(n, r, i) {
+                    var o = x().asMutable();
+                    n.__iterate(function (t, e) {
+                      o.update(r.call(i, t, e, n), 0, function (t) {
+                        return t + 1;
+                      });
+                    });
+                    return o.asImmutable();
+                  }
+                  function cn(r, t, i) {
+                    var o = u(r);
+                    var a = (P(r) ? D() : x()).asMutable();
+                    r.__iterate(function (e, n) {
+                      a.update(t.call(i, e, n, r), function (t) {
+                        return (t = t || []), t.push(o ? [n, e] : e), t;
+                      });
+                    });
+                    var e = Cn(r);
+                    return a.map(function (t) {
+                      return S(r, e(t));
+                    });
+                  }
+                  function An(s, t, e, l) {
+                    var n = s.size;
+                    if (t !== undefined) t = t | 0;
+                    if (e !== undefined) e = e | 0;
+                    if (X(t, e, n)) return s;
+                    var u = $(t, n);
+                    var r = tt(e, n);
+                    if (u !== u || r !== r) return An(s.toSeq().cacheResult(), t, e, l);
+                    var i = r - u;
+                    var c;
+                    if (i === i) c = i < 0 ? 0 : i;
+                    var o = xn(s);
+                    o.size = c === 0 ? c : (s.size && c) || undefined;
+                    if (!l && Et(s) && c >= 0)
+                      o.get = function (t, e) {
+                        t = K(this, t);
+                        return t >= 0 && t < c ? s.get(t + u, e) : e;
+                      };
+                    o.__iterateUncached = function (n, t) {
+                      var r = this;
+                      if (c === 0) return 0;
+                      if (t) return this.cacheResult().__iterate(n, t);
+                      var i = 0;
+                      var o = true;
+                      var a = 0;
+                      s.__iterate(function (t, e) {
+                        if (!(o && (o = i++ < u))) {
+                          a++;
+                          return n(t, l ? e : a - 1, r) !== false && a !== c;
+                        }
+                      });
+                      return a;
+                    };
+                    o.__iteratorUncached = function (e, t) {
+                      if (c !== 0 && t) return this.cacheResult().__iterator(e, t);
+                      var n = c !== 0 && s.__iterator(e, t);
+                      var r = 0;
+                      var i = 0;
+                      return new f(function () {
+                        while (r++ < u) n.next();
+                        if (++i > c) return m();
+                        var t = n.next();
+                        if (l || e === p) return t;
+                        else if (e === nt) return g(e, i - 1, undefined, t);
+                        else return g(e, i - 1, t.value[1], t);
+                      });
+                    };
+                    return o;
+                  }
+                  function hn(e, l, u) {
+                    var t = xn(e);
+                    t.__iterateUncached = function (r, t) {
+                      var i = this;
+                      if (t) return this.cacheResult().__iterate(r, t);
+                      var o = 0;
+                      e.__iterate(function (t, e, n) {
+                        return l.call(u, t, e, n) && ++o && r(t, e, i);
+                      });
+                      return o;
+                    };
+                    t.__iteratorUncached = function (i, t) {
+                      var o = this;
+                      if (t) return this.cacheResult().__iterator(i, t);
+                      var a = e.__iterator(rt, t);
+                      var s = true;
+                      return new f(function () {
+                        if (!s) return m();
+                        var t = a.next();
+                        if (t.done) return t;
+                        var e = t.value;
+                        var n = e[0];
+                        var r = e[1];
+                        if (!l.call(u, r, n, o)) {
+                          s = false;
+                          return m();
+                        }
+                        return i === rt ? t : g(i, n, r, t);
+                      });
+                    };
+                    return t;
+                  }
+                  function pn(e, u, c, A) {
+                    var t = xn(e);
+                    t.__iterateUncached = function (r, t) {
+                      var i = this;
+                      if (t) return this.cacheResult().__iterate(r, t);
+                      var o = true;
+                      var a = 0;
+                      e.__iterate(function (t, e, n) {
+                        if (!(o && (o = u.call(c, t, e, n)))) {
+                          a++;
+                          return r(t, A ? e : a - 1, i);
+                        }
+                      });
+                      return a;
+                    };
+                    t.__iteratorUncached = function (i, t) {
+                      var o = this;
+                      if (t) return this.cacheResult().__iterator(i, t);
+                      var a = e.__iterator(rt, t);
+                      var s = true;
+                      var l = 0;
+                      return new f(function () {
+                        var t, e, n;
+                        do {
+                          t = a.next();
+                          if (t.done)
+                            if (A || i === p) return t;
+                            else if (i === nt) return g(i, l++, undefined, t);
+                            else return g(i, l++, t.value[1], t);
+                          var r = t.value;
+                          e = r[0];
+                          n = r[1];
+                          s && (s = u.call(c, n, e, o));
+                        } while (s);
+                        return i === rt ? t : g(i, e, n, t);
+                      });
+                    };
+                    return t;
+                  }
+                  function dn(t, e) {
+                    var n = u(t);
+                    var r = [t]
+                      .concat(e)
+                      .map(function (t) {
+                        if (!c(t)) t = n ? Ct(t) : xt(Array.isArray(t) ? t : [t]);
+                        else if (n) t = s(t);
+                        return t;
+                      })
+                      .filter(function (t) {
+                        return t.size !== 0;
+                      });
+                    if (r.length === 0) return t;
+                    if (r.length === 1) {
+                      var i = r[0];
+                      if (i === t || (n && u(i)) || (A(t) && A(i))) return i;
+                    }
+                    var o = new vt(r);
+                    if (n) o = o.toKeyedSeq();
+                    else if (!A(t)) o = o.toSetSeq();
+                    o = o.flatten(true);
+                    o.size = r.reduce(function (t, e) {
+                      if (t !== undefined) {
+                        var n = e.size;
+                        if (n !== undefined) return t + n;
+                      }
+                    }, 0);
+                    return o;
+                  }
+                  function fn(t, l, u) {
+                    var e = xn(t);
+                    e.__iterateUncached = function (i, e) {
+                      var o = 0;
+                      var a = false;
+                      function s(t, n) {
+                        var r = this;
+                        t.__iterate(function (t, e) {
+                          if ((!l || n < l) && c(t)) s(t, n + 1);
+                          else if (i(t, u ? e : o++, r) === false) a = true;
+                          return !a;
+                        }, e);
+                      }
+                      s(t, 0);
+                      return o;
+                    };
+                    e.__iteratorUncached = function (n, r) {
+                      var i = t.__iterator(n, r);
+                      var o = [];
+                      var a = 0;
+                      return new f(function () {
+                        while (i) {
+                          var t = i.next();
+                          if (t.done !== false) {
+                            i = o.pop();
+                            continue;
+                          }
+                          var e = t.value;
+                          if (n === rt) e = e[1];
+                          if ((!l || o.length < l) && c(e)) {
+                            o.push(i);
+                            i = e.__iterator(n, r);
+                          } else return u ? t : g(n, a++, e, t);
+                        }
+                        return m();
+                      });
+                    };
+                    return e;
+                  }
+                  function gn(n, r, i) {
+                    var o = Cn(n);
+                    return n
+                      .toSeq()
+                      .map(function (t, e) {
+                        return o(r.call(i, t, e, n));
+                      })
+                      .flatten(true);
+                  }
+                  function mn(o, a) {
+                    var t = xn(o);
+                    t.size = o.size && o.size * 2 - 1;
+                    t.__iterateUncached = function (n, t) {
+                      var r = this;
+                      var i = 0;
+                      o.__iterate(function (t, e) {
+                        return (!i || n(a, i++, r) !== false) && n(t, i++, r) !== false;
+                      }, t);
+                      return i;
+                    };
+                    t.__iteratorUncached = function (t, e) {
+                      var n = o.__iterator(p, e);
+                      var r = 0;
+                      var i;
+                      return new f(function () {
+                        if (!i || r % 2) {
+                          i = n.next();
+                          if (i.done) return i;
+                        }
+                        return r % 2 ? g(t, r++, a) : g(t, r++, i.value, i);
+                      });
+                    };
+                    return t;
+                  }
+                  function vn(n, r, i) {
+                    if (!r) r = Mn;
+                    var t = u(n);
+                    var o = 0;
+                    var a = n
+                      .toSeq()
+                      .map(function (t, e) {
+                        return [e, t, o++, i ? i(t, e, n) : t];
+                      })
+                      .toArray();
+                    a.sort(function (t, e) {
+                      return r(t[3], e[3]) || t[2] - e[2];
+                    }).forEach(
+                      t
+                        ? function (t, e) {
+                            a[e].length = 2;
+                          }
+                        : function (t, e) {
+                            a[e] = t[1];
+                          },
+                    );
+                    return t ? ht(a) : A(n) ? w(a) : pt(a);
+                  }
+                  function bn(n, r, i) {
+                    if (!r) r = Mn;
+                    if (i) {
+                      var t = n
+                        .toSeq()
+                        .map(function (t, e) {
+                          return [t, i(t, e, n)];
+                        })
+                        .reduce(function (t, e) {
+                          return yn(r, t[1], e[1]) ? e : t;
+                        });
+                      return t && t[0];
+                    } else
+                      return n.reduce(function (t, e) {
+                        return yn(r, t, e) ? e : t;
+                      });
+                  }
+                  function yn(t, e, n) {
+                    var r = t(n, e);
+                    return (
+                      (r === 0 && n !== e && (n === undefined || n === null || n !== n)) || r > 0
+                    );
+                  }
+                  function wn(t, a, s) {
+                    var e = xn(t);
+                    e.size = new vt(s)
+                      .map(function (t) {
+                        return t.size;
+                      })
+                      .min();
+                    e.__iterate = function (t, e) {
+                      var n = this.__iterator(p, e);
+                      var r;
+                      var i = 0;
+                      while (!(r = n.next()).done) if (t(r.value, i++, this) === false) break;
+                      return i;
+                    };
+                    e.__iteratorUncached = function (e, n) {
+                      var r = s.map(function (t) {
+                        return (t = l(t)), ut(n ? t.reverse() : t);
+                      });
+                      var i = 0;
+                      var o = false;
+                      return new f(function () {
+                        var t;
+                        if (!o) {
+                          t = r.map(function (t) {
+                            return t.next();
+                          });
+                          o = t.some(function (t) {
+                            return t.done;
+                          });
+                        }
+                        if (o) return m();
+                        return g(
+                          e,
+                          i++,
+                          a.apply(
+                            null,
+                            t.map(function (t) {
+                              return t.value;
+                            }),
+                          ),
+                        );
+                      });
+                    };
+                    return e;
+                  }
+                  function S(t, e) {
+                    return Et(t) ? e : t.constructor(e);
+                  }
+                  function En(t) {
+                    if (t !== Object(t)) throw new TypeError('Expected [K, V] tuple: ' + t);
+                  }
+                  function Bn(t) {
+                    C(t.size);
+                    return J(t);
+                  }
+                  function Cn(t) {
+                    return u(t) ? s : A(t) ? U : i;
+                  }
+                  function xn(t) {
+                    return Object.create((u(t) ? ht : A(t) ? w : pt).prototype);
+                  }
+                  function In() {
+                    if (this._iter.cacheResult) {
+                      this._iter.cacheResult();
+                      this.size = this._iter.size;
+                      return this;
+                    } else return e.prototype.cacheResult.call(this);
+                  }
+                  function Mn(t, e) {
+                    return t > e ? 1 : t < e ? -1 : 0;
+                  }
+                  function Dn(t) {
+                    var e = ut(t);
+                    if (!e) {
+                      if (!At(t)) throw new TypeError('Expected iterable or array-like: ' + t);
+                      e = ut(l(t));
+                    }
+                    return e;
+                  }
+                  function k(r, i) {
+                    var o;
+                    var a = function t(e) {
+                      if (e instanceof a) return e;
+                      if (!(this instanceof a)) return new a(e);
+                      if (!o) {
+                        o = true;
+                        var n = Object.keys(r);
+                        Fn(s, n);
+                        s.size = n.length;
+                        s._name = i;
+                        s._keys = n;
+                        s._defaultValues = r;
+                      }
+                      this._map = x(e);
+                    };
+                    var s = (a.prototype = Object.create(F));
+                    s.constructor = a;
+                    return a;
+                  }
+                  t(D, x),
+                    (D.of = function () {
+                      return this(arguments);
+                    }),
+                    (D.prototype.toString = function () {
+                      return this.__toString('OrderedMap {', '}');
+                    }),
+                    (D.prototype.get = function (t, e) {
+                      var n = this._map.get(t);
+                      return n !== undefined ? this._list.get(n)[1] : e;
+                    }),
+                    (D.prototype.clear = function () {
+                      if (this.size === 0) return this;
+                      if (this.__ownerID) {
+                        this.size = 0;
+                        this._map.clear();
+                        this._list.clear();
+                        return this;
+                      }
+                      return Xe();
+                    }),
+                    (D.prototype.set = function (t, e) {
+                      return $e(this, t, e);
+                    }),
+                    (D.prototype.remove = function (t) {
+                      return $e(this, t, v);
+                    }),
+                    (D.prototype.wasAltered = function () {
+                      return this._map.wasAltered() || this._list.wasAltered();
+                    }),
+                    (D.prototype.__iterate = function (e, t) {
+                      var n = this;
+                      return this._list.__iterate(function (t) {
+                        return t && e(t[1], t[0], n);
+                      }, t);
+                    }),
+                    (D.prototype.__iterator = function (t, e) {
+                      return this._list.fromEntrySeq().__iterator(t, e);
+                    }),
+                    (D.prototype.__ensureOwner = function (t) {
+                      if (t === this.__ownerID) return this;
+                      var e = this._map.__ensureOwner(t);
+                      var n = this._list.__ensureOwner(t);
+                      if (!t) {
+                        this.__ownerID = t;
+                        this._map = e;
+                        this._list = n;
+                        return this;
+                      }
+                      return Ze(e, n, t, this.__hash);
+                    }),
+                    (D.isOrderedMap = Ke),
+                    (D.prototype[G] = true),
+                    (D.prototype[z] = D.prototype.remove),
+                    t(tn, ht),
+                    (tn.prototype.get = function (t, e) {
+                      return this._iter.get(t, e);
+                    }),
+                    (tn.prototype.has = function (t) {
+                      return this._iter.has(t);
+                    }),
+                    (tn.prototype.valueSeq = function () {
+                      return this._iter.valueSeq();
+                    }),
+                    (tn.prototype.reverse = function () {
+                      var t = this;
+                      var e = sn(this, true);
+                      if (!this._useKeys)
+                        e.valueSeq = function () {
+                          return t._iter.toSeq().reverse();
+                        };
+                      return e;
+                    }),
+                    (tn.prototype.map = function (t, e) {
+                      var n = this;
+                      var r = an(this, t, e);
+                      if (!this._useKeys)
+                        r.valueSeq = function () {
+                          return n._iter.toSeq().map(t, e);
+                        };
+                      return r;
+                    }),
+                    (tn.prototype.__iterate = function (n, e) {
+                      var r = this;
+                      var i;
+                      return this._iter.__iterate(
+                        this._useKeys
+                          ? function (t, e) {
+                              return n(t, e, r);
+                            }
+                          : ((i = e ? Bn(this) : 0),
+                            function (t) {
+                              return n(t, e ? --i : i++, r);
+                            }),
+                        e,
+                      );
+                    }),
+                    (tn.prototype.__iterator = function (e, n) {
+                      if (this._useKeys) return this._iter.__iterator(e, n);
+                      var r = this._iter.__iterator(p, n);
+                      var i = n ? Bn(this) : 0;
+                      return new f(function () {
+                        var t = r.next();
+                        return t.done ? t : g(e, n ? --i : i++, t.value, t);
+                      });
+                    }),
+                    (tn.prototype[G] = true),
+                    t(en, w),
+                    (en.prototype.includes = function (t) {
+                      return this._iter.includes(t);
+                    }),
+                    (en.prototype.__iterate = function (e, t) {
+                      var n = this;
+                      var r = 0;
+                      return this._iter.__iterate(function (t) {
+                        return e(t, r++, n);
+                      }, t);
+                    }),
+                    (en.prototype.__iterator = function (e, t) {
+                      var n = this._iter.__iterator(p, t);
+                      var r = 0;
+                      return new f(function () {
+                        var t = n.next();
+                        return t.done ? t : g(e, r++, t.value, t);
+                      });
+                    }),
+                    t(nn, pt),
+                    (nn.prototype.has = function (t) {
+                      return this._iter.includes(t);
+                    }),
+                    (nn.prototype.__iterate = function (e, t) {
+                      var n = this;
+                      return this._iter.__iterate(function (t) {
+                        return e(t, t, n);
+                      }, t);
+                    }),
+                    (nn.prototype.__iterator = function (e, t) {
+                      var n = this._iter.__iterator(p, t);
+                      return new f(function () {
+                        var t = n.next();
+                        return t.done ? t : g(e, t.value, t.value, t);
+                      });
+                    }),
+                    t(rn, ht),
+                    (rn.prototype.entrySeq = function () {
+                      return this._iter.toSeq();
+                    }),
+                    (rn.prototype.__iterate = function (n, t) {
+                      var r = this;
+                      return this._iter.__iterate(function (t) {
+                        if (t) {
+                          En(t);
+                          var e = c(t);
+                          return n(e ? t.get(1) : t[1], e ? t.get(0) : t[0], r);
+                        }
+                      }, t);
+                    }),
+                    (rn.prototype.__iterator = function (r, t) {
+                      var i = this._iter.__iterator(p, t);
+                      return new f(function () {
+                        while (true) {
+                          var t = i.next();
+                          if (t.done) return t;
+                          var e = t.value;
+                          if (e) {
+                            En(e);
+                            var n = c(e);
+                            return g(r, n ? e.get(0) : e[0], n ? e.get(1) : e[1], t);
+                          }
+                        }
+                      });
+                    }),
+                    (en.prototype.cacheResult =
+                      tn.prototype.cacheResult =
+                      nn.prototype.cacheResult =
+                      rn.prototype.cacheResult =
+                        In),
+                    t(k, Nt),
+                    (k.prototype.toString = function () {
+                      return this.__toString(kn(this) + ' {', '}');
+                    }),
+                    (k.prototype.has = function (t) {
+                      return this._defaultValues.hasOwnProperty(t);
+                    }),
+                    (k.prototype.get = function (t, e) {
+                      if (!this.has(t)) return e;
+                      var n = this._defaultValues[t];
+                      return this._map ? this._map.get(t, n) : n;
+                    }),
+                    (k.prototype.clear = function () {
+                      if (this.__ownerID) {
+                        this._map && this._map.clear();
+                        return this;
+                      }
+                      var t = this.constructor;
+                      return t._empty || (t._empty = Sn(this, de()));
+                    }),
+                    (k.prototype.set = function (t, e) {
+                      if (!this.has(t))
+                        throw new Error('Cannot set unknown key "' + t + '" on ' + kn(this));
+                      if (this._map && !this._map.has(t)) {
+                        var n = this._defaultValues[t];
+                        if (e === n) return this;
+                      }
+                      var r = this._map && this._map.set(t, e);
+                      if (this.__ownerID || r === this._map) return this;
+                      return Sn(this, r);
+                    }),
+                    (k.prototype.remove = function (t) {
+                      if (!this.has(t)) return this;
+                      var e = this._map && this._map.remove(t);
+                      if (this.__ownerID || e === this._map) return this;
+                      return Sn(this, e);
+                    }),
+                    (k.prototype.wasAltered = function () {
+                      return this._map.wasAltered();
+                    }),
+                    (k.prototype.__iterator = function (t, e) {
+                      var n = this;
+                      return s(this._defaultValues)
+                        .map(function (t, e) {
+                          return n.get(e);
+                        })
+                        .__iterator(t, e);
+                    }),
+                    (k.prototype.__iterate = function (t, e) {
+                      var n = this;
+                      return s(this._defaultValues)
+                        .map(function (t, e) {
+                          return n.get(e);
+                        })
+                        .__iterate(t, e);
+                    }),
+                    (k.prototype.__ensureOwner = function (t) {
+                      if (t === this.__ownerID) return this;
+                      var e = this._map && this._map.__ensureOwner(t);
+                      if (!t) {
+                        this.__ownerID = t;
+                        this._map = e;
+                        return this;
+                      }
+                      return Sn(this, e, t);
+                    });
+                  var F = k.prototype;
+                  function Sn(t, e, n) {
+                    var r = Object.create(Object.getPrototypeOf(t));
+                    r._map = e;
+                    r.__ownerID = n;
+                    return r;
+                  }
+                  function kn(t) {
+                    return t._name || t.constructor.name || 'Record';
+                  }
+                  function Fn(t, e) {
+                    try {
+                      e.forEach(Qn.bind(undefined, t));
+                    } catch (t) {}
+                  }
+                  function Qn(t, e) {
+                    Object.defineProperty(t, e, {
+                      get: function () {
+                        return this.get(e);
+                      },
+                      set: function (t) {
+                        Rt(this.__ownerID, 'Cannot set on an immutable record.');
+                        this.set(e, t);
+                      },
+                    });
+                  }
+                  function Q(n) {
+                    return n === null || n === undefined
+                      ? Pn()
+                      : _n(n) && !P(n)
+                        ? n
+                        : Pn().withMutations(function (e) {
+                            var t = i(n);
+                            C(t.size);
+                            t.forEach(function (t) {
+                              return e.add(t);
+                            });
+                          });
+                  }
+                  function _n(t) {
+                    return !!(t && t[Tn]);
+                  }
+                  (F[z] = F.remove),
+                    (F.deleteIn = F.removeIn = I.removeIn),
+                    (F.merge = I.merge),
+                    (F.mergeWith = I.mergeWith),
+                    (F.mergeIn = I.mergeIn),
+                    (F.mergeDeep = I.mergeDeep),
+                    (F.mergeDeepWith = I.mergeDeepWith),
+                    (F.mergeDeepIn = I.mergeDeepIn),
+                    (F.setIn = I.setIn),
+                    (F.update = I.update),
+                    (F.updateIn = I.updateIn),
+                    (F.withMutations = I.withMutations),
+                    (F.asMutable = I.asMutable),
+                    (F.asImmutable = I.asImmutable),
+                    t(Q, Lt),
+                    (Q.of = function () {
+                      return this(arguments);
+                    }),
+                    (Q.fromKeys = function (t) {
+                      return this(s(t).keySeq());
+                    }),
+                    (Q.prototype.toString = function () {
+                      return this.__toString('Set {', '}');
+                    }),
+                    (Q.prototype.has = function (t) {
+                      return this._map.has(t);
+                    }),
+                    (Q.prototype.add = function (t) {
+                      return Un(this, this._map.set(t, true));
+                    }),
+                    (Q.prototype.remove = function (t) {
+                      return Un(this, this._map.remove(t));
+                    }),
+                    (Q.prototype.clear = function () {
+                      return Un(this, this._map.clear());
+                    }),
+                    (Q.prototype.union = function () {
+                      var n = r.call(arguments, 0);
+                      n = n.filter(function (t) {
+                        return t.size !== 0;
+                      });
+                      if (n.length === 0) return this;
+                      if (this.size === 0 && !this.__ownerID && n.length === 1)
+                        return this.constructor(n[0]);
+                      return this.withMutations(function (e) {
+                        for (var t = 0; t < n.length; t++)
+                          i(n[t]).forEach(function (t) {
+                            return e.add(t);
+                          });
+                      });
+                    }),
+                    (Q.prototype.intersect = function () {
+                      var n = r.call(arguments, 0);
+                      if (n.length === 0) return this;
+                      n = n.map(function (t) {
+                        return i(t);
+                      });
+                      var e = this;
+                      return this.withMutations(function (t) {
+                        e.forEach(function (e) {
+                          if (
+                            !n.every(function (t) {
+                              return t.includes(e);
+                            })
+                          )
+                            t.remove(e);
+                        });
+                      });
+                    }),
+                    (Q.prototype.subtract = function () {
+                      var n = r.call(arguments, 0);
+                      if (n.length === 0) return this;
+                      n = n.map(function (t) {
+                        return i(t);
+                      });
+                      var e = this;
+                      return this.withMutations(function (t) {
+                        e.forEach(function (e) {
+                          if (
+                            n.some(function (t) {
+                              return t.includes(e);
+                            })
+                          )
+                            t.remove(e);
+                        });
+                      });
+                    }),
+                    (Q.prototype.merge = function () {
+                      return this.union.apply(this, arguments);
+                    }),
+                    (Q.prototype.mergeWith = function (t) {
+                      var e = r.call(arguments, 1);
+                      return this.union.apply(this, e);
+                    }),
+                    (Q.prototype.sort = function (t) {
+                      return Ln(vn(this, t));
+                    }),
+                    (Q.prototype.sortBy = function (t, e) {
+                      return Ln(vn(this, e, t));
+                    }),
+                    (Q.prototype.wasAltered = function () {
+                      return this._map.wasAltered();
+                    }),
+                    (Q.prototype.__iterate = function (n, t) {
+                      var r = this;
+                      return this._map.__iterate(function (t, e) {
+                        return n(e, e, r);
+                      }, t);
+                    }),
+                    (Q.prototype.__iterator = function (t, e) {
+                      return this._map
+                        .map(function (t, e) {
+                          return e;
+                        })
+                        .__iterator(t, e);
+                    }),
+                    (Q.prototype.__ensureOwner = function (t) {
+                      if (t === this.__ownerID) return this;
+                      var e = this._map.__ensureOwner(t);
+                      if (!t) {
+                        this.__ownerID = t;
+                        this._map = e;
+                        return this;
+                      }
+                      return this.__make(e, t);
+                    }),
+                    (Q.isSet = _n);
+                  var Tn = '@@__IMMUTABLE_SET__@@',
+                    _ = Q.prototype,
+                    Rn;
+                  function Un(t, e) {
+                    if (t.__ownerID) {
+                      t.size = e.size;
+                      t._map = e;
+                      return t;
+                    }
+                    return e === t._map ? t : e.size === 0 ? t.__empty() : t.__make(e);
+                  }
+                  function Nn(t, e) {
+                    var n = Object.create(_);
+                    n.size = t ? t.size : 0;
+                    n._map = t;
+                    n.__ownerID = e;
+                    return n;
+                  }
+                  function Pn() {
+                    return Rn || (Rn = Nn(de()));
+                  }
+                  function Ln(n) {
+                    return n === null || n === undefined
+                      ? Hn()
+                      : Yn(n)
+                        ? n
+                        : Hn().withMutations(function (e) {
+                            var t = i(n);
+                            C(t.size);
+                            t.forEach(function (t) {
+                              return e.add(t);
+                            });
+                          });
+                  }
+                  function Yn(t) {
+                    return _n(t) && P(t);
+                  }
+                  (_[Tn] = true),
+                    (_[z] = _.remove),
+                    (_.mergeDeep = _.merge),
+                    (_.mergeDeepWith = _.mergeWith),
+                    (_.withMutations = I.withMutations),
+                    (_.asMutable = I.asMutable),
+                    (_.asImmutable = I.asImmutable),
+                    (_.__empty = Pn),
+                    (_.__make = Nn),
+                    t(Ln, Q),
+                    (Ln.of = function () {
+                      return this(arguments);
+                    }),
+                    (Ln.fromKeys = function (t) {
+                      return this(s(t).keySeq());
+                    }),
+                    (Ln.prototype.toString = function () {
+                      return this.__toString('OrderedSet {', '}');
+                    }),
+                    (Ln.isOrderedSet = Yn);
+                  var On = Ln.prototype,
+                    Gn;
+                  function zn(t, e) {
+                    var n = Object.create(On);
+                    n.size = t ? t.size : 0;
+                    n._map = t;
+                    n.__ownerID = e;
+                    return n;
+                  }
+                  function Hn() {
+                    return Gn || (Gn = zn(Xe()));
+                  }
+                  function T(t) {
+                    return t === null || t === undefined ? Kn() : jn(t) ? t : Kn().unshiftAll(t);
+                  }
+                  function jn(t) {
+                    return !!(t && t[Vn]);
+                  }
+                  (On[G] = true),
+                    (On.__empty = Hn),
+                    (On.__make = zn),
+                    t(T, Pt),
+                    (T.of = function () {
+                      return this(arguments);
+                    }),
+                    (T.prototype.toString = function () {
+                      return this.__toString('Stack [', ']');
+                    }),
+                    (T.prototype.get = function (t, e) {
+                      var n = this._head;
+                      t = K(this, t);
+                      while (n && t--) n = n.next;
+                      return n ? n.value : e;
+                    }),
+                    (T.prototype.peek = function () {
+                      return this._head && this._head.value;
+                    }),
+                    (T.prototype.push = function () {
+                      if (arguments.length === 0) return this;
+                      var t = this.size + arguments.length;
+                      var e = this._head;
+                      for (var n = arguments.length - 1; n >= 0; n--)
+                        e = { value: arguments[n], next: e };
+                      if (this.__ownerID) {
+                        this.size = t;
+                        this._head = e;
+                        this.__hash = undefined;
+                        this.__altered = true;
+                        return this;
+                      }
+                      return Jn(t, e);
+                    }),
+                    (T.prototype.pushAll = function (t) {
+                      t = U(t);
+                      if (t.size === 0) return this;
+                      C(t.size);
+                      var e = this.size;
+                      var n = this._head;
+                      t.reverse().forEach(function (t) {
+                        e++;
+                        n = { value: t, next: n };
+                      });
+                      if (this.__ownerID) {
+                        this.size = e;
+                        this._head = n;
+                        this.__hash = undefined;
+                        this.__altered = true;
+                        return this;
+                      }
+                      return Jn(e, n);
+                    }),
+                    (T.prototype.pop = function () {
+                      return this.slice(1);
+                    }),
+                    (T.prototype.unshift = function () {
+                      return this.push.apply(this, arguments);
+                    }),
+                    (T.prototype.unshiftAll = function (t) {
+                      return this.pushAll(t);
+                    }),
+                    (T.prototype.shift = function () {
+                      return this.pop.apply(this, arguments);
+                    }),
+                    (T.prototype.clear = function () {
+                      if (this.size === 0) return this;
+                      if (this.__ownerID) {
+                        this.size = 0;
+                        this._head = undefined;
+                        this.__hash = undefined;
+                        this.__altered = true;
+                        return this;
+                      }
+                      return Kn();
+                    }),
+                    (T.prototype.slice = function (t, e) {
+                      if (X(t, e, this.size)) return this;
+                      var n = $(t, this.size);
+                      var r = tt(e, this.size);
+                      if (r !== this.size) return Pt.prototype.slice.call(this, t, e);
+                      var i = this.size - n;
+                      var o = this._head;
+                      while (n--) o = o.next;
+                      if (this.__ownerID) {
+                        this.size = i;
+                        this._head = o;
+                        this.__hash = undefined;
+                        this.__altered = true;
+                        return this;
+                      }
+                      return Jn(i, o);
+                    }),
+                    (T.prototype.__ensureOwner = function (t) {
+                      if (t === this.__ownerID) return this;
+                      if (!t) {
+                        this.__ownerID = t;
+                        this.__altered = false;
+                        return this;
+                      }
+                      return Jn(this.size, this._head, t, this.__hash);
+                    }),
+                    (T.prototype.__iterate = function (t, e) {
+                      if (e) return this.reverse().__iterate(t);
+                      var n = 0;
+                      var r = this._head;
+                      while (r) {
+                        if (t(r.value, n++, this) === false) break;
+                        r = r.next;
+                      }
+                      return n;
+                    }),
+                    (T.prototype.__iterator = function (e, t) {
+                      if (t) return this.reverse().__iterator(e);
+                      var n = 0;
+                      var r = this._head;
+                      return new f(function () {
+                        if (r) {
+                          var t = r.value;
+                          r = r.next;
+                          return g(e, n++, t);
+                        }
+                        return m();
+                      });
+                    }),
+                    (T.isStack = jn);
+                  var Vn = '@@__IMMUTABLE_STACK__@@',
+                    qn = T.prototype,
+                    Wn;
+                  function Jn(t, e, n, r) {
+                    var i = Object.create(qn);
+                    i.size = t;
+                    i._head = e;
+                    i.__ownerID = n;
+                    i.__hash = r;
+                    i.__altered = false;
+                    return i;
+                  }
+                  function Kn() {
+                    return Wn || (Wn = Jn(0));
+                  }
+                  function Zn(e, n) {
+                    var t = function (t) {
+                      e.prototype[t] = n[t];
+                    };
+                    Object.keys(n).forEach(t);
+                    Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(n).forEach(t);
+                    return e;
+                  }
+                  (qn[Vn] = true),
+                    (qn.withMutations = I.withMutations),
+                    (qn.asMutable = I.asMutable),
+                    (qn.asImmutable = I.asImmutable),
+                    (qn.wasAltered = I.wasAltered),
+                    (l.Iterator = f),
+                    Zn(l, {
+                      toArray: function () {
+                        C(this.size);
+                        var n = new Array(this.size || 0);
+                        this.valueSeq().__iterate(function (t, e) {
+                          n[e] = t;
+                        });
+                        return n;
+                      },
+                      toIndexedSeq: function () {
+                        return new en(this);
+                      },
+                      toJS: function () {
+                        return this.toSeq()
+                          .map(function (t) {
+                            return t && typeof t.toJS === 'function' ? t.toJS() : t;
+                          })
+                          .__toJS();
+                      },
+                      toJSON: function () {
+                        return this.toSeq()
+                          .map(function (t) {
+                            return t && typeof t.toJSON === 'function' ? t.toJSON() : t;
+                          })
+                          .__toJS();
+                      },
+                      toKeyedSeq: function () {
+                        return new tn(this, true);
+                      },
+                      toMap: function () {
+                        return x(this.toKeyedSeq());
+                      },
+                      toObject: function () {
+                        C(this.size);
+                        var n = {};
+                        this.__iterate(function (t, e) {
+                          n[e] = t;
+                        });
+                        return n;
+                      },
+                      toOrderedMap: function () {
+                        return D(this.toKeyedSeq());
+                      },
+                      toOrderedSet: function () {
+                        return Ln(u(this) ? this.valueSeq() : this);
+                      },
+                      toSet: function () {
+                        return Q(u(this) ? this.valueSeq() : this);
+                      },
+                      toSetSeq: function () {
+                        return new nn(this);
+                      },
+                      toSeq: function () {
+                        return A(this)
+                          ? this.toIndexedSeq()
+                          : u(this)
+                            ? this.toKeyedSeq()
+                            : this.toSetSeq();
+                      },
+                      toStack: function () {
+                        return T(u(this) ? this.valueSeq() : this);
+                      },
+                      toList: function () {
+                        return n(u(this) ? this.valueSeq() : this);
+                      },
+                      toString: function () {
+                        return '[Iterable]';
+                      },
+                      __toString: function (t, e) {
+                        if (this.size === 0) return t + e;
+                        return (
+                          t + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + e
+                        );
+                      },
+                      concat: function () {
+                        var t = r.call(arguments, 0);
+                        return S(this, dn(this, t));
+                      },
+                      includes: function (e) {
+                        return this.some(function (t) {
+                          return E(t, e);
+                        });
+                      },
+                      entries: function () {
+                        return this.__iterator(rt);
+                      },
+                      every: function (r, i) {
+                        C(this.size);
+                        var o = true;
+                        this.__iterate(function (t, e, n) {
+                          if (!r.call(i, t, e, n)) {
+                            o = false;
+                            return false;
+                          }
+                        });
+                        return o;
+                      },
+                      filter: function (t, e) {
+                        return S(this, ln(this, t, e, true));
+                      },
+                      find: function (t, e, n) {
+                        var r = this.findEntry(t, e);
+                        return r ? r[1] : n;
+                      },
+                      findEntry: function (r, i) {
+                        var o;
+                        this.__iterate(function (t, e, n) {
+                          if (r.call(i, t, e, n)) {
+                            o = [e, t];
+                            return false;
+                          }
+                        });
+                        return o;
+                      },
+                      findLastEntry: function (t, e) {
+                        return this.toSeq().reverse().findEntry(t, e);
+                      },
+                      forEach: function (t, e) {
+                        C(this.size);
+                        return this.__iterate(e ? t.bind(e) : t);
+                      },
+                      join: function (e) {
+                        C(this.size);
+                        e = e !== undefined ? '' + e : ',';
+                        var n = '';
+                        var r = true;
+                        this.__iterate(function (t) {
+                          r ? (r = false) : (n += e);
+                          n += t !== null && t !== undefined ? t.toString() : '';
+                        });
+                        return n;
+                      },
+                      keys: function () {
+                        return this.__iterator(nt);
+                      },
+                      map: function (t, e) {
+                        return S(this, an(this, t, e));
+                      },
+                      reduce: function (r, t, i) {
+                        C(this.size);
+                        var o;
+                        var a;
+                        if (arguments.length < 2) a = true;
+                        else o = t;
+                        this.__iterate(function (t, e, n) {
+                          if (a) {
+                            a = false;
+                            o = t;
+                          } else o = r.call(i, o, t, e, n);
+                        });
+                        return o;
+                      },
+                      reduceRight: function (t, e, n) {
+                        var r = this.toKeyedSeq().reverse();
+                        return r.reduce.apply(r, arguments);
+                      },
+                      reverse: function () {
+                        return S(this, sn(this, true));
+                      },
+                      slice: function (t, e) {
+                        return S(this, An(this, t, e, true));
+                      },
+                      some: function (t, e) {
+                        return !this.every(nr(t), e);
+                      },
+                      sort: function (t) {
+                        return S(this, vn(this, t));
+                      },
+                      values: function () {
+                        return this.__iterator(p);
+                      },
+                      butLast: function () {
+                        return this.slice(0, -1);
+                      },
+                      isEmpty: function () {
+                        return this.size !== undefined
+                          ? this.size === 0
+                          : !this.some(function () {
+                              return true;
+                            });
+                      },
+                      count: function (t, e) {
+                        return J(t ? this.toSeq().filter(t, e) : this);
+                      },
+                      countBy: function (t, e) {
+                        return un(this, t, e);
+                      },
+                      equals: function (t) {
+                        return Tt(this, t);
+                      },
+                      entrySeq: function () {
+                        var t = this;
+                        if (t._cache) return new vt(t._cache);
+                        var e = t.toSeq().map(er).toIndexedSeq();
+                        e.fromEntrySeq = function () {
+                          return t.toSeq();
+                        };
+                        return e;
+                      },
+                      filterNot: function (t, e) {
+                        return this.filter(nr(t), e);
+                      },
+                      findLast: function (t, e, n) {
+                        return this.toKeyedSeq().reverse().find(t, e, n);
+                      },
+                      first: function () {
+                        return this.find(Z);
+                      },
+                      flatMap: function (t, e) {
+                        return S(this, gn(this, t, e));
+                      },
+                      flatten: function (t) {
+                        return S(this, fn(this, t, true));
+                      },
+                      fromEntrySeq: function () {
+                        return new rn(this);
+                      },
+                      get: function (n, t) {
+                        return this.find(
+                          function (t, e) {
+                            return E(e, n);
+                          },
+                          undefined,
+                          t,
+                        );
+                      },
+                      getIn: function (t, e) {
+                        var n = this;
+                        var r = Dn(t);
+                        var i;
+                        while (!(i = r.next()).done) {
+                          var o = i.value;
+                          n = n && n.get ? n.get(o, v) : v;
+                          if (n === v) return e;
+                        }
+                        return n;
+                      },
+                      groupBy: function (t, e) {
+                        return cn(this, t, e);
+                      },
+                      has: function (t) {
+                        return this.get(t, v) !== v;
+                      },
+                      hasIn: function (t) {
+                        return this.getIn(t, v) !== v;
+                      },
+                      isSubset: function (e) {
+                        e = typeof e.includes === 'function' ? e : l(e);
+                        return this.every(function (t) {
+                          return e.includes(t);
+                        });
+                      },
+                      isSuperset: function (t) {
+                        t = typeof t.isSubset === 'function' ? t : l(t);
+                        return t.isSubset(this);
+                      },
+                      keySeq: function () {
+                        return this.toSeq().map(tr).toIndexedSeq();
+                      },
+                      last: function () {
+                        return this.toSeq().reverse().first();
+                      },
+                      max: function (t) {
+                        return bn(this, t);
+                      },
+                      maxBy: function (t, e) {
+                        return bn(this, e, t);
+                      },
+                      min: function (t) {
+                        return bn(this, t ? rr(t) : ar);
+                      },
+                      minBy: function (t, e) {
+                        return bn(this, e ? rr(e) : ar, t);
+                      },
+                      rest: function () {
+                        return this.slice(1);
+                      },
+                      skip: function (t) {
+                        return this.slice(Math.max(0, t));
+                      },
+                      skipLast: function (t) {
+                        return S(this, this.toSeq().reverse().skip(t).reverse());
+                      },
+                      skipWhile: function (t, e) {
+                        return S(this, pn(this, t, e, true));
+                      },
+                      skipUntil: function (t, e) {
+                        return this.skipWhile(nr(t), e);
+                      },
+                      sortBy: function (t, e) {
+                        return S(this, vn(this, e, t));
+                      },
+                      take: function (t) {
+                        return this.slice(0, Math.max(0, t));
+                      },
+                      takeLast: function (t) {
+                        return S(this, this.toSeq().reverse().take(t).reverse());
+                      },
+                      takeWhile: function (t, e) {
+                        return S(this, hn(this, t, e));
+                      },
+                      takeUntil: function (t, e) {
+                        return this.takeWhile(nr(t), e);
+                      },
+                      valueSeq: function () {
+                        return this.toIndexedSeq();
+                      },
+                      hashCode: function () {
+                        return this.__hash || (this.__hash = sr(this));
+                      },
+                    });
+                  var R = l.prototype;
+                  (R[L] = true),
+                    (R[at] = R.values),
+                    (R.__toJS = R.toArray),
+                    (R.__toStringMapper = ir),
+                    (R.inspect = R.toSource =
+                      function () {
+                        return this.toString();
+                      }),
+                    (R.chain = R.flatMap),
+                    (R.contains = R.includes);
+                  try {
+                    Object.defineProperty(R, 'length', {
+                      get: function () {
+                        if (!l.noLengthWarning) {
+                          var e;
+                          try {
+                            throw new Error();
+                          } catch (t) {
+                            e = t.stack;
+                          }
+                          if (e.indexOf('_wrapObject') === -1) {
+                            console &&
+                              console.warn &&
+                              console.warn(
+                                'iterable.length has been deprecated, ' +
+                                  'use iterable.size or iterable.count(). ' +
+                                  'This warning will become a silent error in a future version. ' +
+                                  e,
+                              );
+                            return this.size;
+                          }
+                        }
+                      },
+                    });
+                  } catch (t) {}
+                  Zn(s, {
+                    flip: function () {
+                      return S(this, on(this));
+                    },
+                    findKey: function (t, e) {
+                      var n = this.findEntry(t, e);
+                      return n && n[0];
+                    },
+                    findLastKey: function (t, e) {
+                      return this.toSeq().reverse().findKey(t, e);
+                    },
+                    keyOf: function (e) {
+                      return this.findKey(function (t) {
+                        return E(t, e);
+                      });
+                    },
+                    lastKeyOf: function (e) {
+                      return this.findLastKey(function (t) {
+                        return E(t, e);
+                      });
+                    },
+                    mapEntries: function (n, r) {
+                      var i = this;
+                      var o = 0;
+                      return S(
+                        this,
+                        this.toSeq()
+                          .map(function (t, e) {
+                            return n.call(r, [e, t], o++, i);
+                          })
+                          .fromEntrySeq(),
+                      );
+                    },
+                    mapKeys: function (n, r) {
+                      var i = this;
+                      return S(
+                        this,
+                        this.toSeq()
+                          .flip()
+                          .map(function (t, e) {
+                            return n.call(r, t, e, i);
+                          })
+                          .flip(),
+                      );
+                    },
+                  });
+                  var Xn = s.prototype,
+                    $n;
+                  function tr(t, e) {
+                    return e;
+                  }
+                  function er(t, e) {
+                    return [e, t];
+                  }
+                  function nr(t) {
+                    return function () {
+                      return !t.apply(this, arguments);
+                    };
+                  }
+                  function rr(t) {
+                    return function () {
+                      return -t.apply(this, arguments);
+                    };
+                  }
+                  function ir(t) {
+                    return typeof t === 'string' ? JSON.stringify(t) : t;
+                  }
+                  function or() {
+                    return W(arguments);
+                  }
+                  function ar(t, e) {
+                    return t < e ? 1 : t > e ? -1 : 0;
+                  }
+                  function sr(t) {
+                    if (t.size === Infinity) return 0;
+                    var e = P(t);
+                    var n = u(t);
+                    var r = e ? 1 : 0;
+                    var i = t.__iterate(
+                      n
+                        ? e
+                          ? function (t, e) {
+                              r = (31 * r + ur(B(t), B(e))) | 0;
+                            }
+                          : function (t, e) {
+                              r = (r + ur(B(t), B(e))) | 0;
+                            }
+                        : e
+                          ? function (t) {
+                              r = (31 * r + B(t)) | 0;
+                            }
+                          : function (t) {
+                              r = (r + B(t)) | 0;
+                            },
+                    );
+                    return lr(i, r);
+                  }
+                  function lr(t, e) {
+                    e = Yt(e, 3432918353);
+                    e = Yt((e << 15) | (e >>> -15), 461845907);
+                    e = Yt((e << 13) | (e >>> -13), 5);
+                    e = ((e + 3864292196) | 0) ^ t;
+                    e = Yt(e ^ (e >>> 16), 2246822507);
+                    e = Yt(e ^ (e >>> 13), 3266489909);
+                    e = Ot(e ^ (e >>> 16));
+                    return e;
+                  }
+                  function ur(t, e) {
+                    return (t ^ (e + 2654435769 + (t << 6) + (t >> 2))) | 0;
+                  }
+                  return (
+                    (Xn[Y] = true),
+                    (Xn[at] = R.entries),
+                    (Xn.__toJS = R.toObject),
+                    (Xn.__toStringMapper = function (t, e) {
+                      return JSON.stringify(e) + ': ' + ir(t);
+                    }),
+                    Zn(U, {
+                      toKeyedSeq: function () {
+                        return new tn(this, false);
+                      },
+                      filter: function (t, e) {
+                        return S(this, ln(this, t, e, false));
+                      },
+                      findIndex: function (t, e) {
+                        var n = this.findEntry(t, e);
+                        return n ? n[0] : -1;
+                      },
+                      indexOf: function (t) {
+                        var e = this.toKeyedSeq().keyOf(t);
+                        return e === undefined ? -1 : e;
+                      },
+                      lastIndexOf: function (t) {
+                        var e = this.toKeyedSeq().reverse().keyOf(t);
+                        return e === undefined ? -1 : e;
+                      },
+                      reverse: function () {
+                        return S(this, sn(this, false));
+                      },
+                      slice: function (t, e) {
+                        return S(this, An(this, t, e, false));
+                      },
+                      splice: function (t, e) {
+                        var n = arguments.length;
+                        e = Math.max(e | 0, 0);
+                        if (n === 0 || (n === 2 && !e)) return this;
+                        t = $(t, t < 0 ? this.count() : this.size);
+                        var r = this.slice(0, t);
+                        return S(this, n === 1 ? r : r.concat(W(arguments, 2), this.slice(t + e)));
+                      },
+                      findLastIndex: function (t, e) {
+                        var n = this.toKeyedSeq().findLastKey(t, e);
+                        return n === undefined ? -1 : n;
+                      },
+                      first: function () {
+                        return this.get(0);
+                      },
+                      flatten: function (t) {
+                        return S(this, fn(this, t, false));
+                      },
+                      get: function (n, t) {
+                        n = K(this, n);
+                        return n < 0 ||
+                          this.size === Infinity ||
+                          (this.size !== undefined && n > this.size)
+                          ? t
+                          : this.find(
+                              function (t, e) {
+                                return e === n;
+                              },
+                              undefined,
+                              t,
+                            );
+                      },
+                      has: function (t) {
+                        t = K(this, t);
+                        return (
+                          t >= 0 &&
+                          (this.size !== undefined
+                            ? this.size === Infinity || t < this.size
+                            : this.indexOf(t) !== -1)
+                        );
+                      },
+                      interpose: function (t) {
+                        return S(this, mn(this, t));
+                      },
+                      interleave: function () {
+                        var t = [this].concat(W(arguments));
+                        var e = wn(this.toSeq(), w.of, t);
+                        var n = e.flatten(true);
+                        if (e.size) n.size = e.size * t.length;
+                        return S(this, n);
+                      },
+                      last: function () {
+                        return this.get(-1);
+                      },
+                      skipWhile: function (t, e) {
+                        return S(this, pn(this, t, e, false));
+                      },
+                      zip: function () {
+                        var t = [this].concat(W(arguments));
+                        return S(this, wn(this, or, t));
+                      },
+                      zipWith: function (t) {
+                        var e = W(arguments);
+                        e[0] = this;
+                        return S(this, wn(this, t, e));
+                      },
+                    }),
+                    (U.prototype[O] = true),
+                    (U.prototype[G] = true),
+                    Zn(i, {
+                      get: function (t, e) {
+                        return this.has(t) ? t : e;
+                      },
+                      includes: function (t) {
+                        return this.has(t);
+                      },
+                      keySeq: function () {
+                        return this.valueSeq();
+                      },
+                    }),
+                    (i.prototype.has = R.includes),
+                    (i.prototype.contains = i.prototype.includes),
+                    Zn(ht, s.prototype),
+                    Zn(w, U.prototype),
+                    Zn(pt, i.prototype),
+                    Zn(Nt, s.prototype),
+                    Zn(Pt, U.prototype),
+                    Zn(Lt, i.prototype),
+                    {
+                      Iterable: l,
+                      Seq: e,
+                      Collection: Ut,
+                      Map: x,
+                      OrderedMap: D,
+                      List: n,
+                      Stack: T,
+                      Set: Q,
+                      OrderedSet: Ln,
+                      Record: k,
+                      Range: a,
+                      Repeat: o,
+                      is: E,
+                      fromJS: kt,
+                    }
+                  );
+                })();
+                var br,
+                  yr,
+                  wr,
+                  Er,
+                  Br,
+                  Cr,
+                  xr,
+                  r = {},
+                  Ir =
+                    (!function () {
+                      function X(t) {
+                        throw t;
+                      }
+                      var $ = void 0,
+                        tt = !0,
+                        M = this;
+                      function a(t, e) {
+                        var n,
+                          r = t.split('.'),
+                          i = M;
+                        r[0] in i || !i.execScript || i.execScript('var ' + r[0]);
+                        for (; r.length && (n = r.shift()); )
+                          r.length || e === $ ? (i = i[n] || (i[n] = {})) : (i[n] = e);
+                      }
+                      var et =
+                        'undefined' != typeof Uint8Array &&
+                        'undefined' != typeof Uint16Array &&
+                        'undefined' != typeof Uint32Array &&
+                        'undefined' != typeof DataView;
+                      function nt(t, e) {
+                        (this.index = 'number' == typeof e ? e : 0),
+                          (this.m = 0),
+                          (this.buffer =
+                            t instanceof (et ? Uint8Array : Array)
+                              ? t
+                              : new (et ? Uint8Array : Array)(32768)),
+                          2 * this.buffer.length <= this.index && X(Error('invalid index')),
+                          this.buffer.length <= this.index && this.f();
+                      }
+                      (nt.prototype.f = function () {
+                        var t,
+                          e = this.buffer,
+                          n = e.length,
+                          r = new (et ? Uint8Array : Array)(n << 1);
+                        if (et) r.set(e);
+                        else for (t = 0; t < n; ++t) r[t] = e[t];
+                        return (this.buffer = r);
+                      }),
+                        (nt.prototype.d = function (t, e, n) {
+                          var r,
+                            i = this.buffer,
+                            o = this.index,
+                            a = this.m,
+                            s = i[o];
+                          if (
+                            (n &&
+                              1 < e &&
+                              (t =
+                                8 < e
+                                  ? ((l[255 & t] << 24) |
+                                      (l[(t >>> 8) & 255] << 16) |
+                                      (l[(t >>> 16) & 255] << 8) |
+                                      l[(t >>> 24) & 255]) >>
+                                    (32 - e)
+                                  : l[t] >> (8 - e)),
+                            e + a < 8)
+                          )
+                            (s = (s << e) | t), (a += e);
+                          else
+                            for (r = 0; r < e; ++r)
+                              (s = (s << 1) | ((t >> (e - r - 1)) & 1)),
+                                8 == ++a &&
+                                  ((a = 0),
+                                  (i[o++] = l[s]),
+                                  (s = 0),
+                                  o === i.length && (i = this.f()));
+                          (i[o] = s), (this.buffer = i), (this.m = a), (this.index = o);
+                        }),
+                        (nt.prototype.finish = function () {
+                          var t = this.buffer,
+                            e = this.index;
+                          return (
+                            0 < this.m && ((t[e] <<= 8 - this.m), (t[e] = l[t[e]]), e++),
+                            et ? t.subarray(0, e) : ((t.length = e), t)
+                          );
+                        });
+                      for (var D = new (et ? Uint8Array : Array)(256), t = 0; t < 256; ++t) {
+                        for (var e = (n = t), S = 7, n = n >>> 1; n; n >>>= 1)
+                          (e = (e << 1) | (1 & n)), --S;
+                        D[t] = ((e << S) & 255) >>> 0;
+                      }
+                      var l = D;
+                      function v(t, e, n) {
+                        for (
+                          var r = 'number' == typeof e ? e : (e = 0),
+                            n = 'number' == typeof n ? n : t.length,
+                            i = -1,
+                            r = 7 & n;
+                          r--;
+                          ++e
+                        )
+                          i = (i >>> 8) ^ o[255 & (i ^ t[e])];
+                        for (r = n >> 3; r--; e += 8)
+                          i =
+                            ((i =
+                              ((i =
+                                ((i =
+                                  ((i =
+                                    ((i =
+                                      ((i =
+                                        ((i = (i >>> 8) ^ o[255 & (i ^ t[e])]) >>> 8) ^
+                                        o[255 & (i ^ t[e + 1])]) >>>
+                                        8) ^
+                                      o[255 & (i ^ t[e + 2])]) >>>
+                                      8) ^
+                                    o[255 & (i ^ t[e + 3])]) >>>
+                                    8) ^
+                                  o[255 & (i ^ t[e + 4])]) >>>
+                                  8) ^
+                                o[255 & (i ^ t[e + 5])]) >>>
+                                8) ^
+                              o[255 & (i ^ t[e + 6])]) >>>
+                              8) ^
+                            o[255 & (i ^ t[e + 7])];
+                        return (4294967295 ^ i) >>> 0;
+                      }
+                      var r = [
+                          0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685,
+                          2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995,
+                          2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648,
+                          2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990,
+                          1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755,
+                          2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145,
+                          1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206,
+                          2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980,
+                          1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705,
+                          3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527,
+                          1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772,
+                          4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290,
+                          251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719,
+                          3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925,
+                          453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202,
+                          4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960,
+                          984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733,
+                          3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467,
+                          855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048,
+                          3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054,
+                          702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443,
+                          3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945,
+                          2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430,
+                          2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580,
+                          2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225,
+                          1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143,
+                          2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732,
+                          1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850,
+                          2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135,
+                          1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109,
+                          3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954,
+                          1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920,
+                          3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877,
+                          83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603,
+                          3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992,
+                          534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934,
+                          4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795,
+                          376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105,
+                          3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270,
+                          936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108,
+                          3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449,
+                          601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471,
+                          3272380065, 1510334235, 755167117,
+                        ],
+                        o = et ? new Uint32Array(r) : r;
+                      function b() {}
+                      function c(t) {
+                        (this.buffer = new (et ? Uint16Array : Array)(2 * t)), (this.length = 0);
+                      }
+                      function y(t) {
+                        for (
+                          var e,
+                            n,
+                            r,
+                            i,
+                            o,
+                            a,
+                            s,
+                            l,
+                            u,
+                            c = t.length,
+                            A = 0,
+                            h = Number.POSITIVE_INFINITY,
+                            p = 0;
+                          p < c;
+                          ++p
+                        )
+                          t[p] > A && (A = t[p]), t[p] < h && (h = t[p]);
+                        for (
+                          e = 1 << A, n = new (et ? Uint32Array : Array)(e), r = 1, i = 0, o = 2;
+                          r <= A;
+
+                        ) {
+                          for (p = 0; p < c; ++p)
+                            if (t[p] === r) {
+                              for (s = i, l = a = 0; l < r; ++l)
+                                (a = (a << 1) | (1 & s)), (s >>= 1);
+                              for (u = (r << 16) | p, l = a; l < e; l += o) n[l] = u;
+                              ++i;
+                            }
+                          ++r, (i <<= 1), (o <<= 1);
+                        }
+                        return [n, A, h];
+                      }
+                      function A(t, e) {
+                        (this.k = rt),
+                          (this.I = 0),
+                          (this.input = et && t instanceof Array ? new Uint8Array(t) : t),
+                          (this.b = 0),
+                          e &&
+                            (e.lazy && (this.I = e.lazy),
+                            'number' == typeof e.compressionType && (this.k = e.compressionType),
+                            e.outputBuffer &&
+                              (this.a =
+                                et && e.outputBuffer instanceof Array
+                                  ? new Uint8Array(e.outputBuffer)
+                                  : e.outputBuffer),
+                            'number' == typeof e.outputIndex && (this.b = e.outputIndex)),
+                          this.a || (this.a = new (et ? Uint8Array : Array)(32768));
+                      }
+                      (b.prototype.getName = function () {
+                        return this.name;
+                      }),
+                        (b.prototype.getData = function () {
+                          return this.data;
+                        }),
+                        (b.prototype.Y = function () {
+                          return this.Z;
+                        }),
+                        a('Zlib.GunzipMember', b),
+                        a('Zlib.GunzipMember.prototype.getName', b.prototype.getName),
+                        a('Zlib.GunzipMember.prototype.getData', b.prototype.getData),
+                        a('Zlib.GunzipMember.prototype.getMtime', b.prototype.Y),
+                        (c.prototype.getParent = function (t) {
+                          return 2 * (((t - 2) / 4) | 0);
+                        }),
+                        (c.prototype.push = function (t, e) {
+                          var n,
+                            r,
+                            i = this.buffer,
+                            o = this.length;
+                          for (
+                            i[this.length++] = e, i[this.length++] = t;
+                            0 < o && ((n = this.getParent(o)), i[o] > i[n]);
+
+                          )
+                            (r = i[o]),
+                              (i[o] = i[n]),
+                              (i[n] = r),
+                              (r = i[o + 1]),
+                              (i[o + 1] = i[n + 1]),
+                              (i[n + 1] = r),
+                              (o = n);
+                          return this.length;
+                        }),
+                        (c.prototype.pop = function () {
+                          var t,
+                            e,
+                            n,
+                            r = this.buffer,
+                            i = r[0],
+                            o = r[1];
+                          for (
+                            this.length -= 2,
+                              r[0] = r[this.length],
+                              r[1] = r[this.length + 1],
+                              n = 0;
+                            !((e = 2 * n + 2) >= this.length) &&
+                            (e + 2 < this.length && r[e + 2] > r[e] && (e += 2), r[e] > r[n]);
+
+                          )
+                            (t = r[n]),
+                              (r[n] = r[e]),
+                              (r[e] = t),
+                              (t = r[n + 1]),
+                              (r[n + 1] = r[e + 1]),
+                              (r[e + 1] = t),
+                              (n = e);
+                          return { index: o, value: i, length: this.length };
+                        });
+                      for (
+                        var rt = 2, r = { NONE: 0, v: 1, o: rt, ba: 3 }, it = [], i = 0;
+                        i < 288;
+                        i++
+                      )
+                        switch (tt) {
+                          case i <= 143:
+                            it.push([i + 48, 8]);
+                            break;
+                          case i <= 255:
+                            it.push([i - 144 + 400, 9]);
+                            break;
+                          case i <= 279:
+                            it.push([i - 256, 7]);
+                            break;
+                          case i <= 287:
+                            it.push([i - 280 + 192, 8]);
+                            break;
+                          default:
+                            X('invalid literal: ' + i);
+                        }
+                      function k(t, e) {
+                        (this.length = t), (this.Q = e);
+                      }
+                      A.prototype.g = function () {
+                        var t,
+                          e,
+                          U,
+                          n = this.input;
+                        switch (this.k) {
+                          case 0:
+                            for (e = 0, U = n.length; e < U; ) {
+                              var N,
+                                P,
+                                r = (i = et ? n.subarray(e, e + 65535) : n.slice(e, e + 65535)),
+                                i = (e += i.length) === U,
+                                o = $,
+                                a = this.a,
+                                s = this.b;
+                              if (et) {
+                                for (
+                                  a = new Uint8Array(this.a.buffer);
+                                  a.length <= s + r.length + 5;
+
+                                )
+                                  a = new Uint8Array(a.length << 1);
+                                a.set(this.a);
+                              }
+                              if (
+                                ((a[s++] = 0 | (i ? 1 : 0)),
+                                (N = (65536 + ~(i = r.length)) & 65535),
+                                (a[s++] = 255 & i),
+                                (a[s++] = (i >>> 8) & 255),
+                                (a[s++] = 255 & N),
+                                (a[s++] = (N >>> 8) & 255),
+                                et)
+                              )
+                                a.set(r, s), (s += r.length), (a = a.subarray(0, s));
+                              else {
+                                for (o = 0, P = r.length; o < P; ++o) a[s++] = r[o];
+                                a.length = s;
+                              }
+                              (this.b = s), (this.a = a);
+                            }
+                            break;
+                          case 1:
+                            for (
+                              var l,
+                                u = new nt(et ? new Uint8Array(this.a.buffer) : this.a, this.b),
+                                c = (u.d(1, 1, tt), u.d(1, 2, tt), st(this, n)),
+                                A = 0,
+                                L = c.length;
+                              A < L;
+                              A++
+                            )
+                              if (((l = c[A]), nt.prototype.d.apply(u, it[l]), 256 < l))
+                                u.d(c[++A], c[++A], tt), u.d(c[++A], 5), u.d(c[++A], c[++A], tt);
+                              else if (256 === l) break;
+                            (this.a = u.finish()), (this.b = this.a.length);
+                            break;
+                          case rt:
+                            var h,
+                              p,
+                              d,
+                              f,
+                              g,
+                              m,
+                              v,
+                              Y,
+                              b,
+                              y,
+                              w,
+                              O,
+                              E = new nt(et ? new Uint8Array(this.a.buffer) : this.a, this.b),
+                              G = [
+                                16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,
+                              ],
+                              z = Array(19),
+                              B = rt;
+                            for (
+                              E.d(1, 1, tt),
+                                E.d(B, 2, tt),
+                                h = st(this, n),
+                                B = at((g = ot(this.W, 15))),
+                                T = at((m = ot(this.V, 7))),
+                                p = 286;
+                              257 < p && 0 === g[p - 1];
+                              p--
+                            );
+                            for (d = 30; 1 < d && 0 === m[d - 1]; d--);
+                            for (
+                              var C,
+                                x,
+                                I,
+                                M,
+                                D,
+                                H = p,
+                                j = d,
+                                S = new (et ? Uint32Array : Array)(H + j),
+                                k = new (et ? Uint32Array : Array)(316),
+                                F = new (et ? Uint8Array : Array)(19),
+                                Q = (C = 0);
+                              Q < H;
+                              Q++
+                            )
+                              S[C++] = g[Q];
+                            for (Q = 0; Q < j; Q++) S[C++] = m[Q];
+                            if (!et) for (Q = 0, I = F.length; Q < I; ++Q) F[Q] = 0;
+                            for (Q = M = 0, I = S.length; Q < I; Q += C) {
+                              for (C = 1; Q + C < I && S[Q + C] === S[Q]; ++C);
+                              if (((x = C), 0 === S[Q]))
+                                if (x < 3) for (; 0 < x--; ) F[(k[M++] = 0)]++;
+                                else
+                                  for (; 0 < x; )
+                                    (D = x - 3 < (D = x < 138 ? x : 138) && D < x ? x - 3 : D) <= 10
+                                      ? ((k[M++] = 17), (k[M++] = D - 3), F[17]++)
+                                      : ((k[M++] = 18), (k[M++] = D - 11), F[18]++),
+                                      (x -= D);
+                              else if (((k[M++] = S[Q]), F[S[Q]]++, --x < 3))
+                                for (; 0 < x--; ) (k[M++] = S[Q]), F[S[Q]]++;
+                              else
+                                for (; 0 < x; )
+                                  x - 3 < (D = x < 6 ? x : 6) && D < x && (D = x - 3),
+                                    (k[M++] = 16),
+                                    (k[M++] = D - 3),
+                                    F[16]++,
+                                    (x -= D);
+                            }
+                            for (
+                              t = et ? k.subarray(0, M) : k.slice(0, M), v = ot(F, 7), w = 0;
+                              w < 19;
+                              w++
+                            )
+                              z[w] = v[G[w]];
+                            for (f = 19; 4 < f && 0 === z[f - 1]; f--);
+                            for (
+                              Y = at(v),
+                                E.d(p - 257, 5, tt),
+                                E.d(d - 1, 5, tt),
+                                E.d(f - 4, 4, tt),
+                                w = 0;
+                              w < f;
+                              w++
+                            )
+                              E.d(z[w], 3, tt);
+                            for (w = 0, O = t.length; w < O; w++)
+                              if (((b = t[w]), E.d(Y[b], v[b], tt), 16 <= b)) {
+                                switch ((w++, b)) {
+                                  case 16:
+                                    y = 2;
+                                    break;
+                                  case 17:
+                                    y = 3;
+                                    break;
+                                  case 18:
+                                    y = 7;
+                                    break;
+                                  default:
+                                    X('invalid code: ' + b);
+                                }
+                                E.d(t[w], y, tt);
+                              }
+                            for (
+                              var _,
+                                V,
+                                B = [B, g],
+                                T = [T, m],
+                                q = B[0],
+                                W = B[1],
+                                J = T[0],
+                                K = T[1],
+                                R = 0,
+                                Z = h.length;
+                              R < Z;
+                              ++R
+                            )
+                              if (((_ = h[R]), E.d(q[_], W[_], tt), 256 < _))
+                                E.d(h[++R], h[++R], tt),
+                                  (V = h[++R]),
+                                  E.d(J[V], K[V], tt),
+                                  E.d(h[++R], h[++R], tt);
+                              else if (256 === _) break;
+                            (this.a = E.finish()), (this.b = this.a.length);
+                            break;
+                          default:
+                            X('invalid compression type');
+                        }
+                        return this.a;
+                      };
+                      var s = (function () {
+                          for (var t, e = [], n = 3; n <= 258; n++)
+                            (t = (function (t) {
+                              switch (tt) {
+                                case 3 === t:
+                                  return [257, t - 3, 0];
+                                case 4 === t:
+                                  return [258, t - 4, 0];
+                                case 5 === t:
+                                  return [259, t - 5, 0];
+                                case 6 === t:
+                                  return [260, t - 6, 0];
+                                case 7 === t:
+                                  return [261, t - 7, 0];
+                                case 8 === t:
+                                  return [262, t - 8, 0];
+                                case 9 === t:
+                                  return [263, t - 9, 0];
+                                case 10 === t:
+                                  return [264, t - 10, 0];
+                                case t <= 12:
+                                  return [265, t - 11, 1];
+                                case t <= 14:
+                                  return [266, t - 13, 1];
+                                case t <= 16:
+                                  return [267, t - 15, 1];
+                                case t <= 18:
+                                  return [268, t - 17, 1];
+                                case t <= 22:
+                                  return [269, t - 19, 2];
+                                case t <= 26:
+                                  return [270, t - 23, 2];
+                                case t <= 30:
+                                  return [271, t - 27, 2];
+                                case t <= 34:
+                                  return [272, t - 31, 2];
+                                case t <= 42:
+                                  return [273, t - 35, 3];
+                                case t <= 50:
+                                  return [274, t - 43, 3];
+                                case t <= 58:
+                                  return [275, t - 51, 3];
+                                case t <= 66:
+                                  return [276, t - 59, 3];
+                                case t <= 82:
+                                  return [277, t - 67, 4];
+                                case t <= 98:
+                                  return [278, t - 83, 4];
+                                case t <= 114:
+                                  return [279, t - 99, 4];
+                                case t <= 130:
+                                  return [280, t - 115, 4];
+                                case t <= 162:
+                                  return [281, t - 131, 5];
+                                case t <= 194:
+                                  return [282, t - 163, 5];
+                                case t <= 226:
+                                  return [283, t - 195, 5];
+                                case t <= 257:
+                                  return [284, t - 227, 5];
+                                case 258 === t:
+                                  return [285, t - 258, 0];
+                                default:
+                                  X('invalid length: ' + t);
+                              }
+                            })(n)),
+                              (e[n] = (t[2] << 24) | (t[1] << 16) | t[0]);
+                          return e;
+                        })(),
+                        F = et ? new Uint32Array(s) : s;
+                      function st(t, e) {
+                        function n(t, e) {
+                          var n,
+                            r,
+                            i,
+                            o = t.Q,
+                            a = [],
+                            s = 0,
+                            l = F[t.length];
+                          switch (
+                            ((a[s++] = 65535 & l),
+                            (a[s++] = (l >> 16) & 255),
+                            (a[s++] = l >> 24),
+                            tt)
+                          ) {
+                            case 1 === o:
+                              n = [0, o - 1, 0];
+                              break;
+                            case 2 === o:
+                              n = [1, o - 2, 0];
+                              break;
+                            case 3 === o:
+                              n = [2, o - 3, 0];
+                              break;
+                            case 4 === o:
+                              n = [3, o - 4, 0];
+                              break;
+                            case o <= 6:
+                              n = [4, o - 5, 1];
+                              break;
+                            case o <= 8:
+                              n = [5, o - 7, 1];
+                              break;
+                            case o <= 12:
+                              n = [6, o - 9, 2];
+                              break;
+                            case o <= 16:
+                              n = [7, o - 13, 2];
+                              break;
+                            case o <= 24:
+                              n = [8, o - 17, 3];
+                              break;
+                            case o <= 32:
+                              n = [9, o - 25, 3];
+                              break;
+                            case o <= 48:
+                              n = [10, o - 33, 4];
+                              break;
+                            case o <= 64:
+                              n = [11, o - 49, 4];
+                              break;
+                            case o <= 96:
+                              n = [12, o - 65, 5];
+                              break;
+                            case o <= 128:
+                              n = [13, o - 97, 5];
+                              break;
+                            case o <= 192:
+                              n = [14, o - 129, 6];
+                              break;
+                            case o <= 256:
+                              n = [15, o - 193, 6];
+                              break;
+                            case o <= 384:
+                              n = [16, o - 257, 7];
+                              break;
+                            case o <= 512:
+                              n = [17, o - 385, 7];
+                              break;
+                            case o <= 768:
+                              n = [18, o - 513, 8];
+                              break;
+                            case o <= 1024:
+                              n = [19, o - 769, 8];
+                              break;
+                            case o <= 1536:
+                              n = [20, o - 1025, 9];
+                              break;
+                            case o <= 2048:
+                              n = [21, o - 1537, 9];
+                              break;
+                            case o <= 3072:
+                              n = [22, o - 2049, 10];
+                              break;
+                            case o <= 4096:
+                              n = [23, o - 3073, 10];
+                              break;
+                            case o <= 6144:
+                              n = [24, o - 4097, 11];
+                              break;
+                            case o <= 8192:
+                              n = [25, o - 6145, 11];
+                              break;
+                            case o <= 12288:
+                              n = [26, o - 8193, 12];
+                              break;
+                            case o <= 16384:
+                              n = [27, o - 12289, 12];
+                              break;
+                            case o <= 24576:
+                              n = [28, o - 16385, 13];
+                              break;
+                            case o <= 32768:
+                              n = [29, o - 24577, 13];
+                              break;
+                            default:
+                              X('invalid distance');
+                          }
+                          for (
+                            l = n, a[s++] = l[0], a[+s] = l[1], a[5] = l[2], r = 0, i = a.length;
+                            r < i;
+                            ++r
+                          )
+                            p[d++] = a[r];
+                          g[a[0]]++, m[a[3]]++, (f = t.length + e - 1), (c = null);
+                        }
+                        var r,
+                          i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u,
+                          c,
+                          A,
+                          h = {},
+                          p = et ? new Uint16Array(2 * e.length) : [],
+                          d = 0,
+                          f = 0,
+                          g = new (et ? Uint32Array : Array)(286),
+                          m = new (et ? Uint32Array : Array)(30),
+                          v = t.I;
+                        if (!et) {
+                          for (o = 0; o <= 285; ) g[o++] = 0;
+                          for (o = 0; o <= 29; ) m[o++] = 0;
+                        }
+                        for (g[256] = 1, r = 0, i = e.length; r < i; ++r) {
+                          for (o = s = 0, a = 3; o < a && r + o !== i; ++o) s = (s << 8) | e[r + o];
+                          if ((h[s] === $ && (h[s] = []), (l = h[s]), !(0 < f--))) {
+                            for (; 0 < l.length && 32768 < r - l[0]; ) l.shift();
+                            if (i <= r + 3) {
+                              for (c && n(c, -1), o = 0, a = i - r; o < a; ++o)
+                                (A = e[r + o]), (p[d++] = A), ++g[A];
+                              break;
+                            }
+                            0 < l.length
+                              ? ((u = (function (t, e, n) {
+                                  var r,
+                                    i,
+                                    o,
+                                    a,
+                                    s,
+                                    l,
+                                    u = 0,
+                                    c = t.length;
+                                  (a = 0), (l = n.length);
+                                  t: for (; a < l; a++) {
+                                    if (((r = n[l - a - 1]), (o = 3) < u)) {
+                                      for (s = u; 3 < s; s--)
+                                        if (t[r + s - 1] !== t[e + s - 1]) continue t;
+                                      o = u;
+                                    }
+                                    for (; o < 258 && e + o < c && t[r + o] === t[e + o]; ) ++o;
+                                    if ((u < o && ((i = r), (u = o)), 258 === o)) break;
+                                  }
+                                  return new k(u, e - i);
+                                })(e, r, l)),
+                                c
+                                  ? c.length < u.length
+                                    ? ((A = e[r - 1]), (p[d++] = A), ++g[A], n(u, 0))
+                                    : n(c, -1)
+                                  : u.length < v
+                                    ? (c = u)
+                                    : n(u, 0))
+                              : c
+                                ? n(c, -1)
+                                : ((A = e[r]), (p[d++] = A), ++g[A]);
+                          }
+                          l.push(r);
+                        }
+                        return (
+                          (p[d++] = 256), g[256]++, (t.W = g), (t.V = m), et ? p.subarray(0, d) : p
+                        );
+                      }
+                      function ot(t, e) {
+                        var n,
+                          r,
+                          i,
+                          o,
+                          a,
+                          s = t.length,
+                          l = new c(572),
+                          u = new (et ? Uint8Array : Array)(s);
+                        if (!et) for (o = 0; o < s; o++) u[o] = 0;
+                        for (o = 0; o < s; ++o) 0 < t[o] && l.push(o, t[o]);
+                        if (
+                          ((n = Array(l.length / 2)),
+                          (r = new (et ? Uint32Array : Array)(l.length / 2)),
+                          1 === n.length)
+                        )
+                          return (u[l.pop().index] = 1), u;
+                        for (o = 0, a = l.length / 2; o < a; ++o)
+                          (n[o] = l.pop()), (r[o] = n[o].value);
+                        for (
+                          i = (function (t, r, e) {
+                            var n,
+                              i,
+                              o,
+                              a,
+                              s,
+                              l = new (et ? Uint16Array : Array)(e),
+                              u = new (et ? Uint8Array : Array)(e),
+                              c = new (et ? Uint8Array : Array)(r),
+                              A = Array(e),
+                              h = Array(e),
+                              p = Array(e),
+                              d = (1 << e) - r,
+                              f = 1 << (e - 1);
+                            for (l[e - 1] = r, i = 0; i < e; ++i)
+                              d < f ? (u[i] = 0) : ((u[i] = 1), (d -= f)),
+                                (d <<= 1),
+                                (l[e - 2 - i] = ((l[e - 1 - i] / 2) | 0) + r);
+                            for (
+                              l[0] = u[0], A[0] = Array(l[0]), h[0] = Array(l[0]), i = 1;
+                              i < e;
+                              ++i
+                            )
+                              l[i] > 2 * l[i - 1] + u[i] && (l[i] = 2 * l[i - 1] + u[i]),
+                                (A[i] = Array(l[i])),
+                                (h[i] = Array(l[i]));
+                            for (n = 0; n < r; ++n) c[n] = e;
+                            for (o = 0; o < l[e - 1]; ++o) (A[e - 1][o] = t[o]), (h[e - 1][o] = o);
+                            for (n = 0; n < e; ++n) p[n] = 0;
+                            for (1 === u[e - 1] && (--c[0], ++p[e - 1]), i = e - 2; 0 <= i; --i) {
+                              for (a = n = 0, s = p[i + 1], o = 0; o < l[i]; o++)
+                                (a = A[i + 1][s] + A[i + 1][s + 1]) > t[n]
+                                  ? ((A[i][o] = a), (h[i][o] = r), (s += 2))
+                                  : ((A[i][o] = t[n]), (h[i][o] = n), ++n);
+                              (p[i] = 0),
+                                1 === u[i] &&
+                                  (function t(e) {
+                                    var n = h[e][p[e]];
+                                    n === r ? (t(e + 1), t(e + 1)) : --c[n], ++p[e];
+                                  })(i);
+                            }
+                            return c;
+                          })(r, r.length, e),
+                            o = 0,
+                            a = n.length;
+                          o < a;
+                          ++o
+                        )
+                          u[n[o].index] = i[o];
+                        return u;
+                      }
+                      function at(t) {
+                        for (
+                          var e,
+                            n,
+                            r = new (et ? Uint16Array : Array)(t.length),
+                            i = [],
+                            o = [],
+                            a = 0,
+                            s = 0,
+                            l = t.length;
+                          s < l;
+                          s++
+                        )
+                          i[t[s]] = 1 + (0 | i[t[s]]);
+                        for (s = 1, l = 16; s <= l; s++) a = ((o[s] = a) + (0 | i[s])) << 1;
+                        for (s = 0, l = t.length; s < l; s++)
+                          for (a = o[t[s]], o[t[s]] += 1, e = r[s] = 0, n = t[s]; e < n; e++)
+                            (r[s] = (r[s] << 1) | (1 & a)), (a >>>= 1);
+                        return r;
+                      }
+                      function u(t, e) {
+                        (this.input = t),
+                          (this.b = this.c = 0),
+                          (this.i = {}),
+                          e &&
+                            (e.flags && (this.i = e.flags),
+                            'string' == typeof e.filename && (this.filename = e.filename),
+                            'string' == typeof e.comment && (this.A = e.comment),
+                            e.deflateOptions && (this.l = e.deflateOptions)),
+                          this.l || (this.l = {});
+                      }
+                      u.prototype.g = function () {
+                        var t,
+                          e,
+                          n,
+                          r,
+                          i = new (et ? Uint8Array : Array)(32768),
+                          o = 0,
+                          a = this.input,
+                          s = this.c,
+                          l = this.filename,
+                          u = this.A;
+                        if (
+                          ((i[o++] = 31),
+                          (i[o++] = 139),
+                          (i[o++] = 8),
+                          (t = 0),
+                          this.i.fname && (t |= T),
+                          this.i.fcomment && (t |= R),
+                          this.i.fhcrc && (t |= _),
+                          (i[o++] = t),
+                          (t = ((Date.now ? Date.now() : +new Date()) / 1e3) | 0),
+                          (i[o++] = 255 & t),
+                          (i[o++] = (t >>> 8) & 255),
+                          (i[o++] = (t >>> 16) & 255),
+                          (i[o++] = (t >>> 24) & 255),
+                          (i[o++] = 0),
+                          (i[o++] = Q),
+                          this.i.fname !== $)
+                        ) {
+                          for (n = 0, r = l.length; n < r; ++n)
+                            255 < (e = l.charCodeAt(n)) && (i[o++] = (e >>> 8) & 255),
+                              (i[o++] = 255 & e);
+                          i[o++] = 0;
+                        }
+                        if (this.i.comment) {
+                          for (n = 0, r = u.length; n < r; ++n)
+                            255 < (e = u.charCodeAt(n)) && (i[o++] = (e >>> 8) & 255),
+                              (i[o++] = 255 & e);
+                          i[o++] = 0;
+                        }
+                        return (
+                          this.i.fhcrc &&
+                            ((t = 65535 & v(i, 0, o)),
+                            (i[o++] = 255 & t),
+                            (i[o++] = (t >>> 8) & 255)),
+                          (this.l.outputBuffer = i),
+                          (this.l.outputIndex = o),
+                          (i = (t = new A(a, this.l)).g()),
+                          (o = t.b),
+                          et &&
+                            (i =
+                              o + 8 > i.buffer.byteLength
+                                ? ((this.a = new Uint8Array(o + 8)),
+                                  this.a.set(new Uint8Array(i.buffer)),
+                                  this.a)
+                                : new Uint8Array(i.buffer)),
+                          (t = v(a, $, $)),
+                          (i[o++] = 255 & t),
+                          (i[o++] = (t >>> 8) & 255),
+                          (i[o++] = (t >>> 16) & 255),
+                          (i[o++] = (t >>> 24) & 255),
+                          (r = a.length),
+                          (i[o++] = 255 & r),
+                          (i[o++] = (r >>> 8) & 255),
+                          (i[o++] = (r >>> 16) & 255),
+                          (i[o++] = (r >>> 24) & 255),
+                          (this.c = s),
+                          et && o < i.length && (this.a = i = i.subarray(0, o)),
+                          i
+                        );
+                      };
+                      var Q = 255,
+                        _ = 2,
+                        T = 8,
+                        R = 16;
+                      function w(t, e) {
+                        switch (
+                          ((this.p = []),
+                          (this.q = 32768),
+                          (this.e = this.j = this.c = this.u = 0),
+                          (this.input = et ? new Uint8Array(t) : t),
+                          (this.w = !1),
+                          (this.r = E),
+                          (this.M = !1),
+                          e
+                            ? (e.index && (this.c = e.index),
+                              e.bufferSize && (this.q = e.bufferSize),
+                              e.bufferType && (this.r = e.bufferType),
+                              e.resize && (this.M = e.resize))
+                            : (e = {}),
+                          this.r)
+                        ) {
+                          case U:
+                            (this.b = 32768),
+                              (this.a = new (et ? Uint8Array : Array)(32768 + this.q + 258));
+                            break;
+                          case E:
+                            (this.b = 0),
+                              (this.a = new (et ? Uint8Array : Array)(this.q)),
+                              (this.f = this.U),
+                              (this.B = this.R),
+                              (this.s = this.T);
+                            break;
+                          default:
+                            X(Error('invalid inflate mode'));
+                        }
+                      }
+                      a('Zlib.Gzip', u), a('Zlib.Gzip.prototype.compress', u.prototype.g);
+                      for (
+                        var U = 0,
+                          E = 1,
+                          s = U,
+                          N = E,
+                          h =
+                            ((w.prototype.h = function () {
+                              for (; !this.w; ) {
+                                var t = B(this, 3);
+                                switch ((1 & t && (this.w = tt), (t >>>= 1))) {
+                                  case 0:
+                                    var e = this.input,
+                                      n = this.c,
+                                      r = this.a,
+                                      i = this.b,
+                                      o = e.length,
+                                      a = $,
+                                      s = r.length,
+                                      l = $;
+                                    switch (
+                                      ((this.e = this.j = 0),
+                                      o <= n + 1 &&
+                                        X(Error('invalid uncompressed block header: LEN')),
+                                      (a = e[n++] | (e[n++] << 8)),
+                                      o <= n + 1 &&
+                                        X(Error('invalid uncompressed block header: NLEN')),
+                                      a === ~(e[n++] | (e[n++] << 8)) &&
+                                        X(
+                                          Error('invalid uncompressed block header: length verify'),
+                                        ),
+                                      n + a > e.length && X(Error('input buffer is broken')),
+                                      this.r)
+                                    ) {
+                                      case U:
+                                        for (; i + a > r.length; ) {
+                                          if (((a -= l = s - i), et))
+                                            r.set(e.subarray(n, n + l), i), (i += l), (n += l);
+                                          else for (; l--; ) r[i++] = e[n++];
+                                          (this.b = i), (r = this.f()), (i = this.b);
+                                        }
+                                        break;
+                                      case E:
+                                        for (; i + a > r.length; ) r = this.f({ F: 2 });
+                                        break;
+                                      default:
+                                        X(Error('invalid inflate mode'));
+                                    }
+                                    if (et) r.set(e.subarray(n, n + a), i), (i += a), (n += a);
+                                    else for (; a--; ) r[i++] = e[n++];
+                                    (this.c = n), (this.b = i), (this.a = r);
+                                    break;
+                                  case 1:
+                                    this.s(z, q);
+                                    break;
+                                  case 2:
+                                    h = A = c = u = m = g = f = o = p = void 0;
+                                    var u,
+                                      c,
+                                      A,
+                                      h,
+                                      p = this,
+                                      d = function (t, e, n) {
+                                        for (var r, i, o = this.J, a = 0; a < t; )
+                                          switch (((r = C(this, e)), r)) {
+                                            case 16:
+                                              for (i = 3 + B(this, 2); i--; ) n[a++] = o;
+                                              break;
+                                            case 17:
+                                              for (i = 3 + B(this, 3); i--; ) n[a++] = 0;
+                                              o = 0;
+                                              break;
+                                            case 18:
+                                              for (i = 11 + B(this, 7); i--; ) n[a++] = 0;
+                                              o = 0;
+                                              break;
+                                            default:
+                                              o = n[a++] = r;
+                                          }
+                                        return (this.J = o), n;
+                                      },
+                                      o = B(p, 5) + 257,
+                                      f = B(p, 5) + 1,
+                                      g = B(p, 4) + 4,
+                                      m = new (et ? Uint8Array : Array)(P.length);
+                                    for (h = 0; h < g; ++h) m[P[h]] = B(p, 3);
+                                    if (!et) for (h = g, g = m.length; h < g; ++h) m[P[h]] = 0;
+                                    (u = y(m)),
+                                      (c = new (et ? Uint8Array : Array)(o)),
+                                      (A = new (et ? Uint8Array : Array)(f)),
+                                      (p.J = 0),
+                                      p.s(y(d.call(p, o, u, c)), y(d.call(p, f, u, A)));
+                                    break;
+                                  default:
+                                    X(Error('unknown BTYPE: ' + t));
+                                }
+                              }
+                              return this.B();
+                            }),
+                            [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]),
+                          P = et ? new Uint16Array(h) : h,
+                          h = [
+                            3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59,
+                            67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258,
+                          ],
+                          L = et ? new Uint16Array(h) : h,
+                          h = [
+                            0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4,
+                            5, 5, 5, 5, 0, 0, 0,
+                          ],
+                          p = et ? new Uint8Array(h) : h,
+                          h = [
+                            1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385,
+                            513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577,
+                          ],
+                          Y = et ? new Uint16Array(h) : h,
+                          h = [
+                            0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10,
+                            10, 11, 11, 12, 12, 13, 13,
+                          ],
+                          d = et ? new Uint8Array(h) : h,
+                          O = new (et ? Uint8Array : Array)(288),
+                          f = 0,
+                          G = O.length;
+                        f < G;
+                        ++f
+                      )
+                        O[f] = f <= 143 ? 8 : f <= 255 ? 9 : f <= 279 ? 7 : 8;
+                      for (
+                        var z = y(O), H = new (et ? Uint8Array : Array)(30), j = 0, V = H.length;
+                        j < V;
+                        ++j
+                      )
+                        H[j] = 5;
+                      var q = y(H);
+                      function B(t, e) {
+                        for (var n, r = t.j, i = t.e, o = t.input, a = t.c, s = o.length; i < e; )
+                          s <= a && X(Error('input buffer is broken')),
+                            (r |= o[a++] << i),
+                            (i += 8);
+                        return (
+                          (n = r & ((1 << e) - 1)), (t.j = r >>> e), (t.e = i - e), (t.c = a), n
+                        );
+                      }
+                      function C(t, e) {
+                        for (
+                          var n = t.j,
+                            r = t.e,
+                            i = t.input,
+                            o = t.c,
+                            a = i.length,
+                            s = e[0],
+                            l = e[1];
+                          r < l && !(a <= o);
+
+                        )
+                          (n |= i[o++] << r), (r += 8);
+                        return (
+                          (e = s[n & ((1 << l) - 1)]),
+                          (t.j = n >> (s = e >>> 16)),
+                          (t.e = r - s),
+                          (t.c = o),
+                          65535 & e
+                        );
+                      }
+                      function g(t) {
+                        (this.input = t), (this.c = 0), (this.t = []), (this.D = !1);
+                      }
+                      function W(t) {
+                        if ('string' == typeof t) {
+                          for (var e = t.split(''), n = 0, r = e.length; n < r; n++)
+                            e[n] = (255 & e[n].charCodeAt(0)) >>> 0;
+                          t = e;
+                        }
+                        for (var i, o = 1, a = 0, s = t.length, l = 0; 0 < s; ) {
+                          for (s -= i = 1024 < s ? 1024 : s; (a += o += t[l++]), --i; );
+                          (o %= 65521), (a %= 65521);
+                        }
+                        return ((a << 16) | o) >>> 0;
+                      }
+                      function J(t, e) {
+                        var n, r;
+                        (this.input = t),
+                          (this.c = 0),
+                          e
+                            ? (e.index && (this.c = e.index), e.verify && (this.$ = e.verify))
+                            : (e = {}),
+                          (n = t[this.c++]),
+                          (r = t[this.c++]),
+                          (15 & n) === m
+                            ? (this.method = m)
+                            : X(Error('unsupported compression method')),
+                          0 != ((n << 8) + r) % 31 &&
+                            X(Error('invalid fcheck flag:' + (((n << 8) + r) % 31))),
+                          32 & r && X(Error('fdict flag is not supported')),
+                          (this.L = new w(t, {
+                            index: this.c,
+                            bufferSize: e.bufferSize,
+                            bufferType: e.bufferType,
+                            resize: e.resize,
+                          }));
+                      }
+                      (w.prototype.s = function (t, e) {
+                        var n = this.a,
+                          r = this.b;
+                        this.C = t;
+                        for (var i, o, a, s, l = n.length - 258; 256 !== (i = C(this, t)); )
+                          if (i < 256)
+                            l <= r && ((this.b = r), (n = this.f()), (r = this.b)), (n[r++] = i);
+                          else
+                            for (
+                              s = L[(o = i - 257)],
+                                0 < p[o] && (s += B(this, p[o])),
+                                i = C(this, e),
+                                a = Y[i],
+                                0 < d[i] && (a += B(this, d[i])),
+                                l <= r && ((this.b = r), (n = this.f()), (r = this.b));
+                              s--;
+
+                            )
+                              n[r] = n[r++ - a];
+                        for (; 8 <= this.e; ) (this.e -= 8), this.c--;
+                        this.b = r;
+                      }),
+                        (w.prototype.T = function (t, e) {
+                          var n = this.a,
+                            r = this.b;
+                          this.C = t;
+                          for (var i, o, a, s, l = n.length; 256 !== (i = C(this, t)); )
+                            if (i < 256) l <= r && (l = (n = this.f()).length), (n[r++] = i);
+                            else
+                              for (
+                                s = L[(o = i - 257)],
+                                  0 < p[o] && (s += B(this, p[o])),
+                                  i = C(this, e),
+                                  a = Y[i],
+                                  0 < d[i] && (a += B(this, d[i])),
+                                  l < r + s && (l = (n = this.f()).length);
+                                s--;
+
+                              )
+                                n[r] = n[r++ - a];
+                          for (; 8 <= this.e; ) (this.e -= 8), this.c--;
+                          this.b = r;
+                        }),
+                        (w.prototype.f = function () {
+                          var t,
+                            e,
+                            n = new (et ? Uint8Array : Array)(this.b - 32768),
+                            r = this.b - 32768,
+                            i = this.a;
+                          if (et) n.set(i.subarray(32768, n.length));
+                          else for (t = 0, e = n.length; t < e; ++t) n[t] = i[t + 32768];
+                          if ((this.p.push(n), (this.u += n.length), et))
+                            i.set(i.subarray(r, 32768 + r));
+                          else for (t = 0; t < 32768; ++t) i[t] = i[r + t];
+                          return (this.b = 32768), i;
+                        }),
+                        (w.prototype.U = function (t) {
+                          var e,
+                            n = (this.input.length / this.c + 1) | 0,
+                            r = this.input,
+                            i = this.a;
+                          return (
+                            t &&
+                              ('number' == typeof t.F && (n = t.F),
+                              'number' == typeof t.P && (n += t.P)),
+                            (r =
+                              n < 2
+                                ? (t = (((r.length - this.c) / this.C[2] / 2) * 258) | 0) < i.length
+                                  ? i.length + t
+                                  : i.length << 1
+                                : i.length * n),
+                            et ? (e = new Uint8Array(r)).set(i) : (e = i),
+                            (this.a = e)
+                          );
+                        }),
+                        (w.prototype.B = function () {
+                          var t,
+                            e,
+                            n,
+                            r,
+                            i,
+                            o = 0,
+                            a = this.a,
+                            s = this.p,
+                            l = new (et ? Uint8Array : Array)(this.u + (this.b - 32768));
+                          if (0 === s.length)
+                            return et
+                              ? this.a.subarray(32768, this.b)
+                              : this.a.slice(32768, this.b);
+                          for (e = 0, n = s.length; e < n; ++e)
+                            for (r = 0, i = (t = s[e]).length; r < i; ++r) l[o++] = t[r];
+                          for (e = 32768, n = this.b; e < n; ++e) l[o++] = a[e];
+                          return (this.p = []), (this.buffer = l);
+                        }),
+                        (w.prototype.R = function () {
+                          var t,
+                            e = this.b;
+                          return (
+                            et
+                              ? this.M
+                                ? (t = new Uint8Array(e)).set(this.a.subarray(0, e))
+                                : (t = this.a.subarray(0, e))
+                              : (this.a.length > e && (this.a.length = e), (t = this.a)),
+                            (this.buffer = t)
+                          );
+                        }),
+                        (g.prototype.X = function () {
+                          return this.D || this.h(), this.t.slice();
+                        }),
+                        (g.prototype.h = function () {
+                          for (var t = this.input.length; this.c < t; ) {
+                            var e,
+                              n = new b(),
+                              r = $,
+                              i = $,
+                              o = $,
+                              a = $,
+                              s = $,
+                              l = $,
+                              u = $,
+                              c = this.input,
+                              A = this.c;
+                            if (
+                              ((n.G = c[A++]),
+                              (n.H = c[A++]),
+                              (31 === n.G && 139 === n.H) ||
+                                X(Error('invalid file signature:' + n.G + ',' + n.H)),
+                              (n.z = c[A++]),
+                              8 !== n.z && X(Error('unknown compression method: ' + n.z)),
+                              (n.n = c[A++]),
+                              (e = c[A++] | (c[A++] << 8) | (c[A++] << 16) | (c[A++] << 24)),
+                              (n.Z = new Date(1e3 * e)),
+                              (n.fa = c[A++]),
+                              (n.ea = c[A++]),
+                              0 < (4 & n.n) && ((n.aa = c[A++] | (c[A++] << 8)), (A += n.aa)),
+                              0 < (n.n & T))
+                            ) {
+                              for (l = [], s = 0; 0 < (a = c[A++]); )
+                                l[s++] = String.fromCharCode(a);
+                              n.name = l.join('');
+                            }
+                            if (0 < (n.n & R)) {
+                              for (l = [], s = 0; 0 < (a = c[A++]); )
+                                l[s++] = String.fromCharCode(a);
+                              n.A = l.join('');
+                            }
+                            0 < (n.n & _) &&
+                              ((n.S = 65535 & v(c, 0, A)),
+                              n.S !== (c[A++] | (c[A++] << 8)) && X(Error('invalid header crc16'))),
+                              (r =
+                                c[c.length - 4] |
+                                (c[c.length - 3] << 8) |
+                                (c[c.length - 2] << 16) |
+                                (c[c.length - 1] << 24)),
+                              (i = new w(c, {
+                                index: A,
+                                bufferSize: (o = c.length - A - 4 - 4 < 512 * r ? r : o),
+                              })),
+                              (n.data = e = i.h()),
+                              (A = i.c),
+                              (n.ca = u =
+                                (c[A++] | (c[A++] << 8) | (c[A++] << 16) | (c[A++] << 24)) >>> 0),
+                              v(e, $, $) !== u &&
+                                X(
+                                  Error(
+                                    'invalid CRC-32 checksum: 0x' +
+                                      v(e, $, $).toString(16) +
+                                      ' / 0x' +
+                                      u.toString(16),
+                                  ),
+                                ),
+                              (n.da = r =
+                                (c[A++] | (c[A++] << 8) | (c[A++] << 16) | (c[A++] << 24)) >>> 0),
+                              (4294967295 & e.length) !== r &&
+                                X(
+                                  Error(
+                                    'invalid input size: ' + (4294967295 & e.length) + ' / ' + r,
+                                  ),
+                                ),
+                              this.t.push(n),
+                              (this.c = A);
+                          }
+                          this.D = tt;
+                          for (var h, p = this.t, d = 0, f = 0, g = 0, m = p.length; g < m; ++g)
+                            f += p[g].data.length;
+                          if (et)
+                            for (h = new Uint8Array(f), g = 0; g < m; ++g)
+                              h.set(p[g].data, d), (d += p[g].data.length);
+                          else {
+                            for (h = [], g = 0; g < m; ++g) h[g] = p[g].data;
+                            h = Array.prototype.concat.apply([], h);
+                          }
+                          return h;
+                        }),
+                        a('Zlib.Gunzip', g),
+                        a('Zlib.Gunzip.prototype.decompress', g.prototype.h),
+                        a('Zlib.Gunzip.prototype.getMembers', g.prototype.X),
+                        (J.prototype.h = function () {
+                          var t = this.input,
+                            e = this.L.h();
+                          return (
+                            (this.c = this.L.c),
+                            this.$ &&
+                              ((t[this.c++] << 24) |
+                                (t[this.c++] << 16) |
+                                (t[this.c++] << 8) |
+                                t[this.c++]) >>>
+                                0 !==
+                                W(e) &&
+                              X(Error('invalid adler-32 checksum')),
+                            e
+                          );
+                        });
+                      var m = 8;
+                      function x(t, e) {
+                        (this.input = t),
+                          (this.a = new (et ? Uint8Array : Array)(32768)),
+                          (this.k = I.o);
+                        var n,
+                          r = {};
+                        for (n in ((e ? 'number' == typeof e.compressionType : ((e = {}), 0)) &&
+                          (this.k = e.compressionType),
+                        e))
+                          r[n] = e[n];
+                        (r.outputBuffer = this.a), (this.K = new A(this.input, r));
+                      }
+                      var I = r;
+                      function K(t, e) {
+                        var n, r, i, o;
+                        if (Object.keys) n = Object.keys(e);
+                        else for (r in ((n = []), (i = 0), e)) n[i++] = r;
+                        for (i = 0, o = n.length; i < o; ++i) a(t + '.' + (r = n[i]), e[r]);
+                      }
+                      (x.prototype.g = function () {
+                        var t,
+                          e,
+                          n = 0,
+                          r = this.a,
+                          i = m;
+                        if (
+                          (i === m
+                            ? (e = Math.LOG2E * Math.log(32768) - 8)
+                            : X(Error('invalid compression method')),
+                          (r[n++] = e = (e << 4) | i),
+                          i === m)
+                        )
+                          switch (this.k) {
+                            case I.NONE:
+                              t = 0;
+                              break;
+                            case I.v:
+                              t = 1;
+                              break;
+                            case I.o:
+                              t = 2;
+                              break;
+                            default:
+                              X(Error('unsupported compression type'));
+                          }
+                        else X(Error('invalid compression method'));
+                        return (
+                          (r[n++] = (i = (t << 6) | 0) | (31 - ((256 * e + i) % 31))),
+                          (e = W(this.input)),
+                          (this.K.b = n),
+                          (n = (r = this.K.g()).length),
+                          et &&
+                            ((r = new Uint8Array(r.buffer)).length <= n + 4 &&
+                              ((this.a = new Uint8Array(r.length + 4)),
+                              this.a.set(r),
+                              (r = this.a)),
+                            (r = r.subarray(0, n + 4))),
+                          (r[n++] = (e >> 24) & 255),
+                          (r[n++] = (e >> 16) & 255),
+                          (r[n++] = (e >> 8) & 255),
+                          (r[n++] = 255 & e),
+                          r
+                        );
+                      }),
+                        a('Zlib.Inflate', J),
+                        a('Zlib.Inflate.prototype.decompress', J.prototype.h),
+                        K('Zlib.Inflate.BufferType', { ADAPTIVE: N, BLOCK: s }),
+                        a('Zlib.Deflate', x),
+                        a('Zlib.Deflate.compress', function (t, e) {
+                          return new x(t, e).g();
+                        }),
+                        a('Zlib.Deflate.prototype.compress', x.prototype.g),
+                        K('Zlib.Deflate.CompressionType', {
+                          NONE: I.NONE,
+                          FIXED: I.v,
+                          DYNAMIC: I.o,
+                        });
+                    }.call(r),
+                    r.Zlib),
+                  Mr =
+                    ((yr = {}),
+                    (wr = {}),
+                    (function (t) {
+                      'object' == typeof yr && void 0 !== wr
+                        ? (wr.exports = t())
+                        : (('undefined' != typeof window
+                            ? window
+                            : void 0 !== Vp
+                              ? Vp
+                              : 'undefined' != typeof self
+                                ? self
+                                : this
+                          ).React = t());
+                    })(function () {
+                      return (function r(i, o, a) {
+                        function s(e, t) {
+                          if (!o[e]) {
+                            if (!i[e]) {
+                              if (l) return l(e, !0);
+                              var n = new Error("Cannot find __module__ '" + e + "'");
+                              throw ((n.code = '__module___NOT_FOUND'), n);
+                            }
+                            n = o[e] = { exports: {} };
+                            i[e][0].call(
+                              n.exports,
+                              function (t) {
+                                return s(i[e][1][t] || t);
+                              },
+                              n,
+                              n.exports,
+                              r,
+                              i,
+                              o,
+                              a,
+                            );
+                          }
+                          return o[e].exports;
+                        }
+                        for (var l = void 0, t = 0; t < a.length; t++) s(a[t]);
+                        return s;
+                      })(
+                        {
+                          1: [
+                            function (t, e, n) {
+                              e.exports = {
+                                escape: function (t) {
+                                  var e = { '=': '=0', ':': '=2' };
+                                  return (
+                                    '$' +
+                                    ('' + t).replace(/[=:]/g, function (t) {
+                                      return e[t];
+                                    })
+                                  );
+                                },
+                                unescape: function (t) {
+                                  var e = { '=0': '=', '=2': ':' };
+                                  return (
+                                    '' +
+                                    ('.' === t[0] && '$' === t[1] ? t.substring(2) : t.substring(1))
+                                  ).replace(/(=0|=2)/g, function (t) {
+                                    return e[t];
+                                  });
+                                },
+                              };
+                            },
+                            {},
+                          ],
+                          2: [
+                            function (t, e, n) {
+                              function r(t) {
+                                var e;
+                                return this.instancePool.length
+                                  ? ((e = this.instancePool.pop()), this.call(e, t), e)
+                                  : new this(t);
+                              }
+                              var i = t(19),
+                                o =
+                                  (t(24),
+                                  function (t) {
+                                    t instanceof this || i('25'),
+                                      t.destructor(),
+                                      this.instancePool.length < this.poolSize &&
+                                        this.instancePool.push(t);
+                                  }),
+                                a = r;
+                              e.exports = {
+                                addPoolingTo: function (t, e) {
+                                  return (
+                                    (t.instancePool = []),
+                                    (t.getPooled = e || a),
+                                    t.poolSize || (t.poolSize = 10),
+                                    (t.release = o),
+                                    t
+                                  );
+                                },
+                                oneArgumentPooler: r,
+                                twoArgumentPooler: function (t, e) {
+                                  var n;
+                                  return this.instancePool.length
+                                    ? ((n = this.instancePool.pop()), this.call(n, t, e), n)
+                                    : new this(t, e);
+                                },
+                                threeArgumentPooler: function (t, e, n) {
+                                  var r;
+                                  return this.instancePool.length
+                                    ? ((r = this.instancePool.pop()), this.call(r, t, e, n), r)
+                                    : new this(t, e, n);
+                                },
+                                fourArgumentPooler: function (t, e, n, r) {
+                                  var i;
+                                  return this.instancePool.length
+                                    ? ((i = this.instancePool.pop()), this.call(i, t, e, n, r), i)
+                                    : new this(t, e, n, r);
+                                },
+                              };
+                            },
+                            { 19: 19, 24: 24 },
+                          ],
+                          3: [
+                            function (t, e, n) {
+                              var r = t(26),
+                                i = t(4),
+                                o = t(5),
+                                a = t(7),
+                                s = t(8),
+                                l = t(11),
+                                u = t(13),
+                                c = t(15),
+                                t = t(18),
+                                A = s.createElement,
+                                h = s.createFactory,
+                                p = s.cloneElement,
+                                o = {
+                                  Children: {
+                                    map: o.map,
+                                    forEach: o.forEach,
+                                    count: o.count,
+                                    toArray: o.toArray,
+                                    only: t,
+                                  },
+                                  Component: i.Component,
+                                  PureComponent: i.PureComponent,
+                                  createElement: A,
+                                  cloneElement: p,
+                                  isValidElement: s.isValidElement,
+                                  PropTypes: l,
+                                  createClass: c,
+                                  createFactory: h,
+                                  createMixin: function (t) {
+                                    return t;
+                                  },
+                                  DOM: a,
+                                  version: u,
+                                  __spread: r,
+                                };
+                              e.exports = o;
+                            },
+                            { 11: 11, 13: 13, 15: 15, 18: 18, 26: 26, 4: 4, 5: 5, 7: 7, 8: 8 },
+                          ],
+                          4: [
+                            function (t, e, n) {
+                              function r(t, e, n) {
+                                (this.props = t),
+                                  (this.context = e),
+                                  (this.refs = u),
+                                  (this.updater = n || l);
+                              }
+                              function i(t, e, n) {
+                                (this.props = t),
+                                  (this.context = e),
+                                  (this.refs = u),
+                                  (this.updater = n || l);
+                              }
+                              function o() {}
+                              var a = t(19),
+                                s = t(26),
+                                l = t(10),
+                                u = (t(14), t(23));
+                              t(24),
+                                t(17),
+                                (r.prototype.isReactComponent = {}),
+                                (r.prototype.setState = function (t, e) {
+                                  'object' != typeof t &&
+                                    'function' != typeof t &&
+                                    null != t &&
+                                    a('85'),
+                                    this.updater.enqueueSetState(this, t),
+                                    e && this.updater.enqueueCallback(this, e, 'setState');
+                                }),
+                                (r.prototype.forceUpdate = function (t) {
+                                  this.updater.enqueueForceUpdate(this),
+                                    t && this.updater.enqueueCallback(this, t, 'forceUpdate');
+                                }),
+                                (o.prototype = r.prototype),
+                                s(((i.prototype = new o()).constructor = i).prototype, r.prototype),
+                                (i.prototype.isPureReactComponent = !0),
+                                (e.exports = { Component: r, PureComponent: i });
+                            },
+                            { 10: 10, 14: 14, 17: 17, 19: 19, 23: 23, 24: 24, 26: 26 },
+                          ],
+                          5: [
+                            function (t, e, n) {
+                              function s(t) {
+                                return ('' + t).replace(f, '$&/');
+                              }
+                              function r(t, e) {
+                                (this.func = t), (this.context = e), (this.count = 0);
+                              }
+                              function i(t, e, n) {
+                                var r = t.func,
+                                  i = t.context;
+                                r.call(i, e, t.count++);
+                              }
+                              function a(t, e, n, r) {
+                                (this.result = t),
+                                  (this.keyPrefix = e),
+                                  (this.func = n),
+                                  (this.context = r),
+                                  (this.count = 0);
+                              }
+                              function l(t, e, n) {
+                                var r = t.result,
+                                  i = t.keyPrefix,
+                                  o = t.func,
+                                  a = t.context,
+                                  o = o.call(a, e, t.count++);
+                                Array.isArray(o)
+                                  ? u(o, r, n, h.thatReturnsArgument)
+                                  : null != o &&
+                                    (A.isValidElement(o) &&
+                                      (o = A.cloneAndReplaceKey(
+                                        o,
+                                        i +
+                                          (!o.key || (e && e.key === o.key) ? '' : s(o.key) + '/') +
+                                          n,
+                                      )),
+                                    r.push(o));
+                              }
+                              function u(t, e, n, r, i) {
+                                var o = '',
+                                  n = (null != n && (o = s(n) + '/'), a.getPooled(e, o, r, i));
+                                p(t, l, n), a.release(n);
+                              }
+                              function o(t, e, n) {
+                                return null;
+                              }
+                              var c = t(2),
+                                A = t(8),
+                                h = t(22),
+                                p = t(20),
+                                t = c.twoArgumentPooler,
+                                d = c.fourArgumentPooler,
+                                f = /\/+/g;
+                              (r.prototype.destructor = function () {
+                                (this.func = null), (this.context = null), (this.count = 0);
+                              }),
+                                c.addPoolingTo(r, t),
+                                (a.prototype.destructor = function () {
+                                  (this.result = null),
+                                    (this.keyPrefix = null),
+                                    (this.func = null),
+                                    (this.context = null),
+                                    (this.count = 0);
+                                }),
+                                c.addPoolingTo(a, d),
+                                (e.exports = {
+                                  forEach: function (t, e, n) {
+                                    if (null == t) return t;
+                                    (e = r.getPooled(e, n)), p(t, i, e), r.release(e);
+                                  },
+                                  map: function (t, e, n) {
+                                    if (null == t) return t;
+                                    var r = [];
+                                    return u(t, r, null, e, n), r;
+                                  },
+                                  mapIntoWithKeyPrefixInternal: u,
+                                  count: function (t, e) {
+                                    return p(t, o, null);
+                                  },
+                                  toArray: function (t) {
+                                    var e = [];
+                                    return u(t, e, null, h.thatReturnsArgument), e;
+                                  },
+                                });
+                            },
+                            { 2: 2, 20: 20, 22: 22, 8: 8 },
+                          ],
+                          6: [
+                            function (t, e, n) {
+                              e.exports = { current: null };
+                            },
+                            {},
+                          ],
+                          7: [
+                            function (t, e, n) {
+                              (t = t(8).createFactory),
+                                (t = {
+                                  a: t('a'),
+                                  abbr: t('abbr'),
+                                  address: t('address'),
+                                  area: t('area'),
+                                  article: t('article'),
+                                  aside: t('aside'),
+                                  audio: t('audio'),
+                                  b: t('b'),
+                                  base: t('base'),
+                                  bdi: t('bdi'),
+                                  bdo: t('bdo'),
+                                  big: t('big'),
+                                  blockquote: t('blockquote'),
+                                  body: t('body'),
+                                  br: t('br'),
+                                  button: t('button'),
+                                  canvas: t('canvas'),
+                                  caption: t('caption'),
+                                  cite: t('cite'),
+                                  code: t('code'),
+                                  col: t('col'),
+                                  colgroup: t('colgroup'),
+                                  data: t('data'),
+                                  datalist: t('datalist'),
+                                  dd: t('dd'),
+                                  del: t('del'),
+                                  details: t('details'),
+                                  dfn: t('dfn'),
+                                  dialog: t('dialog'),
+                                  div: t('div'),
+                                  dl: t('dl'),
+                                  dt: t('dt'),
+                                  em: t('em'),
+                                  embed: t('embed'),
+                                  fieldset: t('fieldset'),
+                                  figcaption: t('figcaption'),
+                                  figure: t('figure'),
+                                  footer: t('footer'),
+                                  form: t('form'),
+                                  h1: t('h1'),
+                                  h2: t('h2'),
+                                  h3: t('h3'),
+                                  h4: t('h4'),
+                                  h5: t('h5'),
+                                  h6: t('h6'),
+                                  head: t('head'),
+                                  header: t('header'),
+                                  hgroup: t('hgroup'),
+                                  hr: t('hr'),
+                                  html: t('html'),
+                                  i: t('i'),
+                                  iframe: t('iframe'),
+                                  img: t('img'),
+                                  input: t('input'),
+                                  ins: t('ins'),
+                                  kbd: t('kbd'),
+                                  keygen: t('keygen'),
+                                  label: t('label'),
+                                  legend: t('legend'),
+                                  li: t('li'),
+                                  link: t('link'),
+                                  main: t('main'),
+                                  map: t('map'),
+                                  mark: t('mark'),
+                                  menu: t('menu'),
+                                  menuitem: t('menuitem'),
+                                  meta: t('meta'),
+                                  meter: t('meter'),
+                                  nav: t('nav'),
+                                  noscript: t('noscript'),
+                                  object: t('object'),
+                                  ol: t('ol'),
+                                  optgroup: t('optgroup'),
+                                  option: t('option'),
+                                  output: t('output'),
+                                  p: t('p'),
+                                  param: t('param'),
+                                  picture: t('picture'),
+                                  pre: t('pre'),
+                                  progress: t('progress'),
+                                  q: t('q'),
+                                  rp: t('rp'),
+                                  rt: t('rt'),
+                                  ruby: t('ruby'),
+                                  s: t('s'),
+                                  samp: t('samp'),
+                                  script: t('script'),
+                                  section: t('section'),
+                                  select: t('select'),
+                                  small: t('small'),
+                                  source: t('source'),
+                                  span: t('span'),
+                                  strong: t('strong'),
+                                  style: t('style'),
+                                  sub: t('sub'),
+                                  summary: t('summary'),
+                                  sup: t('sup'),
+                                  table: t('table'),
+                                  tbody: t('tbody'),
+                                  td: t('td'),
+                                  textarea: t('textarea'),
+                                  tfoot: t('tfoot'),
+                                  th: t('th'),
+                                  thead: t('thead'),
+                                  time: t('time'),
+                                  title: t('title'),
+                                  tr: t('tr'),
+                                  track: t('track'),
+                                  u: t('u'),
+                                  ul: t('ul'),
+                                  var: t('var'),
+                                  video: t('video'),
+                                  wbr: t('wbr'),
+                                  circle: t('circle'),
+                                  clipPath: t('clipPath'),
+                                  defs: t('defs'),
+                                  ellipse: t('ellipse'),
+                                  g: t('g'),
+                                  image: t('image'),
+                                  line: t('line'),
+                                  linearGradient: t('linearGradient'),
+                                  mask: t('mask'),
+                                  path: t('path'),
+                                  pattern: t('pattern'),
+                                  polygon: t('polygon'),
+                                  polyline: t('polyline'),
+                                  radialGradient: t('radialGradient'),
+                                  rect: t('rect'),
+                                  stop: t('stop'),
+                                  svg: t('svg'),
+                                  text: t('text'),
+                                  tspan: t('tspan'),
+                                });
+                              e.exports = t;
+                            },
+                            { 8: 8 },
+                          ],
+                          8: [
+                            function (t, e, n) {
+                              function h(t) {
+                                return void 0 !== t.ref;
+                              }
+                              function p(t) {
+                                return void 0 !== t.key;
+                              }
+                              function d(t, e, n, r, i, o, a) {
+                                return {
+                                  $$typeof: s,
+                                  type: t,
+                                  key: e,
+                                  ref: n,
+                                  props: a,
+                                  _owner: o,
+                                };
+                              }
+                              var f = t(26),
+                                g = t(6),
+                                m = (t(25), t(14), Object.prototype.hasOwnProperty),
+                                s = t(9),
+                                v = { key: !0, ref: !0, __self: !0, __source: !0 };
+                              (d.createElement = function (t, e, n) {
+                                var r,
+                                  i = {},
+                                  o = null,
+                                  a = null;
+                                if (null != e)
+                                  for (r in (h(e) && (a = e.ref),
+                                  p(e) && (o = '' + e.key),
+                                  void 0 !== e.__self && e.__self,
+                                  void 0 !== e.__source && e.__source,
+                                  e))
+                                    m.call(e, r) && !v.hasOwnProperty(r) && (i[r] = e[r]);
+                                var s = arguments.length - 2;
+                                if (1 == s) i.children = n;
+                                else if (1 < s) {
+                                  for (var l = Array(s), u = 0; u < s; u++) l[u] = arguments[u + 2];
+                                  i.children = l;
+                                }
+                                if (t && t.defaultProps) {
+                                  var c = t.defaultProps;
+                                  for (r in c) void 0 === i[r] && (i[r] = c[r]);
+                                }
+                                return d(t, o, a, 0, 0, g.current, i);
+                              }),
+                                (d.createFactory = function (t) {
+                                  var e = d.createElement.bind(null, t);
+                                  return (e.type = t), e;
+                                }),
+                                (d.cloneAndReplaceKey = function (t, e) {
+                                  return d(t.type, e, t.ref, t._self, t._source, t._owner, t.props);
+                                }),
+                                (d.cloneElement = function (t, e, n) {
+                                  var r,
+                                    i,
+                                    o = f({}, t.props),
+                                    a = t.key,
+                                    s = t.ref,
+                                    l = (t._self, t._source, t._owner);
+                                  if (null != e)
+                                    for (r in (h(e) && ((s = e.ref), (l = g.current)),
+                                    p(e) && (a = '' + e.key),
+                                    t.type && t.type.defaultProps && (i = t.type.defaultProps),
+                                    e))
+                                      m.call(e, r) &&
+                                        !v.hasOwnProperty(r) &&
+                                        (void 0 === e[r] && void 0 !== i
+                                          ? (o[r] = i[r])
+                                          : (o[r] = e[r]));
+                                  var u = arguments.length - 2;
+                                  if (1 == u) o.children = n;
+                                  else if (1 < u) {
+                                    for (var c = Array(u), A = 0; A < u; A++)
+                                      c[A] = arguments[A + 2];
+                                    o.children = c;
+                                  }
+                                  return d(t.type, a, s, 0, 0, l, o);
+                                }),
+                                (d.isValidElement = function (t) {
+                                  return 'object' == typeof t && null !== t && t.$$typeof === s;
+                                }),
+                                (e.exports = d);
+                            },
+                            { 14: 14, 25: 25, 26: 26, 6: 6, 9: 9 },
+                          ],
+                          9: [
+                            function (t, e, n) {
+                              var r =
+                                ('function' == typeof Symbol &&
+                                  Symbol.for &&
+                                  Symbol.for('react.element')) ||
+                                60103;
+                              e.exports = r;
+                            },
+                            {},
+                          ],
+                          10: [
+                            function (t, e, n) {
+                              t(25);
+                              e.exports = {
+                                isMounted: function (t) {
+                                  return !1;
+                                },
+                                enqueueCallback: function (t, e) {},
+                                enqueueForceUpdate: function (t) {},
+                                enqueueReplaceState: function (t, e) {},
+                                enqueueSetState: function (t, e) {},
+                              };
+                            },
+                            { 25: 25 },
+                          ],
+                          11: [
+                            function (t, e, n) {
+                              var r = t(8).isValidElement,
+                                t = t(28);
+                              e.exports = t(r);
+                            },
+                            { 28: 28, 8: 8 },
+                          ],
+                          12: [
+                            function (t, e, n) {
+                              t = t(26)(t(3), {
+                                __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
+                                  ReactCurrentOwner: t(6),
+                                },
+                              });
+                              e.exports = t;
+                            },
+                            { 26: 26, 3: 3, 6: 6 },
+                          ],
+                          13: [
+                            function (t, e, n) {
+                              e.exports = '15.6.1';
+                            },
+                            {},
+                          ],
+                          14: [
+                            function (t, e, n) {
+                              e.exports = !1;
+                            },
+                            {},
+                          ],
+                          15: [
+                            function (t, e, n) {
+                              var r = t(4).Component,
+                                i = t(8).isValidElement,
+                                o = t(10),
+                                t = t(21);
+                              e.exports = t(r, i, o);
+                            },
+                            { 10: 10, 21: 21, 4: 4, 8: 8 },
+                          ],
+                          16: [
+                            function (t, e, n) {
+                              var r = 'function' == typeof Symbol && Symbol.iterator,
+                                i = '@@iterator';
+                              e.exports = function (t) {
+                                if ('function' == typeof (t = t && ((r && t[r]) || t[i]))) return t;
+                              };
+                            },
+                            {},
+                          ],
+                          17: [
+                            function (t, e, n) {
+                              e.exports = function () {};
+                            },
+                            {},
+                          ],
+                          18: [
+                            function (t, e, n) {
+                              var r = t(19),
+                                i = t(8);
+                              t(24),
+                                (e.exports = function (t) {
+                                  return i.isValidElement(t) || r('143'), t;
+                                });
+                            },
+                            { 19: 19, 24: 24, 8: 8 },
+                          ],
+                          19: [
+                            function (t, e, n) {
+                              e.exports = function (t) {
+                                for (
+                                  var e = arguments.length - 1,
+                                    n =
+                                      'Minified React error #' +
+                                      t +
+                                      '; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=' +
+                                      t,
+                                    r = 0;
+                                  r < e;
+                                  r++
+                                )
+                                  n += '&args[]=' + encodeURIComponent(arguments[r + 1]);
+                                throw (
+                                  ((n +=
+                                    ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.'),
+                                  ((t = new Error(n)).name = 'Invariant Violation'),
+                                  (t.framesToPop = 1),
+                                  t)
+                                );
+                              };
+                            },
+                            {},
+                          ],
+                          20: [
+                            function (t, e, n) {
+                              function d(t, e) {
+                                return t && 'object' == typeof t && null != t.key
+                                  ? v.escape(t.key)
+                                  : e.toString(36);
+                              }
+                              var f = t(19),
+                                g = (t(6), t(9)),
+                                m = t(16),
+                                v = (t(24), t(1)),
+                                b = (t(25), '.'),
+                                y = ':';
+                              e.exports = function (t, e, n) {
+                                return null == t
+                                  ? 0
+                                  : (function t(e, n, r, i) {
+                                      var o = typeof e;
+                                      if (
+                                        null ===
+                                          (e = 'undefined' != o && 'boolean' != o ? e : null) ||
+                                        'string' == o ||
+                                        'number' == o ||
+                                        ('object' == o && e.$$typeof === g)
+                                      )
+                                        return r(i, e, '' === n ? b + d(e, 0) : n), 1;
+                                      var a,
+                                        s = 0,
+                                        l = '' === n ? b : n + y;
+                                      if (Array.isArray(e))
+                                        for (var u = 0; u < e.length; u++)
+                                          s += t((a = e[u]), l + d(a, u), r, i);
+                                      else if ((n = m(e))) {
+                                        var c,
+                                          A = n.call(e);
+                                        if (n !== e.entries)
+                                          for (var h = 0; !(c = A.next()).done; )
+                                            s += t((a = c.value), l + d(a, h++), r, i);
+                                        else
+                                          for (; !(c = A.next()).done; ) {
+                                            var p = c.value;
+                                            p &&
+                                              (s += t(
+                                                (a = p[1]),
+                                                l + v.escape(p[0]) + y + d(a, 0),
+                                                r,
+                                                i,
+                                              ));
+                                          }
+                                      } else
+                                        'object' == o &&
+                                          ((n = String(e)),
+                                          f(
+                                            '31',
+                                            '[object Object]' === n
+                                              ? 'object with keys {' +
+                                                  Object.keys(e).join(', ') +
+                                                  '}'
+                                              : n,
+                                            '',
+                                          ));
+                                      return s;
+                                    })(t, '', e, n);
+                              };
+                            },
+                            { 1: 1, 16: 16, 19: 19, 24: 24, 25: 25, 6: 6, 9: 9 },
+                          ],
+                          21: [
+                            function (t, e, n) {
+                              var l = t(26),
+                                f = t(23),
+                                g = t(24),
+                                m = 'mixins';
+                              e.exports = function (t, c, u) {
+                                function r(t, e) {
+                                  if (e) {
+                                    g(
+                                      'function' != typeof e,
+                                      "ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object.",
+                                    ),
+                                      g(
+                                        !c(e),
+                                        "ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.",
+                                      );
+                                    var n,
+                                      r,
+                                      i,
+                                      o = t.prototype,
+                                      a = o.__reactAutoBindPairs;
+                                    for (n in (e.hasOwnProperty(m) && p.mixins(t, e.mixins), e))
+                                      e.hasOwnProperty(n) &&
+                                        n !== m &&
+                                        ((r = e[n]),
+                                        (i = o.hasOwnProperty(n)),
+                                        (s = i),
+                                        (l = n),
+                                        (u = void 0),
+                                        (u = h.hasOwnProperty(l) ? h[l] : null),
+                                        d.hasOwnProperty(l) &&
+                                          g(
+                                            'OVERRIDE_BASE' === u,
+                                            'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.',
+                                            l,
+                                          ),
+                                        s &&
+                                          g(
+                                            'DEFINE_MANY' === u || 'DEFINE_MANY_MERGED' === u,
+                                            'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.',
+                                            l,
+                                          ),
+                                        p.hasOwnProperty(n)
+                                          ? p[n](t, r)
+                                          : ((s = h.hasOwnProperty(n)),
+                                            'function' == typeof r && !s && !i && !1 !== e.autobind
+                                              ? (a.push(n, r), (o[n] = r))
+                                              : i
+                                                ? ((u = h[n]),
+                                                  g(
+                                                    s &&
+                                                      ('DEFINE_MANY_MERGED' === u ||
+                                                        'DEFINE_MANY' === u),
+                                                    'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.',
+                                                    u,
+                                                    n,
+                                                  ),
+                                                  'DEFINE_MANY_MERGED' === u
+                                                    ? (o[n] = A(o[n], r))
+                                                    : 'DEFINE_MANY' === u &&
+                                                      (o[n] = (function (t, e) {
+                                                        return function () {
+                                                          t.apply(this, arguments),
+                                                            e.apply(this, arguments);
+                                                        };
+                                                      })(o[n], r)))
+                                                : (o[n] = r)));
+                                  }
+                                  var s, l, u;
+                                }
+                                function o(t, e) {
+                                  for (var n in (g(
+                                    t && e && 'object' == typeof t && 'object' == typeof e,
+                                    'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.',
+                                  ),
+                                  e))
+                                    e.hasOwnProperty(n) &&
+                                      (g(
+                                        void 0 === t[n],
+                                        'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.',
+                                        n,
+                                      ),
+                                      (t[n] = e[n]));
+                                }
+                                function A(r, i) {
+                                  return function () {
+                                    var t = r.apply(this, arguments),
+                                      e = i.apply(this, arguments);
+                                    if (null == t) return e;
+                                    if (null == e) return t;
+                                    var n = {};
+                                    return o(n, t), o(n, e), n;
+                                  };
+                                }
+                                function n() {}
+                                var i = [],
+                                  h = {
+                                    mixins: 'DEFINE_MANY',
+                                    statics: 'DEFINE_MANY',
+                                    propTypes: 'DEFINE_MANY',
+                                    contextTypes: 'DEFINE_MANY',
+                                    childContextTypes: 'DEFINE_MANY',
+                                    getDefaultProps: 'DEFINE_MANY_MERGED',
+                                    getInitialState: 'DEFINE_MANY_MERGED',
+                                    getChildContext: 'DEFINE_MANY_MERGED',
+                                    render: 'DEFINE_ONCE',
+                                    componentWillMount: 'DEFINE_MANY',
+                                    componentDidMount: 'DEFINE_MANY',
+                                    componentWillReceiveProps: 'DEFINE_MANY',
+                                    shouldComponentUpdate: 'DEFINE_ONCE',
+                                    componentWillUpdate: 'DEFINE_MANY',
+                                    componentDidUpdate: 'DEFINE_MANY',
+                                    componentWillUnmount: 'DEFINE_MANY',
+                                    updateComponent: 'OVERRIDE_BASE',
+                                  },
+                                  p = {
+                                    displayName: function (t, e) {
+                                      t.displayName = e;
+                                    },
+                                    mixins: function (t, e) {
+                                      if (e) for (var n = 0; n < e.length; n++) r(t, e[n]);
+                                    },
+                                    childContextTypes: function (t, e) {
+                                      t.childContextTypes = l({}, t.childContextTypes, e);
+                                    },
+                                    contextTypes: function (t, e) {
+                                      t.contextTypes = l({}, t.contextTypes, e);
+                                    },
+                                    getDefaultProps: function (t, e) {
+                                      t.getDefaultProps
+                                        ? (t.getDefaultProps = A(t.getDefaultProps, e))
+                                        : (t.getDefaultProps = e);
+                                    },
+                                    propTypes: function (t, e) {
+                                      t.propTypes = l({}, t.propTypes, e);
+                                    },
+                                    statics: function (t, e) {
+                                      var n = t,
+                                        r = e;
+                                      if (r)
+                                        for (var i in r) {
+                                          var o,
+                                            a = r[i];
+                                          r.hasOwnProperty(i) &&
+                                            ((o = i in p),
+                                            g(
+                                              !o,
+                                              'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',
+                                              i,
+                                            ),
+                                            (o = i in n),
+                                            g(
+                                              !o,
+                                              'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.',
+                                              i,
+                                            ),
+                                            (n[i] = a));
+                                        }
+                                    },
+                                    autobind: function () {},
+                                  },
+                                  a = {
+                                    componentDidMount: function () {
+                                      this.__isMounted = !0;
+                                    },
+                                  },
+                                  s = {
+                                    componentWillUnmount: function () {
+                                      this.__isMounted = !1;
+                                    },
+                                  },
+                                  d = {
+                                    replaceState: function (t, e) {
+                                      this.updater.enqueueReplaceState(this, t, e);
+                                    },
+                                    isMounted: function () {
+                                      return !!this.__isMounted;
+                                    },
+                                  };
+                                return (
+                                  l(n.prototype, t.prototype, d),
+                                  function (t) {
+                                    var e,
+                                      l = function (t, e, n) {
+                                        if (this.__reactAutoBindPairs.length)
+                                          for (
+                                            var r = this, i = r.__reactAutoBindPairs, o = 0;
+                                            o < i.length;
+                                            o += 2
+                                          ) {
+                                            var a = i[o],
+                                              s = i[o + 1];
+                                            r[a] = s.bind(r);
+                                          }
+                                        (this.props = t),
+                                          (this.context = e),
+                                          (this.refs = f),
+                                          (this.updater = n || u),
+                                          (this.state = null);
+                                        t = this.getInitialState ? this.getInitialState() : null;
+                                        g(
+                                          'object' == typeof t && !Array.isArray(t),
+                                          '%s.getInitialState(): must return an object or null',
+                                          l.displayName || 'ReactCompositeComponent',
+                                        ),
+                                          (this.state = t);
+                                      };
+                                    for (e in ((l.prototype = new n()),
+                                    ((l.prototype.constructor = l).prototype.__reactAutoBindPairs =
+                                      []),
+                                    i.forEach(r.bind(null, l)),
+                                    r(l, a),
+                                    r(l, t),
+                                    r(l, s),
+                                    l.getDefaultProps && (l.defaultProps = l.getDefaultProps()),
+                                    g(
+                                      l.prototype.render,
+                                      'createClass(...): Class specification must implement a `render` method.',
+                                    ),
+                                    h))
+                                      l.prototype[e] || (l.prototype[e] = null);
+                                    return l;
+                                  }
+                                );
+                              };
+                            },
+                            { 23: 23, 24: 24, 25: 25, 26: 26 },
+                          ],
+                          22: [
+                            function (t, e, n) {
+                              function r(t) {
+                                return function () {
+                                  return t;
+                                };
+                              }
+                              function i() {}
+                              (i.thatReturns = r),
+                                (i.thatReturnsFalse = r(!1)),
+                                (i.thatReturnsTrue = r(!0)),
+                                (i.thatReturnsNull = r(null)),
+                                (i.thatReturnsThis = function () {
+                                  return this;
+                                }),
+                                (i.thatReturnsArgument = function (t) {
+                                  return t;
+                                }),
+                                (e.exports = i);
+                            },
+                            {},
+                          ],
+                          23: [
+                            function (t, e, n) {
+                              e.exports = {};
+                            },
+                            {},
+                          ],
+                          24: [
+                            function (t, e, n) {
+                              var A = function (t) {};
+                              e.exports = function (t, e, n, r, i, o, a, s) {
+                                var l, u, c;
+                                if ((A(e), !t))
+                                  throw (
+                                    (void 0 === e
+                                      ? (c = new Error(
+                                          'Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.',
+                                        ))
+                                      : ((l = [n, r, i, o, a, s]),
+                                        (u = 0),
+                                        ((c = new Error(
+                                          e.replace(/%s/g, function () {
+                                            return l[u++];
+                                          }),
+                                        )).name = 'Invariant Violation')),
+                                    (c.framesToPop = 1),
+                                    c)
+                                  );
+                              };
+                            },
+                            {},
+                          ],
+                          25: [
+                            function (t, e, n) {
+                              t = t(22);
+                              e.exports = t;
+                            },
+                            { 22: 22 },
+                          ],
+                          26: [
+                            function (t, e, n) {
+                              var l = Object.getOwnPropertySymbols,
+                                u = Object.prototype.hasOwnProperty,
+                                c = Object.prototype.propertyIsEnumerable;
+                              e.exports = (function () {
+                                try {
+                                  if (!Object.assign) return;
+                                  var t = new String('abc');
+                                  if (((t[5] = 'de'), '5' === Object.getOwnPropertyNames(t)[0]))
+                                    return;
+                                  for (var e = {}, n = 0; n < 10; n++)
+                                    e['_' + String.fromCharCode(n)] = n;
+                                  if (
+                                    '0123456789' !==
+                                    Object.getOwnPropertyNames(e)
+                                      .map(function (t) {
+                                        return e[t];
+                                      })
+                                      .join('')
+                                  )
+                                    return;
+                                  var r = {};
+                                  return (
+                                    'abcdefghijklmnopqrst'.split('').forEach(function (t) {
+                                      r[t] = t;
+                                    }),
+                                    'abcdefghijklmnopqrst' ===
+                                      Object.keys(Object.assign({}, r)).join('')
+                                  );
+                                } catch (t) {
+                                  return;
+                                }
+                              })()
+                                ? Object.assign
+                                : function (t, e) {
+                                    for (
+                                      var n,
+                                        r = (function (t) {
+                                          if (null == t)
+                                            throw new TypeError(
+                                              'Object.assign cannot be called with null or undefined',
+                                            );
+                                          return Object(t);
+                                        })(t),
+                                        i = 1;
+                                      i < arguments.length;
+                                      i++
+                                    ) {
+                                      for (var o in (n = Object(arguments[i])))
+                                        u.call(n, o) && (r[o] = n[o]);
+                                      if (l)
+                                        for (var a = l(n), s = 0; s < a.length; s++)
+                                          c.call(n, a[s]) && (r[a[s]] = n[a[s]]);
+                                    }
+                                    return r;
+                                  };
+                            },
+                            {},
+                          ],
+                          27: [
+                            function (t, e, n) {
+                              e.exports = function (t, e, n, r, i) {};
+                            },
+                            { 24: 24, 25: 25, 30: 30 },
+                          ],
+                          28: [
+                            function (t, e, n) {
+                              var r = t(29);
+                              e.exports = function (t) {
+                                return r(t, !1);
+                              };
+                            },
+                            { 29: 29 },
+                          ],
+                          29: [
+                            function (t, e, n) {
+                              var r = t(22),
+                                d = t(24),
+                                i = t(25),
+                                f = t(30),
+                                g = t(27);
+                              e.exports = function (o, l) {
+                                function c(t) {
+                                  (this.message = t), (this.stack = '');
+                                }
+                                function n(s) {
+                                  function t(t, e, n, r, i, o, a) {
+                                    return (
+                                      (r = r || p),
+                                      (o = o || n),
+                                      a !== f &&
+                                        l &&
+                                        d(
+                                          !1,
+                                          'Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types',
+                                        ),
+                                      null == e[n]
+                                        ? t
+                                          ? new c(
+                                              null === e[n]
+                                                ? 'The ' +
+                                                  i +
+                                                  ' `' +
+                                                  o +
+                                                  '` is marked as required in `' +
+                                                  r +
+                                                  '`, but its value is `null`.'
+                                                : 'The ' +
+                                                  i +
+                                                  ' `' +
+                                                  o +
+                                                  '` is marked as required in `' +
+                                                  r +
+                                                  '`, but its value is `undefined`.',
+                                            )
+                                          : null
+                                        : s(e, n, r, i, o)
+                                    );
+                                  }
+                                  var e = t.bind(null, !1);
+                                  return (e.isRequired = t.bind(null, !0)), e;
+                                }
+                                function t(a) {
+                                  return n(function (t, e, n, r, i, o) {
+                                    return u((t = t[e])) !== a
+                                      ? new c(
+                                          'Invalid ' +
+                                            r +
+                                            ' `' +
+                                            i +
+                                            '` of type `' +
+                                            s(t) +
+                                            '` supplied to `' +
+                                            n +
+                                            '`, expected `' +
+                                            a +
+                                            '`.',
+                                        )
+                                      : null;
+                                  });
+                                }
+                                function a(t) {
+                                  switch (typeof t) {
+                                    case 'number':
+                                    case 'string':
+                                    case 'undefined':
+                                      return !0;
+                                    case 'boolean':
+                                      return !t;
+                                    case 'object':
+                                      if (Array.isArray(t)) return t.every(a);
+                                      if (null !== t && !o(t)) {
+                                        var e = (function (t) {
+                                          if ('function' == typeof (t = t && ((A && t[A]) || t[h])))
+                                            return t;
+                                        })(t);
+                                        if (!e) return !1;
+                                        var n,
+                                          r = e.call(t);
+                                        if (e !== t.entries) {
+                                          for (; !(n = r.next()).done; ) if (!a(n.value)) return !1;
+                                        } else
+                                          for (; !(n = r.next()).done; ) {
+                                            var i = n.value;
+                                            if (i && !a(i[1])) return !1;
+                                          }
+                                      }
+                                      return !0;
+                                    default:
+                                      return !1;
+                                  }
+                                }
+                                function u(t) {
+                                  var e = typeof t;
+                                  return Array.isArray(t)
+                                    ? 'array'
+                                    : t instanceof RegExp
+                                      ? 'object'
+                                      : ((t = t),
+                                        'symbol' === e ||
+                                        'Symbol' === t['@@toStringTag'] ||
+                                        ('function' == typeof Symbol && t instanceof Symbol)
+                                          ? 'symbol'
+                                          : e);
+                                }
+                                function s(t) {
+                                  if (null == t) return '' + t;
+                                  var e = u(t);
+                                  if ('object' === e) {
+                                    if (t instanceof Date) return 'date';
+                                    if (t instanceof RegExp) return 'regexp';
+                                  }
+                                  return e;
+                                }
+                                var A = 'function' == typeof Symbol && Symbol.iterator,
+                                  h = '@@iterator',
+                                  p = '<<anonymous>>',
+                                  e = {
+                                    array: t('array'),
+                                    bool: t('boolean'),
+                                    func: t('function'),
+                                    number: t('number'),
+                                    object: t('object'),
+                                    string: t('string'),
+                                    symbol: t('symbol'),
+                                    any: n(r.thatReturnsNull),
+                                    arrayOf: function (l) {
+                                      return n(function (t, e, n, r, i) {
+                                        if ('function' != typeof l)
+                                          return new c(
+                                            'Property `' +
+                                              i +
+                                              '` of component `' +
+                                              n +
+                                              '` has invalid PropType notation inside arrayOf.',
+                                          );
+                                        var o = t[e];
+                                        if (!Array.isArray(o))
+                                          return new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` of type `' +
+                                              u(o) +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected an array.',
+                                          );
+                                        for (var a = 0; a < o.length; a++) {
+                                          var s = l(o, a, n, r, i + '[' + a + ']', f);
+                                          if (s instanceof Error) return s;
+                                        }
+                                        return null;
+                                      });
+                                    },
+                                    element: n(function (t, e, n, r, i) {
+                                      return (
+                                        (t = t[e]),
+                                        o(t)
+                                          ? null
+                                          : new c(
+                                              'Invalid ' +
+                                                r +
+                                                ' `' +
+                                                i +
+                                                '` of type `' +
+                                                u(t) +
+                                                '` supplied to `' +
+                                                n +
+                                                '`, expected a single ReactElement.',
+                                            )
+                                      );
+                                    }),
+                                    instanceOf: function (a) {
+                                      return n(function (t, e, n, r, i) {
+                                        var o;
+                                        return t[e] instanceof a
+                                          ? null
+                                          : ((o = a.name || p),
+                                            new c(
+                                              'Invalid ' +
+                                                r +
+                                                ' `' +
+                                                i +
+                                                '` of type `' +
+                                                ((r = t[e]).constructor && r.constructor.name
+                                                  ? r.constructor.name
+                                                  : p) +
+                                                '` supplied to `' +
+                                                n +
+                                                '`, expected instance of `' +
+                                                o +
+                                                '`.',
+                                            ));
+                                      });
+                                    },
+                                    node: n(function (t, e, n, r, i) {
+                                      return a(t[e])
+                                        ? null
+                                        : new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected a ReactNode.',
+                                          );
+                                    }),
+                                    objectOf: function (l) {
+                                      return n(function (t, e, n, r, i) {
+                                        if ('function' != typeof l)
+                                          return new c(
+                                            'Property `' +
+                                              i +
+                                              '` of component `' +
+                                              n +
+                                              '` has invalid PropType notation inside objectOf.',
+                                          );
+                                        var o,
+                                          a = t[e];
+                                        if ('object' !== (t = u(a)))
+                                          return new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` of type `' +
+                                              t +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected an object.',
+                                          );
+                                        for (o in a)
+                                          if (a.hasOwnProperty(o)) {
+                                            var s = l(a, o, n, r, i + '.' + o, f);
+                                            if (s instanceof Error) return s;
+                                          }
+                                        return null;
+                                      });
+                                    },
+                                    oneOf: function (u) {
+                                      return Array.isArray(u)
+                                        ? n(function (t, e, n, r, i) {
+                                            for (var o, a, s = t[e], l = 0; l < u.length; l++)
+                                              if (
+                                                ((o = s),
+                                                (a = u[l]),
+                                                o === a
+                                                  ? 0 !== o || 1 / o == 1 / a
+                                                  : o != o && a != a)
+                                              )
+                                                return null;
+                                            return new c(
+                                              'Invalid ' +
+                                                r +
+                                                ' `' +
+                                                i +
+                                                '` of value `' +
+                                                s +
+                                                '` supplied to `' +
+                                                n +
+                                                '`, expected one of ' +
+                                                JSON.stringify(u) +
+                                                '.',
+                                            );
+                                          })
+                                        : r.thatReturnsNull;
+                                    },
+                                    oneOfType: function (a) {
+                                      if (!Array.isArray(a)) return r.thatReturnsNull;
+                                      for (var t = 0; t < a.length; t++) {
+                                        var e = a[t];
+                                        if ('function' != typeof e)
+                                          return (
+                                            i(
+                                              !1,
+                                              'Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.',
+                                              (function (t) {
+                                                var e = s(t);
+                                                switch (e) {
+                                                  case 'array':
+                                                  case 'object':
+                                                    return 'an ' + e;
+                                                  case 'boolean':
+                                                  case 'date':
+                                                  case 'regexp':
+                                                    return 'a ' + e;
+                                                  default:
+                                                    return e;
+                                                }
+                                              })(e),
+                                              t,
+                                            ),
+                                            r.thatReturnsNull
+                                          );
+                                      }
+                                      return n(function (t, e, n, r, i) {
+                                        for (var o = 0; o < a.length; o++)
+                                          if (null == (0, a[o])(t, e, n, r, i, f)) return null;
+                                        return new c(
+                                          'Invalid ' + r + ' `' + i + '` supplied to `' + n + '`.',
+                                        );
+                                      });
+                                    },
+                                    shape: function (l) {
+                                      return n(function (t, e, n, r, i) {
+                                        var o,
+                                          a = t[e];
+                                        if ('object' !== (t = u(a)))
+                                          return new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` of type `' +
+                                              t +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected `object`.',
+                                          );
+                                        for (o in l) {
+                                          var s = l[o];
+                                          if (s) {
+                                            s = s(a, o, n, r, i + '.' + o, f);
+                                            if (s) return s;
+                                          }
+                                        }
+                                        return null;
+                                      });
+                                    },
+                                  };
+                                return (
+                                  (c.prototype = Error.prototype),
+                                  (e.checkPropTypes = g),
+                                  (e.PropTypes = e)
+                                );
+                              };
+                            },
+                            { 22: 22, 24: 24, 25: 25, 27: 27, 30: 30 },
+                          ],
+                          30: [
+                            function (t, e, n) {
+                              e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
+                            },
+                            {},
+                          ],
+                        },
+                        {},
+                        [12],
+                      )(12);
+                    }),
+                    (br = wr.exports),
+                    (Er = {}),
+                    (Br = {}),
+                    (function (t) {
+                      var e;
+                      'object' == typeof Er && void 0 !== Br
+                        ? (Br.exports = t(br))
+                        : ((e =
+                            'undefined' != typeof window
+                              ? window
+                              : void 0 !== Vp
+                                ? Vp
+                                : 'undefined' != typeof self
+                                  ? self
+                                  : this).ReactDOM = t(e.React));
+                    })(function (i) {
+                      return (function r(i, o, a) {
+                        function s(e, t) {
+                          if (!o[e]) {
+                            if (!i[e]) {
+                              if (l) return l(e, !0);
+                              var n = new Error("Cannot find __module__ '" + e + "'");
+                              throw ((n.code = '__module___NOT_FOUND'), n);
+                            }
+                            n = o[e] = { exports: {} };
+                            i[e][0].call(
+                              n.exports,
+                              function (t) {
+                                return s(i[e][1][t] || t);
+                              },
+                              n,
+                              n.exports,
+                              r,
+                              i,
+                              o,
+                              a,
+                            );
+                          }
+                          return o[e].exports;
+                        }
+                        for (var l = void 0, t = 0; t < a.length; t++) s(a[t]);
+                        return s;
+                      })(
+                        {
+                          1: [
+                            function (t, e, n) {
+                              e.exports = {
+                                Properties: {
+                                  'aria-current': 0,
+                                  'aria-details': 0,
+                                  'aria-disabled': 0,
+                                  'aria-hidden': 0,
+                                  'aria-invalid': 0,
+                                  'aria-keyshortcuts': 0,
+                                  'aria-label': 0,
+                                  'aria-roledescription': 0,
+                                  'aria-autocomplete': 0,
+                                  'aria-checked': 0,
+                                  'aria-expanded': 0,
+                                  'aria-haspopup': 0,
+                                  'aria-level': 0,
+                                  'aria-modal': 0,
+                                  'aria-multiline': 0,
+                                  'aria-multiselectable': 0,
+                                  'aria-orientation': 0,
+                                  'aria-placeholder': 0,
+                                  'aria-pressed': 0,
+                                  'aria-readonly': 0,
+                                  'aria-required': 0,
+                                  'aria-selected': 0,
+                                  'aria-sort': 0,
+                                  'aria-valuemax': 0,
+                                  'aria-valuemin': 0,
+                                  'aria-valuenow': 0,
+                                  'aria-valuetext': 0,
+                                  'aria-atomic': 0,
+                                  'aria-busy': 0,
+                                  'aria-live': 0,
+                                  'aria-relevant': 0,
+                                  'aria-dropeffect': 0,
+                                  'aria-grabbed': 0,
+                                  'aria-activedescendant': 0,
+                                  'aria-colcount': 0,
+                                  'aria-colindex': 0,
+                                  'aria-colspan': 0,
+                                  'aria-controls': 0,
+                                  'aria-describedby': 0,
+                                  'aria-errormessage': 0,
+                                  'aria-flowto': 0,
+                                  'aria-labelledby': 0,
+                                  'aria-owns': 0,
+                                  'aria-posinset': 0,
+                                  'aria-rowcount': 0,
+                                  'aria-rowindex': 0,
+                                  'aria-rowspan': 0,
+                                  'aria-setsize': 0,
+                                },
+                                DOMAttributeNames: {},
+                                DOMPropertyNames: {},
+                              };
+                            },
+                            {},
+                          ],
+                          2: [
+                            function (t, e, n) {
+                              var r = t(33),
+                                i = t(132);
+                              e.exports = {
+                                focusDOMComponent: function () {
+                                  i(r.getNodeFromInstance(this));
+                                },
+                              };
+                            },
+                            { 132: 132, 33: 33 },
+                          ],
+                          3: [
+                            function (t, e, n) {
+                              function s(t, e) {
+                                switch (t) {
+                                  case 'topKeyUp':
+                                    return -1 !== h.indexOf(e.keyCode);
+                                  case 'topKeyDown':
+                                    return e.keyCode !== p;
+                                  case 'topKeyPress':
+                                  case 'topMouseDown':
+                                  case 'topBlur':
+                                    return 1;
+                                  default:
+                                    return;
+                                }
+                              }
+                              function l(t) {
+                                t = t.detail;
+                                return 'object' == typeof t && 'data' in t ? t.data : null;
+                              }
+                              function i(t, e, n, r) {
+                                var i, o;
+                                if (
+                                  (d
+                                    ? (i = (function (t) {
+                                        switch (t) {
+                                          case 'topCompositionStart':
+                                            return b.compositionStart;
+                                          case 'topCompositionEnd':
+                                            return b.compositionEnd;
+                                          case 'topCompositionUpdate':
+                                            return b.compositionUpdate;
+                                        }
+                                      })(t))
+                                    : w
+                                      ? s(t, n) && (i = b.compositionEnd)
+                                      : ((a = n),
+                                        'topKeyDown' === t &&
+                                          a.keyCode === p &&
+                                          (i = b.compositionStart)),
+                                  !i)
+                                )
+                                  return null;
+                                g &&
+                                  (w || i !== b.compositionStart
+                                    ? i === b.compositionEnd && w && (o = w.getData())
+                                    : (w = c.getPooled(r)));
+                                var a,
+                                  t = A.getPooled(i, e, n, r);
+                                return (
+                                  o ? (t.data = o) : null !== (a = l(n)) && (t.data = a),
+                                  u.accumulateTwoPhaseDispatches(t),
+                                  t
+                                );
+                              }
+                              function o(t, e, n, r) {
+                                if (
+                                  !(t = (
+                                    f
+                                      ? function (t, e) {
+                                          switch (t) {
+                                            case 'topCompositionEnd':
+                                              return l(e);
+                                            case 'topKeyPress':
+                                              return e.which !== m ? null : ((y = !0), v);
+                                            case 'topTextInput':
+                                              var n = e.data;
+                                              return n === v && y ? null : n;
+                                            default:
+                                              return null;
+                                          }
+                                        }
+                                      : function (t, e) {
+                                          var n, r;
+                                          if (w)
+                                            return 'topCompositionEnd' === t || (!d && s(t, e))
+                                              ? ((n = w.getData()), c.release(w), (w = null), n)
+                                              : null;
+                                          switch (t) {
+                                            case 'topPaste':
+                                              return null;
+                                            case 'topKeyPress':
+                                              return e.which &&
+                                                (!((r = e).ctrlKey || r.altKey || r.metaKey) ||
+                                                  (r.ctrlKey && r.altKey))
+                                                ? String.fromCharCode(e.which)
+                                                : null;
+                                            case 'topCompositionEnd':
+                                              return g ? null : e.data;
+                                            default:
+                                              return null;
+                                          }
+                                        }
+                                  )(t, n))
+                                )
+                                  return null;
+                                e = a.getPooled(b.beforeInput, e, n, r);
+                                return (e.data = t), u.accumulateTwoPhaseDispatches(e), e;
+                              }
+                              var u = t(19),
+                                r = t(124),
+                                c = t(20),
+                                A = t(78),
+                                a = t(82),
+                                h = [9, 13, 27, 32],
+                                p = 229,
+                                d = r.canUseDOM && 'CompositionEvent' in window,
+                                t = null,
+                                f =
+                                  (r.canUseDOM &&
+                                    'documentMode' in document &&
+                                    (t = document.documentMode),
+                                  r.canUseDOM &&
+                                    'TextEvent' in window &&
+                                    !t &&
+                                    !(
+                                      'object' == typeof (E = window.opera) &&
+                                      'function' == typeof E.version &&
+                                      parseInt(E.version(), 10) <= 12
+                                    )),
+                                g = r.canUseDOM && (!d || (t && 8 < t && t <= 11)),
+                                m = 32,
+                                v = String.fromCharCode(m),
+                                b = {
+                                  beforeInput: {
+                                    phasedRegistrationNames: {
+                                      bubbled: 'onBeforeInput',
+                                      captured: 'onBeforeInputCapture',
+                                    },
+                                    dependencies: [
+                                      'topCompositionEnd',
+                                      'topKeyPress',
+                                      'topTextInput',
+                                      'topPaste',
+                                    ],
+                                  },
+                                  compositionEnd: {
+                                    phasedRegistrationNames: {
+                                      bubbled: 'onCompositionEnd',
+                                      captured: 'onCompositionEndCapture',
+                                    },
+                                    dependencies: [
+                                      'topBlur',
+                                      'topCompositionEnd',
+                                      'topKeyDown',
+                                      'topKeyPress',
+                                      'topKeyUp',
+                                      'topMouseDown',
+                                    ],
+                                  },
+                                  compositionStart: {
+                                    phasedRegistrationNames: {
+                                      bubbled: 'onCompositionStart',
+                                      captured: 'onCompositionStartCapture',
+                                    },
+                                    dependencies: [
+                                      'topBlur',
+                                      'topCompositionStart',
+                                      'topKeyDown',
+                                      'topKeyPress',
+                                      'topKeyUp',
+                                      'topMouseDown',
+                                    ],
+                                  },
+                                  compositionUpdate: {
+                                    phasedRegistrationNames: {
+                                      bubbled: 'onCompositionUpdate',
+                                      captured: 'onCompositionUpdateCapture',
+                                    },
+                                    dependencies: [
+                                      'topBlur',
+                                      'topCompositionUpdate',
+                                      'topKeyDown',
+                                      'topKeyPress',
+                                      'topKeyUp',
+                                      'topMouseDown',
+                                    ],
+                                  },
+                                },
+                                y = !1,
+                                w = null,
+                                E = {
+                                  eventTypes: b,
+                                  extractEvents: function (t, e, n, r) {
+                                    return [i(t, e, n, r), o(t, e, n, r)];
+                                  },
+                                };
+                              e.exports = E;
+                            },
+                            { 124: 124, 19: 19, 20: 20, 78: 78, 82: 82 },
+                          ],
+                          4: [
+                            function (t, e, n) {
+                              var r = {
+                                  animationIterationCount: !0,
+                                  borderImageOutset: !0,
+                                  borderImageSlice: !0,
+                                  borderImageWidth: !0,
+                                  boxFlex: !0,
+                                  boxFlexGroup: !0,
+                                  boxOrdinalGroup: !0,
+                                  columnCount: !0,
+                                  flex: !0,
+                                  flexGrow: !0,
+                                  flexPositive: !0,
+                                  flexShrink: !0,
+                                  flexNegative: !0,
+                                  flexOrder: !0,
+                                  gridRow: !0,
+                                  gridRowEnd: !0,
+                                  gridRowSpan: !0,
+                                  gridRowStart: !0,
+                                  gridColumn: !0,
+                                  gridColumnEnd: !0,
+                                  gridColumnSpan: !0,
+                                  gridColumnStart: !0,
+                                  fontWeight: !0,
+                                  lineClamp: !0,
+                                  lineHeight: !0,
+                                  opacity: !0,
+                                  order: !0,
+                                  orphans: !0,
+                                  tabSize: !0,
+                                  widows: !0,
+                                  zIndex: !0,
+                                  zoom: !0,
+                                  fillOpacity: !0,
+                                  floodOpacity: !0,
+                                  stopOpacity: !0,
+                                  strokeDasharray: !0,
+                                  strokeDashoffset: !0,
+                                  strokeMiterlimit: !0,
+                                  strokeOpacity: !0,
+                                  strokeWidth: !0,
+                                },
+                                i = ['Webkit', 'ms', 'Moz', 'O'];
+                              Object.keys(r).forEach(function (e) {
+                                i.forEach(function (t) {
+                                  r[t + (t = e).charAt(0).toUpperCase() + t.substring(1)] = r[e];
+                                });
+                              });
+                              e.exports = {
+                                isUnitlessNumber: r,
+                                shorthandPropertyExpansions: {
+                                  background: {
+                                    backgroundAttachment: !0,
+                                    backgroundColor: !0,
+                                    backgroundImage: !0,
+                                    backgroundPositionX: !0,
+                                    backgroundPositionY: !0,
+                                    backgroundRepeat: !0,
+                                  },
+                                  backgroundPosition: {
+                                    backgroundPositionX: !0,
+                                    backgroundPositionY: !0,
+                                  },
+                                  border: { borderWidth: !0, borderStyle: !0, borderColor: !0 },
+                                  borderBottom: {
+                                    borderBottomWidth: !0,
+                                    borderBottomStyle: !0,
+                                    borderBottomColor: !0,
+                                  },
+                                  borderLeft: {
+                                    borderLeftWidth: !0,
+                                    borderLeftStyle: !0,
+                                    borderLeftColor: !0,
+                                  },
+                                  borderRight: {
+                                    borderRightWidth: !0,
+                                    borderRightStyle: !0,
+                                    borderRightColor: !0,
+                                  },
+                                  borderTop: {
+                                    borderTopWidth: !0,
+                                    borderTopStyle: !0,
+                                    borderTopColor: !0,
+                                  },
+                                  font: {
+                                    fontStyle: !0,
+                                    fontVariant: !0,
+                                    fontWeight: !0,
+                                    fontSize: !0,
+                                    lineHeight: !0,
+                                    fontFamily: !0,
+                                  },
+                                  outline: { outlineWidth: !0, outlineStyle: !0, outlineColor: !0 },
+                                },
+                              };
+                            },
+                            {},
+                          ],
+                          5: [
+                            function (t, e, n) {
+                              var l = t(4),
+                                r = t(124),
+                                u = (t(58), t(126), t(94)),
+                                i = t(137),
+                                o = t(141),
+                                a =
+                                  (t(143),
+                                  o(function (t) {
+                                    return i(t);
+                                  })),
+                                c = !1,
+                                A = 'cssFloat';
+                              if (r.canUseDOM) {
+                                o = document.createElement('div').style;
+                                try {
+                                  o.font = '';
+                                } catch (t) {
+                                  c = !0;
+                                }
+                                void 0 === document.documentElement.style.cssFloat &&
+                                  (A = 'styleFloat');
+                              }
+                              e.exports = {
+                                createMarkupForStyles: function (t, e) {
+                                  var n,
+                                    r,
+                                    i,
+                                    o = '';
+                                  for (n in t)
+                                    t.hasOwnProperty(n) &&
+                                      ((r = 0 === n.indexOf('--')),
+                                      null != (i = t[n]) &&
+                                        (o = (o += a(n) + ':') + (u(n, i, e, r) + ';')));
+                                  return o || null;
+                                },
+                                setValueForStyles: function (t, e, n) {
+                                  var r,
+                                    i = t.style;
+                                  for (r in e)
+                                    if (e.hasOwnProperty(r)) {
+                                      var o = 0 === r.indexOf('--'),
+                                        a = u(r, e[r], n, o);
+                                      if ((('float' !== r && 'cssFloat' !== r) || (r = A), o))
+                                        i.setProperty(r, a);
+                                      else if (a) i[r] = a;
+                                      else {
+                                        o = c && l.shorthandPropertyExpansions[r];
+                                        if (o) for (var s in o) i[s] = '';
+                                        else i[r] = '';
+                                      }
+                                    }
+                                },
+                              };
+                            },
+                            {
+                              124: 124,
+                              126: 126,
+                              137: 137,
+                              141: 141,
+                              143: 143,
+                              4: 4,
+                              58: 58,
+                              94: 94,
+                            },
+                          ],
+                          6: [
+                            function (t, e, n) {
+                              var i = t(113),
+                                r = t(24);
+                              function o(t) {
+                                if (!(this instanceof o))
+                                  throw new TypeError('Cannot call a class as a function');
+                                (this._callbacks = null), (this._contexts = null), (this._arg = t);
+                              }
+                              t(138),
+                                (o.prototype.enqueue = function (t, e) {
+                                  (this._callbacks = this._callbacks || []),
+                                    this._callbacks.push(t),
+                                    (this._contexts = this._contexts || []),
+                                    this._contexts.push(e);
+                                }),
+                                (o.prototype.notifyAll = function () {
+                                  var t = this._callbacks,
+                                    e = this._contexts,
+                                    n = this._arg;
+                                  if (t && e) {
+                                    t.length !== e.length && i('24'),
+                                      (this._callbacks = null),
+                                      (this._contexts = null);
+                                    for (var r = 0; r < t.length; r++) t[r].call(e[r], n);
+                                    (t.length = 0), (e.length = 0);
+                                  }
+                                }),
+                                (o.prototype.checkpoint = function () {
+                                  return this._callbacks ? this._callbacks.length : 0;
+                                }),
+                                (o.prototype.rollback = function (t) {
+                                  this._callbacks &&
+                                    this._contexts &&
+                                    ((this._callbacks.length = t), (this._contexts.length = t));
+                                }),
+                                (o.prototype.reset = function () {
+                                  (this._callbacks = null), (this._contexts = null);
+                                }),
+                                (o.prototype.destructor = function () {
+                                  this.reset();
+                                }),
+                                (e.exports = r.addPoolingTo(o));
+                            },
+                            { 113: 113, 138: 138, 24: 24 },
+                          ],
+                          7: [
+                            function (t, e, n) {
+                              function u(t, e, n) {
+                                t = w.getPooled(I.change, t, e, n);
+                                return (t.type = 'change'), m.accumulateTwoPhaseDispatches(t), t;
+                              }
+                              function r(t) {
+                                t = u(D, t, B(t));
+                                y.batchedUpdates(i, t);
+                              }
+                              function i(t) {
+                                g.enqueueEvents(t), g.processEventQueue(!1);
+                              }
+                              function o() {
+                                M && (M.detachEvent('onchange', r), (D = M = null));
+                              }
+                              function a(t, e) {
+                                var n = E.updateValueIfChanged(t),
+                                  e = !0 === e.simulated && F._allowSimulatedPassThrough;
+                                if (n || e) return t;
+                              }
+                              function c(t, e) {
+                                if ('topChange' === t) return e;
+                              }
+                              function A(t, e, n) {
+                                'topFocus' === t
+                                  ? (o(), (D = n), (M = e).attachEvent('onchange', r))
+                                  : 'topBlur' === t && o();
+                              }
+                              function s() {
+                                M && (M.detachEvent('onpropertychange', l), (D = M = null));
+                              }
+                              function l(t) {
+                                'value' === t.propertyName && a(D, t) && r(t);
+                              }
+                              function h(t, e, n) {
+                                'topFocus' === t
+                                  ? (s(), (D = n), (M = e).attachEvent('onpropertychange', l))
+                                  : 'topBlur' === t && s();
+                              }
+                              function p(t, e, n) {
+                                if (
+                                  'topSelectionChange' === t ||
+                                  'topKeyUp' === t ||
+                                  'topKeyDown' === t
+                                )
+                                  return a(D, n);
+                              }
+                              function d(t, e, n) {
+                                if ('topClick' === t) return a(e, n);
+                              }
+                              function f(t, e, n) {
+                                if ('topInput' === t || 'topChange' === t) return a(e, n);
+                              }
+                              var g = t(16),
+                                m = t(19),
+                                v = t(124),
+                                b = t(33),
+                                y = t(71),
+                                w = t(80),
+                                E = t(108),
+                                B = t(102),
+                                C = t(110),
+                                x = t(111),
+                                I = {
+                                  change: {
+                                    phasedRegistrationNames: {
+                                      bubbled: 'onChange',
+                                      captured: 'onChangeCapture',
+                                    },
+                                    dependencies: [
+                                      'topBlur',
+                                      'topChange',
+                                      'topClick',
+                                      'topFocus',
+                                      'topInput',
+                                      'topKeyDown',
+                                      'topKeyUp',
+                                      'topSelectionChange',
+                                    ],
+                                  },
+                                },
+                                M = null,
+                                D = null,
+                                S = !1,
+                                k =
+                                  (v.canUseDOM &&
+                                    (S =
+                                      C('change') &&
+                                      (!document.documentMode || 8 < document.documentMode)),
+                                  !1),
+                                F =
+                                  (v.canUseDOM &&
+                                    (k =
+                                      C('input') &&
+                                      (!('documentMode' in document) || 9 < document.documentMode)),
+                                  {
+                                    eventTypes: I,
+                                    _allowSimulatedPassThrough: !0,
+                                    _isInputEventSupported: k,
+                                    extractEvents: function (t, e, n, r) {
+                                      var i,
+                                        o,
+                                        a,
+                                        s = e ? b.getNodeFromInstance(e) : window;
+                                      if (
+                                        ('select' ===
+                                          (a = (l = s).nodeName && l.nodeName.toLowerCase()) ||
+                                        ('input' === a && 'file' === l.type)
+                                          ? S
+                                            ? (o = c)
+                                            : (i = A)
+                                          : x(s)
+                                            ? k
+                                              ? (o = f)
+                                              : ((o = p), (i = h))
+                                            : !(l = (a = s).nodeName) ||
+                                              'input' !== l.toLowerCase() ||
+                                              ('checkbox' !== a.type && 'radio' !== a.type) ||
+                                              (o = d),
+                                        o)
+                                      ) {
+                                        var l = o(t, e, n);
+                                        if (l) return u(l, n, r);
+                                      }
+                                      i && i(t, s, e),
+                                        'topBlur' === t &&
+                                          ((a = s),
+                                          null != (o = e) &&
+                                            (o = o._wrapperState || a._wrapperState) &&
+                                            o.controlled &&
+                                            'number' === a.type &&
+                                            ((o = '' + a.value),
+                                            a.getAttribute('value') !== o &&
+                                              a.setAttribute('value', o)));
+                                    },
+                                  });
+                              e.exports = F;
+                            },
+                            {
+                              102: 102,
+                              108: 108,
+                              110: 110,
+                              111: 111,
+                              124: 124,
+                              16: 16,
+                              19: 19,
+                              33: 33,
+                              71: 71,
+                              80: 80,
+                            },
+                          ],
+                          8: [
+                            function (t, e, n) {
+                              function s(t, e) {
+                                return (e = Array.isArray(e) ? e[1] : e)
+                                  ? e.nextSibling
+                                  : t.firstChild;
+                              }
+                              function l(t, e, n) {
+                                if (Array.isArray(e))
+                                  for (var r = t, i = e[0], o = e[1], a = n, s = i; ; ) {
+                                    var l = s.nextSibling;
+                                    if ((p(r, s, a), s === o)) break;
+                                    s = l;
+                                  }
+                                else p(t, e, n);
+                              }
+                              function u(t, e, n) {
+                                for (;;) {
+                                  var r = e.nextSibling;
+                                  if (r === n) break;
+                                  t.removeChild(r);
+                                }
+                              }
+                              var c = t(9),
+                                r = t(13),
+                                i = (t(33), t(58), t(93)),
+                                A = t(115),
+                                h = t(116),
+                                p = i(function (t, e, n) {
+                                  t.insertBefore(e, n);
+                                }),
+                                t = r.dangerouslyReplaceNodeWithMarkup;
+                              e.exports = {
+                                dangerouslyReplaceNodeWithMarkup: t,
+                                replaceDelimitedText: function (t, e, n) {
+                                  var r = t.parentNode,
+                                    i = t.nextSibling;
+                                  i === e
+                                    ? n && p(r, document.createTextNode(n), i)
+                                    : n
+                                      ? (h(i, n), u(r, i, e))
+                                      : u(r, t, e);
+                                },
+                                processUpdates: function (t, e) {
+                                  for (var n, r, i, o = 0; o < e.length; o++) {
+                                    var a = e[o];
+                                    switch (a.type) {
+                                      case 'INSERT_MARKUP':
+                                        (n = t),
+                                          (r = a.content),
+                                          (i = s(t, a.afterNode)),
+                                          c.insertTreeBefore(n, r, i);
+                                        break;
+                                      case 'MOVE_EXISTING':
+                                        l(t, a.fromNode, s(t, a.afterNode));
+                                        break;
+                                      case 'SET_MARKUP':
+                                        A(t, a.content);
+                                        break;
+                                      case 'TEXT_CONTENT':
+                                        h(t, a.content);
+                                        break;
+                                      case 'REMOVE_NODE':
+                                        (n = t),
+                                          (r = a.fromNode),
+                                          (i = void 0),
+                                          Array.isArray(r) &&
+                                            ((i = r[1]), u(n, (r = r[0]), i), n.removeChild(i)),
+                                          n.removeChild(r);
+                                    }
+                                  }
+                                },
+                              };
+                            },
+                            { 115: 115, 116: 116, 13: 13, 33: 33, 58: 58, 9: 9, 93: 93 },
+                          ],
+                          9: [
+                            function (t, e, n) {
+                              function r(t) {
+                                if (c) {
+                                  var e = t.node,
+                                    n = t.children;
+                                  if (n.length) for (var r = 0; r < n.length; r++) A(e, n[r], null);
+                                  else
+                                    null != t.html ? s(e, t.html) : null != t.text && u(e, t.text);
+                                }
+                              }
+                              function i() {
+                                return this.node.nodeName;
+                              }
+                              function o(t) {
+                                return {
+                                  node: t,
+                                  children: [],
+                                  html: null,
+                                  text: null,
+                                  toString: i,
+                                };
+                              }
+                              var a = t(10),
+                                s = t(115),
+                                l = t(93),
+                                u = t(116),
+                                c =
+                                  ('undefined' != typeof document &&
+                                    'number' == typeof document.documentMode) ||
+                                  ('undefined' != typeof navigator &&
+                                    'string' == typeof navigator.userAgent &&
+                                    /\bEdge\/\d/.test(navigator.userAgent)),
+                                A = l(function (t, e, n) {
+                                  11 === e.node.nodeType ||
+                                  (1 === e.node.nodeType &&
+                                    'object' === e.node.nodeName.toLowerCase() &&
+                                    (null == e.node.namespaceURI || e.node.namespaceURI === a.html))
+                                    ? (r(e), t.insertBefore(e.node, n))
+                                    : (t.insertBefore(e.node, n), r(e));
+                                });
+                              (o.insertTreeBefore = A),
+                                (o.replaceChildWithTree = function (t, e) {
+                                  t.parentNode.replaceChild(e.node, t), r(e);
+                                }),
+                                (o.queueChild = function (t, e) {
+                                  c ? t.children.push(e) : t.node.appendChild(e.node);
+                                }),
+                                (o.queueHTML = function (t, e) {
+                                  c ? (t.html = e) : s(t.node, e);
+                                }),
+                                (o.queueText = function (t, e) {
+                                  c ? (t.text = e) : u(t.node, e);
+                                }),
+                                (e.exports = o);
+                            },
+                            { 10: 10, 115: 115, 116: 116, 93: 93 },
+                          ],
+                          10: [
+                            function (t, e, n) {
+                              e.exports = {
+                                html: 'http://www.w3.org/1999/xhtml',
+                                mathml: 'http://www.w3.org/1998/Math/MathML',
+                                svg: 'http://www.w3.org/2000/svg',
+                              };
+                            },
+                            {},
+                          ],
+                          11: [
+                            function (t, e, n) {
+                              function c(t, e) {
+                                return (t & e) === e;
+                              }
+                              var A = t(113),
+                                h =
+                                  (t(138),
+                                  {
+                                    MUST_USE_PROPERTY: 1,
+                                    HAS_BOOLEAN_VALUE: 4,
+                                    HAS_NUMERIC_VALUE: 8,
+                                    HAS_POSITIVE_NUMERIC_VALUE: 24,
+                                    HAS_OVERLOADED_BOOLEAN_VALUE: 32,
+                                    injectDOMPropertyConfig: function (t) {
+                                      var e,
+                                        n = h,
+                                        r = t.Properties || {},
+                                        i = t.DOMAttributeNamespaces || {},
+                                        o = t.DOMAttributeNames || {},
+                                        a = t.DOMPropertyNames || {},
+                                        s = t.DOMMutationMethods || {};
+                                      for (e in (t.isCustomAttribute &&
+                                        p._isCustomAttributeFunctions.push(t.isCustomAttribute),
+                                      r)) {
+                                        p.properties.hasOwnProperty(e) && A('48', e);
+                                        var l = e.toLowerCase(),
+                                          u = r[e],
+                                          l = {
+                                            attributeName: l,
+                                            attributeNamespace: null,
+                                            propertyName: e,
+                                            mutationMethod: null,
+                                            mustUseProperty: c(u, n.MUST_USE_PROPERTY),
+                                            hasBooleanValue: c(u, n.HAS_BOOLEAN_VALUE),
+                                            hasNumericValue: c(u, n.HAS_NUMERIC_VALUE),
+                                            hasPositiveNumericValue: c(
+                                              u,
+                                              n.HAS_POSITIVE_NUMERIC_VALUE,
+                                            ),
+                                            hasOverloadedBooleanValue: c(
+                                              u,
+                                              n.HAS_OVERLOADED_BOOLEAN_VALUE,
+                                            ),
+                                          };
+                                        l.hasBooleanValue +
+                                          l.hasNumericValue +
+                                          l.hasOverloadedBooleanValue <=
+                                          1 || A('50', e),
+                                          o.hasOwnProperty(e) &&
+                                            ((u = o[e]), (l.attributeName = u)),
+                                          i.hasOwnProperty(e) && (l.attributeNamespace = i[e]),
+                                          a.hasOwnProperty(e) && (l.propertyName = a[e]),
+                                          s.hasOwnProperty(e) && (l.mutationMethod = s[e]),
+                                          (p.properties[e] = l);
+                                      }
+                                    },
+                                  }),
+                                t =
+                                  ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD',
+                                p = {
+                                  ID_ATTRIBUTE_NAME: 'data-reactid',
+                                  ROOT_ATTRIBUTE_NAME: 'data-reactroot',
+                                  ATTRIBUTE_NAME_START_CHAR: t,
+                                  ATTRIBUTE_NAME_CHAR:
+                                    t + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040',
+                                  properties: {},
+                                  getPossibleStandardName: null,
+                                  _isCustomAttributeFunctions: [],
+                                  isCustomAttribute: function (t) {
+                                    for (var e = 0; e < p._isCustomAttributeFunctions.length; e++)
+                                      if ((0, p._isCustomAttributeFunctions[e])(t)) return !0;
+                                    return !1;
+                                  },
+                                  injection: h,
+                                };
+                              e.exports = p;
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          12: [
+                            function (t, e, n) {
+                              function r(t) {
+                                return (
+                                  u.hasOwnProperty(t) ||
+                                  (!l.hasOwnProperty(t) &&
+                                    (o.test(t) ? (u[t] = !0) : ((l[t] = !0), 0)))
+                                );
+                              }
+                              function a(t, e) {
+                                return (
+                                  null == e ||
+                                  (t.hasBooleanValue && !e) ||
+                                  (t.hasNumericValue && isNaN(e)) ||
+                                  (t.hasPositiveNumericValue && e < 1) ||
+                                  (t.hasOverloadedBooleanValue && !1 === e)
+                                );
+                              }
+                              var s = t(11),
+                                i = (t(33), t(58), t(112)),
+                                o =
+                                  (t(143),
+                                  new RegExp(
+                                    '^[' +
+                                      s.ATTRIBUTE_NAME_START_CHAR +
+                                      '][' +
+                                      s.ATTRIBUTE_NAME_CHAR +
+                                      ']*$',
+                                  )),
+                                l = {},
+                                u = {},
+                                c = {
+                                  createMarkupForID: function (t) {
+                                    return s.ID_ATTRIBUTE_NAME + '=' + i(t);
+                                  },
+                                  setAttributeForID: function (t, e) {
+                                    t.setAttribute(s.ID_ATTRIBUTE_NAME, e);
+                                  },
+                                  createMarkupForRoot: function () {
+                                    return s.ROOT_ATTRIBUTE_NAME + '=""';
+                                  },
+                                  setAttributeForRoot: function (t) {
+                                    t.setAttribute(s.ROOT_ATTRIBUTE_NAME, '');
+                                  },
+                                  createMarkupForProperty: function (t, e) {
+                                    var n = s.properties.hasOwnProperty(t) ? s.properties[t] : null;
+                                    if (n) {
+                                      if (a(n, e)) return '';
+                                      var r = n.attributeName;
+                                      return n.hasBooleanValue ||
+                                        (n.hasOverloadedBooleanValue && !0 === e)
+                                        ? r + '=""'
+                                        : r + '=' + i(e);
+                                    }
+                                    return s.isCustomAttribute(t)
+                                      ? null == e
+                                        ? ''
+                                        : t + '=' + i(e)
+                                      : null;
+                                  },
+                                  createMarkupForCustomAttribute: function (t, e) {
+                                    return r(t) && null != e ? t + '=' + i(e) : '';
+                                  },
+                                  setValueForProperty: function (t, e, n) {
+                                    var r = s.properties.hasOwnProperty(e) ? s.properties[e] : null;
+                                    if (r) {
+                                      var i,
+                                        o = r.mutationMethod;
+                                      o
+                                        ? o(t, n)
+                                        : a(r, n)
+                                          ? this.deleteValueForProperty(t, e)
+                                          : r.mustUseProperty
+                                            ? (t[r.propertyName] = n)
+                                            : ((o = r.attributeName),
+                                              (i = r.attributeNamespace)
+                                                ? t.setAttributeNS(i, o, '' + n)
+                                                : r.hasBooleanValue ||
+                                                    (r.hasOverloadedBooleanValue && !0 === n)
+                                                  ? t.setAttribute(o, '')
+                                                  : t.setAttribute(o, '' + n));
+                                    } else if (s.isCustomAttribute(e))
+                                      return void c.setValueForAttribute(t, e, n);
+                                  },
+                                  setValueForAttribute: function (t, e, n) {
+                                    r(e) &&
+                                      (null == n
+                                        ? t.removeAttribute(e)
+                                        : t.setAttribute(e, '' + n));
+                                  },
+                                  deleteValueForAttribute: function (t, e) {
+                                    t.removeAttribute(e);
+                                  },
+                                  deleteValueForProperty: function (t, e) {
+                                    var n,
+                                      r = s.properties.hasOwnProperty(e) ? s.properties[e] : null;
+                                    r
+                                      ? (n = r.mutationMethod)
+                                        ? n(t, void 0)
+                                        : r.mustUseProperty
+                                          ? ((n = r.propertyName),
+                                            r.hasBooleanValue ? (t[n] = !1) : (t[n] = ''))
+                                          : t.removeAttribute(r.attributeName)
+                                      : s.isCustomAttribute(e) && t.removeAttribute(e);
+                                  },
+                                };
+                              e.exports = c;
+                            },
+                            { 11: 11, 112: 112, 143: 143, 33: 33, 58: 58 },
+                          ],
+                          13: [
+                            function (t, e, n) {
+                              var r = t(113),
+                                i = t(9),
+                                o = t(124),
+                                a = t(129),
+                                s = t(130);
+                              t(138),
+                                (e.exports = {
+                                  dangerouslyReplaceNodeWithMarkup: function (t, e) {
+                                    var n;
+                                    o.canUseDOM || r('56'),
+                                      e || r('57'),
+                                      'HTML' === t.nodeName && r('58'),
+                                      'string' == typeof e
+                                        ? ((n = a(e, s)[0]), t.parentNode.replaceChild(n, t))
+                                        : i.replaceChildWithTree(t, e);
+                                  },
+                                });
+                            },
+                            { 113: 113, 124: 124, 129: 129, 130: 130, 138: 138, 9: 9 },
+                          ],
+                          14: [
+                            function (t, e, n) {
+                              e.exports = [
+                                'ResponderEventPlugin',
+                                'SimpleEventPlugin',
+                                'TapEventPlugin',
+                                'EnterLeaveEventPlugin',
+                                'ChangeEventPlugin',
+                                'SelectEventPlugin',
+                                'BeforeInputEventPlugin',
+                              ];
+                            },
+                            {},
+                          ],
+                          15: [
+                            function (t, e, n) {
+                              var s = t(19),
+                                l = t(33),
+                                u = t(84),
+                                c = {
+                                  mouseEnter: {
+                                    registrationName: 'onMouseEnter',
+                                    dependencies: ['topMouseOut', 'topMouseOver'],
+                                  },
+                                  mouseLeave: {
+                                    registrationName: 'onMouseLeave',
+                                    dependencies: ['topMouseOut', 'topMouseOver'],
+                                  },
+                                };
+                              e.exports = {
+                                eventTypes: c,
+                                extractEvents: function (t, e, n, r) {
+                                  if ('topMouseOver' === t && (n.relatedTarget || n.fromElement))
+                                    return null;
+                                  if ('topMouseOut' !== t && 'topMouseOver' !== t) return null;
+                                  var i;
+                                  if (
+                                    ((o =
+                                      r.window === r
+                                        ? r
+                                        : (o = r.ownerDocument)
+                                          ? o.defaultView || o.parentWindow
+                                          : window),
+                                    (t =
+                                      'topMouseOut' === t
+                                        ? ((i = e),
+                                          (t = n.relatedTarget || n.toElement)
+                                            ? l.getClosestInstanceFromNode(t)
+                                            : null)
+                                        : ((i = null), e)),
+                                    i === t)
+                                  )
+                                    return null;
+                                  var e = null == i ? o : l.getNodeFromInstance(i),
+                                    o = null == t ? o : l.getNodeFromInstance(t),
+                                    a = u.getPooled(c.mouseLeave, i, n, r),
+                                    n =
+                                      ((a.type = 'mouseleave'),
+                                      (a.target = e),
+                                      (a.relatedTarget = o),
+                                      u.getPooled(c.mouseEnter, t, n, r));
+                                  return (
+                                    (n.type = 'mouseenter'),
+                                    (n.target = o),
+                                    (n.relatedTarget = e),
+                                    s.accumulateEnterLeaveDispatches(a, n, i, t),
+                                    [a, n]
+                                  );
+                                },
+                              };
+                            },
+                            { 19: 19, 33: 33, 84: 84 },
+                          ],
+                          16: [
+                            function (t, e, n) {
+                              function r(t) {
+                                return d(t, !0);
+                              }
+                              function i(t) {
+                                return d(t, !1);
+                              }
+                              function o(t) {
+                                return '.' + t._rootNodeID;
+                              }
+                              var a = t(113),
+                                l = t(17),
+                                s = t(18),
+                                u = t(50),
+                                c = t(91),
+                                A = t(98),
+                                h = (t(138), {}),
+                                p = null,
+                                d = function (t, e) {
+                                  t &&
+                                    (s.executeDispatchesInOrder(t, e),
+                                    t.isPersistent() || t.constructor.release(t));
+                                },
+                                t = {
+                                  injection: {
+                                    injectEventPluginOrder: l.injectEventPluginOrder,
+                                    injectEventPluginsByName: l.injectEventPluginsByName,
+                                  },
+                                  putListener: function (t, e, n) {
+                                    'function' != typeof n && a('94', e, typeof n);
+                                    var r = o(t),
+                                      r =
+                                        (((h[e] || (h[e] = {}))[r] = n),
+                                        l.registrationName__module__s[e]);
+                                    r && r.didPutListener && r.didPutListener(t, e, n);
+                                  },
+                                  getListener: function (t, e) {
+                                    var n = h[e];
+                                    if (
+                                      (function (t, e, n) {
+                                        switch (t) {
+                                          case 'onClick':
+                                          case 'onClickCapture':
+                                          case 'onDoubleClick':
+                                          case 'onDoubleClickCapture':
+                                          case 'onMouseDown':
+                                          case 'onMouseDownCapture':
+                                          case 'onMouseMove':
+                                          case 'onMouseMoveCapture':
+                                          case 'onMouseUp':
+                                          case 'onMouseUpCapture':
+                                            return (
+                                              n.disabled &&
+                                              ('button' === (r = e) ||
+                                                'input' === r ||
+                                                'select' === r ||
+                                                'textarea' === r)
+                                            );
+                                          default:
+                                            return;
+                                        }
+                                        var r;
+                                      })(e, t._currentElement.type, t._currentElement.props)
+                                    )
+                                      return null;
+                                    e = o(t);
+                                    return n && n[e];
+                                  },
+                                  deleteListener: function (t, e) {
+                                    var n = l.registrationName__module__s[e],
+                                      n =
+                                        (n && n.willDeleteListener && n.willDeleteListener(t, e),
+                                        h[e]);
+                                    n && delete n[o(t)];
+                                  },
+                                  deleteAllListeners: function (t) {
+                                    var e,
+                                      n,
+                                      r = o(t);
+                                    for (e in h)
+                                      h.hasOwnProperty(e) &&
+                                        h[e][r] &&
+                                        ((n = l.registrationName__module__s[e]) &&
+                                          n.willDeleteListener &&
+                                          n.willDeleteListener(t, e),
+                                        delete h[e][r]);
+                                  },
+                                  extractEvents: function (t, e, n, r) {
+                                    for (var i, o = l.plugins, a = 0; a < o.length; a++) {
+                                      var s = o[a];
+                                      !s || ((s = s.extractEvents(t, e, n, r)) && (i = c(i, s)));
+                                    }
+                                    return i;
+                                  },
+                                  enqueueEvents: function (t) {
+                                    t && (p = c(p, t));
+                                  },
+                                  processEventQueue: function (t) {
+                                    var e = p;
+                                    (p = null),
+                                      A(e, t ? r : i),
+                                      p && a('95'),
+                                      u.rethrowCaughtError();
+                                  },
+                                  __purge: function () {
+                                    h = {};
+                                  },
+                                  __getListenerBank: function () {
+                                    return h;
+                                  },
+                                };
+                              e.exports = t;
+                            },
+                            { 113: 113, 138: 138, 17: 17, 18: 18, 50: 50, 91: 91, 98: 98 },
+                          ],
+                          17: [
+                            function (t, e, n) {
+                              function i() {
+                                if (s)
+                                  for (var t in l) {
+                                    var e = l[t],
+                                      n = s.indexOf(t);
+                                    if ((-1 < n || a('96', t), !u.plugins[n])) {
+                                      e.extractEvents || a('97', t);
+                                      var r,
+                                        i = (u.plugins[n] = e).eventTypes;
+                                      for (r in i)
+                                        !(function (t, e, n) {
+                                          u.eventNameDispatchConfigs.hasOwnProperty(n) &&
+                                            a('99', n);
+                                          var r = (u.eventNameDispatchConfigs[n] = t)
+                                            .phasedRegistrationNames;
+                                          if (r) {
+                                            for (var i in r) r.hasOwnProperty(i) && o(r[i], e, n);
+                                            return 1;
+                                          }
+                                          return (
+                                            t.registrationName && (o(t.registrationName, e, n), 1)
+                                          );
+                                        })(i[r], e, r) && a('98', r, t);
+                                    }
+                                  }
+                              }
+                              function o(t, e, n) {
+                                u.registrationName__module__s[t] && a('100', t),
+                                  (u.registrationName__module__s[t] = e),
+                                  (u.registrationNameDependencies[t] =
+                                    e.eventTypes[n].dependencies);
+                              }
+                              var a = t(113),
+                                s = (t(138), null),
+                                l = {},
+                                u = {
+                                  plugins: [],
+                                  eventNameDispatchConfigs: {},
+                                  registrationName__module__s: {},
+                                  registrationNameDependencies: {},
+                                  possibleRegistrationNames: null,
+                                  injectEventPluginOrder: function (t) {
+                                    s && a('101'), (s = Array.prototype.slice.call(t)), i();
+                                  },
+                                  injectEventPluginsByName: function (t) {
+                                    var e,
+                                      n,
+                                      r = !1;
+                                    for (e in t)
+                                      t.hasOwnProperty(e) &&
+                                        ((n = t[e]),
+                                        (l.hasOwnProperty(e) && l[e] === n) ||
+                                          (l[e] && a('102', e), (l[e] = n), (r = !0)));
+                                    r && i();
+                                  },
+                                  getPlugin__module__ForEvent: function (t) {
+                                    t = t.dispatchConfig;
+                                    if (t.registrationName)
+                                      return (
+                                        u.registrationName__module__s[t.registrationName] || null
+                                      );
+                                    if (void 0 !== t.phasedRegistrationNames) {
+                                      var e,
+                                        n = t.phasedRegistrationNames;
+                                      for (e in n)
+                                        if (n.hasOwnProperty(e)) {
+                                          var r = u.registrationName__module__s[n[e]];
+                                          if (r) return r;
+                                        }
+                                    }
+                                    return null;
+                                  },
+                                  _resetEventPlugins: function () {
+                                    for (var t in ((s = null), l))
+                                      l.hasOwnProperty(t) && delete l[t];
+                                    u.plugins.length = 0;
+                                    var e,
+                                      n = u.eventNameDispatchConfigs;
+                                    for (e in n) n.hasOwnProperty(e) && delete n[e];
+                                    var r,
+                                      i = u.registrationName__module__s;
+                                    for (r in i) i.hasOwnProperty(r) && delete i[r];
+                                  },
+                                };
+                              e.exports = u;
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          18: [
+                            function (t, e, n) {
+                              function o(t, e, n, r) {
+                                var i = t.type || 'unknown-event';
+                                (t.currentTarget = l.getNodeFromInstance(r)),
+                                  e
+                                    ? s.invokeGuardedCallbackWithCatch(i, n, t)
+                                    : s.invokeGuardedCallback(i, n, t),
+                                  (t.currentTarget = null);
+                              }
+                              var r,
+                                a,
+                                i = t(113),
+                                s = t(50);
+                              t(138), t(143);
+                              var l = {
+                                isEndish: function (t) {
+                                  return (
+                                    'topMouseUp' === t ||
+                                    'topTouchEnd' === t ||
+                                    'topTouchCancel' === t
+                                  );
+                                },
+                                isMoveish: function (t) {
+                                  return 'topMouseMove' === t || 'topTouchMove' === t;
+                                },
+                                isStartish: function (t) {
+                                  return 'topMouseDown' === t || 'topTouchStart' === t;
+                                },
+                                executeDirectDispatch: function (t) {
+                                  var e = t._dispatchListeners,
+                                    n = t._dispatchInstances,
+                                    n =
+                                      (Array.isArray(e) && i('103'),
+                                      (t.currentTarget = e ? l.getNodeFromInstance(n) : null),
+                                      e ? e(t) : null);
+                                  return (
+                                    (t.currentTarget = null),
+                                    (t._dispatchListeners = null),
+                                    (t._dispatchInstances = null),
+                                    n
+                                  );
+                                },
+                                executeDispatchesInOrder: function (t, e) {
+                                  var n = t._dispatchListeners,
+                                    r = t._dispatchInstances;
+                                  if (Array.isArray(n))
+                                    for (var i = 0; i < n.length && !t.isPropagationStopped(); i++)
+                                      o(t, e, n[i], r[i]);
+                                  else n && o(t, e, n, r);
+                                  (t._dispatchListeners = null), (t._dispatchInstances = null);
+                                },
+                                executeDispatchesInOrderStopAtTrue: function (t) {
+                                  var e = (function (t) {
+                                    var e = t._dispatchListeners,
+                                      n = t._dispatchInstances;
+                                    if (Array.isArray(e)) {
+                                      for (
+                                        var r = 0;
+                                        r < e.length && !t.isPropagationStopped();
+                                        r++
+                                      )
+                                        if (e[r](t, n[r])) return n[r];
+                                    } else if (e && e(t, n)) return n;
+                                    return null;
+                                  })(t);
+                                  return (
+                                    (t._dispatchInstances = null), (t._dispatchListeners = null), e
+                                  );
+                                },
+                                hasDispatches: function (t) {
+                                  return !!t._dispatchListeners;
+                                },
+                                getInstanceFromNode: function (t) {
+                                  return r.getInstanceFromNode(t);
+                                },
+                                getNodeFromInstance: function (t) {
+                                  return r.getNodeFromInstance(t);
+                                },
+                                isAncestor: function (t, e) {
+                                  return a.isAncestor(t, e);
+                                },
+                                getLowestCommonAncestor: function (t, e) {
+                                  return a.getLowestCommonAncestor(t, e);
+                                },
+                                getParentInstance: function (t) {
+                                  return a.getParentInstance(t);
+                                },
+                                traverseTwoPhase: function (t, e, n) {
+                                  return a.traverseTwoPhase(t, e, n);
+                                },
+                                traverseEnterLeave: function (t, e, n, r, i) {
+                                  return a.traverseEnterLeave(t, e, n, r, i);
+                                },
+                                injection: {
+                                  injectComponentTree: function (t) {
+                                    r = t;
+                                  },
+                                  injectTreeTraversal: function (t) {
+                                    a = t;
+                                  },
+                                },
+                              };
+                              e.exports = l;
+                            },
+                            { 113: 113, 138: 138, 143: 143, 50: 50 },
+                          ],
+                          19: [
+                            function (t, e, n) {
+                              function r(t, e, n) {
+                                r = (r = n).dispatchConfig.phasedRegistrationNames[e];
+                                var r,
+                                  e = h(t, r);
+                                e &&
+                                  ((n._dispatchListeners = c(n._dispatchListeners, e)),
+                                  (n._dispatchInstances = c(n._dispatchInstances, t)));
+                              }
+                              function i(t) {
+                                t &&
+                                  t.dispatchConfig.phasedRegistrationNames &&
+                                  u.traverseTwoPhase(t._targetInst, r, t);
+                              }
+                              function o(t) {
+                                var e;
+                                t &&
+                                  t.dispatchConfig.phasedRegistrationNames &&
+                                  ((e = (e = t._targetInst) ? u.getParentInstance(e) : null),
+                                  u.traverseTwoPhase(e, r, t));
+                              }
+                              function a(t, e, n) {
+                                var r;
+                                n &&
+                                  n.dispatchConfig.registrationName &&
+                                  ((r = n.dispatchConfig.registrationName),
+                                  (r = h(t, r)) &&
+                                    ((n._dispatchListeners = c(n._dispatchListeners, r)),
+                                    (n._dispatchInstances = c(n._dispatchInstances, t))));
+                              }
+                              function s(t) {
+                                t && t.dispatchConfig.registrationName && a(t._targetInst, 0, t);
+                              }
+                              var l = t(16),
+                                u = t(18),
+                                c = t(91),
+                                A = t(98),
+                                h = (t(143), l.getListener);
+                              e.exports = {
+                                accumulateTwoPhaseDispatches: function (t) {
+                                  A(t, i);
+                                },
+                                accumulateTwoPhaseDispatchesSkipTarget: function (t) {
+                                  A(t, o);
+                                },
+                                accumulateDirectDispatches: function (t) {
+                                  A(t, s);
+                                },
+                                accumulateEnterLeaveDispatches: function (t, e, n, r) {
+                                  u.traverseEnterLeave(n, r, a, t, e);
+                                },
+                              };
+                            },
+                            { 143: 143, 16: 16, 18: 18, 91: 91, 98: 98 },
+                          ],
+                          20: [
+                            function (t, e, n) {
+                              function r(t) {
+                                (this._root = t),
+                                  (this._startText = this.getText()),
+                                  (this._fallbackText = null);
+                              }
+                              var i = t(144),
+                                o = t(24),
+                                a = t(106);
+                              i(r.prototype, {
+                                destructor: function () {
+                                  (this._root = null),
+                                    (this._startText = null),
+                                    (this._fallbackText = null);
+                                },
+                                getText: function () {
+                                  return 'value' in this._root ? this._root.value : this._root[a()];
+                                },
+                                getData: function () {
+                                  if (this._fallbackText) return this._fallbackText;
+                                  for (
+                                    var t = this._startText,
+                                      e = t.length,
+                                      n = this.getText(),
+                                      r = n.length,
+                                      i = 0;
+                                    i < e && t[i] === n[i];
+                                    i++
+                                  );
+                                  for (var o = e - i, a = 1; a <= o && t[e - a] === n[r - a]; a++);
+                                  return (
+                                    (this._fallbackText = n.slice(i, 1 < a ? 1 - a : void 0)),
+                                    this._fallbackText
+                                  );
+                                },
+                              }),
+                                o.addPoolingTo(r),
+                                (e.exports = r);
+                            },
+                            { 106: 106, 144: 144, 24: 24 },
+                          ],
+                          21: [
+                            function (t, e, n) {
+                              var t = t(11),
+                                r = t.injection.MUST_USE_PROPERTY,
+                                i = t.injection.HAS_BOOLEAN_VALUE,
+                                o = t.injection.HAS_NUMERIC_VALUE,
+                                a = t.injection.HAS_POSITIVE_NUMERIC_VALUE,
+                                s = t.injection.HAS_OVERLOADED_BOOLEAN_VALUE,
+                                t = {
+                                  isCustomAttribute: RegExp.prototype.test.bind(
+                                    new RegExp('^(data|aria)-[' + t.ATTRIBUTE_NAME_CHAR + ']*$'),
+                                  ),
+                                  Properties: {
+                                    accept: 0,
+                                    acceptCharset: 0,
+                                    accessKey: 0,
+                                    action: 0,
+                                    allowFullScreen: i,
+                                    allowTransparency: 0,
+                                    alt: 0,
+                                    as: 0,
+                                    async: i,
+                                    autoComplete: 0,
+                                    autoPlay: i,
+                                    capture: i,
+                                    cellPadding: 0,
+                                    cellSpacing: 0,
+                                    charSet: 0,
+                                    challenge: 0,
+                                    checked: r | i,
+                                    cite: 0,
+                                    classID: 0,
+                                    className: 0,
+                                    cols: a,
+                                    colSpan: 0,
+                                    content: 0,
+                                    contentEditable: 0,
+                                    contextMenu: 0,
+                                    controls: i,
+                                    coords: 0,
+                                    crossOrigin: 0,
+                                    data: 0,
+                                    dateTime: 0,
+                                    default: i,
+                                    defer: i,
+                                    dir: 0,
+                                    disabled: i,
+                                    download: s,
+                                    draggable: 0,
+                                    encType: 0,
+                                    form: 0,
+                                    formAction: 0,
+                                    formEncType: 0,
+                                    formMethod: 0,
+                                    formNoValidate: i,
+                                    formTarget: 0,
+                                    frameBorder: 0,
+                                    headers: 0,
+                                    height: 0,
+                                    hidden: i,
+                                    high: 0,
+                                    href: 0,
+                                    hrefLang: 0,
+                                    htmlFor: 0,
+                                    httpEquiv: 0,
+                                    icon: 0,
+                                    id: 0,
+                                    inputMode: 0,
+                                    integrity: 0,
+                                    is: 0,
+                                    keyParams: 0,
+                                    keyType: 0,
+                                    kind: 0,
+                                    label: 0,
+                                    lang: 0,
+                                    list: 0,
+                                    loop: i,
+                                    low: 0,
+                                    manifest: 0,
+                                    marginHeight: 0,
+                                    marginWidth: 0,
+                                    max: 0,
+                                    maxLength: 0,
+                                    media: 0,
+                                    mediaGroup: 0,
+                                    method: 0,
+                                    min: 0,
+                                    minLength: 0,
+                                    multiple: r | i,
+                                    muted: r | i,
+                                    name: 0,
+                                    nonce: 0,
+                                    noValidate: i,
+                                    open: i,
+                                    optimum: 0,
+                                    pattern: 0,
+                                    placeholder: 0,
+                                    playsInline: i,
+                                    poster: 0,
+                                    preload: 0,
+                                    profile: 0,
+                                    radioGroup: 0,
+                                    readOnly: i,
+                                    referrerPolicy: 0,
+                                    rel: 0,
+                                    required: i,
+                                    reversed: i,
+                                    role: 0,
+                                    rows: a,
+                                    rowSpan: o,
+                                    sandbox: 0,
+                                    scope: 0,
+                                    scoped: i,
+                                    scrolling: 0,
+                                    seamless: i,
+                                    selected: r | i,
+                                    shape: 0,
+                                    size: a,
+                                    sizes: 0,
+                                    span: a,
+                                    spellCheck: 0,
+                                    src: 0,
+                                    srcDoc: 0,
+                                    srcLang: 0,
+                                    srcSet: 0,
+                                    start: o,
+                                    step: 0,
+                                    style: 0,
+                                    summary: 0,
+                                    tabIndex: 0,
+                                    target: 0,
+                                    title: 0,
+                                    type: 0,
+                                    useMap: 0,
+                                    value: 0,
+                                    width: 0,
+                                    wmode: 0,
+                                    wrap: 0,
+                                    about: 0,
+                                    datatype: 0,
+                                    inlist: 0,
+                                    prefix: 0,
+                                    property: 0,
+                                    resource: 0,
+                                    typeof: 0,
+                                    vocab: 0,
+                                    autoCapitalize: 0,
+                                    autoCorrect: 0,
+                                    autoSave: 0,
+                                    color: 0,
+                                    itemProp: 0,
+                                    itemScope: i,
+                                    itemType: 0,
+                                    itemID: 0,
+                                    itemRef: 0,
+                                    results: 0,
+                                    security: 0,
+                                    unselectable: 0,
+                                  },
+                                  DOMAttributeNames: {
+                                    acceptCharset: 'accept-charset',
+                                    className: 'class',
+                                    htmlFor: 'for',
+                                    httpEquiv: 'http-equiv',
+                                  },
+                                  DOMPropertyNames: {},
+                                  DOMMutationMethods: {
+                                    value: function (t, e) {
+                                      if (null == e) return t.removeAttribute('value');
+                                      ('number' !== t.type ||
+                                        !1 === t.hasAttribute('value') ||
+                                        (t.validity &&
+                                          !t.validity.badInput &&
+                                          t.ownerDocument.activeElement !== t)) &&
+                                        t.setAttribute('value', '' + e);
+                                    },
+                                  },
+                                };
+                              e.exports = t;
+                            },
+                            { 11: 11 },
+                          ],
+                          22: [
+                            function (t, e, n) {
+                              e.exports = {
+                                escape: function (t) {
+                                  var e = { '=': '=0', ':': '=2' };
+                                  return (
+                                    '$' +
+                                    ('' + t).replace(/[=:]/g, function (t) {
+                                      return e[t];
+                                    })
+                                  );
+                                },
+                                unescape: function (t) {
+                                  var e = { '=0': '=', '=2': ':' };
+                                  return (
+                                    '' +
+                                    ('.' === t[0] && '$' === t[1] ? t.substring(2) : t.substring(1))
+                                  ).replace(/(=0|=2)/g, function (t) {
+                                    return e[t];
+                                  });
+                                },
+                              };
+                            },
+                            {},
+                          ],
+                          23: [
+                            function (t, e, n) {
+                              function r(t) {
+                                null != t.checkedLink && null != t.valueLink && a('87');
+                              }
+                              function i(t) {
+                                r(t), (null == t.value && null == t.onChange) || a('88');
+                              }
+                              function o(t) {
+                                r(t), (null == t.checked && null == t.onChange) || a('89');
+                              }
+                              var a = t(113),
+                                s = t(64),
+                                l = t(146)(t(121).isValidElement),
+                                u =
+                                  (t(138),
+                                  t(143),
+                                  {
+                                    button: !0,
+                                    checkbox: !0,
+                                    image: !0,
+                                    hidden: !0,
+                                    radio: !0,
+                                    reset: !0,
+                                    submit: !0,
+                                  }),
+                                c = {
+                                  value: function (t, e, n) {
+                                    return !t[e] ||
+                                      u[t.type] ||
+                                      t.onChange ||
+                                      t.readOnly ||
+                                      t.disabled
+                                      ? null
+                                      : new Error(
+                                          'You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.',
+                                        );
+                                  },
+                                  checked: function (t, e, n) {
+                                    return !t[e] || t.onChange || t.readOnly || t.disabled
+                                      ? null
+                                      : new Error(
+                                          'You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.',
+                                        );
+                                  },
+                                  onChange: l.func,
+                                },
+                                A = {};
+                              e.exports = {
+                                checkPropTypes: function (t, e, n) {
+                                  for (var r in c) {
+                                    var i;
+                                    if (
+                                      (i = c.hasOwnProperty(r)
+                                        ? c[r](e, r, t, 'prop', null, s)
+                                        : i) instanceof Error &&
+                                      !(i.message in A)
+                                    ) {
+                                      A[i.message] = !0;
+                                      {
+                                        r = void 0;
+                                        r = void 0;
+                                        r = n;
+                                        if (r) {
+                                          r = r.getName();
+                                          if (r);
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                getValue: function (t) {
+                                  return t.valueLink ? (i(t), t.valueLink.value) : t.value;
+                                },
+                                getChecked: function (t) {
+                                  return t.checkedLink ? (o(t), t.checkedLink.value) : t.checked;
+                                },
+                                executeOnChange: function (t, e) {
+                                  return t.valueLink
+                                    ? (i(t), t.valueLink.requestChange(e.target.value))
+                                    : t.checkedLink
+                                      ? (o(t), t.checkedLink.requestChange(e.target.checked))
+                                      : t.onChange
+                                        ? t.onChange.call(void 0, e)
+                                        : void 0;
+                                },
+                              };
+                            },
+                            { 113: 113, 121: 121, 138: 138, 143: 143, 146: 146, 64: 64 },
+                          ],
+                          24: [
+                            function (t, e, n) {
+                              function r(t) {
+                                var e;
+                                return this.instancePool.length
+                                  ? ((e = this.instancePool.pop()), this.call(e, t), e)
+                                  : new this(t);
+                              }
+                              var i = t(113),
+                                o =
+                                  (t(138),
+                                  function (t) {
+                                    t instanceof this || i('25'),
+                                      t.destructor(),
+                                      this.instancePool.length < this.poolSize &&
+                                        this.instancePool.push(t);
+                                  }),
+                                a = r;
+                              e.exports = {
+                                addPoolingTo: function (t, e) {
+                                  return (
+                                    (t.instancePool = []),
+                                    (t.getPooled = e || a),
+                                    t.poolSize || (t.poolSize = 10),
+                                    (t.release = o),
+                                    t
+                                  );
+                                },
+                                oneArgumentPooler: r,
+                                twoArgumentPooler: function (t, e) {
+                                  var n;
+                                  return this.instancePool.length
+                                    ? ((n = this.instancePool.pop()), this.call(n, t, e), n)
+                                    : new this(t, e);
+                                },
+                                threeArgumentPooler: function (t, e, n) {
+                                  var r;
+                                  return this.instancePool.length
+                                    ? ((r = this.instancePool.pop()), this.call(r, t, e, n), r)
+                                    : new this(t, e, n);
+                                },
+                                fourArgumentPooler: function (t, e, n, r) {
+                                  var i;
+                                  return this.instancePool.length
+                                    ? ((i = this.instancePool.pop()), this.call(i, t, e, n, r), i)
+                                    : new this(t, e, n, r);
+                                },
+                              };
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          25: [
+                            function (t, e, n) {
+                              var r,
+                                i = t(144),
+                                s = t(17),
+                                o = t(51),
+                                a = t(90),
+                                l = t(107),
+                                u = t(110),
+                                c = {},
+                                A = !1,
+                                h = 0,
+                                p = {
+                                  topAbort: 'abort',
+                                  topAnimationEnd: l('animationend') || 'animationend',
+                                  topAnimationIteration:
+                                    l('animationiteration') || 'animationiteration',
+                                  topAnimationStart: l('animationstart') || 'animationstart',
+                                  topBlur: 'blur',
+                                  topCanPlay: 'canplay',
+                                  topCanPlayThrough: 'canplaythrough',
+                                  topChange: 'change',
+                                  topClick: 'click',
+                                  topCompositionEnd: 'compositionend',
+                                  topCompositionStart: 'compositionstart',
+                                  topCompositionUpdate: 'compositionupdate',
+                                  topContextMenu: 'contextmenu',
+                                  topCopy: 'copy',
+                                  topCut: 'cut',
+                                  topDoubleClick: 'dblclick',
+                                  topDrag: 'drag',
+                                  topDragEnd: 'dragend',
+                                  topDragEnter: 'dragenter',
+                                  topDragExit: 'dragexit',
+                                  topDragLeave: 'dragleave',
+                                  topDragOver: 'dragover',
+                                  topDragStart: 'dragstart',
+                                  topDrop: 'drop',
+                                  topDurationChange: 'durationchange',
+                                  topEmptied: 'emptied',
+                                  topEncrypted: 'encrypted',
+                                  topEnded: 'ended',
+                                  topError: 'error',
+                                  topFocus: 'focus',
+                                  topInput: 'input',
+                                  topKeyDown: 'keydown',
+                                  topKeyPress: 'keypress',
+                                  topKeyUp: 'keyup',
+                                  topLoadedData: 'loadeddata',
+                                  topLoadedMetadata: 'loadedmetadata',
+                                  topLoadStart: 'loadstart',
+                                  topMouseDown: 'mousedown',
+                                  topMouseMove: 'mousemove',
+                                  topMouseOut: 'mouseout',
+                                  topMouseOver: 'mouseover',
+                                  topMouseUp: 'mouseup',
+                                  topPaste: 'paste',
+                                  topPause: 'pause',
+                                  topPlay: 'play',
+                                  topPlaying: 'playing',
+                                  topProgress: 'progress',
+                                  topRateChange: 'ratechange',
+                                  topScroll: 'scroll',
+                                  topSeeked: 'seeked',
+                                  topSeeking: 'seeking',
+                                  topSelectionChange: 'selectionchange',
+                                  topStalled: 'stalled',
+                                  topSuspend: 'suspend',
+                                  topTextInput: 'textInput',
+                                  topTimeUpdate: 'timeupdate',
+                                  topTouchCancel: 'touchcancel',
+                                  topTouchEnd: 'touchend',
+                                  topTouchMove: 'touchmove',
+                                  topTouchStart: 'touchstart',
+                                  topTransitionEnd: l('transitionend') || 'transitionend',
+                                  topVolumeChange: 'volumechange',
+                                  topWaiting: 'waiting',
+                                  topWheel: 'wheel',
+                                },
+                                d = '_reactListenersID' + String(Math.random()).slice(2),
+                                f = i({}, o, {
+                                  ReactEventListener: null,
+                                  injection: {
+                                    injectReactEventListener: function (t) {
+                                      t.setHandleTopLevel(f.handleTopLevel),
+                                        (f.ReactEventListener = t);
+                                    },
+                                  },
+                                  setEnabled: function (t) {
+                                    f.ReactEventListener && f.ReactEventListener.setEnabled(t);
+                                  },
+                                  isEnabled: function () {
+                                    return !(
+                                      !f.ReactEventListener || !f.ReactEventListener.isEnabled()
+                                    );
+                                  },
+                                  listenTo: function (t, e) {
+                                    for (
+                                      var n = e,
+                                        r =
+                                          ((e = n),
+                                          Object.prototype.hasOwnProperty.call(e, d) ||
+                                            ((e[d] = h++), (c[e[d]] = {})),
+                                          c[e[d]]),
+                                        i = s.registrationNameDependencies[t],
+                                        o = 0;
+                                      o < i.length;
+                                      o++
+                                    ) {
+                                      var a = i[o];
+                                      (r.hasOwnProperty(a) && r[a]) ||
+                                        ('topWheel' === a
+                                          ? u('wheel')
+                                            ? f.ReactEventListener.trapBubbledEvent(
+                                                'topWheel',
+                                                'wheel',
+                                                n,
+                                              )
+                                            : u('mousewheel')
+                                              ? f.ReactEventListener.trapBubbledEvent(
+                                                  'topWheel',
+                                                  'mousewheel',
+                                                  n,
+                                                )
+                                              : f.ReactEventListener.trapBubbledEvent(
+                                                  'topWheel',
+                                                  'DOMMouseScroll',
+                                                  n,
+                                                )
+                                          : 'topScroll' === a
+                                            ? u('scroll', !0)
+                                              ? f.ReactEventListener.trapCapturedEvent(
+                                                  'topScroll',
+                                                  'scroll',
+                                                  n,
+                                                )
+                                              : f.ReactEventListener.trapBubbledEvent(
+                                                  'topScroll',
+                                                  'scroll',
+                                                  f.ReactEventListener.WINDOW_HANDLE,
+                                                )
+                                            : 'topFocus' === a || 'topBlur' === a
+                                              ? (u('focus', !0)
+                                                  ? (f.ReactEventListener.trapCapturedEvent(
+                                                      'topFocus',
+                                                      'focus',
+                                                      n,
+                                                    ),
+                                                    f.ReactEventListener.trapCapturedEvent(
+                                                      'topBlur',
+                                                      'blur',
+                                                      n,
+                                                    ))
+                                                  : u('focusin') &&
+                                                    (f.ReactEventListener.trapBubbledEvent(
+                                                      'topFocus',
+                                                      'focusin',
+                                                      n,
+                                                    ),
+                                                    f.ReactEventListener.trapBubbledEvent(
+                                                      'topBlur',
+                                                      'focusout',
+                                                      n,
+                                                    )),
+                                                (r.topBlur = !0),
+                                                (r.topFocus = !0))
+                                              : p.hasOwnProperty(a) &&
+                                                f.ReactEventListener.trapBubbledEvent(a, p[a], n),
+                                        (r[a] = !0));
+                                    }
+                                  },
+                                  trapBubbledEvent: function (t, e, n) {
+                                    return f.ReactEventListener.trapBubbledEvent(t, e, n);
+                                  },
+                                  trapCapturedEvent: function (t, e, n) {
+                                    return f.ReactEventListener.trapCapturedEvent(t, e, n);
+                                  },
+                                  supportsEventPageXY: function () {
+                                    if (!document.createEvent) return !1;
+                                    var t = document.createEvent('MouseEvent');
+                                    return null != t && 'pageX' in t;
+                                  },
+                                  ensureScrollValueMonitoring: function () {
+                                    var t;
+                                    (r = void 0 === r ? f.supportsEventPageXY() : r) ||
+                                      A ||
+                                      ((t = a.refreshScrollValues),
+                                      f.ReactEventListener.monitorScrollValue(t),
+                                      (A = !0));
+                                  },
+                                });
+                              e.exports = f;
+                            },
+                            { 107: 107, 110: 110, 144: 144, 17: 17, 51: 51, 90: 90 },
+                          ],
+                          26: [
+                            function (e, n, t) {
+                              !function (t) {
+                                function o(t, e, n, r) {
+                                  var i = void 0 === t[n];
+                                  null != e && i && (t[n] = d(e, !0));
+                                }
+                                var p = e(66),
+                                  d = e(109),
+                                  f = (e(22), e(117)),
+                                  a = e(118);
+                                e(143),
+                                  void 0 !== t && t.env,
+                                  (n.exports = {
+                                    instantiateChildren: function (t, e, n, r) {
+                                      if (null == t) return null;
+                                      var i = {};
+                                      return a(t, o, i), i;
+                                    },
+                                    updateChildren: function (t, e, n, r, i, o, a, s, l) {
+                                      if (e || t) {
+                                        var u, c, A, h;
+                                        for (u in e)
+                                          e.hasOwnProperty(u) &&
+                                            ((A = (c = t && t[u]) && c._currentElement),
+                                            (h = e[u]),
+                                            null != c && f(A, h)
+                                              ? (p.receiveComponent(c, h, i, s), (e[u] = c))
+                                              : (c &&
+                                                  ((r[u] = p.getHostNode(c)),
+                                                  p.unmountComponent(c, !1)),
+                                                (A = d(h, !0)),
+                                                (e[u] = A),
+                                                (h = p.mountComponent(A, i, o, a, s, l)),
+                                                n.push(h)));
+                                        for (u in t)
+                                          !t.hasOwnProperty(u) ||
+                                            (e && e.hasOwnProperty(u)) ||
+                                            ((c = t[u]),
+                                            (r[u] = p.getHostNode(c)),
+                                            p.unmountComponent(c, !1));
+                                      }
+                                    },
+                                    unmountChildren: function (t, e) {
+                                      for (var n in t)
+                                        t.hasOwnProperty(n) &&
+                                          ((n = t[n]), p.unmountComponent(n, e));
+                                    },
+                                  });
+                              }.call(this, void 0);
+                            },
+                            { 109: 109, 117: 117, 118: 118, 143: 143, 22: 22, 66: 66 },
+                          ],
+                          27: [
+                            function (t, e, n) {
+                              var r = t(8),
+                                t = {
+                                  processChildrenUpdates: t(37).dangerouslyProcessChildrenUpdates,
+                                  replaceNodeWithMarkup: r.dangerouslyReplaceNodeWithMarkup,
+                                };
+                              e.exports = t;
+                            },
+                            { 37: 37, 8: 8 },
+                          ],
+                          28: [
+                            function (t, e, n) {
+                              var r = t(113),
+                                i = (t(138), !1),
+                                o = {
+                                  replaceNodeWithMarkup: null,
+                                  processChildrenUpdates: null,
+                                  injection: {
+                                    injectEnvironment: function (t) {
+                                      i && r('104'),
+                                        (o.replaceNodeWithMarkup = t.replaceNodeWithMarkup),
+                                        (o.processChildrenUpdates = t.processChildrenUpdates),
+                                        (i = !0);
+                                    },
+                                  },
+                                };
+                              e.exports = o;
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          29: [
+                            function (t, e, n) {
+                              function A(t) {}
+                              var h = t(113),
+                                l = t(144),
+                                p = t(121),
+                                r = t(28),
+                                i = t(120),
+                                o = t(50),
+                                d = t(57),
+                                a = (t(58), t(62)),
+                                s = t(66),
+                                f = t(131),
+                                c = (t(138), t(142)),
+                                u = t(117),
+                                g =
+                                  (t(143),
+                                  { ImpureClass: 0, PureClass: 1, StatelessFunctional: 2 }),
+                                m =
+                                  ((A.prototype.render = function () {
+                                    return (0, d.get(this)._currentElement.type)(
+                                      this.props,
+                                      this.context,
+                                      this.updater,
+                                    );
+                                  }),
+                                  1);
+                              e.exports = {
+                                construct: function (t) {
+                                  (this._currentElement = t),
+                                    (this._rootNodeID = 0),
+                                    (this._compositeType = null),
+                                    (this._instance = null),
+                                    (this._hostParent = null),
+                                    (this._hostContainerInfo = null),
+                                    (this._updateBatchNumber = null),
+                                    (this._pendingElement = null),
+                                    (this._pendingStateQueue = null),
+                                    (this._pendingReplaceState = !1),
+                                    (this._pendingForceUpdate = !1),
+                                    (this._renderedNodeType = null),
+                                    (this._renderedComponent = null),
+                                    (this._context = null),
+                                    (this._mountOrder = 0),
+                                    (this._topLevelWrapper = null),
+                                    (this._pendingCallbacks = null),
+                                    (this._calledComponentWillUnmount = !1);
+                                },
+                                mountComponent: function (t, e, n, r) {
+                                  (this._context = r),
+                                    (this._mountOrder = m++),
+                                    (this._hostParent = e),
+                                    (this._hostContainerInfo = n);
+                                  var i,
+                                    o = this._currentElement.props,
+                                    a = this._processContext(r),
+                                    s = this._currentElement.type,
+                                    l = t.getUpdateQueue(),
+                                    u = !(!(u = s).prototype || !u.prototype.isReactComponent),
+                                    c = this._constructComponent(u, o, a, l),
+                                    u =
+                                      (u || (null != c && null != c.render)
+                                        ? (u = s).prototype && u.prototype.isPureReactComponent
+                                          ? (this._compositeType = g.PureClass)
+                                          : (this._compositeType = g.ImpureClass)
+                                        : (null === (i = c) ||
+                                            !1 === c ||
+                                            p.isValidElement(c) ||
+                                            h('105', s.displayName || s.name || 'Component'),
+                                          (c = new A()),
+                                          (this._compositeType = g.StatelessFunctional)),
+                                      (c.props = o),
+                                      (c.context = a),
+                                      (c.refs = f),
+                                      (c.updater = l),
+                                      (this._instance = c),
+                                      d.set(c, this),
+                                      c.state);
+                                  return (
+                                    void 0 === u && (c.state = u = null),
+                                    ('object' == typeof u && !Array.isArray(u)) ||
+                                      h('106', this.getName() || 'ReactCompositeComponent'),
+                                    (this._pendingStateQueue = null),
+                                    (this._pendingReplaceState = !1),
+                                    (this._pendingForceUpdate = !1),
+                                    (s = c.unstable_handleError
+                                      ? this.performInitialMountWithErrorHandling(i, e, n, t, r)
+                                      : this.performInitialMount(i, e, n, t, r)),
+                                    c.componentDidMount &&
+                                      t.getReactMountReady().enqueue(c.componentDidMount, c),
+                                    s
+                                  );
+                                },
+                                _constructComponent: function (t, e, n, r) {
+                                  return this._constructComponentWithoutOwner(t, e, n, r);
+                                },
+                                _constructComponentWithoutOwner: function (t, e, n, r) {
+                                  var i = this._currentElement.type;
+                                  return t ? new i(e, n, r) : i(e, n, r);
+                                },
+                                performInitialMountWithErrorHandling: function (e, n, r, i, o) {
+                                  var a,
+                                    s = i.checkpoint();
+                                  try {
+                                    a = this.performInitialMount(e, n, r, i, o);
+                                  } catch (t) {
+                                    i.rollback(s),
+                                      this._instance.unstable_handleError(t),
+                                      this._pendingStateQueue &&
+                                        (this._instance.state = this._processPendingState(
+                                          this._instance.props,
+                                          this._instance.context,
+                                        )),
+                                      (s = i.checkpoint()),
+                                      this._renderedComponent.unmountComponent(!0),
+                                      i.rollback(s),
+                                      (a = this.performInitialMount(e, n, r, i, o));
+                                  }
+                                  return a;
+                                },
+                                performInitialMount: function (t, e, n, r, i) {
+                                  var o = this._instance,
+                                    o =
+                                      (o.componentWillMount &&
+                                        (o.componentWillMount(),
+                                        this._pendingStateQueue &&
+                                          (o.state = this._processPendingState(
+                                            o.props,
+                                            o.context,
+                                          ))),
+                                      void 0 === t && (t = this._renderValidatedComponent()),
+                                      a.getType(t)),
+                                    t =
+                                      ((this._renderedNodeType = o),
+                                      this._instantiateReactComponent(t, o !== a.EMPTY));
+                                  return (
+                                    (this._renderedComponent = t),
+                                    s.mountComponent(t, r, e, n, this._processChildContext(i), 0)
+                                  );
+                                },
+                                getHostNode: function () {
+                                  return s.getHostNode(this._renderedComponent);
+                                },
+                                unmountComponent: function (t) {
+                                  var e, n;
+                                  this._renderedComponent &&
+                                    ((e = this._instance).componentWillUnmount &&
+                                      !e._calledComponentWillUnmount &&
+                                      ((e._calledComponentWillUnmount = !0),
+                                      t
+                                        ? ((n = this.getName() + '.componentWillUnmount()'),
+                                          o.invokeGuardedCallback(
+                                            n,
+                                            e.componentWillUnmount.bind(e),
+                                          ))
+                                        : e.componentWillUnmount()),
+                                    this._renderedComponent &&
+                                      (s.unmountComponent(this._renderedComponent, t),
+                                      (this._renderedNodeType = null),
+                                      (this._renderedComponent = null),
+                                      (this._instance = null)),
+                                    (this._pendingStateQueue = null),
+                                    (this._pendingReplaceState = !1),
+                                    (this._pendingForceUpdate = !1),
+                                    (this._pendingCallbacks = null),
+                                    (this._pendingElement = null),
+                                    (this._context = null),
+                                    (this._rootNodeID = 0),
+                                    (this._topLevelWrapper = null),
+                                    d.remove(e));
+                                },
+                                _maskContext: function (t) {
+                                  var e = this._currentElement.type.contextTypes;
+                                  if (!e) return f;
+                                  var n,
+                                    r = {};
+                                  for (n in e) r[n] = t[n];
+                                  return r;
+                                },
+                                _processContext: function (t) {
+                                  return this._maskContext(t);
+                                },
+                                _processChildContext: function (t) {
+                                  var e,
+                                    n = this._currentElement.type,
+                                    r = this._instance;
+                                  if ((e = r.getChildContext ? r.getChildContext() : e)) {
+                                    for (var i in ('object' != typeof n.childContextTypes &&
+                                      h('107', this.getName() || 'ReactCompositeComponent'),
+                                    e))
+                                      i in n.childContextTypes ||
+                                        h('108', this.getName() || 'ReactCompositeComponent', i);
+                                    return l({}, t, e);
+                                  }
+                                  return t;
+                                },
+                                _checkContextTypes: function (t, e, n) {},
+                                receiveComponent: function (t, e, n) {
+                                  var r = this._currentElement,
+                                    i = this._context;
+                                  (this._pendingElement = null),
+                                    this.updateComponent(e, r, t, i, n);
+                                },
+                                performUpdateIfNecessary: function (t) {
+                                  null != this._pendingElement
+                                    ? s.receiveComponent(
+                                        this,
+                                        this._pendingElement,
+                                        t,
+                                        this._context,
+                                      )
+                                    : null !== this._pendingStateQueue || this._pendingForceUpdate
+                                      ? this.updateComponent(
+                                          t,
+                                          this._currentElement,
+                                          this._currentElement,
+                                          this._context,
+                                          this._context,
+                                        )
+                                      : (this._updateBatchNumber = null);
+                                },
+                                updateComponent: function (t, e, n, r, i) {
+                                  var o = this._instance;
+                                  null == o &&
+                                    h('136', this.getName() || 'ReactCompositeComponent');
+                                  var a,
+                                    s = !1,
+                                    l =
+                                      (this._context === i
+                                        ? (a = o.context)
+                                        : ((a = this._processContext(i)), (s = !0)),
+                                      e.props),
+                                    u = n.props,
+                                    e =
+                                      ((s = e !== n ? !0 : s) &&
+                                        o.componentWillReceiveProps &&
+                                        o.componentWillReceiveProps(u, a),
+                                      this._processPendingState(u, a)),
+                                    s = !0;
+                                  this._pendingForceUpdate ||
+                                    (o.shouldComponentUpdate
+                                      ? (s = o.shouldComponentUpdate(u, e, a))
+                                      : this._compositeType === g.PureClass &&
+                                        (s = !c(l, u) || !c(o.state, e))),
+                                    (this._updateBatchNumber = null),
+                                    s
+                                      ? ((this._pendingForceUpdate = !1),
+                                        this._performComponentUpdate(n, u, e, a, t, i))
+                                      : ((this._currentElement = n),
+                                        (this._context = i),
+                                        (o.props = u),
+                                        (o.state = e),
+                                        (o.context = a));
+                                },
+                                _processPendingState: function (t, e) {
+                                  var n = this._instance,
+                                    r = this._pendingStateQueue,
+                                    i = this._pendingReplaceState;
+                                  if (
+                                    ((this._pendingReplaceState = !1),
+                                    (this._pendingStateQueue = null),
+                                    !r)
+                                  )
+                                    return n.state;
+                                  if (i && 1 === r.length) return r[0];
+                                  for (
+                                    var o = l({}, i ? r[0] : n.state), a = i ? 1 : 0;
+                                    a < r.length;
+                                    a++
+                                  ) {
+                                    var s = r[a];
+                                    l(o, 'function' == typeof s ? s.call(n, o, t, e) : s);
+                                  }
+                                  return o;
+                                },
+                                _performComponentUpdate: function (t, e, n, r, i, o) {
+                                  var a,
+                                    s,
+                                    l,
+                                    u = this._instance,
+                                    c = Boolean(u.componentDidUpdate);
+                                  c && ((a = u.props), (s = u.state), (l = u.context)),
+                                    u.componentWillUpdate && u.componentWillUpdate(e, n, r),
+                                    (this._currentElement = t),
+                                    (this._context = o),
+                                    (u.props = e),
+                                    (u.state = n),
+                                    (u.context = r),
+                                    this._updateRenderedComponent(i, o),
+                                    c &&
+                                      i
+                                        .getReactMountReady()
+                                        .enqueue(u.componentDidUpdate.bind(u, a, s, l), u);
+                                },
+                                _updateRenderedComponent: function (t, e) {
+                                  var n,
+                                    r = this._renderedComponent,
+                                    i = r._currentElement,
+                                    o = this._renderValidatedComponent();
+                                  u(i, o)
+                                    ? s.receiveComponent(r, o, t, this._processChildContext(e))
+                                    : ((i = s.getHostNode(r)),
+                                      s.unmountComponent(r, !1),
+                                      (n = a.getType(o)),
+                                      (this._renderedNodeType = n),
+                                      (o = this._instantiateReactComponent(o, n !== a.EMPTY)),
+                                      (this._renderedComponent = o),
+                                      (n = s.mountComponent(
+                                        o,
+                                        t,
+                                        this._hostParent,
+                                        this._hostContainerInfo,
+                                        this._processChildContext(e),
+                                        0,
+                                      )),
+                                      this._replaceNodeWithMarkup(i, n, r));
+                                },
+                                _replaceNodeWithMarkup: function (t, e, n) {
+                                  r.replaceNodeWithMarkup(t, e, n);
+                                },
+                                _renderValidatedComponentWithoutOwnerOrContext: function () {
+                                  return this._instance.render();
+                                },
+                                _renderValidatedComponent: function () {
+                                  var t;
+                                  if (this._compositeType !== g.StatelessFunctional) {
+                                    i.current = this;
+                                    try {
+                                      t = this._renderValidatedComponentWithoutOwnerOrContext();
+                                    } finally {
+                                      i.current = null;
+                                    }
+                                  } else t = this._renderValidatedComponentWithoutOwnerOrContext();
+                                  return (
+                                    null === t ||
+                                      !1 === t ||
+                                      p.isValidElement(t) ||
+                                      h('109', this.getName() || 'ReactCompositeComponent'),
+                                    t
+                                  );
+                                },
+                                attachRef: function (t, e) {
+                                  var n = this.getPublicInstance(),
+                                    e = (null == n && h('110'), e.getPublicInstance());
+                                  (n.refs === f ? (n.refs = {}) : n.refs)[t] = e;
+                                },
+                                detachRef: function (t) {
+                                  delete this.getPublicInstance().refs[t];
+                                },
+                                getName: function () {
+                                  var t = this._currentElement.type,
+                                    e = this._instance && this._instance.constructor;
+                                  return (
+                                    t.displayName ||
+                                    (e && e.displayName) ||
+                                    t.name ||
+                                    (e && e.name) ||
+                                    null
+                                  );
+                                },
+                                getPublicInstance: function () {
+                                  var t = this._instance;
+                                  return this._compositeType === g.StatelessFunctional ? null : t;
+                                },
+                                _instantiateReactComponent: null,
+                              };
+                            },
+                            {
+                              113: 113,
+                              117: 117,
+                              120: 120,
+                              121: 121,
+                              131: 131,
+                              138: 138,
+                              142: 142,
+                              143: 143,
+                              144: 144,
+                              28: 28,
+                              50: 50,
+                              57: 57,
+                              58: 58,
+                              62: 62,
+                              66: 66,
+                            },
+                          ],
+                          30: [
+                            function (t, e, n) {
+                              var r = t(33),
+                                i = t(47),
+                                o = t(60),
+                                a = t(66),
+                                s = t(71),
+                                l = t(72),
+                                u = t(96),
+                                c = t(103),
+                                A = t(114),
+                                t =
+                                  (t(143),
+                                  i.inject(),
+                                  {
+                                    findDOMNode: u,
+                                    render: o.render,
+                                    unmountComponentAtNode: o.unmountComponentAtNode,
+                                    version: l,
+                                    unstable_batchedUpdates: s.batchedUpdates,
+                                    unstable_renderSubtreeIntoContainer: A,
+                                  });
+                              'undefined' != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
+                                'function' == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject &&
+                                __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({
+                                  ComponentTree: {
+                                    getClosestInstanceFromNode: r.getClosestInstanceFromNode,
+                                    getNodeFromInstance: function (t) {
+                                      return (t = t._renderedComponent ? c(t) : t)
+                                        ? r.getNodeFromInstance(t)
+                                        : null;
+                                    },
+                                  },
+                                  Mount: o,
+                                  Reconciler: a,
+                                }),
+                                (e.exports = t);
+                            },
+                            {
+                              103: 103,
+                              114: 114,
+                              143: 143,
+                              33: 33,
+                              47: 47,
+                              60: 60,
+                              66: 66,
+                              71: 71,
+                              72: 72,
+                              96: 96,
+                            },
+                          ],
+                          31: [
+                            function (t, e, U) {
+                              function l(t, e) {
+                                e &&
+                                  (!W[t._tag] ||
+                                    (null == e.children && null == e.dangerouslySetInnerHTML) ||
+                                    r(
+                                      '137',
+                                      t._tag,
+                                      t._currentElement._owner
+                                        ? ' Check the render method of ' +
+                                            t._currentElement._owner.getName() +
+                                            '.'
+                                        : '',
+                                    ),
+                                  null != e.dangerouslySetInnerHTML &&
+                                    (null != e.children && r('60'),
+                                    ('object' == typeof e.dangerouslySetInnerHTML &&
+                                      j in e.dangerouslySetInnerHTML) ||
+                                      r('61')),
+                                  null != e.style &&
+                                    'object' != typeof e.style &&
+                                    r(
+                                      '62',
+                                      (function (t) {
+                                        if (t) {
+                                          t = t._currentElement._owner || null;
+                                          if (t) {
+                                            t = t.getName();
+                                            if (t)
+                                              return ' This DOM node was rendered by `' + t + '`.';
+                                          }
+                                        }
+                                        return '';
+                                      })(t),
+                                    ));
+                              }
+                              function c(t, e, n, r) {
+                                var i;
+                                r instanceof O ||
+                                  ((i =
+                                    (i = t._hostContainerInfo)._node && i._node.nodeType === V
+                                      ? i._node
+                                      : i._ownerDocument),
+                                  H(e, i),
+                                  r
+                                    .getReactMountReady()
+                                    .enqueue(o, { inst: t, registrationName: e, listener: n }));
+                              }
+                              function o() {
+                                i.putListener(this.inst, this.registrationName, this.listener);
+                              }
+                              function u() {
+                                C.postMountWrapper(this);
+                              }
+                              function A() {
+                                M.postMountWrapper(this);
+                              }
+                              function h() {
+                                x.postMountWrapper(this);
+                              }
+                              function p() {
+                                s.track(this);
+                              }
+                              function d() {
+                                var t = this,
+                                  e = (t._rootNodeID || r('63'), S(t));
+                                switch ((e || r('64'), t._tag)) {
+                                  case 'iframe':
+                                  case 'object':
+                                    t._wrapperState.listeners = [
+                                      a.trapBubbledEvent('topLoad', 'load', e),
+                                    ];
+                                    break;
+                                  case 'video':
+                                  case 'audio':
+                                    for (var n in ((t._wrapperState.listeners = []), _))
+                                      _.hasOwnProperty(n) &&
+                                        t._wrapperState.listeners.push(
+                                          a.trapBubbledEvent(n, _[n], e),
+                                        );
+                                    break;
+                                  case 'source':
+                                    t._wrapperState.listeners = [
+                                      a.trapBubbledEvent('topError', 'error', e),
+                                    ];
+                                    break;
+                                  case 'img':
+                                    t._wrapperState.listeners = [
+                                      a.trapBubbledEvent('topError', 'error', e),
+                                      a.trapBubbledEvent('topLoad', 'load', e),
+                                    ];
+                                    break;
+                                  case 'form':
+                                    t._wrapperState.listeners = [
+                                      a.trapBubbledEvent('topReset', 'reset', e),
+                                      a.trapBubbledEvent('topSubmit', 'submit', e),
+                                    ];
+                                    break;
+                                  case 'input':
+                                  case 'select':
+                                  case 'textarea':
+                                    t._wrapperState.listeners = [
+                                      a.trapBubbledEvent('topInvalid', 'invalid', e),
+                                    ];
+                                }
+                              }
+                              function N() {
+                                I.postUpdateWrapper(this);
+                              }
+                              function f(t, e) {
+                                return 0 <= t.indexOf('-') || null != e.is;
+                              }
+                              function n(t) {
+                                var e,
+                                  n = t.type;
+                                (e = n),
+                                  K.call(R, e) || (J.test(e) || r('65', e), (R[e] = !0)),
+                                  (this._currentElement = t),
+                                  (this._tag = n.toLowerCase()),
+                                  (this._namespaceURI = null),
+                                  (this._renderedChildren = null),
+                                  (this._previousStyle = null),
+                                  (this._previousStyleCopy = null),
+                                  (this._hostNode = null),
+                                  (this._hostParent = null),
+                                  (this._rootNodeID = 0),
+                                  (this._domID = 0),
+                                  (this._hostContainerInfo = null),
+                                  (this._wrapperState = null),
+                                  (this._topLevelWrapper = null),
+                                  (this._flags = 0);
+                              }
+                              var r = t(113),
+                                g = t(144),
+                                m = t(2),
+                                v = t(5),
+                                b = t(9),
+                                y = t(10),
+                                w = t(11),
+                                E = t(12),
+                                i = t(16),
+                                P = t(17),
+                                a = t(25),
+                                L = t(32),
+                                B = t(33),
+                                C = t(38),
+                                x = t(39),
+                                I = t(40),
+                                M = t(43),
+                                Y = (t(58), t(61)),
+                                O = t(68),
+                                G = (t(130), t(95)),
+                                s = (t(138), t(110), t(142), t(108)),
+                                z = (t(119), t(143), L),
+                                D = i.deleteListener,
+                                S = B.getNodeFromInstance,
+                                H = a.listenTo,
+                                k = P.registrationName__module__s,
+                                F = { string: !0, number: !0 },
+                                j = '__html',
+                                Q = {
+                                  children: null,
+                                  dangerouslySetInnerHTML: null,
+                                  suppressContentEditableWarning: null,
+                                },
+                                V = 11,
+                                _ = {
+                                  topAbort: 'abort',
+                                  topCanPlay: 'canplay',
+                                  topCanPlayThrough: 'canplaythrough',
+                                  topDurationChange: 'durationchange',
+                                  topEmptied: 'emptied',
+                                  topEncrypted: 'encrypted',
+                                  topEnded: 'ended',
+                                  topError: 'error',
+                                  topLoadedData: 'loadeddata',
+                                  topLoadedMetadata: 'loadedmetadata',
+                                  topLoadStart: 'loadstart',
+                                  topPause: 'pause',
+                                  topPlay: 'play',
+                                  topPlaying: 'playing',
+                                  topProgress: 'progress',
+                                  topRateChange: 'ratechange',
+                                  topSeeked: 'seeked',
+                                  topSeeking: 'seeking',
+                                  topStalled: 'stalled',
+                                  topSuspend: 'suspend',
+                                  topTimeUpdate: 'timeupdate',
+                                  topVolumeChange: 'volumechange',
+                                  topWaiting: 'waiting',
+                                },
+                                T = {
+                                  area: !0,
+                                  base: !0,
+                                  br: !0,
+                                  col: !0,
+                                  embed: !0,
+                                  hr: !0,
+                                  img: !0,
+                                  input: !0,
+                                  keygen: !0,
+                                  link: !0,
+                                  meta: !0,
+                                  param: !0,
+                                  source: !0,
+                                  track: !0,
+                                  wbr: !0,
+                                },
+                                q = { listing: !0, pre: !0, textarea: !0 },
+                                W = g({ menuitem: !0 }, T),
+                                J = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
+                                R = {},
+                                K = {}.hasOwnProperty,
+                                Z = 1;
+                              (n.displayName = 'ReactDOMComponent'),
+                                g(
+                                  n.prototype,
+                                  (n.Mixin = {
+                                    mountComponent: function (t, e, n, r) {
+                                      (this._rootNodeID = Z++),
+                                        (this._domID = n._idCounter++),
+                                        (this._hostParent = e),
+                                        (this._hostContainerInfo = n);
+                                      var i,
+                                        o,
+                                        a,
+                                        s = this._currentElement.props;
+                                      switch (this._tag) {
+                                        case 'audio':
+                                        case 'form':
+                                        case 'iframe':
+                                        case 'img':
+                                        case 'link':
+                                        case 'object':
+                                        case 'source':
+                                        case 'video':
+                                          (this._wrapperState = { listeners: null }),
+                                            t.getReactMountReady().enqueue(d, this);
+                                          break;
+                                        case 'input':
+                                          C.mountWrapper(this, s, e),
+                                            (s = C.getHostProps(this, s)),
+                                            t.getReactMountReady().enqueue(p, this),
+                                            t.getReactMountReady().enqueue(d, this);
+                                          break;
+                                        case 'option':
+                                          x.mountWrapper(this, s, e), (s = x.getHostProps(this, s));
+                                          break;
+                                        case 'select':
+                                          I.mountWrapper(this, s, e),
+                                            (s = I.getHostProps(this, s)),
+                                            t.getReactMountReady().enqueue(d, this);
+                                          break;
+                                        case 'textarea':
+                                          M.mountWrapper(this, s, e),
+                                            (s = M.getHostProps(this, s)),
+                                            t.getReactMountReady().enqueue(p, this),
+                                            t.getReactMountReady().enqueue(d, this);
+                                      }
+                                      switch (
+                                        (l(this, s),
+                                        null != e
+                                          ? ((o = e._namespaceURI), (i = e._tag))
+                                          : n._tag && ((o = n._namespaceURI), (i = n._tag)),
+                                        (o =
+                                          null == o || (o === y.svg && 'foreignobject' === i)
+                                            ? y.html
+                                            : o) === y.html &&
+                                          ('svg' === this._tag
+                                            ? (o = y.svg)
+                                            : 'math' === this._tag && (o = y.mathml)),
+                                        (this._namespaceURI = o),
+                                        (a = t.useCreateElement
+                                          ? ((i = n._ownerDocument),
+                                            (a =
+                                              o === y.html
+                                                ? 'script' === this._tag
+                                                  ? ((n = i.createElement('div')),
+                                                    (a = this._currentElement.type),
+                                                    (n.innerHTML = '<' + a + '></' + a + '>'),
+                                                    n.removeChild(n.firstChild))
+                                                  : s.is
+                                                    ? i.createElement(
+                                                        this._currentElement.type,
+                                                        s.is,
+                                                      )
+                                                    : i.createElement(this._currentElement.type)
+                                                : i.createElementNS(o, this._currentElement.type)),
+                                            B.precacheNode(this, a),
+                                            (this._flags |= z.hasCachedChildNodes),
+                                            this._hostParent || E.setAttributeForRoot(a),
+                                            this._updateDOMProperties(null, s, t),
+                                            (n = b(a)),
+                                            this._createInitialChildren(t, s, r, n),
+                                            n)
+                                          : ((i = this._createOpenTagMarkupAndPutListeners(t, s)),
+                                            !(o = this._createContentMarkup(t, s, r)) &&
+                                            T[this._tag]
+                                              ? i + '/>'
+                                              : i +
+                                                '>' +
+                                                o +
+                                                '</' +
+                                                this._currentElement.type +
+                                                '>')),
+                                        this._tag)
+                                      ) {
+                                        case 'input':
+                                          t.getReactMountReady().enqueue(u, this),
+                                            s.autoFocus &&
+                                              t
+                                                .getReactMountReady()
+                                                .enqueue(m.focusDOMComponent, this);
+                                          break;
+                                        case 'textarea':
+                                          t.getReactMountReady().enqueue(A, this),
+                                            s.autoFocus &&
+                                              t
+                                                .getReactMountReady()
+                                                .enqueue(m.focusDOMComponent, this);
+                                          break;
+                                        case 'select':
+                                        case 'button':
+                                          s.autoFocus &&
+                                            t
+                                              .getReactMountReady()
+                                              .enqueue(m.focusDOMComponent, this);
+                                          break;
+                                        case 'option':
+                                          t.getReactMountReady().enqueue(h, this);
+                                      }
+                                      return a;
+                                    },
+                                    _createOpenTagMarkupAndPutListeners: function (t, e) {
+                                      var n,
+                                        r,
+                                        i,
+                                        o = '<' + this._currentElement.type;
+                                      for (n in e)
+                                        !e.hasOwnProperty(n) ||
+                                          (null != (r = e[n]) &&
+                                            (k.hasOwnProperty(n)
+                                              ? r && c(this, n, r, t)
+                                              : ('style' === n &&
+                                                  ((r =
+                                                    r &&
+                                                    (this._previousStyleCopy = g({}, e.style))),
+                                                  (r = v.createMarkupForStyles(r, this))),
+                                                (i = null) != this._tag && f(this._tag, e)
+                                                  ? Q.hasOwnProperty(n) ||
+                                                    (i = E.createMarkupForCustomAttribute(n, r))
+                                                  : (i = E.createMarkupForProperty(n, r)),
+                                                i && (o += ' ' + i))));
+                                      return t.renderToStaticMarkup
+                                        ? o
+                                        : (this._hostParent || (o += ' ' + E.createMarkupForRoot()),
+                                          o + (' ' + E.createMarkupForID(this._domID)));
+                                    },
+                                    _createContentMarkup: function (t, e, n) {
+                                      var r = '',
+                                        i = e.dangerouslySetInnerHTML;
+                                      return (
+                                        null != i
+                                          ? null != i.__html && (r = i.__html)
+                                          : ((e =
+                                              null != (i = F[typeof e.children] ? e.children : null)
+                                                ? null
+                                                : e.children),
+                                            null != i
+                                              ? (r = G(i))
+                                              : null != e &&
+                                                (r = this.mountChildren(e, t, n).join(''))),
+                                        q[this._tag] && '\n' === r.charAt(0) ? '\n' + r : r
+                                      );
+                                    },
+                                    _createInitialChildren: function (t, e, n, r) {
+                                      var i = e.dangerouslySetInnerHTML;
+                                      if (null != i) null != i.__html && b.queueHTML(r, i.__html);
+                                      else {
+                                        (i = F[typeof e.children] ? e.children : null),
+                                          (e = null != i ? null : e.children);
+                                        if (null != i) '' !== i && b.queueText(r, i);
+                                        else if (null != e)
+                                          for (
+                                            var o = this.mountChildren(e, t, n), a = 0;
+                                            a < o.length;
+                                            a++
+                                          )
+                                            b.queueChild(r, o[a]);
+                                      }
+                                    },
+                                    receiveComponent: function (t, e, n) {
+                                      var r = this._currentElement;
+                                      (this._currentElement = t), this.updateComponent(e, r, t, n);
+                                    },
+                                    updateComponent: function (t, e, n, r) {
+                                      var i = e.props,
+                                        o = this._currentElement.props;
+                                      switch (this._tag) {
+                                        case 'input':
+                                          (i = C.getHostProps(this, i)),
+                                            (o = C.getHostProps(this, o));
+                                          break;
+                                        case 'option':
+                                          (i = x.getHostProps(this, i)),
+                                            (o = x.getHostProps(this, o));
+                                          break;
+                                        case 'select':
+                                          (i = I.getHostProps(this, i)),
+                                            (o = I.getHostProps(this, o));
+                                          break;
+                                        case 'textarea':
+                                          (i = M.getHostProps(this, i)),
+                                            (o = M.getHostProps(this, o));
+                                      }
+                                      switch (
+                                        (l(this, o),
+                                        this._updateDOMProperties(i, o, t),
+                                        this._updateDOMChildren(i, o, t, r),
+                                        this._tag)
+                                      ) {
+                                        case 'input':
+                                          C.updateWrapper(this);
+                                          break;
+                                        case 'textarea':
+                                          M.updateWrapper(this);
+                                          break;
+                                        case 'select':
+                                          t.getReactMountReady().enqueue(N, this);
+                                      }
+                                    },
+                                    _updateDOMProperties: function (t, e, n) {
+                                      var r, i, o;
+                                      for (r in t)
+                                        if (
+                                          !e.hasOwnProperty(r) &&
+                                          t.hasOwnProperty(r) &&
+                                          null != t[r]
+                                        )
+                                          if ('style' === r) {
+                                            var a = this._previousStyleCopy;
+                                            for (i in a)
+                                              a.hasOwnProperty(i) && ((o = o || {}), (o[i] = ''));
+                                            this._previousStyleCopy = null;
+                                          } else
+                                            k.hasOwnProperty(r)
+                                              ? t[r] && D(this, r)
+                                              : f(this._tag, t)
+                                                ? Q.hasOwnProperty(r) ||
+                                                  E.deleteValueForAttribute(S(this), r)
+                                                : (w.properties[r] || w.isCustomAttribute(r)) &&
+                                                  E.deleteValueForProperty(S(this), r);
+                                      for (r in e) {
+                                        var s,
+                                          l = e[r],
+                                          u =
+                                            'style' === r
+                                              ? this._previousStyleCopy
+                                              : null != t
+                                                ? t[r]
+                                                : void 0;
+                                        if (
+                                          e.hasOwnProperty(r) &&
+                                          l !== u &&
+                                          (null != l || null != u)
+                                        )
+                                          if ('style' === r)
+                                            if (
+                                              (l
+                                                ? (l = this._previousStyleCopy = g({}, l))
+                                                : (this._previousStyleCopy = null),
+                                              u)
+                                            ) {
+                                              for (i in u)
+                                                !u.hasOwnProperty(i) ||
+                                                  (l && l.hasOwnProperty(i)) ||
+                                                  ((o = o || {}), (o[i] = ''));
+                                              for (i in l)
+                                                l.hasOwnProperty(i) &&
+                                                  u[i] !== l[i] &&
+                                                  ((o = o || {}), (o[i] = l[i]));
+                                            } else o = l;
+                                          else
+                                            k.hasOwnProperty(r)
+                                              ? l
+                                                ? c(this, r, l, n)
+                                                : u && D(this, r)
+                                              : f(this._tag, e)
+                                                ? Q.hasOwnProperty(r) ||
+                                                  E.setValueForAttribute(S(this), r, l)
+                                                : (w.properties[r] || w.isCustomAttribute(r)) &&
+                                                  ((s = S(this)),
+                                                  null != l
+                                                    ? E.setValueForProperty(s, r, l)
+                                                    : E.deleteValueForProperty(s, r));
+                                      }
+                                      o && v.setValueForStyles(S(this), o, this);
+                                    },
+                                    _updateDOMChildren: function (t, e, n, r) {
+                                      var i = F[typeof t.children] ? t.children : null,
+                                        o = F[typeof e.children] ? e.children : null,
+                                        a =
+                                          t.dangerouslySetInnerHTML &&
+                                          t.dangerouslySetInnerHTML.__html,
+                                        s =
+                                          e.dangerouslySetInnerHTML &&
+                                          e.dangerouslySetInnerHTML.__html,
+                                        t = null != i ? null : t.children,
+                                        e = null != o ? null : e.children,
+                                        l = null != i || null != a,
+                                        u = null != o || null != s;
+                                      null != t && null == e
+                                        ? this.updateChildren(null, n, r)
+                                        : l && !u && this.updateTextContent(''),
+                                        null != o
+                                          ? i !== o && this.updateTextContent('' + o)
+                                          : null != s
+                                            ? a !== s && this.updateMarkup('' + s)
+                                            : null != e && this.updateChildren(e, n, r);
+                                    },
+                                    getHostNode: function () {
+                                      return S(this);
+                                    },
+                                    unmountComponent: function (t) {
+                                      switch (this._tag) {
+                                        case 'audio':
+                                        case 'form':
+                                        case 'iframe':
+                                        case 'img':
+                                        case 'link':
+                                        case 'object':
+                                        case 'source':
+                                        case 'video':
+                                          var e = this._wrapperState.listeners;
+                                          if (e) for (var n = 0; n < e.length; n++) e[n].remove();
+                                          break;
+                                        case 'input':
+                                        case 'textarea':
+                                          s.stopTracking(this);
+                                          break;
+                                        case 'html':
+                                        case 'head':
+                                        case 'body':
+                                          r('66', this._tag);
+                                      }
+                                      this.unmountChildren(t),
+                                        B.uncacheNode(this),
+                                        i.deleteAllListeners(this),
+                                        (this._rootNodeID = 0),
+                                        (this._domID = 0),
+                                        (this._wrapperState = null);
+                                    },
+                                    getPublicInstance: function () {
+                                      return S(this);
+                                    },
+                                  }),
+                                  Y.Mixin,
+                                ),
+                                (e.exports = n);
+                            },
+                            {
+                              10: 10,
+                              108: 108,
+                              11: 11,
+                              110: 110,
+                              113: 113,
+                              119: 119,
+                              12: 12,
+                              130: 130,
+                              138: 138,
+                              142: 142,
+                              143: 143,
+                              144: 144,
+                              16: 16,
+                              17: 17,
+                              2: 2,
+                              25: 25,
+                              32: 32,
+                              33: 33,
+                              38: 38,
+                              39: 39,
+                              40: 40,
+                              43: 43,
+                              5: 5,
+                              58: 58,
+                              61: 61,
+                              68: 68,
+                              9: 9,
+                              95: 95,
+                            },
+                          ],
+                          32: [
+                            function (t, e, n) {
+                              e.exports = { hasCachedChildNodes: 1 };
+                            },
+                            {},
+                          ],
+                          33: [
+                            function (t, e, n) {
+                              function u(t) {
+                                for (var e; (e = t._renderedComponent); ) t = e;
+                                return t;
+                              }
+                              function c(t, e) {
+                                t = u(t);
+                                (t._hostNode = e)[s] = t;
+                              }
+                              function i(t, e) {
+                                if (!(t._flags & p.hasCachedChildNodes)) {
+                                  var n = t._renderedChildren,
+                                    r = e.firstChild;
+                                  t: for (var i in n)
+                                    if (n.hasOwnProperty(i)) {
+                                      var o = n[i],
+                                        a = u(o)._domID;
+                                      if (0 !== a) {
+                                        for (; null !== r; r = r.nextSibling)
+                                          if (
+                                            ((l = a),
+                                            (1 === (s = r).nodeType &&
+                                              s.getAttribute(h) === String(l)) ||
+                                              (8 === s.nodeType &&
+                                                s.nodeValue === ' react-text: ' + l + ' ') ||
+                                              (8 === s.nodeType &&
+                                                s.nodeValue === ' react-empty: ' + l + ' '))
+                                          ) {
+                                            c(o, r);
+                                            continue t;
+                                          }
+                                        A('32', a);
+                                      }
+                                    }
+                                  t._flags |= p.hasCachedChildNodes;
+                                }
+                                var s, l;
+                              }
+                              function r(t) {
+                                if (t[s]) return t[s];
+                                for (var e, n, r = []; !t[s]; ) {
+                                  if ((r.push(t), !t.parentNode)) return null;
+                                  t = t.parentNode;
+                                }
+                                for (; t && (n = t[s]); t = r.pop()) (e = n), r.length && i(n, t);
+                                return e;
+                              }
+                              var A = t(113),
+                                o = t(11),
+                                a = t(32),
+                                h = (t(138), o.ID_ATTRIBUTE_NAME),
+                                p = a,
+                                s =
+                                  '__reactInternalInstance$' + Math.random().toString(36).slice(2);
+                              e.exports = {
+                                getClosestInstanceFromNode: r,
+                                getInstanceFromNode: function (t) {
+                                  var e = r(t);
+                                  return null != e && e._hostNode === t ? e : null;
+                                },
+                                getNodeFromInstance: function (t) {
+                                  if ((void 0 === t._hostNode && A('33'), !t._hostNode)) {
+                                    for (var e = []; !t._hostNode; )
+                                      e.push(t), t._hostParent || A('34'), (t = t._hostParent);
+                                    for (; e.length; t = e.pop()) i(t, t._hostNode);
+                                  }
+                                  return t._hostNode;
+                                },
+                                precacheChildNodes: i,
+                                precacheNode: c,
+                                uncacheNode: function (t) {
+                                  var e = t._hostNode;
+                                  e && (delete e[s], (t._hostNode = null));
+                                },
+                              };
+                            },
+                            { 11: 11, 113: 113, 138: 138, 32: 32 },
+                          ],
+                          34: [
+                            function (t, e, n) {
+                              t(119);
+                              var r = 9;
+                              e.exports = function (t, e) {
+                                return {
+                                  _topLevelWrapper: t,
+                                  _idCounter: 1,
+                                  _ownerDocument: e
+                                    ? e.nodeType === r
+                                      ? e
+                                      : e.ownerDocument
+                                    : null,
+                                  _node: e,
+                                  _tag: e ? e.nodeName.toLowerCase() : null,
+                                  _namespaceURI: e ? e.namespaceURI : null,
+                                };
+                              };
+                            },
+                            { 119: 119 },
+                          ],
+                          35: [
+                            function (t, e, n) {
+                              function r(t) {
+                                (this._currentElement = null),
+                                  (this._hostNode = null),
+                                  (this._hostParent = null),
+                                  (this._hostContainerInfo = null),
+                                  (this._domID = 0);
+                              }
+                              var i = t(144),
+                                o = t(9),
+                                a = t(33);
+                              i(r.prototype, {
+                                mountComponent: function (t, e, n, r) {
+                                  var i = n._idCounter++,
+                                    i =
+                                      ((this._domID = i),
+                                      (this._hostParent = e),
+                                      (this._hostContainerInfo = n),
+                                      ' react-empty: ' + this._domID + ' ');
+                                  return t.useCreateElement
+                                    ? ((e = n._ownerDocument.createComment(i)),
+                                      a.precacheNode(this, e),
+                                      o(e))
+                                    : t.renderToStaticMarkup
+                                      ? ''
+                                      : '\x3c!--' + i + '--\x3e';
+                                },
+                                receiveComponent: function () {},
+                                getHostNode: function () {
+                                  return a.getNodeFromInstance(this);
+                                },
+                                unmountComponent: function () {
+                                  a.uncacheNode(this);
+                                },
+                              }),
+                                (e.exports = r);
+                            },
+                            { 144: 144, 33: 33, 9: 9 },
+                          ],
+                          36: [
+                            function (t, e, n) {
+                              e.exports = { useCreateElement: !0, useFiber: !1 };
+                            },
+                            {},
+                          ],
+                          37: [
+                            function (t, e, n) {
+                              var r = t(8),
+                                i = t(33);
+                              e.exports = {
+                                dangerouslyProcessChildrenUpdates: function (t, e) {
+                                  t = i.getNodeFromInstance(t);
+                                  r.processUpdates(t, e);
+                                },
+                              };
+                            },
+                            { 33: 33, 8: 8 },
+                          ],
+                          38: [
+                            function (t, e, n) {
+                              function l() {
+                                this._rootNodeID && r.updateWrapper(this);
+                              }
+                              var u = t(113),
+                                i = t(144),
+                                o = t(12),
+                                c = t(23),
+                                A = t(33),
+                                h = t(71),
+                                r =
+                                  (t(138),
+                                  t(143),
+                                  {
+                                    getHostProps: function (t, e) {
+                                      var n = c.getValue(e),
+                                        r = c.getChecked(e);
+                                      return i(
+                                        { type: void 0, step: void 0, min: void 0, max: void 0 },
+                                        e,
+                                        {
+                                          defaultChecked: void 0,
+                                          defaultValue: void 0,
+                                          value: null != n ? n : t._wrapperState.initialValue,
+                                          checked: null != r ? r : t._wrapperState.initialChecked,
+                                          onChange: t._wrapperState.onChange,
+                                        },
+                                      );
+                                    },
+                                    mountWrapper: function (t, e) {
+                                      var n = e.defaultValue;
+                                      t._wrapperState = {
+                                        initialChecked:
+                                          null != e.checked ? e.checked : e.defaultChecked,
+                                        initialValue: null != e.value ? e.value : n,
+                                        listeners: null,
+                                        onChange: function (t) {
+                                          var e = this._currentElement.props,
+                                            t = c.executeOnChange(e, t),
+                                            n = (h.asap(l, this), e.name);
+                                          if ('radio' === e.type && null != n) {
+                                            for (
+                                              var r = A.getNodeFromInstance(this), i = r;
+                                              i.parentNode;
+
+                                            )
+                                              i = i.parentNode;
+                                            for (
+                                              var o = i.querySelectorAll(
+                                                  'input[name=' +
+                                                    JSON.stringify('' + n) +
+                                                    '][type="radio"]',
+                                                ),
+                                                a = 0;
+                                              a < o.length;
+                                              a++
+                                            ) {
+                                              var s = o[a];
+                                              s !== r &&
+                                                s.form === r.form &&
+                                                ((s = A.getInstanceFromNode(s)) || u('90'),
+                                                h.asap(l, s));
+                                            }
+                                          }
+                                          return t;
+                                        }.bind(t),
+                                        controlled:
+                                          'checkbox' === (n = e).type || 'radio' === n.type
+                                            ? null != n.checked
+                                            : null != n.value,
+                                      };
+                                    },
+                                    updateWrapper: function (t) {
+                                      var e,
+                                        n = t._currentElement.props,
+                                        r = n.checked,
+                                        r =
+                                          (null != r &&
+                                            o.setValueForProperty(
+                                              A.getNodeFromInstance(t),
+                                              'checked',
+                                              r || !1,
+                                            ),
+                                          A.getNodeFromInstance(t)),
+                                        t = c.getValue(n);
+                                      null != t
+                                        ? 0 === t && '' === r.value
+                                          ? (r.value = '0')
+                                          : 'number' === n.type
+                                            ? (t != (e = parseFloat(r.value, 10) || 0) ||
+                                                (t == e && r.value != t)) &&
+                                              (r.value = '' + t)
+                                            : r.value !== '' + t && (r.value = '' + t)
+                                        : (null == n.value &&
+                                            null != n.defaultValue &&
+                                            r.defaultValue !== '' + n.defaultValue &&
+                                            (r.defaultValue = '' + n.defaultValue),
+                                          null == n.checked &&
+                                            null != n.defaultChecked &&
+                                            (r.defaultChecked = !!n.defaultChecked));
+                                    },
+                                    postMountWrapper: function (t) {
+                                      var e = t._currentElement.props,
+                                        n = A.getNodeFromInstance(t);
+                                      switch (e.type) {
+                                        case 'submit':
+                                        case 'reset':
+                                          break;
+                                        case 'color':
+                                        case 'date':
+                                        case 'datetime':
+                                        case 'datetime-local':
+                                        case 'month':
+                                        case 'time':
+                                        case 'week':
+                                          (n.value = ''), (n.value = n.defaultValue);
+                                          break;
+                                        default:
+                                          n.value = n.value;
+                                      }
+                                      t = n.name;
+                                      '' !== t && (n.name = ''),
+                                        (n.defaultChecked = !n.defaultChecked),
+                                        (n.defaultChecked = !n.defaultChecked),
+                                        '' !== t && (n.name = t);
+                                    },
+                                  });
+                              e.exports = r;
+                            },
+                            {
+                              113: 113,
+                              12: 12,
+                              138: 138,
+                              143: 143,
+                              144: 144,
+                              23: 23,
+                              33: 33,
+                              71: 71,
+                            },
+                          ],
+                          39: [
+                            function (t, e, n) {
+                              function s(t) {
+                                var e = '';
+                                return (
+                                  i.Children.forEach(t, function (t) {
+                                    null != t &&
+                                      ('string' == typeof t || 'number' == typeof t ? (e += t) : 0);
+                                  }),
+                                  e
+                                );
+                              }
+                              var r = t(144),
+                                i = t(121),
+                                o = t(33),
+                                l = t(40);
+                              t(143);
+                              e.exports = {
+                                mountWrapper: function (t, e, n) {
+                                  var r = null,
+                                    i =
+                                      (null == n ||
+                                        (null !=
+                                          (n = 'optgroup' === (n = n)._tag ? n._hostParent : n) &&
+                                          'select' === n._tag &&
+                                          (r = l.getSelectValueContext(n))),
+                                      null);
+                                  if (null != r) {
+                                    var o = null != e.value ? e.value + '' : s(e.children),
+                                      i = !1;
+                                    if (Array.isArray(r)) {
+                                      for (var a = 0; a < r.length; a++)
+                                        if ('' + r[a] === o) {
+                                          i = !0;
+                                          break;
+                                        }
+                                    } else i = '' + r === o;
+                                  }
+                                  t._wrapperState = { selected: i };
+                                },
+                                postMountWrapper: function (t) {
+                                  var e = t._currentElement.props;
+                                  null != e.value &&
+                                    o.getNodeFromInstance(t).setAttribute('value', e.value);
+                                },
+                                getHostProps: function (t, e) {
+                                  var n = r({ selected: void 0, children: void 0 }, e),
+                                    t =
+                                      (null != t._wrapperState.selected &&
+                                        (n.selected = t._wrapperState.selected),
+                                      s(e.children));
+                                  return t && (n.children = t), n;
+                                },
+                              };
+                            },
+                            { 121: 121, 143: 143, 144: 144, 33: 33, 40: 40 },
+                          ],
+                          40: [
+                            function (t, e, n) {
+                              function r() {
+                                var t, e;
+                                this._rootNodeID &&
+                                  this._wrapperState.pendingUpdate &&
+                                  ((this._wrapperState.pendingUpdate = !1),
+                                  (t = this._currentElement.props),
+                                  null != (e = a.getValue(t)) && i(this, Boolean(t.multiple), e));
+                              }
+                              function i(t, e, n) {
+                                var r,
+                                  i,
+                                  o = s.getNodeFromInstance(t).options;
+                                if (e) {
+                                  for (r = {}, i = 0; i < n.length; i++) r['' + n[i]] = !0;
+                                  for (i = 0; i < o.length; i++) {
+                                    var a = r.hasOwnProperty(o[i].value);
+                                    o[i].selected !== a && (o[i].selected = a);
+                                  }
+                                } else {
+                                  for (r = '' + n, i = 0; i < o.length; i++)
+                                    if (o[i].value === r) return (o[i].selected = !0);
+                                  o.length && (o[0].selected = !0);
+                                }
+                              }
+                              var o = t(144),
+                                a = t(23),
+                                s = t(33),
+                                l = t(71),
+                                u = (t(143), !1);
+                              e.exports = {
+                                getHostProps: function (t, e) {
+                                  return o({}, e, {
+                                    onChange: t._wrapperState.onChange,
+                                    value: void 0,
+                                  });
+                                },
+                                mountWrapper: function (t, e) {
+                                  var n = a.getValue(e);
+                                  (t._wrapperState = {
+                                    pendingUpdate: !1,
+                                    initialValue: null != n ? n : e.defaultValue,
+                                    listeners: null,
+                                    onChange: function (t) {
+                                      var e = this._currentElement.props,
+                                        e = a.executeOnChange(e, t);
+                                      return (
+                                        this._rootNodeID && (this._wrapperState.pendingUpdate = !0),
+                                        l.asap(r, this),
+                                        e
+                                      );
+                                    }.bind(t),
+                                    wasMultiple: Boolean(e.multiple),
+                                  }),
+                                    void 0 === e.value ||
+                                      void 0 === e.defaultValue ||
+                                      u ||
+                                      (u = !0);
+                                },
+                                getSelectValueContext: function (t) {
+                                  return t._wrapperState.initialValue;
+                                },
+                                postUpdateWrapper: function (t) {
+                                  var e = t._currentElement.props,
+                                    n =
+                                      ((t._wrapperState.initialValue = void 0),
+                                      t._wrapperState.wasMultiple),
+                                    r =
+                                      ((t._wrapperState.wasMultiple = Boolean(e.multiple)),
+                                      a.getValue(e));
+                                  null != r
+                                    ? ((t._wrapperState.pendingUpdate = !1),
+                                      i(t, Boolean(e.multiple), r))
+                                    : n !== Boolean(e.multiple) &&
+                                      (null != e.defaultValue
+                                        ? i(t, Boolean(e.multiple), e.defaultValue)
+                                        : i(t, Boolean(e.multiple), e.multiple ? [] : ''));
+                                },
+                              };
+                            },
+                            { 143: 143, 144: 144, 23: 23, 33: 33, 71: 71 },
+                          ],
+                          41: [
+                            function (t, e, n) {
+                              function l(t, e, n, r) {
+                                return t === n && e === r;
+                              }
+                              var r = t(124),
+                                a = t(105),
+                                s = t(106),
+                                t =
+                                  r.canUseDOM &&
+                                  'selection' in document &&
+                                  !('getSelection' in window);
+                              e.exports = {
+                                getOffsets: t
+                                  ? function (t) {
+                                      var e = document.selection.createRange(),
+                                        n = e.text.length,
+                                        r = e.duplicate();
+                                      return (
+                                        r.moveToElementText(t),
+                                        r.setEndPoint('EndToStart', e),
+                                        { start: (t = r.text.length), end: t + n }
+                                      );
+                                    }
+                                  : function (t) {
+                                      if (
+                                        !(a = window.getSelection && window.getSelection()) ||
+                                        0 === a.rangeCount
+                                      )
+                                        return null;
+                                      var e = a.anchorNode,
+                                        n = a.anchorOffset,
+                                        r = a.focusNode,
+                                        i = a.focusOffset,
+                                        o = a.getRangeAt(0);
+                                      try {
+                                        o.startContainer.nodeType, o.endContainer.nodeType;
+                                      } catch (t) {
+                                        return null;
+                                      }
+                                      var a = l(
+                                          a.anchorNode,
+                                          a.anchorOffset,
+                                          a.focusNode,
+                                          a.focusOffset,
+                                        )
+                                          ? 0
+                                          : o.toString().length,
+                                        s = o.cloneRange();
+                                      return (
+                                        s.selectNodeContents(t),
+                                        s.setEnd(o.startContainer, o.startOffset),
+                                        (s =
+                                          (o = l(
+                                            s.startContainer,
+                                            s.startOffset,
+                                            s.endContainer,
+                                            s.endOffset,
+                                          )
+                                            ? 0
+                                            : s.toString().length) + a),
+                                        (a = document.createRange()).setStart(e, n),
+                                        a.setEnd(r, i),
+                                        { start: (e = a.collapsed) ? s : o, end: e ? o : s }
+                                      );
+                                    },
+                                setOffsets: t
+                                  ? function (t, e) {
+                                      var n,
+                                        r = document.selection.createRange().duplicate(),
+                                        e =
+                                          void 0 === e.end
+                                            ? (n = e.start)
+                                            : e.start > e.end
+                                              ? ((n = e.end), e.start)
+                                              : ((n = e.start), e.end);
+                                      r.moveToElementText(t),
+                                        r.moveStart('character', n),
+                                        r.setEndPoint('EndToStart', r),
+                                        r.moveEnd('character', e - n),
+                                        r.select();
+                                    }
+                                  : function (t, e) {
+                                      var n, r, i, o;
+                                      window.getSelection &&
+                                        ((n = window.getSelection()),
+                                        (i = t[s()].length),
+                                        (r = Math.min(e.start, i)),
+                                        (e = void 0 === e.end ? r : Math.min(e.end, i)),
+                                        !n.extend && e < r && ((i = e), (e = r), (r = i)),
+                                        (i = a(t, r)),
+                                        (t = a(t, e)),
+                                        i &&
+                                          t &&
+                                          ((o = document.createRange()).setStart(i.node, i.offset),
+                                          n.removeAllRanges(),
+                                          e < r
+                                            ? (n.addRange(o), n.extend(t.node, t.offset))
+                                            : (o.setEnd(t.node, t.offset), n.addRange(o))));
+                                    },
+                              };
+                            },
+                            { 105: 105, 106: 106, 124: 124 },
+                          ],
+                          42: [
+                            function (t, e, n) {
+                              function r(t) {
+                                (this._currentElement = t),
+                                  (this._stringText = '' + t),
+                                  (this._hostNode = null),
+                                  (this._hostParent = null),
+                                  (this._domID = 0),
+                                  (this._mountIndex = 0),
+                                  (this._closingComment = null),
+                                  (this._commentNodes = null);
+                              }
+                              var i = t(113),
+                                o = t(144),
+                                a = t(8),
+                                s = t(9),
+                                l = t(33),
+                                u = t(95);
+                              t(138), t(119);
+                              o(r.prototype, {
+                                mountComponent: function (t, e, n, r) {
+                                  var i,
+                                    o = n._idCounter++,
+                                    a = ' react-text: ' + o + ' ';
+                                  if (
+                                    ((this._domID = o), (this._hostParent = e), t.useCreateElement)
+                                  )
+                                    return (
+                                      (e = (o = n._ownerDocument).createComment(a)),
+                                      (n = o.createComment(' /react-text ')),
+                                      (i = s(o.createDocumentFragment())),
+                                      s.queueChild(i, s(e)),
+                                      this._stringText &&
+                                        s.queueChild(i, s(o.createTextNode(this._stringText))),
+                                      s.queueChild(i, s(n)),
+                                      l.precacheNode(this, e),
+                                      (this._closingComment = n),
+                                      i
+                                    );
+                                  o = u(this._stringText);
+                                  return t.renderToStaticMarkup
+                                    ? o
+                                    : '\x3c!--' + a + '--\x3e' + o + '\x3c!-- /react-text --\x3e';
+                                },
+                                receiveComponent: function (t, e) {
+                                  var n;
+                                  t !== this._currentElement &&
+                                    (t = '' + (this._currentElement = t)) !== this._stringText &&
+                                    ((this._stringText = t),
+                                    (n = this.getHostNode()),
+                                    a.replaceDelimitedText(n[0], n[1], t));
+                                },
+                                getHostNode: function () {
+                                  var t = this._commentNodes;
+                                  if (t) return t;
+                                  if (!this._closingComment)
+                                    for (var e = l.getNodeFromInstance(this).nextSibling; ; ) {
+                                      if (
+                                        (null == e && i('67', this._domID),
+                                        8 === e.nodeType && ' /react-text ' === e.nodeValue)
+                                      ) {
+                                        this._closingComment = e;
+                                        break;
+                                      }
+                                      e = e.nextSibling;
+                                    }
+                                  return (
+                                    (t = [this._hostNode, this._closingComment]),
+                                    (this._commentNodes = t)
+                                  );
+                                },
+                                unmountComponent: function () {
+                                  (this._closingComment = null),
+                                    (this._commentNodes = null),
+                                    l.uncacheNode(this);
+                                },
+                              }),
+                                (e.exports = r);
+                            },
+                            { 113: 113, 119: 119, 138: 138, 144: 144, 33: 33, 8: 8, 9: 9, 95: 95 },
+                          ],
+                          43: [
+                            function (t, e, n) {
+                              function i() {
+                                this._rootNodeID && u.updateWrapper(this);
+                              }
+                              var o = t(113),
+                                r = t(144),
+                                a = t(23),
+                                s = t(33),
+                                l = t(71),
+                                u =
+                                  (t(138),
+                                  t(143),
+                                  {
+                                    getHostProps: function (t, e) {
+                                      return (
+                                        null != e.dangerouslySetInnerHTML && o('91'),
+                                        r({}, e, {
+                                          value: void 0,
+                                          defaultValue: void 0,
+                                          children: '' + t._wrapperState.initialValue,
+                                          onChange: t._wrapperState.onChange,
+                                        })
+                                      );
+                                    },
+                                    mountWrapper: function (t, e) {
+                                      var n = a.getValue(e),
+                                        r = n;
+                                      null == n &&
+                                        ((n = e.defaultValue),
+                                        null != (e = e.children) &&
+                                          (null != n && o('92'),
+                                          Array.isArray(e) &&
+                                            (e.length <= 1 || o('93'), (e = e[0])),
+                                          (n = '' + e)),
+                                        (r = n = null == n ? '' : n)),
+                                        (t._wrapperState = {
+                                          initialValue: '' + r,
+                                          listeners: null,
+                                          onChange: function (t) {
+                                            var e = this._currentElement.props,
+                                              e = a.executeOnChange(e, t);
+                                            return l.asap(i, this), e;
+                                          }.bind(t),
+                                        });
+                                    },
+                                    updateWrapper: function (t) {
+                                      var e = t._currentElement.props,
+                                        t = s.getNodeFromInstance(t),
+                                        n = a.getValue(e);
+                                      null != n &&
+                                        ((n = '' + n) !== t.value && (t.value = n),
+                                        null == e.defaultValue && (t.defaultValue = n)),
+                                        null != e.defaultValue && (t.defaultValue = e.defaultValue);
+                                    },
+                                    postMountWrapper: function (t) {
+                                      var e = s.getNodeFromInstance(t),
+                                        n = e.textContent;
+                                      n === t._wrapperState.initialValue && (e.value = n);
+                                    },
+                                  });
+                              e.exports = u;
+                            },
+                            { 113: 113, 138: 138, 143: 143, 144: 144, 23: 23, 33: 33, 71: 71 },
+                          ],
+                          44: [
+                            function (t, e, n) {
+                              function u(t, e) {
+                                '_hostNode' in t || s('33'), '_hostNode' in e || s('33');
+                                for (var n = 0, r = t; r; r = r._hostParent) n++;
+                                for (var i = 0, o = e; o; o = o._hostParent) i++;
+                                for (; 0 < n - i; ) (t = t._hostParent), n--;
+                                for (; 0 < i - n; ) (e = e._hostParent), i--;
+                                for (var a = n; a--; ) {
+                                  if (t === e) return t;
+                                  (t = t._hostParent), (e = e._hostParent);
+                                }
+                                return null;
+                              }
+                              var s = t(113);
+                              t(138),
+                                (e.exports = {
+                                  isAncestor: function (t, e) {
+                                    '_hostNode' in t || s('35'), '_hostNode' in e || s('35');
+                                    for (; e; ) {
+                                      if (e === t) return !0;
+                                      e = e._hostParent;
+                                    }
+                                    return !1;
+                                  },
+                                  getLowestCommonAncestor: u,
+                                  getParentInstance: function (t) {
+                                    return '_hostNode' in t || s('36'), t._hostParent;
+                                  },
+                                  traverseTwoPhase: function (t, e, n) {
+                                    for (var r, i = []; t; ) i.push(t), (t = t._hostParent);
+                                    for (r = i.length; 0 < r--; ) e(i[r], 'captured', n);
+                                    for (r = 0; r < i.length; r++) e(i[r], 'bubbled', n);
+                                  },
+                                  traverseEnterLeave: function (t, e, n, r, i) {
+                                    for (var o = t && e ? u(t, e) : null, a = []; t && t !== o; )
+                                      a.push(t), (t = t._hostParent);
+                                    for (var s, l = []; e && e !== o; )
+                                      l.push(e), (e = e._hostParent);
+                                    for (s = 0; s < a.length; s++) n(a[s], 'bubbled', r);
+                                    for (s = l.length; 0 < s--; ) n(l[s], 'captured', i);
+                                  },
+                                });
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          45: [
+                            function (t, e, n) {
+                              var r = t(121),
+                                t = t(30);
+                              r.addons &&
+                                (r.__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = t),
+                                (e.exports = t);
+                            },
+                            { 121: 121, 30: 30 },
+                          ],
+                          46: [
+                            function (t, e, n) {
+                              function r() {
+                                this.reinitializeTransaction();
+                              }
+                              var i = t(144),
+                                o = t(71),
+                                a = t(89),
+                                t = t(130),
+                                s = {
+                                  initialize: t,
+                                  close: function () {
+                                    c.isBatchingUpdates = !1;
+                                  },
+                                },
+                                l = [{ initialize: t, close: o.flushBatchedUpdates.bind(o) }, s],
+                                u =
+                                  (i(r.prototype, a, {
+                                    getTransactionWrappers: function () {
+                                      return l;
+                                    },
+                                  }),
+                                  new r()),
+                                c = {
+                                  isBatchingUpdates: !1,
+                                  batchedUpdates: function (t, e, n, r, i, o) {
+                                    var a = c.isBatchingUpdates;
+                                    return (
+                                      (c.isBatchingUpdates = !0),
+                                      a ? t(e, n, r, i, o) : u.perform(t, null, e, n, r, i, o)
+                                    );
+                                  },
+                                };
+                              e.exports = c;
+                            },
+                            { 130: 130, 144: 144, 71: 71, 89: 89 },
+                          ],
+                          47: [
+                            function (t, e, n) {
+                              var r = t(1),
+                                i = t(3),
+                                o = t(7),
+                                a = t(14),
+                                s = t(15),
+                                l = t(21),
+                                u = t(27),
+                                c = t(31),
+                                A = t(33),
+                                h = t(35),
+                                p = t(44),
+                                d = t(42),
+                                f = t(46),
+                                g = t(52),
+                                m = t(55),
+                                v = t(65),
+                                b = t(73),
+                                y = t(74),
+                                w = t(75),
+                                E = !1;
+                              e.exports = {
+                                inject: function () {
+                                  E ||
+                                    ((E = !0),
+                                    m.EventEmitter.injectReactEventListener(g),
+                                    m.EventPluginHub.injectEventPluginOrder(a),
+                                    m.EventPluginUtils.injectComponentTree(A),
+                                    m.EventPluginUtils.injectTreeTraversal(p),
+                                    m.EventPluginHub.injectEventPluginsByName({
+                                      SimpleEventPlugin: w,
+                                      EnterLeaveEventPlugin: s,
+                                      ChangeEventPlugin: o,
+                                      SelectEventPlugin: y,
+                                      BeforeInputEventPlugin: i,
+                                    }),
+                                    m.HostComponent.injectGenericComponentClass(c),
+                                    m.HostComponent.injectTextComponentClass(d),
+                                    m.DOMProperty.injectDOMPropertyConfig(r),
+                                    m.DOMProperty.injectDOMPropertyConfig(l),
+                                    m.DOMProperty.injectDOMPropertyConfig(b),
+                                    m.EmptyComponent.injectEmptyComponentFactory(function (t) {
+                                      return new h(t);
+                                    }),
+                                    m.Updates.injectReconcileTransaction(v),
+                                    m.Updates.injectBatchingStrategy(f),
+                                    m.Component.injectEnvironment(u));
+                                },
+                              };
+                            },
+                            {
+                              1: 1,
+                              14: 14,
+                              15: 15,
+                              21: 21,
+                              27: 27,
+                              3: 3,
+                              31: 31,
+                              33: 33,
+                              35: 35,
+                              42: 42,
+                              44: 44,
+                              46: 46,
+                              52: 52,
+                              55: 55,
+                              65: 65,
+                              7: 7,
+                              73: 73,
+                              74: 74,
+                              75: 75,
+                            },
+                          ],
+                          48: [
+                            function (t, e, n) {
+                              var r =
+                                ('function' == typeof Symbol &&
+                                  Symbol.for &&
+                                  Symbol.for('react.element')) ||
+                                60103;
+                              e.exports = r;
+                            },
+                            {},
+                          ],
+                          49: [
+                            function (t, e, n) {
+                              var r,
+                                i = {
+                                  create: function (t) {
+                                    return r(t);
+                                  },
+                                  injection: {
+                                    injectEmptyComponentFactory: function (t) {
+                                      r = t;
+                                    },
+                                  },
+                                };
+                              e.exports = i;
+                            },
+                            {},
+                          ],
+                          50: [
+                            function (t, e, n) {
+                              function r(t, e, n) {
+                                try {
+                                  e(n);
+                                } catch (t) {
+                                  null === i && (i = t);
+                                }
+                              }
+                              var i = null;
+                              e.exports = {
+                                invokeGuardedCallback: r,
+                                invokeGuardedCallbackWithCatch: r,
+                                rethrowCaughtError: function () {
+                                  var t;
+                                  if (i) throw ((t = i), (i = null), t);
+                                },
+                              };
+                            },
+                            {},
+                          ],
+                          51: [
+                            function (t, e, n) {
+                              var i = t(16);
+                              e.exports = {
+                                handleTopLevel: function (t, e, n, r) {
+                                  (t = i.extractEvents(t, e, n, r)),
+                                    i.enqueueEvents(t),
+                                    i.processEventQueue(!1);
+                                },
+                              };
+                            },
+                            { 16: 16 },
+                          ],
+                          52: [
+                            function (t, e, n) {
+                              function r(t, e) {
+                                (this.topLevelType = t),
+                                  (this.nativeEvent = e),
+                                  (this.ancestors = []);
+                              }
+                              function i(t) {
+                                for (
+                                  var e, n = A(t.nativeEvent), r = u.getClosestInstanceFromNode(n);
+                                  t.ancestors.push(r),
+                                    (r =
+                                      r &&
+                                      (function (t) {
+                                        for (; t._hostParent; ) t = t._hostParent;
+                                        var e = u.getNodeFromInstance(t).parentNode;
+                                        return u.getClosestInstanceFromNode(e);
+                                      })(r));
+
+                                );
+                                for (var i = 0; i < t.ancestors.length; i++)
+                                  (e = t.ancestors[i]),
+                                    p._handleTopLevel(
+                                      t.topLevelType,
+                                      e,
+                                      t.nativeEvent,
+                                      A(t.nativeEvent),
+                                    );
+                              }
+                              var o = t(144),
+                                a = t(123),
+                                s = t(124),
+                                l = t(24),
+                                u = t(33),
+                                c = t(71),
+                                A = t(102),
+                                h = t(135),
+                                p =
+                                  (o(r.prototype, {
+                                    destructor: function () {
+                                      (this.topLevelType = null),
+                                        (this.nativeEvent = null),
+                                        (this.ancestors.length = 0);
+                                    },
+                                  }),
+                                  l.addPoolingTo(r, l.twoArgumentPooler),
+                                  {
+                                    _enabled: !0,
+                                    _handleTopLevel: null,
+                                    WINDOW_HANDLE: s.canUseDOM ? window : null,
+                                    setHandleTopLevel: function (t) {
+                                      p._handleTopLevel = t;
+                                    },
+                                    setEnabled: function (t) {
+                                      p._enabled = !!t;
+                                    },
+                                    isEnabled: function () {
+                                      return p._enabled;
+                                    },
+                                    trapBubbledEvent: function (t, e, n) {
+                                      return n
+                                        ? a.listen(n, e, p.dispatchEvent.bind(null, t))
+                                        : null;
+                                    },
+                                    trapCapturedEvent: function (t, e, n) {
+                                      return n
+                                        ? a.capture(n, e, p.dispatchEvent.bind(null, t))
+                                        : null;
+                                    },
+                                    monitorScrollValue: function (t) {
+                                      t = function (t) {
+                                        t(h(window));
+                                      }.bind(null, t);
+                                      a.listen(window, 'scroll', t);
+                                    },
+                                    dispatchEvent: function (t, e) {
+                                      if (p._enabled) {
+                                        t = r.getPooled(t, e);
+                                        try {
+                                          c.batchedUpdates(i, t);
+                                        } finally {
+                                          r.release(t);
+                                        }
+                                      }
+                                    },
+                                  });
+                              e.exports = p;
+                            },
+                            {
+                              102: 102,
+                              123: 123,
+                              124: 124,
+                              135: 135,
+                              144: 144,
+                              24: 24,
+                              33: 33,
+                              71: 71,
+                            },
+                          ],
+                          53: [
+                            function (t, e, n) {
+                              e.exports = { logTopLevelRenders: !1 };
+                            },
+                            {},
+                          ],
+                          54: [
+                            function (t, e, n) {
+                              var r = t(113),
+                                i = (t(138), null),
+                                o = null;
+                              e.exports = {
+                                createInternalComponent: function (t) {
+                                  return i || r('111', t.type), new i(t);
+                                },
+                                createInstanceForText: function (t) {
+                                  return new o(t);
+                                },
+                                isTextComponent: function (t) {
+                                  return t instanceof o;
+                                },
+                                injection: {
+                                  injectGenericComponentClass: function (t) {
+                                    i = t;
+                                  },
+                                  injectTextComponentClass: function (t) {
+                                    o = t;
+                                  },
+                                },
+                              };
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          55: [
+                            function (t, e, n) {
+                              var r = t(11),
+                                i = t(16),
+                                o = t(18),
+                                a = t(28),
+                                s = t(49),
+                                l = t(25),
+                                u = t(54),
+                                t = t(71),
+                                a = {
+                                  Component: a.injection,
+                                  DOMProperty: r.injection,
+                                  EmptyComponent: s.injection,
+                                  EventPluginHub: i.injection,
+                                  EventPluginUtils: o.injection,
+                                  EventEmitter: l.injection,
+                                  HostComponent: u.injection,
+                                  Updates: t.injection,
+                                };
+                              e.exports = a;
+                            },
+                            { 11: 11, 16: 16, 18: 18, 25: 25, 28: 28, 49: 49, 54: 54, 71: 71 },
+                          ],
+                          56: [
+                            function (t, e, n) {
+                              var o = t(41),
+                                r = t(127),
+                                i = t(132),
+                                a = t(133),
+                                s = {
+                                  hasSelectionCapabilities: function (t) {
+                                    var e = t && t.nodeName && t.nodeName.toLowerCase();
+                                    return (
+                                      e &&
+                                      (('input' === e && 'text' === t.type) ||
+                                        'textarea' === e ||
+                                        'true' === t.contentEditable)
+                                    );
+                                  },
+                                  getSelectionInformation: function () {
+                                    var t = a();
+                                    return {
+                                      focusedElem: t,
+                                      selectionRange: s.hasSelectionCapabilities(t)
+                                        ? s.getSelection(t)
+                                        : null,
+                                    };
+                                  },
+                                  restoreSelection: function (t) {
+                                    var e = a(),
+                                      n = t.focusedElem,
+                                      t = t.selectionRange;
+                                    e !== n &&
+                                      r(document.documentElement, n) &&
+                                      (s.hasSelectionCapabilities(n) && s.setSelection(n, t), i(n));
+                                  },
+                                  getSelection: function (t) {
+                                    var e, n;
+                                    return (
+                                      'selectionStart' in t
+                                        ? (e = { start: t.selectionStart, end: t.selectionEnd })
+                                        : document.selection &&
+                                            t.nodeName &&
+                                            'input' === t.nodeName.toLowerCase()
+                                          ? (n =
+                                              document.selection.createRange()).parentElement() ===
+                                              t &&
+                                            (e = {
+                                              start: -n.moveStart('character', -t.value.length),
+                                              end: -n.moveEnd('character', -t.value.length),
+                                            })
+                                          : (e = o.getOffsets(t)),
+                                      e || { start: 0, end: 0 }
+                                    );
+                                  },
+                                  setSelection: function (t, e) {
+                                    var n,
+                                      r = e.start,
+                                      i = e.end;
+                                    void 0 === i && (i = r),
+                                      'selectionStart' in t
+                                        ? ((t.selectionStart = r),
+                                          (t.selectionEnd = Math.min(i, t.value.length)))
+                                        : document.selection &&
+                                            t.nodeName &&
+                                            'input' === t.nodeName.toLowerCase()
+                                          ? ((n = t.createTextRange()).collapse(!0),
+                                            n.moveStart('character', r),
+                                            n.moveEnd('character', i - r),
+                                            n.select())
+                                          : o.setOffsets(t, e);
+                                  },
+                                };
+                              e.exports = s;
+                            },
+                            { 127: 127, 132: 132, 133: 133, 41: 41 },
+                          ],
+                          57: [
+                            function (t, e, n) {
+                              e.exports = {
+                                remove: function (t) {
+                                  t._reactInternalInstance = void 0;
+                                },
+                                get: function (t) {
+                                  return t._reactInternalInstance;
+                                },
+                                has: function (t) {
+                                  return void 0 !== t._reactInternalInstance;
+                                },
+                                set: function (t, e) {
+                                  t._reactInternalInstance = e;
+                                },
+                              };
+                            },
+                            {},
+                          ],
+                          58: [
+                            function (t, e, n) {
+                              e.exports = { debugTool: null };
+                            },
+                            {},
+                          ],
+                          59: [
+                            function (t, e, n) {
+                              var r = t(92),
+                                i = /\/?>/,
+                                o = /^<\!\-\-/,
+                                a = {
+                                  CHECKSUM_ATTR_NAME: 'data-react-checksum',
+                                  addChecksumToMarkup: function (t) {
+                                    var e = r(t);
+                                    return o.test(t)
+                                      ? t
+                                      : t.replace(i, ' ' + a.CHECKSUM_ATTR_NAME + '="' + e + '"$&');
+                                  },
+                                  canReuseMarkup: function (t, e) {
+                                    e =
+                                      (e = e.getAttribute(a.CHECKSUM_ATTR_NAME)) && parseInt(e, 10);
+                                    return r(t) === e;
+                                  },
+                                };
+                              e.exports = a;
+                            },
+                            { 92: 92 },
+                          ],
+                          60: [
+                            function (t, e, U) {
+                              function u(t) {
+                                return t
+                                  ? t.nodeType === F
+                                    ? t.documentElement
+                                    : t.firstChild
+                                  : null;
+                              }
+                              function o(t, e, n, r, i) {
+                                v.logTopLevelRenders &&
+                                  ((o =
+                                    'React mount: ' +
+                                    ('string' == typeof (o = t._currentElement.props.child.type)
+                                      ? o
+                                      : o.displayName || o.name)),
+                                  console.time(o));
+                                var o,
+                                  i = w.mountComponent(t, n, null, g(t, e), i, 0);
+                                o && console.timeEnd(o),
+                                  (t._renderedComponent._topLevelWrapper = t),
+                                  R._mountImageIntoNode(i, e, t, r, n);
+                              }
+                              function i(t, e, n, r) {
+                                var i = B.ReactReconcileTransaction.getPooled(
+                                  !n && m.useCreateElement,
+                                );
+                                i.perform(o, null, t, e, i, n, r),
+                                  B.ReactReconcileTransaction.release(i);
+                              }
+                              function n(t, e, n) {
+                                for (
+                                  w.unmountComponent(t, n),
+                                    e.nodeType === F && (e = e.documentElement);
+                                  e.lastChild;
+
+                                )
+                                  e.removeChild(e.lastChild);
+                              }
+                              function c(t) {
+                                var t = u(t);
+                                if (t) return !(!(t = f.getInstanceFromNode(t)) || !t._hostParent);
+                              }
+                              function s(t) {
+                                return (
+                                  t && (t.nodeType === k || t.nodeType === F || t.nodeType === Q)
+                                );
+                              }
+                              function A(t) {
+                                t =
+                                  (t = (t = u((t = t))) && f.getInstanceFromNode(t)) &&
+                                  !t._hostParent
+                                    ? t
+                                    : null;
+                                return t ? t._hostContainerInfo._topLevelWrapper : null;
+                              }
+                              function h() {
+                                this.rootID = T++;
+                              }
+                              var p = t(113),
+                                l = t(9),
+                                r = t(11),
+                                d = t(121),
+                                a = t(25),
+                                f = (t(120), t(33)),
+                                g = t(34),
+                                m = t(36),
+                                v = t(53),
+                                b = t(57),
+                                y = (t(58), t(59)),
+                                w = t(66),
+                                E = t(70),
+                                B = t(71),
+                                C = t(131),
+                                x = t(109),
+                                I = (t(138), t(115)),
+                                M = t(117),
+                                D = (t(143), r.ID_ATTRIBUTE_NAME),
+                                S = r.ROOT_ATTRIBUTE_NAME,
+                                k = 1,
+                                F = 9,
+                                Q = 11,
+                                _ = {},
+                                T = 1,
+                                R =
+                                  ((h.prototype.isReactComponent = {}),
+                                  (h.prototype.render = function () {
+                                    return this.props.child;
+                                  }),
+                                  (h.isReactTopLevelWrapper = !0),
+                                  {
+                                    TopLevelWrapper: h,
+                                    _instancesByReactRootID: _,
+                                    scrollMonitor: function (t, e) {
+                                      e();
+                                    },
+                                    _updateRootComponent: function (t, e, n, r, i) {
+                                      return (
+                                        R.scrollMonitor(r, function () {
+                                          E.enqueueElementInternal(t, e, n),
+                                            i && E.enqueueCallbackInternal(t, i);
+                                        }),
+                                        t
+                                      );
+                                    },
+                                    _renderNewRootComponent: function (t, e, n, r) {
+                                      s(e) || p('37'), a.ensureScrollValueMonitoring();
+                                      (t = x(t, !1)),
+                                        B.batchedUpdates(i, t, e, n, r),
+                                        (e = t._instance.rootID);
+                                      return (_[e] = t);
+                                    },
+                                    renderSubtreeIntoContainer: function (t, e, n, r) {
+                                      return (
+                                        (null != t && b.has(t)) || p('38'),
+                                        R._renderSubtreeIntoContainer(t, e, n, r)
+                                      );
+                                    },
+                                    _renderSubtreeIntoContainer: function (t, e, n, r) {
+                                      E.validateCallback(r, 'ReactDOM.render'),
+                                        d.isValidElement(e) ||
+                                          p(
+                                            '39',
+                                            'string' == typeof e
+                                              ? " Instead of passing a string like 'div', pass React.createElement('div') or <div />."
+                                              : 'function' == typeof e
+                                                ? ' Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.'
+                                                : null != e && void 0 !== e.props
+                                                  ? ' This may be caused by unintentionally loading two independent copies of React.'
+                                                  : '',
+                                          );
+                                      var i = d.createElement(h, { child: e }),
+                                        o =
+                                          ((t = t
+                                            ? (t = b.get(t))._processChildContext(t._context)
+                                            : C),
+                                          A(n));
+                                      if (o) {
+                                        var a,
+                                          s = o._currentElement.props.child;
+                                        if (M(s, e))
+                                          return (
+                                            (a = o._renderedComponent.getPublicInstance()),
+                                            R._updateRootComponent(
+                                              o,
+                                              i,
+                                              t,
+                                              n,
+                                              r &&
+                                                function () {
+                                                  r.call(a);
+                                                },
+                                            ),
+                                            a
+                                          );
+                                        R.unmountComponentAtNode(n);
+                                      }
+                                      var s = u(n),
+                                        e = s && !(!(e = s).getAttribute || !e.getAttribute(D)),
+                                        l = c(n),
+                                        i = R._renderNewRootComponent(
+                                          i,
+                                          n,
+                                          e && !o && !l,
+                                          t,
+                                        )._renderedComponent.getPublicInstance();
+                                      return r && r.call(i), i;
+                                    },
+                                    render: function (t, e, n) {
+                                      return R._renderSubtreeIntoContainer(null, t, e, n);
+                                    },
+                                    unmountComponentAtNode: function (t) {
+                                      s(t) || p('40');
+                                      var e = A(t);
+                                      return e
+                                        ? (delete _[e._instance.rootID],
+                                          B.batchedUpdates(n, e, t, !1),
+                                          !0)
+                                        : (c(t), 1 === t.nodeType && t.hasAttribute(S), !1);
+                                    },
+                                    _mountImageIntoNode: function (t, e, n, r, i) {
+                                      if ((s(e) || p('41'), r)) {
+                                        r = u(e);
+                                        if (y.canReuseMarkup(t, r))
+                                          return void f.precacheNode(n, r);
+                                        var o = r.getAttribute(y.CHECKSUM_ATTR_NAME),
+                                          a =
+                                            (r.removeAttribute(y.CHECKSUM_ATTR_NAME), r.outerHTML),
+                                          r = (r.setAttribute(y.CHECKSUM_ATTR_NAME, o), t),
+                                          o = (function (t, e) {
+                                            for (
+                                              var n = Math.min(t.length, e.length), r = 0;
+                                              r < n;
+                                              r++
+                                            )
+                                              if (t.charAt(r) !== e.charAt(r)) return r;
+                                            return t.length === e.length ? -1 : n;
+                                          })(r, a),
+                                          r =
+                                            ' (client) ' +
+                                            r.substring(o - 20, o + 20) +
+                                            '\n (server) ' +
+                                            a.substring(o - 20, o + 20);
+                                        e.nodeType === F && p('42', r);
+                                      }
+                                      if ((e.nodeType === F && p('43'), i.useCreateElement)) {
+                                        for (; e.lastChild; ) e.removeChild(e.lastChild);
+                                        l.insertTreeBefore(e, t, null);
+                                      } else I(e, t), f.precacheNode(n, e.firstChild);
+                                    },
+                                  });
+                              e.exports = R;
+                            },
+                            {
+                              109: 109,
+                              11: 11,
+                              113: 113,
+                              115: 115,
+                              117: 117,
+                              120: 120,
+                              121: 121,
+                              131: 131,
+                              138: 138,
+                              143: 143,
+                              25: 25,
+                              33: 33,
+                              34: 34,
+                              36: 36,
+                              53: 53,
+                              57: 57,
+                              58: 58,
+                              59: 59,
+                              66: 66,
+                              70: 70,
+                              71: 71,
+                              9: 9,
+                            },
+                          ],
+                          61: [
+                            function (t, e, n) {
+                              function f(t, e) {
+                                return e && (t = t || []).push(e), t;
+                              }
+                              function g(t, e) {
+                                i.processChildrenUpdates(t, e);
+                              }
+                              var r = t(113),
+                                i = t(28),
+                                m = (t(57), t(58), t(120), t(66)),
+                                a = t(26),
+                                s = (t(130), t(97));
+                              t(138),
+                                (e.exports = {
+                                  Mixin: {
+                                    _reconcilerInstantiateChildren: function (t, e, n) {
+                                      return a.instantiateChildren(t, e, n);
+                                    },
+                                    _reconcilerUpdateChildren: function (t, e, n, r, i, o) {
+                                      e = s(e, 0);
+                                      return (
+                                        a.updateChildren(
+                                          t,
+                                          e,
+                                          n,
+                                          r,
+                                          i,
+                                          this,
+                                          this._hostContainerInfo,
+                                          o,
+                                          0,
+                                        ),
+                                        e
+                                      );
+                                    },
+                                    mountChildren: function (t, e, n) {
+                                      var r,
+                                        i,
+                                        o,
+                                        a = this._reconcilerInstantiateChildren(t, e, n),
+                                        s = [],
+                                        l = 0;
+                                      for (r in (this._renderedChildren = a))
+                                        a.hasOwnProperty(r) &&
+                                          ((i = a[r]),
+                                          (o = m.mountComponent(
+                                            i,
+                                            e,
+                                            this,
+                                            this._hostContainerInfo,
+                                            n,
+                                            0,
+                                          )),
+                                          (i._mountIndex = l++),
+                                          s.push(o));
+                                      return s;
+                                    },
+                                    updateTextContent: function (t) {
+                                      var e,
+                                        n = this._renderedChildren;
+                                      for (e in (a.unmountChildren(n, !1), n))
+                                        n.hasOwnProperty(e) && r('118');
+                                      g(this, [
+                                        {
+                                          type: 'TEXT_CONTENT',
+                                          content: t,
+                                          fromIndex: null,
+                                          fromNode: null,
+                                          toIndex: null,
+                                          afterNode: null,
+                                        },
+                                      ]);
+                                    },
+                                    updateMarkup: function (t) {
+                                      var e,
+                                        n = this._renderedChildren;
+                                      for (e in (a.unmountChildren(n, !1), n))
+                                        n.hasOwnProperty(e) && r('118');
+                                      g(this, [
+                                        {
+                                          type: 'SET_MARKUP',
+                                          content: t,
+                                          fromIndex: null,
+                                          fromNode: null,
+                                          toIndex: null,
+                                          afterNode: null,
+                                        },
+                                      ]);
+                                    },
+                                    updateChildren: function (t, e, n) {
+                                      this._updateChildren(t, e, n);
+                                    },
+                                    _updateChildren: function (t, e, n) {
+                                      var r = this._renderedChildren,
+                                        i = {},
+                                        o = [],
+                                        a = this._reconcilerUpdateChildren(r, t, o, i, e, n);
+                                      if (a || r) {
+                                        var s,
+                                          l,
+                                          u,
+                                          c = null,
+                                          A = 0,
+                                          h = 0,
+                                          p = 0,
+                                          d = null;
+                                        for (s in a)
+                                          a.hasOwnProperty(s) &&
+                                            ((l = r && r[s]) === (u = a[s])
+                                              ? ((c = f(c, this.moveChild(l, d, A, h))),
+                                                (h = Math.max(l._mountIndex, h)),
+                                                (l._mountIndex = A))
+                                              : (l && (h = Math.max(l._mountIndex, h)),
+                                                (c = f(
+                                                  c,
+                                                  this._mountChildAtIndex(u, o[p], d, A, e, n),
+                                                )),
+                                                p++),
+                                            A++,
+                                            (d = m.getHostNode(u)));
+                                        for (s in i)
+                                          i.hasOwnProperty(s) &&
+                                            (c = f(c, this._unmountChild(r[s], i[s])));
+                                        c && g(this, c), (this._renderedChildren = a);
+                                      }
+                                    },
+                                    unmountChildren: function (t) {
+                                      var e = this._renderedChildren;
+                                      a.unmountChildren(e, t), (this._renderedChildren = null);
+                                    },
+                                    moveChild: function (t, e, n, r) {
+                                      if (t._mountIndex < r)
+                                        return (
+                                          (r = e),
+                                          (e = n),
+                                          {
+                                            type: 'MOVE_EXISTING',
+                                            content: null,
+                                            fromIndex: t._mountIndex,
+                                            fromNode: m.getHostNode(t),
+                                            toIndex: e,
+                                            afterNode: r,
+                                          }
+                                        );
+                                    },
+                                    createChild: function (t, e, n) {
+                                      return (
+                                        (t = t._mountIndex),
+                                        {
+                                          type: 'INSERT_MARKUP',
+                                          content: n,
+                                          fromIndex: null,
+                                          fromNode: null,
+                                          toIndex: t,
+                                          afterNode: e,
+                                        }
+                                      );
+                                    },
+                                    removeChild: function (t, e) {
+                                      return {
+                                        type: 'REMOVE_NODE',
+                                        content: null,
+                                        fromIndex: t._mountIndex,
+                                        fromNode: e,
+                                        toIndex: null,
+                                        afterNode: null,
+                                      };
+                                    },
+                                    _mountChildAtIndex: function (t, e, n, r, i, o) {
+                                      return (t._mountIndex = r), this.createChild(t, n, e);
+                                    },
+                                    _unmountChild: function (t, e) {
+                                      e = this.removeChild(t, e);
+                                      return (t._mountIndex = null), e;
+                                    },
+                                  },
+                                });
+                            },
+                            {
+                              113: 113,
+                              120: 120,
+                              130: 130,
+                              138: 138,
+                              26: 26,
+                              28: 28,
+                              57: 57,
+                              58: 58,
+                              66: 66,
+                              97: 97,
+                            },
+                          ],
+                          62: [
+                            function (t, e, n) {
+                              var r = t(113),
+                                i = t(121),
+                                o =
+                                  (t(138),
+                                  {
+                                    HOST: 0,
+                                    COMPOSITE: 1,
+                                    EMPTY: 2,
+                                    getType: function (t) {
+                                      return null === t || !1 === t
+                                        ? o.EMPTY
+                                        : i.isValidElement(t)
+                                          ? 'function' == typeof t.type
+                                            ? o.COMPOSITE
+                                            : o.HOST
+                                          : void r('26', t);
+                                    },
+                                  });
+                              e.exports = o;
+                            },
+                            { 113: 113, 121: 121, 138: 138 },
+                          ],
+                          63: [
+                            function (t, e, n) {
+                              function i(t) {
+                                return (
+                                  t &&
+                                  'function' == typeof t.attachRef &&
+                                  'function' == typeof t.detachRef
+                                );
+                              }
+                              var o = t(113);
+                              t(138),
+                                (e.exports = {
+                                  addComponentAsRefTo: function (t, e, n) {
+                                    i(n) || o('119'), n.attachRef(e, t);
+                                  },
+                                  removeComponentAsRefFrom: function (t, e, n) {
+                                    i(n) || o('120');
+                                    var r = n.getPublicInstance();
+                                    r && r.refs[e] === t.getPublicInstance() && n.detachRef(e);
+                                  },
+                                });
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          64: [
+                            function (t, e, n) {
+                              e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
+                            },
+                            {},
+                          ],
+                          65: [
+                            function (t, e, n) {
+                              function r(t) {
+                                this.reinitializeTransaction(),
+                                  (this.renderToStaticMarkup = !1),
+                                  (this.reactMountReady = o.getPooled(null)),
+                                  (this.useCreateElement = t);
+                              }
+                              var i = t(144),
+                                o = t(6),
+                                a = t(24),
+                                s = t(25),
+                                l = t(56),
+                                u = (t(58), t(89)),
+                                c = t(70),
+                                A = [
+                                  {
+                                    initialize: l.getSelectionInformation,
+                                    close: l.restoreSelection,
+                                  },
+                                  {
+                                    initialize: function () {
+                                      var t = s.isEnabled();
+                                      return s.setEnabled(!1), t;
+                                    },
+                                    close: function (t) {
+                                      s.setEnabled(t);
+                                    },
+                                  },
+                                  {
+                                    initialize: function () {
+                                      this.reactMountReady.reset();
+                                    },
+                                    close: function () {
+                                      this.reactMountReady.notifyAll();
+                                    },
+                                  },
+                                ];
+                              i(r.prototype, u, {
+                                getTransactionWrappers: function () {
+                                  return A;
+                                },
+                                getReactMountReady: function () {
+                                  return this.reactMountReady;
+                                },
+                                getUpdateQueue: function () {
+                                  return c;
+                                },
+                                checkpoint: function () {
+                                  return this.reactMountReady.checkpoint();
+                                },
+                                rollback: function (t) {
+                                  this.reactMountReady.rollback(t);
+                                },
+                                destructor: function () {
+                                  o.release(this.reactMountReady), (this.reactMountReady = null);
+                                },
+                              }),
+                                a.addPoolingTo(r),
+                                (e.exports = r);
+                            },
+                            { 144: 144, 24: 24, 25: 25, 56: 56, 58: 58, 6: 6, 70: 70, 89: 89 },
+                          ],
+                          66: [
+                            function (t, e, n) {
+                              function a() {
+                                s.attachRefs(this, this._currentElement);
+                              }
+                              var s = t(67);
+                              t(58),
+                                t(143),
+                                (e.exports = {
+                                  mountComponent: function (t, e, n, r, i, o) {
+                                    n = t.mountComponent(e, n, r, i, o);
+                                    return (
+                                      t._currentElement &&
+                                        null != t._currentElement.ref &&
+                                        e.getReactMountReady().enqueue(a, t),
+                                      n
+                                    );
+                                  },
+                                  getHostNode: function (t) {
+                                    return t.getHostNode();
+                                  },
+                                  unmountComponent: function (t, e) {
+                                    s.detachRefs(t, t._currentElement), t.unmountComponent(e);
+                                  },
+                                  receiveComponent: function (t, e, n, r) {
+                                    var i,
+                                      o = t._currentElement;
+                                    (e === o && r === t._context) ||
+                                      ((i = s.shouldUpdateRefs(o, e)) && s.detachRefs(t, o),
+                                      t.receiveComponent(e, n, r),
+                                      i &&
+                                        t._currentElement &&
+                                        null != t._currentElement.ref &&
+                                        n.getReactMountReady().enqueue(a, t));
+                                  },
+                                  performUpdateIfNecessary: function (t, e, n) {
+                                    t._updateBatchNumber === n && t.performUpdateIfNecessary(e);
+                                  },
+                                });
+                            },
+                            { 143: 143, 58: 58, 67: 67 },
+                          ],
+                          67: [
+                            function (t, e, n) {
+                              var r = t(63),
+                                t = {};
+                              (t.attachRefs = function (t, e) {
+                                var n;
+                                null !== e &&
+                                  'object' == typeof e &&
+                                  null != (n = e.ref) &&
+                                  ((n = n),
+                                  (t = t),
+                                  (e = e._owner),
+                                  'function' == typeof n
+                                    ? n(t.getPublicInstance())
+                                    : r.addComponentAsRefTo(t, n, e));
+                              }),
+                                (t.shouldUpdateRefs = function (t, e) {
+                                  var n = null,
+                                    r = null,
+                                    t =
+                                      (null !== t &&
+                                        'object' == typeof t &&
+                                        ((n = t.ref), (r = t._owner)),
+                                      null),
+                                    i = null;
+                                  return (
+                                    null !== e &&
+                                      'object' == typeof e &&
+                                      ((t = e.ref), (i = e._owner)),
+                                    n !== t || ('string' == typeof t && i !== r)
+                                  );
+                                }),
+                                (t.detachRefs = function (t, e) {
+                                  var n;
+                                  null !== e &&
+                                    'object' == typeof e &&
+                                    null != (n = e.ref) &&
+                                    ((n = n),
+                                    (t = t),
+                                    (e = e._owner),
+                                    'function' == typeof n
+                                      ? n(null)
+                                      : r.removeComponentAsRefFrom(t, n, e));
+                                }),
+                                (e.exports = t);
+                            },
+                            { 63: 63 },
+                          ],
+                          68: [
+                            function (t, e, n) {
+                              function r(t) {
+                                this.reinitializeTransaction(),
+                                  (this.renderToStaticMarkup = t),
+                                  (this.useCreateElement = !1),
+                                  (this.updateQueue = new s(this));
+                              }
+                              var i = t(144),
+                                o = t(24),
+                                a = t(89),
+                                s = (t(58), t(69)),
+                                l = [],
+                                u = { enqueue: function () {} };
+                              i(r.prototype, a, {
+                                getTransactionWrappers: function () {
+                                  return l;
+                                },
+                                getReactMountReady: function () {
+                                  return u;
+                                },
+                                getUpdateQueue: function () {
+                                  return this.updateQueue;
+                                },
+                                destructor: function () {},
+                                checkpoint: function () {},
+                                rollback: function () {},
+                              }),
+                                o.addPoolingTo(r),
+                                (e.exports = r);
+                            },
+                            { 144: 144, 24: 24, 58: 58, 69: 69, 89: 89 },
+                          ],
+                          69: [
+                            function (t, e, n) {
+                              var r = t(70);
+                              function i(t) {
+                                if (!(this instanceof i))
+                                  throw new TypeError('Cannot call a class as a function');
+                                this.transaction = t;
+                              }
+                              t(143),
+                                (i.prototype.isMounted = function (t) {
+                                  return !1;
+                                }),
+                                (i.prototype.enqueueCallback = function (t, e, n) {
+                                  this.transaction.isInTransaction() && r.enqueueCallback(t, e, n);
+                                }),
+                                (i.prototype.enqueueForceUpdate = function (t) {
+                                  this.transaction.isInTransaction() && r.enqueueForceUpdate(t);
+                                }),
+                                (i.prototype.enqueueReplaceState = function (t, e) {
+                                  this.transaction.isInTransaction() && r.enqueueReplaceState(t, e);
+                                }),
+                                (i.prototype.enqueueSetState = function (t, e) {
+                                  this.transaction.isInTransaction() && r.enqueueSetState(t, e);
+                                }),
+                                (e.exports = i);
+                            },
+                            { 143: 143, 70: 70 },
+                          ],
+                          70: [
+                            function (t, e, n) {
+                              function r(t) {
+                                s.enqueueUpdate(t);
+                              }
+                              function i(t) {
+                                return a.get(t) || null;
+                              }
+                              var o = t(113),
+                                a = (t(120), t(57)),
+                                s = (t(58), t(71)),
+                                l =
+                                  (t(138),
+                                  t(143),
+                                  {
+                                    isMounted: function (t) {
+                                      t = a.get(t);
+                                      return !!t && !!t._renderedComponent;
+                                    },
+                                    enqueueCallback: function (t, e, n) {
+                                      l.validateCallback(e, n);
+                                      n = i(t);
+                                      if (!n) return null;
+                                      n._pendingCallbacks
+                                        ? n._pendingCallbacks.push(e)
+                                        : (n._pendingCallbacks = [e]),
+                                        r(n);
+                                    },
+                                    enqueueCallbackInternal: function (t, e) {
+                                      t._pendingCallbacks
+                                        ? t._pendingCallbacks.push(e)
+                                        : (t._pendingCallbacks = [e]),
+                                        r(t);
+                                    },
+                                    enqueueForceUpdate: function (t) {
+                                      t = i(t);
+                                      t && ((t._pendingForceUpdate = !0), r(t));
+                                    },
+                                    enqueueReplaceState: function (t, e, n) {
+                                      t = i(t);
+                                      t &&
+                                        ((t._pendingStateQueue = [e]),
+                                        (t._pendingReplaceState = !0),
+                                        null != n &&
+                                          (l.validateCallback(n, 'replaceState'),
+                                          t._pendingCallbacks
+                                            ? t._pendingCallbacks.push(n)
+                                            : (t._pendingCallbacks = [n])),
+                                        r(t));
+                                    },
+                                    enqueueSetState: function (t, e) {
+                                      t = i(t);
+                                      t &&
+                                        ((t._pendingStateQueue || (t._pendingStateQueue = [])).push(
+                                          e,
+                                        ),
+                                        r(t));
+                                    },
+                                    enqueueElementInternal: function (t, e, n) {
+                                      (t._pendingElement = e), (t._context = n), r(t);
+                                    },
+                                    validateCallback: function (t, e) {
+                                      t &&
+                                        'function' != typeof t &&
+                                        o(
+                                          '122',
+                                          e,
+                                          'object' != (t = typeof (e = t))
+                                            ? t
+                                            : ((t = (e.constructor && e.constructor.name) || t),
+                                              0 < (e = Object.keys(e)).length && e.length < 20
+                                                ? t + ' (keys: ' + e.join(', ') + ')'
+                                                : t),
+                                        );
+                                    },
+                                  });
+                              e.exports = l;
+                            },
+                            { 113: 113, 120: 120, 138: 138, 143: 143, 57: 57, 58: 58, 71: 71 },
+                          ],
+                          71: [
+                            function (t, e, n) {
+                              function a() {
+                                (w.ReactReconcileTransaction && v) || l('123');
+                              }
+                              function r() {
+                                this.reinitializeTransaction(),
+                                  (this.dirtyComponentsLength = null),
+                                  (this.callbackQueue = u.getPooled()),
+                                  (this.reconcileTransaction =
+                                    w.ReactReconcileTransaction.getPooled(!0));
+                              }
+                              function s(t, e) {
+                                return t._mountOrder - e._mountOrder;
+                              }
+                              function i(t) {
+                                var e = t.dirtyComponentsLength;
+                                e !== d.length && l('124', e, d.length), d.sort(s), f++;
+                                for (var n = 0; n < e; n++) {
+                                  var r,
+                                    i = d[n],
+                                    o = i._pendingCallbacks;
+                                  if (
+                                    ((i._pendingCallbacks = null),
+                                    A.logTopLevelRenders &&
+                                      ((r =
+                                        'React update: ' +
+                                        (i._currentElement.type.isReactTopLevelWrapper
+                                          ? i._renderedComponent
+                                          : i
+                                        ).getName()),
+                                      console.time(r)),
+                                    h.performUpdateIfNecessary(i, t.reconcileTransaction, f),
+                                    r && console.timeEnd(r),
+                                    o)
+                                  )
+                                    for (var a = 0; a < o.length; a++)
+                                      t.callbackQueue.enqueue(o[a], i.getPublicInstance());
+                                }
+                              }
+                              var l = t(113),
+                                o = t(144),
+                                u = t(6),
+                                c = t(24),
+                                A = t(53),
+                                h = t(66),
+                                p = t(89),
+                                d = (t(138), []),
+                                f = 0,
+                                g = u.getPooled(),
+                                m = !1,
+                                v = null,
+                                b = [
+                                  {
+                                    initialize: function () {
+                                      this.dirtyComponentsLength = d.length;
+                                    },
+                                    close: function () {
+                                      this.dirtyComponentsLength !== d.length
+                                        ? (d.splice(0, this.dirtyComponentsLength), y())
+                                        : (d.length = 0);
+                                    },
+                                  },
+                                  {
+                                    initialize: function () {
+                                      this.callbackQueue.reset();
+                                    },
+                                    close: function () {
+                                      this.callbackQueue.notifyAll();
+                                    },
+                                  },
+                                ],
+                                y =
+                                  (o(r.prototype, p, {
+                                    getTransactionWrappers: function () {
+                                      return b;
+                                    },
+                                    destructor: function () {
+                                      (this.dirtyComponentsLength = null),
+                                        u.release(this.callbackQueue),
+                                        (this.callbackQueue = null),
+                                        w.ReactReconcileTransaction.release(
+                                          this.reconcileTransaction,
+                                        ),
+                                        (this.reconcileTransaction = null);
+                                    },
+                                    perform: function (t, e, n) {
+                                      return p.perform.call(
+                                        this,
+                                        this.reconcileTransaction.perform,
+                                        this.reconcileTransaction,
+                                        t,
+                                        e,
+                                        n,
+                                      );
+                                    },
+                                  }),
+                                  c.addPoolingTo(r),
+                                  function () {
+                                    for (; d.length || m; ) {
+                                      var t;
+                                      d.length &&
+                                        ((t = r.getPooled()).perform(i, null, t), r.release(t)),
+                                        m &&
+                                          ((m = !1),
+                                          (t = g),
+                                          (g = u.getPooled()),
+                                          t.notifyAll(),
+                                          u.release(t));
+                                    }
+                                  }),
+                                w = {
+                                  ReactReconcileTransaction: null,
+                                  batchedUpdates: function (t, e, n, r, i, o) {
+                                    return a(), v.batchedUpdates(t, e, n, r, i, o);
+                                  },
+                                  enqueueUpdate: function t(e) {
+                                    a(),
+                                      v.isBatchingUpdates
+                                        ? (d.push(e),
+                                          null == e._updateBatchNumber &&
+                                            (e._updateBatchNumber = f + 1))
+                                        : v.batchedUpdates(t, e);
+                                  },
+                                  flushBatchedUpdates: y,
+                                  injection: {
+                                    injectReconcileTransaction: function (t) {
+                                      t || l('126'), (w.ReactReconcileTransaction = t);
+                                    },
+                                    injectBatchingStrategy: function (t) {
+                                      t || l('127'),
+                                        'function' != typeof t.batchedUpdates && l('128'),
+                                        'boolean' != typeof t.isBatchingUpdates && l('129'),
+                                        (v = t);
+                                    },
+                                  },
+                                  asap: function (t, e) {
+                                    v.isBatchingUpdates || l('125'), g.enqueue(t, e), (m = !0);
+                                  },
+                                };
+                              e.exports = w;
+                            },
+                            { 113: 113, 138: 138, 144: 144, 24: 24, 53: 53, 6: 6, 66: 66, 89: 89 },
+                          ],
+                          72: [
+                            function (t, e, n) {
+                              e.exports = '15.6.1';
+                            },
+                            {},
+                          ],
+                          73: [
+                            function (t, e, n) {
+                              var r = 'http://www.w3.org/1999/xlink',
+                                i = 'http://www.w3.org/XML/1998/namespace',
+                                o = {
+                                  accentHeight: 'accent-height',
+                                  accumulate: 0,
+                                  additive: 0,
+                                  alignmentBaseline: 'alignment-baseline',
+                                  allowReorder: 'allowReorder',
+                                  alphabetic: 0,
+                                  amplitude: 0,
+                                  arabicForm: 'arabic-form',
+                                  ascent: 0,
+                                  attributeName: 'attributeName',
+                                  attributeType: 'attributeType',
+                                  autoReverse: 'autoReverse',
+                                  azimuth: 0,
+                                  baseFrequency: 'baseFrequency',
+                                  baseProfile: 'baseProfile',
+                                  baselineShift: 'baseline-shift',
+                                  bbox: 0,
+                                  begin: 0,
+                                  bias: 0,
+                                  by: 0,
+                                  calcMode: 'calcMode',
+                                  capHeight: 'cap-height',
+                                  clip: 0,
+                                  clipPath: 'clip-path',
+                                  clipRule: 'clip-rule',
+                                  clipPathUnits: 'clipPathUnits',
+                                  colorInterpolation: 'color-interpolation',
+                                  colorInterpolationFilters: 'color-interpolation-filters',
+                                  colorProfile: 'color-profile',
+                                  colorRendering: 'color-rendering',
+                                  contentScriptType: 'contentScriptType',
+                                  contentStyleType: 'contentStyleType',
+                                  cursor: 0,
+                                  cx: 0,
+                                  cy: 0,
+                                  d: 0,
+                                  decelerate: 0,
+                                  descent: 0,
+                                  diffuseConstant: 'diffuseConstant',
+                                  direction: 0,
+                                  display: 0,
+                                  divisor: 0,
+                                  dominantBaseline: 'dominant-baseline',
+                                  dur: 0,
+                                  dx: 0,
+                                  dy: 0,
+                                  edgeMode: 'edgeMode',
+                                  elevation: 0,
+                                  enableBackground: 'enable-background',
+                                  end: 0,
+                                  exponent: 0,
+                                  externalResourcesRequired: 'externalResourcesRequired',
+                                  fill: 0,
+                                  fillOpacity: 'fill-opacity',
+                                  fillRule: 'fill-rule',
+                                  filter: 0,
+                                  filterRes: 'filterRes',
+                                  filterUnits: 'filterUnits',
+                                  floodColor: 'flood-color',
+                                  floodOpacity: 'flood-opacity',
+                                  focusable: 0,
+                                  fontFamily: 'font-family',
+                                  fontSize: 'font-size',
+                                  fontSizeAdjust: 'font-size-adjust',
+                                  fontStretch: 'font-stretch',
+                                  fontStyle: 'font-style',
+                                  fontVariant: 'font-variant',
+                                  fontWeight: 'font-weight',
+                                  format: 0,
+                                  from: 0,
+                                  fx: 0,
+                                  fy: 0,
+                                  g1: 0,
+                                  g2: 0,
+                                  glyphName: 'glyph-name',
+                                  glyphOrientationHorizontal: 'glyph-orientation-horizontal',
+                                  glyphOrientationVertical: 'glyph-orientation-vertical',
+                                  glyphRef: 'glyphRef',
+                                  gradientTransform: 'gradientTransform',
+                                  gradientUnits: 'gradientUnits',
+                                  hanging: 0,
+                                  horizAdvX: 'horiz-adv-x',
+                                  horizOriginX: 'horiz-origin-x',
+                                  ideographic: 0,
+                                  imageRendering: 'image-rendering',
+                                  in: 0,
+                                  in2: 0,
+                                  intercept: 0,
+                                  k: 0,
+                                  k1: 0,
+                                  k2: 0,
+                                  k3: 0,
+                                  k4: 0,
+                                  kernelMatrix: 'kernelMatrix',
+                                  kernelUnitLength: 'kernelUnitLength',
+                                  kerning: 0,
+                                  keyPoints: 'keyPoints',
+                                  keySplines: 'keySplines',
+                                  keyTimes: 'keyTimes',
+                                  lengthAdjust: 'lengthAdjust',
+                                  letterSpacing: 'letter-spacing',
+                                  lightingColor: 'lighting-color',
+                                  limitingConeAngle: 'limitingConeAngle',
+                                  local: 0,
+                                  markerEnd: 'marker-end',
+                                  markerMid: 'marker-mid',
+                                  markerStart: 'marker-start',
+                                  markerHeight: 'markerHeight',
+                                  markerUnits: 'markerUnits',
+                                  markerWidth: 'markerWidth',
+                                  mask: 0,
+                                  maskContentUnits: 'maskContentUnits',
+                                  maskUnits: 'maskUnits',
+                                  mathematical: 0,
+                                  mode: 0,
+                                  numOctaves: 'numOctaves',
+                                  offset: 0,
+                                  opacity: 0,
+                                  operator: 0,
+                                  order: 0,
+                                  orient: 0,
+                                  orientation: 0,
+                                  origin: 0,
+                                  overflow: 0,
+                                  overlinePosition: 'overline-position',
+                                  overlineThickness: 'overline-thickness',
+                                  paintOrder: 'paint-order',
+                                  panose1: 'panose-1',
+                                  pathLength: 'pathLength',
+                                  patternContentUnits: 'patternContentUnits',
+                                  patternTransform: 'patternTransform',
+                                  patternUnits: 'patternUnits',
+                                  pointerEvents: 'pointer-events',
+                                  points: 0,
+                                  pointsAtX: 'pointsAtX',
+                                  pointsAtY: 'pointsAtY',
+                                  pointsAtZ: 'pointsAtZ',
+                                  preserveAlpha: 'preserveAlpha',
+                                  preserveAspectRatio: 'preserveAspectRatio',
+                                  primitiveUnits: 'primitiveUnits',
+                                  r: 0,
+                                  radius: 0,
+                                  refX: 'refX',
+                                  refY: 'refY',
+                                  renderingIntent: 'rendering-intent',
+                                  repeatCount: 'repeatCount',
+                                  repeatDur: 'repeatDur',
+                                  requiredExtensions: 'requiredExtensions',
+                                  requiredFeatures: 'requiredFeatures',
+                                  restart: 0,
+                                  result: 0,
+                                  rotate: 0,
+                                  rx: 0,
+                                  ry: 0,
+                                  scale: 0,
+                                  seed: 0,
+                                  shapeRendering: 'shape-rendering',
+                                  slope: 0,
+                                  spacing: 0,
+                                  specularConstant: 'specularConstant',
+                                  specularExponent: 'specularExponent',
+                                  speed: 0,
+                                  spreadMethod: 'spreadMethod',
+                                  startOffset: 'startOffset',
+                                  stdDeviation: 'stdDeviation',
+                                  stemh: 0,
+                                  stemv: 0,
+                                  stitchTiles: 'stitchTiles',
+                                  stopColor: 'stop-color',
+                                  stopOpacity: 'stop-opacity',
+                                  strikethroughPosition: 'strikethrough-position',
+                                  strikethroughThickness: 'strikethrough-thickness',
+                                  string: 0,
+                                  stroke: 0,
+                                  strokeDasharray: 'stroke-dasharray',
+                                  strokeDashoffset: 'stroke-dashoffset',
+                                  strokeLinecap: 'stroke-linecap',
+                                  strokeLinejoin: 'stroke-linejoin',
+                                  strokeMiterlimit: 'stroke-miterlimit',
+                                  strokeOpacity: 'stroke-opacity',
+                                  strokeWidth: 'stroke-width',
+                                  surfaceScale: 'surfaceScale',
+                                  systemLanguage: 'systemLanguage',
+                                  tableValues: 'tableValues',
+                                  targetX: 'targetX',
+                                  targetY: 'targetY',
+                                  textAnchor: 'text-anchor',
+                                  textDecoration: 'text-decoration',
+                                  textRendering: 'text-rendering',
+                                  textLength: 'textLength',
+                                  to: 0,
+                                  transform: 0,
+                                  u1: 0,
+                                  u2: 0,
+                                  underlinePosition: 'underline-position',
+                                  underlineThickness: 'underline-thickness',
+                                  unicode: 0,
+                                  unicodeBidi: 'unicode-bidi',
+                                  unicodeRange: 'unicode-range',
+                                  unitsPerEm: 'units-per-em',
+                                  vAlphabetic: 'v-alphabetic',
+                                  vHanging: 'v-hanging',
+                                  vIdeographic: 'v-ideographic',
+                                  vMathematical: 'v-mathematical',
+                                  values: 0,
+                                  vectorEffect: 'vector-effect',
+                                  version: 0,
+                                  vertAdvY: 'vert-adv-y',
+                                  vertOriginX: 'vert-origin-x',
+                                  vertOriginY: 'vert-origin-y',
+                                  viewBox: 'viewBox',
+                                  viewTarget: 'viewTarget',
+                                  visibility: 0,
+                                  widths: 0,
+                                  wordSpacing: 'word-spacing',
+                                  writingMode: 'writing-mode',
+                                  x: 0,
+                                  xHeight: 'x-height',
+                                  x1: 0,
+                                  x2: 0,
+                                  xChannelSelector: 'xChannelSelector',
+                                  xlinkActuate: 'xlink:actuate',
+                                  xlinkArcrole: 'xlink:arcrole',
+                                  xlinkHref: 'xlink:href',
+                                  xlinkRole: 'xlink:role',
+                                  xlinkShow: 'xlink:show',
+                                  xlinkTitle: 'xlink:title',
+                                  xlinkType: 'xlink:type',
+                                  xmlBase: 'xml:base',
+                                  xmlns: 0,
+                                  xmlnsXlink: 'xmlns:xlink',
+                                  xmlLang: 'xml:lang',
+                                  xmlSpace: 'xml:space',
+                                  y: 0,
+                                  y1: 0,
+                                  y2: 0,
+                                  yChannelSelector: 'yChannelSelector',
+                                  z: 0,
+                                  zoomAndPan: 'zoomAndPan',
+                                },
+                                a = {
+                                  Properties: {},
+                                  DOMAttributeNamespaces: {
+                                    xlinkActuate: r,
+                                    xlinkArcrole: r,
+                                    xlinkHref: r,
+                                    xlinkRole: r,
+                                    xlinkShow: r,
+                                    xlinkTitle: r,
+                                    xlinkType: r,
+                                    xmlBase: i,
+                                    xmlLang: i,
+                                    xmlSpace: i,
+                                  },
+                                  DOMAttributeNames: {},
+                                };
+                              Object.keys(o).forEach(function (t) {
+                                (a.Properties[t] = 0), o[t] && (a.DOMAttributeNames[t] = o[t]);
+                              }),
+                                (e.exports = a);
+                            },
+                            {},
+                          ],
+                          74: [
+                            function (t, e, n) {
+                              function o(t, e) {
+                                if (m || null == d || d !== u()) return null;
+                                var n =
+                                  'selectionStart' in (n = d) && s.hasSelectionCapabilities(n)
+                                    ? { start: n.selectionStart, end: n.selectionEnd }
+                                    : window.getSelection
+                                      ? {
+                                          anchorNode: (n = window.getSelection()).anchorNode,
+                                          anchorOffset: n.anchorOffset,
+                                          focusNode: n.focusNode,
+                                          focusOffset: n.focusOffset,
+                                        }
+                                      : document.selection
+                                        ? {
+                                            parentElement: (n =
+                                              document.selection.createRange()).parentElement(),
+                                            text: n.text,
+                                            top: n.boundingTop,
+                                            left: n.boundingLeft,
+                                          }
+                                        : void 0;
+                                return g && A(g, n)
+                                  ? null
+                                  : ((g = n),
+                                    ((n = l.getPooled(p.select, f, t, e)).type = 'select'),
+                                    (n.target = d),
+                                    r.accumulateTwoPhaseDispatches(n),
+                                    n);
+                              }
+                              var r = t(19),
+                                i = t(124),
+                                a = t(33),
+                                s = t(56),
+                                l = t(80),
+                                u = t(133),
+                                c = t(111),
+                                A = t(142),
+                                h =
+                                  i.canUseDOM &&
+                                  'documentMode' in document &&
+                                  document.documentMode <= 11,
+                                p = {
+                                  select: {
+                                    phasedRegistrationNames: {
+                                      bubbled: 'onSelect',
+                                      captured: 'onSelectCapture',
+                                    },
+                                    dependencies: [
+                                      'topBlur',
+                                      'topContextMenu',
+                                      'topFocus',
+                                      'topKeyDown',
+                                      'topKeyUp',
+                                      'topMouseDown',
+                                      'topMouseUp',
+                                      'topSelectionChange',
+                                    ],
+                                  },
+                                },
+                                d = null,
+                                f = null,
+                                g = null,
+                                m = !1,
+                                v = !1;
+                              e.exports = {
+                                eventTypes: p,
+                                extractEvents: function (t, e, n, r) {
+                                  if (v) {
+                                    var i = e ? a.getNodeFromInstance(e) : window;
+                                    switch (t) {
+                                      case 'topFocus':
+                                        (!c(i) && 'true' !== i.contentEditable) ||
+                                          ((d = i), (f = e), (g = null));
+                                        break;
+                                      case 'topBlur':
+                                        g = f = d = null;
+                                        break;
+                                      case 'topMouseDown':
+                                        m = !0;
+                                        break;
+                                      case 'topContextMenu':
+                                      case 'topMouseUp':
+                                        return (m = !1), o(n, r);
+                                      case 'topSelectionChange':
+                                        if (h) break;
+                                      case 'topKeyDown':
+                                      case 'topKeyUp':
+                                        return o(n, r);
+                                    }
+                                  }
+                                  return null;
+                                },
+                                didPutListener: function (t, e, n) {
+                                  'onSelect' === e && (v = !0);
+                                },
+                              };
+                            },
+                            {
+                              111: 111,
+                              124: 124,
+                              133: 133,
+                              142: 142,
+                              19: 19,
+                              33: 33,
+                              56: 56,
+                              80: 80,
+                            },
+                          ],
+                          75: [
+                            function (t, e, n) {
+                              function r(t) {
+                                return '.' + t._rootNodeID;
+                              }
+                              function i(t) {
+                                return (
+                                  'button' === t ||
+                                  'input' === t ||
+                                  'select' === t ||
+                                  'textarea' === t
+                                );
+                              }
+                              var a = t(113),
+                                o = t(123),
+                                s = t(19),
+                                l = t(33),
+                                u = t(76),
+                                c = t(77),
+                                A = t(80),
+                                h = t(81),
+                                p = t(83),
+                                d = t(84),
+                                f = t(79),
+                                g = t(85),
+                                m = t(86),
+                                v = t(87),
+                                b = t(88),
+                                y = t(130),
+                                w = t(99),
+                                E = (t(138), {}),
+                                B = {},
+                                C =
+                                  ([
+                                    'abort',
+                                    'animationEnd',
+                                    'animationIteration',
+                                    'animationStart',
+                                    'blur',
+                                    'canPlay',
+                                    'canPlayThrough',
+                                    'click',
+                                    'contextMenu',
+                                    'copy',
+                                    'cut',
+                                    'doubleClick',
+                                    'drag',
+                                    'dragEnd',
+                                    'dragEnter',
+                                    'dragExit',
+                                    'dragLeave',
+                                    'dragOver',
+                                    'dragStart',
+                                    'drop',
+                                    'durationChange',
+                                    'emptied',
+                                    'encrypted',
+                                    'ended',
+                                    'error',
+                                    'focus',
+                                    'input',
+                                    'invalid',
+                                    'keyDown',
+                                    'keyPress',
+                                    'keyUp',
+                                    'load',
+                                    'loadedData',
+                                    'loadedMetadata',
+                                    'loadStart',
+                                    'mouseDown',
+                                    'mouseMove',
+                                    'mouseOut',
+                                    'mouseOver',
+                                    'mouseUp',
+                                    'paste',
+                                    'pause',
+                                    'play',
+                                    'playing',
+                                    'progress',
+                                    'rateChange',
+                                    'reset',
+                                    'scroll',
+                                    'seeked',
+                                    'seeking',
+                                    'stalled',
+                                    'submit',
+                                    'suspend',
+                                    'timeUpdate',
+                                    'touchCancel',
+                                    'touchEnd',
+                                    'touchMove',
+                                    'touchStart',
+                                    'transitionEnd',
+                                    'volumeChange',
+                                    'waiting',
+                                    'wheel',
+                                  ].forEach(function (t) {
+                                    var e = t[0].toUpperCase() + t.slice(1),
+                                      n = 'on' + e,
+                                      e = 'top' + e,
+                                      n = {
+                                        phasedRegistrationNames: {
+                                          bubbled: n,
+                                          captured: n + 'Capture',
+                                        },
+                                        dependencies: [e],
+                                      };
+                                    (E[t] = n), (B[e] = n);
+                                  }),
+                                  {});
+                              e.exports = {
+                                eventTypes: E,
+                                extractEvents: function (t, e, n, r) {
+                                  var i,
+                                    o = B[t];
+                                  if (!o) return null;
+                                  switch (t) {
+                                    case 'topAbort':
+                                    case 'topCanPlay':
+                                    case 'topCanPlayThrough':
+                                    case 'topDurationChange':
+                                    case 'topEmptied':
+                                    case 'topEncrypted':
+                                    case 'topEnded':
+                                    case 'topError':
+                                    case 'topInput':
+                                    case 'topInvalid':
+                                    case 'topLoad':
+                                    case 'topLoadedData':
+                                    case 'topLoadedMetadata':
+                                    case 'topLoadStart':
+                                    case 'topPause':
+                                    case 'topPlay':
+                                    case 'topPlaying':
+                                    case 'topProgress':
+                                    case 'topRateChange':
+                                    case 'topReset':
+                                    case 'topSeeked':
+                                    case 'topSeeking':
+                                    case 'topStalled':
+                                    case 'topSubmit':
+                                    case 'topSuspend':
+                                    case 'topTimeUpdate':
+                                    case 'topVolumeChange':
+                                    case 'topWaiting':
+                                      i = A;
+                                      break;
+                                    case 'topKeyPress':
+                                      if (0 === w(n)) return null;
+                                    case 'topKeyDown':
+                                    case 'topKeyUp':
+                                      i = p;
+                                      break;
+                                    case 'topBlur':
+                                    case 'topFocus':
+                                      i = h;
+                                      break;
+                                    case 'topClick':
+                                      if (2 === n.button) return null;
+                                    case 'topDoubleClick':
+                                    case 'topMouseDown':
+                                    case 'topMouseMove':
+                                    case 'topMouseUp':
+                                    case 'topMouseOut':
+                                    case 'topMouseOver':
+                                    case 'topContextMenu':
+                                      i = d;
+                                      break;
+                                    case 'topDrag':
+                                    case 'topDragEnd':
+                                    case 'topDragEnter':
+                                    case 'topDragExit':
+                                    case 'topDragLeave':
+                                    case 'topDragOver':
+                                    case 'topDragStart':
+                                    case 'topDrop':
+                                      i = f;
+                                      break;
+                                    case 'topTouchCancel':
+                                    case 'topTouchEnd':
+                                    case 'topTouchMove':
+                                    case 'topTouchStart':
+                                      i = g;
+                                      break;
+                                    case 'topAnimationEnd':
+                                    case 'topAnimationIteration':
+                                    case 'topAnimationStart':
+                                      i = u;
+                                      break;
+                                    case 'topTransitionEnd':
+                                      i = m;
+                                      break;
+                                    case 'topScroll':
+                                      i = v;
+                                      break;
+                                    case 'topWheel':
+                                      i = b;
+                                      break;
+                                    case 'topCopy':
+                                    case 'topCut':
+                                    case 'topPaste':
+                                      i = c;
+                                  }
+                                  i || a('86', t);
+                                  t = i.getPooled(o, e, n, r);
+                                  return s.accumulateTwoPhaseDispatches(t), t;
+                                },
+                                didPutListener: function (t, e, n) {
+                                  'onClick' !== e ||
+                                    i(t._tag) ||
+                                    ((e = r(t)),
+                                    (t = l.getNodeFromInstance(t)),
+                                    C[e] || (C[e] = o.listen(t, 'click', y)));
+                                },
+                                willDeleteListener: function (t, e) {
+                                  'onClick' !== e ||
+                                    i(t._tag) ||
+                                    ((e = r(t)), C[e].remove(), delete C[e]);
+                                },
+                              };
+                            },
+                            {
+                              113: 113,
+                              123: 123,
+                              130: 130,
+                              138: 138,
+                              19: 19,
+                              33: 33,
+                              76: 76,
+                              77: 77,
+                              79: 79,
+                              80: 80,
+                              81: 81,
+                              83: 83,
+                              84: 84,
+                              85: 85,
+                              86: 86,
+                              87: 87,
+                              88: 88,
+                              99: 99,
+                            },
+                          ],
+                          76: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(80);
+                              i.augmentClass(r, {
+                                animationName: null,
+                                elapsedTime: null,
+                                pseudoElement: null,
+                              }),
+                                (e.exports = r);
+                            },
+                            { 80: 80 },
+                          ],
+                          77: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(80);
+                              i.augmentClass(r, {
+                                clipboardData: function (t) {
+                                  return ('clipboardData' in t ? t : window).clipboardData;
+                                },
+                              }),
+                                (e.exports = r);
+                            },
+                            { 80: 80 },
+                          ],
+                          78: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(80);
+                              i.augmentClass(r, { data: null }), (e.exports = r);
+                            },
+                            { 80: 80 },
+                          ],
+                          79: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(84);
+                              i.augmentClass(r, { dataTransfer: null }), (e.exports = r);
+                            },
+                            { 84: 84 },
+                          ],
+                          80: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                (this.dispatchConfig = t),
+                                  (this._targetInst = e),
+                                  (this.nativeEvent = n);
+                                var i,
+                                  o,
+                                  a = this.constructor.Interface;
+                                for (i in a)
+                                  a.hasOwnProperty(i) &&
+                                    ((o = a[i])
+                                      ? (this[i] = o(n))
+                                      : 'target' === i
+                                        ? (this.target = r)
+                                        : (this[i] = n[i]));
+                                t =
+                                  null != n.defaultPrevented
+                                    ? n.defaultPrevented
+                                    : !1 === n.returnValue;
+                                return (
+                                  (this.isDefaultPrevented = t
+                                    ? s.thatReturnsTrue
+                                    : s.thatReturnsFalse),
+                                  (this.isPropagationStopped = s.thatReturnsFalse),
+                                  this
+                                );
+                              }
+                              var i = t(144),
+                                o = t(24),
+                                s = t(130),
+                                a =
+                                  (t(143),
+                                  [
+                                    'dispatchConfig',
+                                    '_targetInst',
+                                    'nativeEvent',
+                                    'isDefaultPrevented',
+                                    'isPropagationStopped',
+                                    '_dispatchListeners',
+                                    '_dispatchInstances',
+                                  ]),
+                                t = {
+                                  type: null,
+                                  target: null,
+                                  currentTarget: s.thatReturnsNull,
+                                  eventPhase: null,
+                                  bubbles: null,
+                                  cancelable: null,
+                                  timeStamp: function (t) {
+                                    return t.timeStamp || Date.now();
+                                  },
+                                  defaultPrevented: null,
+                                  isTrusted: null,
+                                };
+                              i(r.prototype, {
+                                preventDefault: function () {
+                                  this.defaultPrevented = !0;
+                                  var t = this.nativeEvent;
+                                  t &&
+                                    (t.preventDefault
+                                      ? t.preventDefault()
+                                      : 'unknown' != typeof t.returnValue && (t.returnValue = !1),
+                                    (this.isDefaultPrevented = s.thatReturnsTrue));
+                                },
+                                stopPropagation: function () {
+                                  var t = this.nativeEvent;
+                                  t &&
+                                    (t.stopPropagation
+                                      ? t.stopPropagation()
+                                      : 'unknown' != typeof t.cancelBubble && (t.cancelBubble = !0),
+                                    (this.isPropagationStopped = s.thatReturnsTrue));
+                                },
+                                persist: function () {
+                                  this.isPersistent = s.thatReturnsTrue;
+                                },
+                                isPersistent: s.thatReturnsFalse,
+                                destructor: function () {
+                                  for (var t in this.constructor.Interface) this[t] = null;
+                                  for (var e = 0; e < a.length; e++) this[a[e]] = null;
+                                },
+                              }),
+                                (r.Interface = t),
+                                (r.augmentClass = function (t, e) {
+                                  function n() {}
+                                  n.prototype = this.prototype;
+                                  var r = new n();
+                                  i(r, t.prototype),
+                                    (t.prototype = r),
+                                    ((t.prototype.constructor = t).Interface = i(
+                                      {},
+                                      this.Interface,
+                                      e,
+                                    )),
+                                    (t.augmentClass = this.augmentClass),
+                                    o.addPoolingTo(t, o.fourArgumentPooler);
+                                }),
+                                o.addPoolingTo(r, o.fourArgumentPooler),
+                                (e.exports = r);
+                            },
+                            { 130: 130, 143: 143, 144: 144, 24: 24 },
+                          ],
+                          81: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(87);
+                              i.augmentClass(r, { relatedTarget: null }), (e.exports = r);
+                            },
+                            { 87: 87 },
+                          ],
+                          82: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(80);
+                              i.augmentClass(r, { data: null }), (e.exports = r);
+                            },
+                            { 80: 80 },
+                          ],
+                          83: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(87),
+                                o = t(99),
+                                a = t(100),
+                                t = t(101);
+                              i.augmentClass(r, {
+                                key: a,
+                                location: null,
+                                ctrlKey: null,
+                                shiftKey: null,
+                                altKey: null,
+                                metaKey: null,
+                                repeat: null,
+                                locale: null,
+                                getModifierState: t,
+                                charCode: function (t) {
+                                  return 'keypress' === t.type ? o(t) : 0;
+                                },
+                                keyCode: function (t) {
+                                  return 'keydown' === t.type || 'keyup' === t.type ? t.keyCode : 0;
+                                },
+                                which: function (t) {
+                                  return 'keypress' === t.type
+                                    ? o(t)
+                                    : 'keydown' === t.type || 'keyup' === t.type
+                                      ? t.keyCode
+                                      : 0;
+                                },
+                              }),
+                                (e.exports = r);
+                            },
+                            { 100: 100, 101: 101, 87: 87, 99: 99 },
+                          ],
+                          84: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(87),
+                                o = t(90),
+                                t = t(101);
+                              i.augmentClass(r, {
+                                screenX: null,
+                                screenY: null,
+                                clientX: null,
+                                clientY: null,
+                                ctrlKey: null,
+                                shiftKey: null,
+                                altKey: null,
+                                metaKey: null,
+                                getModifierState: t,
+                                button: function (t) {
+                                  var e = t.button;
+                                  return 'which' in t ? e : 2 === e ? 2 : 4 === e ? 1 : 0;
+                                },
+                                buttons: null,
+                                relatedTarget: function (t) {
+                                  return (
+                                    t.relatedTarget ||
+                                    (t.fromElement === t.srcElement ? t.toElement : t.fromElement)
+                                  );
+                                },
+                                pageX: function (t) {
+                                  return 'pageX' in t ? t.pageX : t.clientX + o.currentScrollLeft;
+                                },
+                                pageY: function (t) {
+                                  return 'pageY' in t ? t.pageY : t.clientY + o.currentScrollTop;
+                                },
+                              }),
+                                (e.exports = r);
+                            },
+                            { 101: 101, 87: 87, 90: 90 },
+                          ],
+                          85: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(87),
+                                t = t(101);
+                              i.augmentClass(r, {
+                                touches: null,
+                                targetTouches: null,
+                                changedTouches: null,
+                                altKey: null,
+                                metaKey: null,
+                                ctrlKey: null,
+                                shiftKey: null,
+                                getModifierState: t,
+                              }),
+                                (e.exports = r);
+                            },
+                            { 101: 101, 87: 87 },
+                          ],
+                          86: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(80);
+                              i.augmentClass(r, {
+                                propertyName: null,
+                                elapsedTime: null,
+                                pseudoElement: null,
+                              }),
+                                (e.exports = r);
+                            },
+                            { 80: 80 },
+                          ],
+                          87: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(80),
+                                o = t(102);
+                              i.augmentClass(r, {
+                                view: function (t) {
+                                  if (t.view) return t.view;
+                                  t = o(t);
+                                  if (t.window === t) return t;
+                                  t = t.ownerDocument;
+                                  return t ? t.defaultView || t.parentWindow : window;
+                                },
+                                detail: function (t) {
+                                  return t.detail || 0;
+                                },
+                              }),
+                                (e.exports = r);
+                            },
+                            { 102: 102, 80: 80 },
+                          ],
+                          88: [
+                            function (t, e, n) {
+                              function r(t, e, n, r) {
+                                return i.call(this, t, e, n, r);
+                              }
+                              var i = t(84);
+                              i.augmentClass(r, {
+                                deltaX: function (t) {
+                                  return 'deltaX' in t
+                                    ? t.deltaX
+                                    : 'wheelDeltaX' in t
+                                      ? -t.wheelDeltaX
+                                      : 0;
+                                },
+                                deltaY: function (t) {
+                                  return 'deltaY' in t
+                                    ? t.deltaY
+                                    : 'wheelDeltaY' in t
+                                      ? -t.wheelDeltaY
+                                      : 'wheelDelta' in t
+                                        ? -t.wheelDelta
+                                        : 0;
+                                },
+                                deltaZ: null,
+                                deltaMode: null,
+                              }),
+                                (e.exports = r);
+                            },
+                            { 84: 84 },
+                          ],
+                          89: [
+                            function (t, e, n) {
+                              var c = t(113),
+                                a = (t(138), {});
+                              e.exports = {
+                                reinitializeTransaction: function () {
+                                  (this.transactionWrappers = this.getTransactionWrappers()),
+                                    this.wrapperInitData
+                                      ? (this.wrapperInitData.length = 0)
+                                      : (this.wrapperInitData = []),
+                                    (this._isInTransaction = !1);
+                                },
+                                _isInTransaction: !1,
+                                getTransactionWrappers: null,
+                                isInTransaction: function () {
+                                  return !!this._isInTransaction;
+                                },
+                                perform: function (t, e, n, r, i, o, a, s) {
+                                  var l, u;
+                                  this.isInTransaction() && c('27');
+                                  try {
+                                    (l = this._isInTransaction = !0),
+                                      this.initializeAll(0),
+                                      (u = t.call(e, n, r, i, o, a, s)),
+                                      (l = !1);
+                                  } finally {
+                                    try {
+                                      if (l)
+                                        try {
+                                          this.closeAll(0);
+                                        } catch (t) {}
+                                      else this.closeAll(0);
+                                    } finally {
+                                      this._isInTransaction = !1;
+                                    }
+                                  }
+                                  return u;
+                                },
+                                initializeAll: function (t) {
+                                  for (var e = this.transactionWrappers, n = t; n < e.length; n++) {
+                                    var r = e[n];
+                                    try {
+                                      (this.wrapperInitData[n] = a),
+                                        (this.wrapperInitData[n] = r.initialize
+                                          ? r.initialize.call(this)
+                                          : null);
+                                    } finally {
+                                      if (this.wrapperInitData[n] === a)
+                                        try {
+                                          this.initializeAll(n + 1);
+                                        } catch (t) {}
+                                    }
+                                  }
+                                },
+                                closeAll: function (t) {
+                                  this.isInTransaction() || c('28');
+                                  for (var e = this.transactionWrappers, n = t; n < e.length; n++) {
+                                    var r,
+                                      i = e[n],
+                                      o = this.wrapperInitData[n];
+                                    try {
+                                      (r = !0),
+                                        o !== a && i.close && i.close.call(this, o),
+                                        (r = !1);
+                                    } finally {
+                                      if (r)
+                                        try {
+                                          this.closeAll(n + 1);
+                                        } catch (t) {}
+                                    }
+                                  }
+                                  this.wrapperInitData.length = 0;
+                                },
+                              };
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          90: [
+                            function (t, e, n) {
+                              var r = {
+                                currentScrollLeft: 0,
+                                currentScrollTop: 0,
+                                refreshScrollValues: function (t) {
+                                  (r.currentScrollLeft = t.x), (r.currentScrollTop = t.y);
+                                },
+                              };
+                              e.exports = r;
+                            },
+                            {},
+                          ],
+                          91: [
+                            function (t, e, n) {
+                              var r = t(113);
+                              t(138),
+                                (e.exports = function (t, e) {
+                                  return (
+                                    null == e && r('30'),
+                                    null == t
+                                      ? e
+                                      : Array.isArray(t)
+                                        ? (Array.isArray(e) ? t.push.apply(t, e) : t.push(e), t)
+                                        : Array.isArray(e)
+                                          ? [t].concat(e)
+                                          : [t, e]
+                                  );
+                                });
+                            },
+                            { 113: 113, 138: 138 },
+                          ],
+                          92: [
+                            function (t, e, n) {
+                              var s = 65521;
+                              e.exports = function (t) {
+                                for (var e = 1, n = 0, r = 0, i = t.length, o = -4 & i; r < o; ) {
+                                  for (var a = Math.min(r + 4096, o); r < a; r += 4)
+                                    n +=
+                                      (e += t.charCodeAt(r)) +
+                                      (e += t.charCodeAt(r + 1)) +
+                                      (e += t.charCodeAt(r + 2)) +
+                                      (e += t.charCodeAt(r + 3));
+                                  (e %= s), (n %= s);
+                                }
+                                for (; r < i; r++) n += e += t.charCodeAt(r);
+                                return (e %= s) | ((n %= s) << 16);
+                              };
+                            },
+                            {},
+                          ],
+                          93: [
+                            function (t, e, n) {
+                              e.exports = function (i) {
+                                return 'undefined' != typeof MSApp && MSApp.execUnsafeLocalFunction
+                                  ? function (t, e, n, r) {
+                                      MSApp.execUnsafeLocalFunction(function () {
+                                        return i(t, e, n, r);
+                                      });
+                                    }
+                                  : i;
+                              };
+                            },
+                            {},
+                          ],
+                          94: [
+                            function (t, e, n) {
+                              var r = t(4),
+                                o = (t(143), r.isUnitlessNumber);
+                              e.exports = function (t, e, n, r) {
+                                if (null == e || 'boolean' == typeof e || '' === e) return '';
+                                var i = isNaN(e);
+                                return r || i || 0 === e || (o.hasOwnProperty(t) && o[t])
+                                  ? '' + e
+                                  : (e = 'string' == typeof e ? e.trim() : e) + 'px';
+                              };
+                            },
+                            { 143: 143, 4: 4 },
+                          ],
+                          95: [
+                            function (t, e, n) {
+                              var s = /["'&<>]/;
+                              e.exports = function (t) {
+                                if ('boolean' == typeof t || 'number' == typeof t) return '' + t;
+                                var e = t,
+                                  n = '' + t;
+                                if (!(e = s.exec(n))) return n;
+                                for (var r, i = '', o = 0, a = 0, o = e.index; o < n.length; o++) {
+                                  switch (n.charCodeAt(o)) {
+                                    case 34:
+                                      r = '&quot;';
+                                      break;
+                                    case 38:
+                                      r = '&amp;';
+                                      break;
+                                    case 39:
+                                      r = '&#x27;';
+                                      break;
+                                    case 60:
+                                      r = '&lt;';
+                                      break;
+                                    case 62:
+                                      r = '&gt;';
+                                      break;
+                                    default:
+                                      continue;
+                                  }
+                                  a !== o && (i += n.substring(a, o)), (a = o + 1), (i += r);
+                                }
+                                return a !== o ? i + n.substring(a, o) : i;
+                              };
+                            },
+                            {},
+                          ],
+                          96: [
+                            function (t, e, n) {
+                              var r = t(113),
+                                i = (t(120), t(33)),
+                                o = t(57),
+                                a = t(103);
+                              t(138),
+                                t(143),
+                                (e.exports = function (t) {
+                                  return null == t
+                                    ? null
+                                    : 1 === t.nodeType
+                                      ? t
+                                      : (e = o.get(t))
+                                        ? (e = a(e))
+                                          ? i.getNodeFromInstance(e)
+                                          : null
+                                        : void ('function' == typeof t.render
+                                            ? r('44')
+                                            : r('45', Object.keys(t)));
+                                  var e;
+                                });
+                            },
+                            { 103: 103, 113: 113, 120: 120, 138: 138, 143: 143, 33: 33, 57: 57 },
+                          ],
+                          97: [
+                            function (e, n, t) {
+                              !function (t) {
+                                function r(t, e, n, r) {
+                                  t &&
+                                    'object' == typeof t &&
+                                    void 0 === t[n] &&
+                                    null != e &&
+                                    (t[n] = e);
+                                }
+                                e(22);
+                                var i = e(118);
+                                e(143),
+                                  void 0 !== t && t.env,
+                                  (n.exports = function (t, e) {
+                                    if (null == t) return t;
+                                    var n = {};
+                                    return i(t, r, n), n;
+                                  });
+                              }.call(this, void 0);
+                            },
+                            { 118: 118, 143: 143, 22: 22 },
+                          ],
+                          98: [
+                            function (t, e, n) {
+                              e.exports = function (t, e, n) {
+                                Array.isArray(t) ? t.forEach(e, n) : t && e.call(n, t);
+                              };
+                            },
+                            {},
+                          ],
+                          99: [
+                            function (t, e, n) {
+                              e.exports = function (t) {
+                                var e,
+                                  n = t.keyCode;
+                                return (
+                                  'charCode' in t
+                                    ? 0 === (e = t.charCode) && 13 === n && (e = 13)
+                                    : (e = n),
+                                  32 <= e || 13 === e ? e : 0
+                                );
+                              };
+                            },
+                            {},
+                          ],
+                          100: [
+                            function (t, e, n) {
+                              var r = t(99),
+                                i = {
+                                  Esc: 'Escape',
+                                  Spacebar: ' ',
+                                  Left: 'ArrowLeft',
+                                  Up: 'ArrowUp',
+                                  Right: 'ArrowRight',
+                                  Down: 'ArrowDown',
+                                  Del: 'Delete',
+                                  Win: 'OS',
+                                  Menu: 'ContextMenu',
+                                  Apps: 'ContextMenu',
+                                  Scroll: 'ScrollLock',
+                                  MozPrintableKey: 'Unidentified',
+                                },
+                                o = {
+                                  8: 'Backspace',
+                                  9: 'Tab',
+                                  12: 'Clear',
+                                  13: 'Enter',
+                                  16: 'Shift',
+                                  17: 'Control',
+                                  18: 'Alt',
+                                  19: 'Pause',
+                                  20: 'CapsLock',
+                                  27: 'Escape',
+                                  32: ' ',
+                                  33: 'PageUp',
+                                  34: 'PageDown',
+                                  35: 'End',
+                                  36: 'Home',
+                                  37: 'ArrowLeft',
+                                  38: 'ArrowUp',
+                                  39: 'ArrowRight',
+                                  40: 'ArrowDown',
+                                  45: 'Insert',
+                                  46: 'Delete',
+                                  112: 'F1',
+                                  113: 'F2',
+                                  114: 'F3',
+                                  115: 'F4',
+                                  116: 'F5',
+                                  117: 'F6',
+                                  118: 'F7',
+                                  119: 'F8',
+                                  120: 'F9',
+                                  121: 'F10',
+                                  122: 'F11',
+                                  123: 'F12',
+                                  144: 'NumLock',
+                                  145: 'ScrollLock',
+                                  224: 'Meta',
+                                };
+                              e.exports = function (t) {
+                                if (t.key) {
+                                  var e = i[t.key] || t.key;
+                                  if ('Unidentified' !== e) return e;
+                                }
+                                return 'keypress' === t.type
+                                  ? 13 === (e = r(t))
+                                    ? 'Enter'
+                                    : String.fromCharCode(e)
+                                  : 'keydown' === t.type || 'keyup' === t.type
+                                    ? o[t.keyCode] || 'Unidentified'
+                                    : '';
+                              };
+                            },
+                            { 99: 99 },
+                          ],
+                          101: [
+                            function (t, e, n) {
+                              function r(t) {
+                                var e = this.nativeEvent;
+                                if (e.getModifierState) return e.getModifierState(t);
+                                t = i[t];
+                                return !!t && !!e[t];
+                              }
+                              var i = {
+                                Alt: 'altKey',
+                                Control: 'ctrlKey',
+                                Meta: 'metaKey',
+                                Shift: 'shiftKey',
+                              };
+                              e.exports = function (t) {
+                                return r;
+                              };
+                            },
+                            {},
+                          ],
+                          102: [
+                            function (t, e, n) {
+                              e.exports = function (t) {
+                                return 3 ===
+                                  (t = (t = t.target || t.srcElement || window)
+                                    .correspondingUseElement
+                                    ? t.correspondingUseElement
+                                    : t).nodeType
+                                  ? t.parentNode
+                                  : t;
+                              };
+                            },
+                            {},
+                          ],
+                          103: [
+                            function (t, e, n) {
+                              var r = t(62);
+                              e.exports = function (t) {
+                                for (var e; (e = t._renderedNodeType) === r.COMPOSITE; )
+                                  t = t._renderedComponent;
+                                return e === r.HOST
+                                  ? t._renderedComponent
+                                  : e === r.EMPTY
+                                    ? null
+                                    : void 0;
+                              };
+                            },
+                            { 62: 62 },
+                          ],
+                          104: [
+                            function (t, e, n) {
+                              var r = 'function' == typeof Symbol && Symbol.iterator,
+                                i = '@@iterator';
+                              e.exports = function (t) {
+                                if ('function' == typeof (t = t && ((r && t[r]) || t[i]))) return t;
+                              };
+                            },
+                            {},
+                          ],
+                          105: [
+                            function (t, e, n) {
+                              function o(t) {
+                                for (; t && t.firstChild; ) t = t.firstChild;
+                                return t;
+                              }
+                              e.exports = function (t, e) {
+                                for (var n, r = o(t), i = 0; r; ) {
+                                  if (3 === r.nodeType) {
+                                    if (((n = i + r.textContent.length), i <= e && e <= n))
+                                      return { node: r, offset: e - i };
+                                    i = n;
+                                  }
+                                  r = o(
+                                    (function (t) {
+                                      for (; t; ) {
+                                        if (t.nextSibling) return t.nextSibling;
+                                        t = t.parentNode;
+                                      }
+                                    })(r),
+                                  );
+                                }
+                              };
+                            },
+                            {},
+                          ],
+                          106: [
+                            function (t, e, n) {
+                              var r = t(124),
+                                i = null;
+                              e.exports = function () {
+                                return (i =
+                                  !i && r.canUseDOM
+                                    ? 'textContent' in document.documentElement
+                                      ? 'textContent'
+                                      : 'innerText'
+                                    : i);
+                              };
+                            },
+                            { 124: 124 },
+                          ],
+                          107: [
+                            function (t, e, n) {
+                              function r(t, e) {
+                                var n = {};
+                                return (
+                                  (n[t.toLowerCase()] = e.toLowerCase()),
+                                  (n['Webkit' + t] = 'webkit' + e),
+                                  (n['Moz' + t] = 'moz' + e),
+                                  (n['ms' + t] = 'MS' + e),
+                                  (n['O' + t] = 'o' + e.toLowerCase()),
+                                  n
+                                );
+                              }
+                              var t = t(124),
+                                i = {
+                                  animationend: r('Animation', 'AnimationEnd'),
+                                  animationiteration: r('Animation', 'AnimationIteration'),
+                                  animationstart: r('Animation', 'AnimationStart'),
+                                  transitionend: r('Transition', 'TransitionEnd'),
+                                },
+                                o = {},
+                                a = {};
+                              t.canUseDOM &&
+                                ((a = document.createElement('div').style),
+                                'AnimationEvent' in window ||
+                                  (delete i.animationend.animation,
+                                  delete i.animationiteration.animation,
+                                  delete i.animationstart.animation),
+                                'TransitionEvent' in window || delete i.transitionend.transition),
+                                (e.exports = function (t) {
+                                  if (o[t]) return o[t];
+                                  if (!i[t]) return t;
+                                  var e,
+                                    n = i[t];
+                                  for (e in n)
+                                    if (n.hasOwnProperty(e) && e in a) return (o[t] = n[e]);
+                                  return '';
+                                });
+                            },
+                            { 124: 124 },
+                          ],
+                          108: [
+                            function (t, e, n) {
+                              function a(t) {
+                                var e = t.type,
+                                  t = t.nodeName;
+                                return (
+                                  t &&
+                                  'input' === t.toLowerCase() &&
+                                  ('checkbox' === e || 'radio' === e)
+                                );
+                              }
+                              function s(t) {
+                                return t._wrapperState.valueTracker;
+                              }
+                              var l = t(33),
+                                i = {
+                                  _getTrackerFromNode: function (t) {
+                                    return s(l.getInstanceFromNode(t));
+                                  },
+                                  track: function (t) {
+                                    var e, n, r, i, o;
+                                    s(t) ||
+                                      ((e = l.getNodeFromInstance(t)),
+                                      (n = a(e) ? 'checked' : 'value'),
+                                      (r = Object.getOwnPropertyDescriptor(
+                                        e.constructor.prototype,
+                                        n,
+                                      )),
+                                      (i = '' + e[n]),
+                                      e.hasOwnProperty(n) ||
+                                        'function' != typeof r.get ||
+                                        'function' != typeof r.set ||
+                                        (Object.defineProperty(e, n, {
+                                          enumerable: r.enumerable,
+                                          configurable: !0,
+                                          get: function () {
+                                            return r.get.call(this);
+                                          },
+                                          set: function (t) {
+                                            (i = '' + t), r.set.call(this, t);
+                                          },
+                                        }),
+                                        (o = {
+                                          getValue: function () {
+                                            return i;
+                                          },
+                                          setValue: function (t) {
+                                            i = '' + t;
+                                          },
+                                          stopTracking: function () {
+                                            delete t._wrapperState.valueTracker, delete e[n];
+                                          },
+                                        }),
+                                        (t._wrapperState.valueTracker = o)));
+                                  },
+                                  updateValueIfChanged: function (t) {
+                                    if (!t) return !1;
+                                    var e = s(t);
+                                    if (!e) return i.track(t), !0;
+                                    var n,
+                                      r = e.getValue(),
+                                      t =
+                                        ((t = l.getNodeFromInstance(t)),
+                                        (n = t ? (a(t) ? '' + t.checked : t.value) : n));
+                                    return t !== r && (e.setValue(t), !0);
+                                  },
+                                  stopTracking: function (t) {
+                                    t = s(t);
+                                    t && t.stopTracking();
+                                  },
+                                };
+                              e.exports = i;
+                            },
+                            { 33: 33 },
+                          ],
+                          109: [
+                            function (t, e, n) {
+                              function a(t, e) {
+                                var n, r, i, o;
+                                return (
+                                  null === t || !1 === t
+                                    ? (n = l.create(a))
+                                    : 'object' == typeof t
+                                      ? ('function' != typeof (o = (r = t).type) &&
+                                          'string' != typeof o &&
+                                          ((i = ''),
+                                          (i += (function (t) {
+                                            if (t) {
+                                              t = t.getName();
+                                              if (t)
+                                                return ' Check the render method of `' + t + '`.';
+                                            }
+                                            return '';
+                                          })(r._owner)),
+                                          s('130', null == o ? o : typeof o, i)),
+                                        'string' == typeof r.type
+                                          ? (n = u.createInternalComponent(r))
+                                          : 'function' == typeof (o = r.type) &&
+                                              void 0 !== o.prototype &&
+                                              'function' == typeof o.prototype.mountComponent &&
+                                              'function' == typeof o.prototype.receiveComponent
+                                            ? (n = new r.type(r)).getHostNode ||
+                                              (n.getHostNode = n.getNativeNode)
+                                            : (n = new c(r)))
+                                      : 'string' == typeof t || 'number' == typeof t
+                                        ? (n = u.createInstanceForText(t))
+                                        : s('131', typeof t),
+                                  (n._mountIndex = 0),
+                                  (n._mountImage = null),
+                                  n
+                                );
+                              }
+                              var s = t(113),
+                                r = t(144),
+                                i = t(29),
+                                l = t(49),
+                                u = t(54),
+                                c =
+                                  (t(122),
+                                  t(138),
+                                  t(143),
+                                  function (t) {
+                                    this.construct(t);
+                                  });
+                              r(c.prototype, i, { _instantiateReactComponent: a }), (e.exports = a);
+                            },
+                            {
+                              113: 113,
+                              122: 122,
+                              138: 138,
+                              143: 143,
+                              144: 144,
+                              29: 29,
+                              49: 49,
+                              54: 54,
+                            },
+                          ],
+                          110: [
+                            function (t, e, n) {
+                              var i,
+                                o = t(124);
+                              o.canUseDOM &&
+                                (i =
+                                  document.implementation &&
+                                  document.implementation.hasFeature &&
+                                  !0 !== document.implementation.hasFeature('', '')),
+                                (e.exports = function (t, e) {
+                                  if (!o.canUseDOM || (e && !('addEventListener' in document)))
+                                    return !1;
+                                  var n,
+                                    r = (e = 'on' + t) in document;
+                                  return (
+                                    r ||
+                                      ((n = document.createElement('div')).setAttribute(
+                                        e,
+                                        'return;',
+                                      ),
+                                      (r = 'function' == typeof n[e])),
+                                    (r =
+                                      !r && i && 'wheel' === t
+                                        ? document.implementation.hasFeature('Events.wheel', '3.0')
+                                        : r)
+                                  );
+                                });
+                            },
+                            { 124: 124 },
+                          ],
+                          111: [
+                            function (t, e, n) {
+                              var r = {
+                                color: !0,
+                                date: !0,
+                                datetime: !0,
+                                'datetime-local': !0,
+                                email: !0,
+                                month: !0,
+                                number: !0,
+                                password: !0,
+                                range: !0,
+                                search: !0,
+                                tel: !0,
+                                text: !0,
+                                time: !0,
+                                url: !0,
+                                week: !0,
+                              };
+                              e.exports = function (t) {
+                                var e = t && t.nodeName && t.nodeName.toLowerCase();
+                                return 'input' === e ? !!r[t.type] : 'textarea' === e;
+                              };
+                            },
+                            {},
+                          ],
+                          112: [
+                            function (t, e, n) {
+                              var r = t(95);
+                              e.exports = function (t) {
+                                return '"' + r(t) + '"';
+                              };
+                            },
+                            { 95: 95 },
+                          ],
+                          113: [
+                            function (t, e, n) {
+                              e.exports = function (t) {
+                                for (
+                                  var e = arguments.length - 1,
+                                    n =
+                                      'Minified React error #' +
+                                      t +
+                                      '; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=' +
+                                      t,
+                                    r = 0;
+                                  r < e;
+                                  r++
+                                )
+                                  n += '&args[]=' + encodeURIComponent(arguments[r + 1]);
+                                throw (
+                                  ((n +=
+                                    ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.'),
+                                  ((t = new Error(n)).name = 'Invariant Violation'),
+                                  (t.framesToPop = 1),
+                                  t)
+                                );
+                              };
+                            },
+                            {},
+                          ],
+                          114: [
+                            function (t, e, n) {
+                              t = t(60);
+                              e.exports = t.renderSubtreeIntoContainer;
+                            },
+                            { 60: 60 },
+                          ],
+                          115: [
+                            function (t, e, n) {
+                              var r,
+                                i = t(124),
+                                o = t(10),
+                                a = /^[ \r\n\t\f]/,
+                                s = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,
+                                t = t(93)(function (t, e) {
+                                  if (t.namespaceURI !== o.svg || 'innerHTML' in t) t.innerHTML = e;
+                                  else {
+                                    (r = r || document.createElement('div')).innerHTML =
+                                      '<svg>' + e + '</svg>';
+                                    for (var n = r.firstChild; n.firstChild; )
+                                      t.appendChild(n.firstChild);
+                                  }
+                                });
+                              i.canUseDOM &&
+                                (((i = document.createElement('div')).innerHTML = ' '),
+                                '' === i.innerHTML &&
+                                  (t = function (t, e) {
+                                    var n;
+                                    t.parentNode && t.parentNode.replaceChild(t, t),
+                                      a.test(e) || ('<' === e[0] && s.test(e))
+                                        ? ((t.innerHTML = String.fromCharCode(65279) + e),
+                                          1 === (n = t.firstChild).data.length
+                                            ? t.removeChild(n)
+                                            : n.deleteData(0, 1))
+                                        : (t.innerHTML = e);
+                                  }),
+                                (i = null)),
+                                (e.exports = t);
+                            },
+                            { 10: 10, 124: 124, 93: 93 },
+                          ],
+                          116: [
+                            function (t, e, n) {
+                              var r = t(124),
+                                i = t(95),
+                                o = t(115),
+                                t = function (t, e) {
+                                  if (e) {
+                                    var n = t.firstChild;
+                                    if (n && n === t.lastChild && 3 === n.nodeType)
+                                      return void (n.nodeValue = e);
+                                  }
+                                  t.textContent = e;
+                                };
+                              !r.canUseDOM ||
+                                'textContent' in document.documentElement ||
+                                (t = function (t, e) {
+                                  3 === t.nodeType ? (t.nodeValue = e) : o(t, i(e));
+                                }),
+                                (e.exports = t);
+                            },
+                            { 115: 115, 124: 124, 95: 95 },
+                          ],
+                          117: [
+                            function (t, e, n) {
+                              e.exports = function (t, e) {
+                                var n = null === t || !1 === t,
+                                  r = null === e || !1 === e;
+                                return n || r
+                                  ? n == r
+                                  : ((r = typeof e),
+                                    'string' == (n = typeof t) || 'number' == n
+                                      ? 'string' == r || 'number' == r
+                                      : 'object' == r && t.type === e.type && t.key === e.key);
+                              };
+                            },
+                            {},
+                          ],
+                          118: [
+                            function (t, e, n) {
+                              function d(t, e) {
+                                return t && 'object' == typeof t && null != t.key
+                                  ? v.escape(t.key)
+                                  : e.toString(36);
+                              }
+                              var f = t(113),
+                                g = (t(120), t(48)),
+                                m = t(104),
+                                v = (t(138), t(22)),
+                                b = (t(143), '.'),
+                                y = ':';
+                              e.exports = function (t, e, n) {
+                                return null == t
+                                  ? 0
+                                  : (function t(e, n, r, i) {
+                                      var o = typeof e;
+                                      if (
+                                        null ===
+                                          (e = 'undefined' != o && 'boolean' != o ? e : null) ||
+                                        'string' == o ||
+                                        'number' == o ||
+                                        ('object' == o && e.$$typeof === g)
+                                      )
+                                        return r(i, e, '' === n ? b + d(e, 0) : n), 1;
+                                      var a,
+                                        s = 0,
+                                        l = '' === n ? b : n + y;
+                                      if (Array.isArray(e))
+                                        for (var u = 0; u < e.length; u++)
+                                          s += t((a = e[u]), l + d(a, u), r, i);
+                                      else if ((n = m(e))) {
+                                        var c,
+                                          A = n.call(e);
+                                        if (n !== e.entries)
+                                          for (var h = 0; !(c = A.next()).done; )
+                                            s += t((a = c.value), l + d(a, h++), r, i);
+                                        else
+                                          for (; !(c = A.next()).done; ) {
+                                            var p = c.value;
+                                            p &&
+                                              (s += t(
+                                                (a = p[1]),
+                                                l + v.escape(p[0]) + y + d(a, 0),
+                                                r,
+                                                i,
+                                              ));
+                                          }
+                                      } else
+                                        'object' == o &&
+                                          ((n = String(e)),
+                                          f(
+                                            '31',
+                                            '[object Object]' === n
+                                              ? 'object with keys {' +
+                                                  Object.keys(e).join(', ') +
+                                                  '}'
+                                              : n,
+                                            '',
+                                          ));
+                                      return s;
+                                    })(t, '', e, n);
+                              };
+                            },
+                            { 104: 104, 113: 113, 120: 120, 138: 138, 143: 143, 22: 22, 48: 48 },
+                          ],
+                          119: [
+                            function (t, e, n) {
+                              t(144);
+                              var r = t(130);
+                              t(143), (e.exports = r);
+                            },
+                            { 130: 130, 143: 143, 144: 144 },
+                          ],
+                          120: [
+                            function (t, e, n) {
+                              var r = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
+                              e.exports = r.ReactCurrentOwner;
+                            },
+                            {},
+                          ],
+                          121: [
+                            function (t, e, n) {
+                              e.exports = i;
+                            },
+                            {},
+                          ],
+                          122: [
+                            function (t, e, n) {
+                              var r = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
+                              e.exports = r.getNextDebugID;
+                            },
+                            {},
+                          ],
+                          123: [
+                            function (t, e, n) {
+                              var r = t(130);
+                              e.exports = {
+                                listen: function (t, e, n) {
+                                  return t.addEventListener
+                                    ? (t.addEventListener(e, n, !1),
+                                      {
+                                        remove: function () {
+                                          t.removeEventListener(e, n, !1);
+                                        },
+                                      })
+                                    : t.attachEvent
+                                      ? (t.attachEvent('on' + e, n),
+                                        {
+                                          remove: function () {
+                                            t.detachEvent('on' + e, n);
+                                          },
+                                        })
+                                      : void 0;
+                                },
+                                capture: function (t, e, n) {
+                                  return t.addEventListener
+                                    ? (t.addEventListener(e, n, !0),
+                                      {
+                                        remove: function () {
+                                          t.removeEventListener(e, n, !0);
+                                        },
+                                      })
+                                    : { remove: r };
+                                },
+                                registerDefault: function () {},
+                              };
+                            },
+                            { 130: 130 },
+                          ],
+                          124: [
+                            function (t, e, n) {
+                              var r = !(
+                                  'undefined' == typeof window ||
+                                  !window.document ||
+                                  !window.document.createElement
+                                ),
+                                r = {
+                                  canUseDOM: r,
+                                  canUseWorkers: 'undefined' != typeof Worker,
+                                  canUseEventListeners:
+                                    r && !(!window.addEventListener && !window.attachEvent),
+                                  canUseViewport: r && !!window.screen,
+                                  isInWorker: !r,
+                                };
+                              e.exports = r;
+                            },
+                            {},
+                          ],
+                          125: [
+                            function (t, e, n) {
+                              var r = /-(.)/g;
+                              e.exports = function (t) {
+                                return t.replace(r, function (t, e) {
+                                  return e.toUpperCase();
+                                });
+                              };
+                            },
+                            {},
+                          ],
+                          126: [
+                            function (t, e, n) {
+                              var r = t(125),
+                                i = /^-ms-/;
+                              e.exports = function (t) {
+                                return r(t.replace(i, 'ms-'));
+                              };
+                            },
+                            { 125: 125 },
+                          ],
+                          127: [
+                            function (t, e, n) {
+                              var r = t(140);
+                              e.exports = function t(e, n) {
+                                return (
+                                  !(!e || !n) &&
+                                  (e === n ||
+                                    (!r(e) &&
+                                      (r(n)
+                                        ? t(e, n.parentNode)
+                                        : 'contains' in e
+                                          ? e.contains(n)
+                                          : !!e.compareDocumentPosition &&
+                                            !!(16 & e.compareDocumentPosition(n)))))
+                                );
+                              };
+                            },
+                            { 140: 140 },
+                          ],
+                          128: [
+                            function (t, e, n) {
+                              var a = t(138);
+                              e.exports = function (t) {
+                                if (
+                                  !(r = t) ||
+                                  ('object' != typeof r && 'function' != typeof r) ||
+                                  !('length' in r) ||
+                                  'setInterval' in r ||
+                                  'number' == typeof r.nodeType ||
+                                  !(Array.isArray(r) || 'callee' in r || 'item' in r)
+                                )
+                                  return [t];
+                                if (Array.isArray(t)) return t.slice();
+                                var e = t,
+                                  n = e.length;
+                                if (
+                                  ((Array.isArray(e) ||
+                                    ('object' != typeof e && 'function' != typeof e)) &&
+                                    a(!1),
+                                  'number' != typeof n && a(!1),
+                                  0 === n || n - 1 in e || a(!1),
+                                  'function' == typeof e.callee && a(!1),
+                                  e.hasOwnProperty)
+                                )
+                                  try {
+                                    return Array.prototype.slice.call(e);
+                                  } catch (e) {}
+                                for (var r, i = Array(n), o = 0; o < n; o++) i[o] = e[o];
+                                return i;
+                              };
+                            },
+                            { 138: 138 },
+                          ],
+                          129: [
+                            function (t, e, n) {
+                              var r = t(124),
+                                o = t(128),
+                                a = t(134),
+                                s = t(138),
+                                l = r.canUseDOM ? document.createElement('div') : null,
+                                u = /^\s*<(\w+)/;
+                              e.exports = function (t, e) {
+                                var n = l,
+                                  r = (l || s(!1), (r = (r = t).match(u)) && r[1].toLowerCase());
+                                if ((r = r && a(r))) {
+                                  n.innerHTML = r[1] + t + r[2];
+                                  for (var i = r[0]; i--; ) n = n.lastChild;
+                                } else n.innerHTML = t;
+                                for (
+                                  (r = n.getElementsByTagName('script')).length &&
+                                    (e || s(!1), o(r).forEach(e)),
+                                    t = Array.from(n.childNodes);
+                                  n.lastChild;
+
+                                )
+                                  n.removeChild(n.lastChild);
+                                return t;
+                              };
+                            },
+                            { 124: 124, 128: 128, 134: 134, 138: 138 },
+                          ],
+                          130: [
+                            function (t, e, n) {
+                              function r(t) {
+                                return function () {
+                                  return t;
+                                };
+                              }
+                              function i() {}
+                              (i.thatReturns = r),
+                                (i.thatReturnsFalse = r(!1)),
+                                (i.thatReturnsTrue = r(!0)),
+                                (i.thatReturnsNull = r(null)),
+                                (i.thatReturnsThis = function () {
+                                  return this;
+                                }),
+                                (i.thatReturnsArgument = function (t) {
+                                  return t;
+                                }),
+                                (e.exports = i);
+                            },
+                            {},
+                          ],
+                          131: [
+                            function (t, e, n) {
+                              e.exports = {};
+                            },
+                            {},
+                          ],
+                          132: [
+                            function (t, e, n) {
+                              e.exports = function (t) {
+                                try {
+                                  t.focus();
+                                } catch (t) {}
+                              };
+                            },
+                            {},
+                          ],
+                          133: [
+                            function (t, e, n) {
+                              e.exports = function (e) {
+                                if (
+                                  void 0 ===
+                                  (e = e || ('undefined' != typeof document ? document : void 0))
+                                )
+                                  return null;
+                                try {
+                                  return e.activeElement || e.body;
+                                } catch (t) {
+                                  return e.body;
+                                }
+                              };
+                            },
+                            {},
+                          ],
+                          134: [
+                            function (t, e, n) {
+                              var r = t(124),
+                                i = t(138),
+                                o = r.canUseDOM ? document.createElement('div') : null,
+                                a = {},
+                                t = [1, '<select multiple="true">', '</select>'],
+                                r = [1, '<table>', '</table>'],
+                                s = [3, '<table><tbody><tr>', '</tr></tbody></table>'],
+                                l = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>'],
+                                u = {
+                                  '*': [1, '?<div>', '</div>'],
+                                  area: [1, '<map>', '</map>'],
+                                  col: [
+                                    2,
+                                    '<table><tbody></tbody><colgroup>',
+                                    '</colgroup></table>',
+                                  ],
+                                  legend: [1, '<fieldset>', '</fieldset>'],
+                                  param: [1, '<object>', '</object>'],
+                                  tr: [2, '<table><tbody>', '</tbody></table>'],
+                                  optgroup: t,
+                                  option: t,
+                                  caption: r,
+                                  colgroup: r,
+                                  tbody: r,
+                                  tfoot: r,
+                                  thead: r,
+                                  td: s,
+                                  th: s,
+                                };
+                              [
+                                'circle',
+                                'clipPath',
+                                'defs',
+                                'ellipse',
+                                'g',
+                                'image',
+                                'line',
+                                'linearGradient',
+                                'mask',
+                                'path',
+                                'pattern',
+                                'polygon',
+                                'polyline',
+                                'radialGradient',
+                                'rect',
+                                'stop',
+                                'text',
+                                'tspan',
+                              ].forEach(function (t) {
+                                (u[t] = l), (a[t] = !0);
+                              }),
+                                (e.exports = function (t) {
+                                  return (
+                                    o || i(!1),
+                                    u.hasOwnProperty(t) || (t = '*'),
+                                    a.hasOwnProperty(t) ||
+                                      ((o.innerHTML =
+                                        '*' === t ? '<link />' : '<' + t + '></' + t + '>'),
+                                      (a[t] = !o.firstChild)),
+                                    a[t] ? u[t] : null
+                                  );
+                                });
+                            },
+                            { 124: 124, 138: 138 },
+                          ],
+                          135: [
+                            function (t, e, n) {
+                              e.exports = function (t) {
+                                return t.Window && t instanceof t.Window
+                                  ? {
+                                      x: t.pageXOffset || t.document.documentElement.scrollLeft,
+                                      y: t.pageYOffset || t.document.documentElement.scrollTop,
+                                    }
+                                  : { x: t.scrollLeft, y: t.scrollTop };
+                              };
+                            },
+                            {},
+                          ],
+                          136: [
+                            function (t, e, n) {
+                              var r = /([A-Z])/g;
+                              e.exports = function (t) {
+                                return t.replace(r, '-$1').toLowerCase();
+                              };
+                            },
+                            {},
+                          ],
+                          137: [
+                            function (t, e, n) {
+                              var r = t(136),
+                                i = /^ms-/;
+                              e.exports = function (t) {
+                                return r(t).replace(i, '-ms-');
+                              };
+                            },
+                            { 136: 136 },
+                          ],
+                          138: [
+                            function (t, e, n) {
+                              var A = function (t) {};
+                              e.exports = function (t, e, n, r, i, o, a, s) {
+                                var l, u, c;
+                                if ((A(e), !t))
+                                  throw (
+                                    (void 0 === e
+                                      ? (c = new Error(
+                                          'Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.',
+                                        ))
+                                      : ((l = [n, r, i, o, a, s]),
+                                        (u = 0),
+                                        ((c = new Error(
+                                          e.replace(/%s/g, function () {
+                                            return l[u++];
+                                          }),
+                                        )).name = 'Invariant Violation')),
+                                    (c.framesToPop = 1),
+                                    c)
+                                  );
+                              };
+                            },
+                            {},
+                          ],
+                          139: [
+                            function (t, e, n) {
+                              e.exports = function (t) {
+                                var e = (t ? t.ownerDocument || t : document).defaultView || window;
+                                return !(
+                                  !t ||
+                                  !('function' == typeof e.Node
+                                    ? t instanceof e.Node
+                                    : 'object' == typeof t &&
+                                      'number' == typeof t.nodeType &&
+                                      'string' == typeof t.nodeName)
+                                );
+                              };
+                            },
+                            {},
+                          ],
+                          140: [
+                            function (t, e, n) {
+                              var r = t(139);
+                              e.exports = function (t) {
+                                return r(t) && 3 == t.nodeType;
+                              };
+                            },
+                            { 139: 139 },
+                          ],
+                          141: [
+                            function (t, e, n) {
+                              e.exports = function (e) {
+                                var n = {};
+                                return function (t) {
+                                  return n.hasOwnProperty(t) || (n[t] = e.call(this, t)), n[t];
+                                };
+                              };
+                            },
+                            {},
+                          ],
+                          142: [
+                            function (t, e, n) {
+                              function o(t, e) {
+                                return t === e
+                                  ? 0 !== t || 0 !== e || 1 / t == 1 / e
+                                  : t != t && e != e;
+                              }
+                              var a = Object.prototype.hasOwnProperty;
+                              e.exports = function (t, e) {
+                                if (!o(t, e)) {
+                                  if (
+                                    'object' != typeof t ||
+                                    null === t ||
+                                    'object' != typeof e ||
+                                    null === e
+                                  )
+                                    return !1;
+                                  var n = Object.keys(t),
+                                    r = Object.keys(e);
+                                  if (n.length !== r.length) return !1;
+                                  for (var i = 0; i < n.length; i++)
+                                    if (!a.call(e, n[i]) || !o(t[n[i]], e[n[i]])) return !1;
+                                }
+                                return !0;
+                              };
+                            },
+                            {},
+                          ],
+                          143: [
+                            function (t, e, n) {
+                              t = t(130);
+                              e.exports = t;
+                            },
+                            { 130: 130 },
+                          ],
+                          144: [
+                            function (t, e, n) {
+                              var l = Object.getOwnPropertySymbols,
+                                u = Object.prototype.hasOwnProperty,
+                                c = Object.prototype.propertyIsEnumerable;
+                              e.exports = (function () {
+                                try {
+                                  if (!Object.assign) return;
+                                  var t = new String('abc');
+                                  if (((t[5] = 'de'), '5' === Object.getOwnPropertyNames(t)[0]))
+                                    return;
+                                  for (var e = {}, n = 0; n < 10; n++)
+                                    e['_' + String.fromCharCode(n)] = n;
+                                  if (
+                                    '0123456789' !==
+                                    Object.getOwnPropertyNames(e)
+                                      .map(function (t) {
+                                        return e[t];
+                                      })
+                                      .join('')
+                                  )
+                                    return;
+                                  var r = {};
+                                  return (
+                                    'abcdefghijklmnopqrst'.split('').forEach(function (t) {
+                                      r[t] = t;
+                                    }),
+                                    'abcdefghijklmnopqrst' ===
+                                      Object.keys(Object.assign({}, r)).join('')
+                                  );
+                                } catch (t) {
+                                  return;
+                                }
+                              })()
+                                ? Object.assign
+                                : function (t, e) {
+                                    for (
+                                      var n,
+                                        r = (function (t) {
+                                          if (null == t)
+                                            throw new TypeError(
+                                              'Object.assign cannot be called with null or undefined',
+                                            );
+                                          return Object(t);
+                                        })(t),
+                                        i = 1;
+                                      i < arguments.length;
+                                      i++
+                                    ) {
+                                      for (var o in (n = Object(arguments[i])))
+                                        u.call(n, o) && (r[o] = n[o]);
+                                      if (l)
+                                        for (var a = l(n), s = 0; s < a.length; s++)
+                                          c.call(n, a[s]) && (r[a[s]] = n[a[s]]);
+                                    }
+                                    return r;
+                                  };
+                            },
+                            {},
+                          ],
+                          145: [
+                            function (t, e, n) {
+                              e.exports = function (t, e, n, r, i) {};
+                            },
+                            { 138: 138, 143: 143, 148: 148 },
+                          ],
+                          146: [
+                            function (t, e, n) {
+                              var r = t(147);
+                              e.exports = function (t) {
+                                return r(t, !1);
+                              };
+                            },
+                            { 147: 147 },
+                          ],
+                          147: [
+                            function (t, e, n) {
+                              var r = t(130),
+                                d = t(138),
+                                i = t(143),
+                                f = t(148),
+                                g = t(145);
+                              e.exports = function (o, l) {
+                                function c(t) {
+                                  (this.message = t), (this.stack = '');
+                                }
+                                function n(s) {
+                                  function t(t, e, n, r, i, o, a) {
+                                    return (
+                                      (r = r || p),
+                                      (o = o || n),
+                                      a !== f &&
+                                        l &&
+                                        d(
+                                          !1,
+                                          'Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types',
+                                        ),
+                                      null == e[n]
+                                        ? t
+                                          ? new c(
+                                              null === e[n]
+                                                ? 'The ' +
+                                                  i +
+                                                  ' `' +
+                                                  o +
+                                                  '` is marked as required in `' +
+                                                  r +
+                                                  '`, but its value is `null`.'
+                                                : 'The ' +
+                                                  i +
+                                                  ' `' +
+                                                  o +
+                                                  '` is marked as required in `' +
+                                                  r +
+                                                  '`, but its value is `undefined`.',
+                                            )
+                                          : null
+                                        : s(e, n, r, i, o)
+                                    );
+                                  }
+                                  var e = t.bind(null, !1);
+                                  return (e.isRequired = t.bind(null, !0)), e;
+                                }
+                                function t(a) {
+                                  return n(function (t, e, n, r, i, o) {
+                                    return u((t = t[e])) !== a
+                                      ? new c(
+                                          'Invalid ' +
+                                            r +
+                                            ' `' +
+                                            i +
+                                            '` of type `' +
+                                            s(t) +
+                                            '` supplied to `' +
+                                            n +
+                                            '`, expected `' +
+                                            a +
+                                            '`.',
+                                        )
+                                      : null;
+                                  });
+                                }
+                                function a(t) {
+                                  switch (typeof t) {
+                                    case 'number':
+                                    case 'string':
+                                    case 'undefined':
+                                      return !0;
+                                    case 'boolean':
+                                      return !t;
+                                    case 'object':
+                                      if (Array.isArray(t)) return t.every(a);
+                                      if (null !== t && !o(t)) {
+                                        var e = (function (t) {
+                                          if ('function' == typeof (t = t && ((A && t[A]) || t[h])))
+                                            return t;
+                                        })(t);
+                                        if (!e) return !1;
+                                        var n,
+                                          r = e.call(t);
+                                        if (e !== t.entries) {
+                                          for (; !(n = r.next()).done; ) if (!a(n.value)) return !1;
+                                        } else
+                                          for (; !(n = r.next()).done; ) {
+                                            var i = n.value;
+                                            if (i && !a(i[1])) return !1;
+                                          }
+                                      }
+                                      return !0;
+                                    default:
+                                      return !1;
+                                  }
+                                }
+                                function u(t) {
+                                  var e = typeof t;
+                                  return Array.isArray(t)
+                                    ? 'array'
+                                    : t instanceof RegExp
+                                      ? 'object'
+                                      : ((t = t),
+                                        'symbol' === e ||
+                                        'Symbol' === t['@@toStringTag'] ||
+                                        ('function' == typeof Symbol && t instanceof Symbol)
+                                          ? 'symbol'
+                                          : e);
+                                }
+                                function s(t) {
+                                  if (null == t) return '' + t;
+                                  var e = u(t);
+                                  if ('object' === e) {
+                                    if (t instanceof Date) return 'date';
+                                    if (t instanceof RegExp) return 'regexp';
+                                  }
+                                  return e;
+                                }
+                                var A = 'function' == typeof Symbol && Symbol.iterator,
+                                  h = '@@iterator',
+                                  p = '<<anonymous>>',
+                                  e = {
+                                    array: t('array'),
+                                    bool: t('boolean'),
+                                    func: t('function'),
+                                    number: t('number'),
+                                    object: t('object'),
+                                    string: t('string'),
+                                    symbol: t('symbol'),
+                                    any: n(r.thatReturnsNull),
+                                    arrayOf: function (l) {
+                                      return n(function (t, e, n, r, i) {
+                                        if ('function' != typeof l)
+                                          return new c(
+                                            'Property `' +
+                                              i +
+                                              '` of component `' +
+                                              n +
+                                              '` has invalid PropType notation inside arrayOf.',
+                                          );
+                                        var o = t[e];
+                                        if (!Array.isArray(o))
+                                          return new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` of type `' +
+                                              u(o) +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected an array.',
+                                          );
+                                        for (var a = 0; a < o.length; a++) {
+                                          var s = l(o, a, n, r, i + '[' + a + ']', f);
+                                          if (s instanceof Error) return s;
+                                        }
+                                        return null;
+                                      });
+                                    },
+                                    element: n(function (t, e, n, r, i) {
+                                      return (
+                                        (t = t[e]),
+                                        o(t)
+                                          ? null
+                                          : new c(
+                                              'Invalid ' +
+                                                r +
+                                                ' `' +
+                                                i +
+                                                '` of type `' +
+                                                u(t) +
+                                                '` supplied to `' +
+                                                n +
+                                                '`, expected a single ReactElement.',
+                                            )
+                                      );
+                                    }),
+                                    instanceOf: function (a) {
+                                      return n(function (t, e, n, r, i) {
+                                        var o;
+                                        return t[e] instanceof a
+                                          ? null
+                                          : ((o = a.name || p),
+                                            new c(
+                                              'Invalid ' +
+                                                r +
+                                                ' `' +
+                                                i +
+                                                '` of type `' +
+                                                ((r = t[e]).constructor && r.constructor.name
+                                                  ? r.constructor.name
+                                                  : p) +
+                                                '` supplied to `' +
+                                                n +
+                                                '`, expected instance of `' +
+                                                o +
+                                                '`.',
+                                            ));
+                                      });
+                                    },
+                                    node: n(function (t, e, n, r, i) {
+                                      return a(t[e])
+                                        ? null
+                                        : new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected a ReactNode.',
+                                          );
+                                    }),
+                                    objectOf: function (l) {
+                                      return n(function (t, e, n, r, i) {
+                                        if ('function' != typeof l)
+                                          return new c(
+                                            'Property `' +
+                                              i +
+                                              '` of component `' +
+                                              n +
+                                              '` has invalid PropType notation inside objectOf.',
+                                          );
+                                        var o,
+                                          a = t[e];
+                                        if ('object' !== (t = u(a)))
+                                          return new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` of type `' +
+                                              t +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected an object.',
+                                          );
+                                        for (o in a)
+                                          if (a.hasOwnProperty(o)) {
+                                            var s = l(a, o, n, r, i + '.' + o, f);
+                                            if (s instanceof Error) return s;
+                                          }
+                                        return null;
+                                      });
+                                    },
+                                    oneOf: function (u) {
+                                      return Array.isArray(u)
+                                        ? n(function (t, e, n, r, i) {
+                                            for (var o, a, s = t[e], l = 0; l < u.length; l++)
+                                              if (
+                                                ((o = s),
+                                                (a = u[l]),
+                                                o === a
+                                                  ? 0 !== o || 1 / o == 1 / a
+                                                  : o != o && a != a)
+                                              )
+                                                return null;
+                                            return new c(
+                                              'Invalid ' +
+                                                r +
+                                                ' `' +
+                                                i +
+                                                '` of value `' +
+                                                s +
+                                                '` supplied to `' +
+                                                n +
+                                                '`, expected one of ' +
+                                                JSON.stringify(u) +
+                                                '.',
+                                            );
+                                          })
+                                        : r.thatReturnsNull;
+                                    },
+                                    oneOfType: function (a) {
+                                      if (!Array.isArray(a)) return r.thatReturnsNull;
+                                      for (var t = 0; t < a.length; t++) {
+                                        var e = a[t];
+                                        if ('function' != typeof e)
+                                          return (
+                                            i(
+                                              !1,
+                                              'Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.',
+                                              (function (t) {
+                                                var e = s(t);
+                                                switch (e) {
+                                                  case 'array':
+                                                  case 'object':
+                                                    return 'an ' + e;
+                                                  case 'boolean':
+                                                  case 'date':
+                                                  case 'regexp':
+                                                    return 'a ' + e;
+                                                  default:
+                                                    return e;
+                                                }
+                                              })(e),
+                                              t,
+                                            ),
+                                            r.thatReturnsNull
+                                          );
+                                      }
+                                      return n(function (t, e, n, r, i) {
+                                        for (var o = 0; o < a.length; o++)
+                                          if (null == (0, a[o])(t, e, n, r, i, f)) return null;
+                                        return new c(
+                                          'Invalid ' + r + ' `' + i + '` supplied to `' + n + '`.',
+                                        );
+                                      });
+                                    },
+                                    shape: function (l) {
+                                      return n(function (t, e, n, r, i) {
+                                        var o,
+                                          a = t[e];
+                                        if ('object' !== (t = u(a)))
+                                          return new c(
+                                            'Invalid ' +
+                                              r +
+                                              ' `' +
+                                              i +
+                                              '` of type `' +
+                                              t +
+                                              '` supplied to `' +
+                                              n +
+                                              '`, expected `object`.',
+                                          );
+                                        for (o in l) {
+                                          var s = l[o];
+                                          if (s) {
+                                            s = s(a, o, n, r, i + '.' + o, f);
+                                            if (s) return s;
+                                          }
+                                        }
+                                        return null;
+                                      });
+                                    },
+                                  };
+                                return (
+                                  (c.prototype = Error.prototype),
+                                  (e.checkPropTypes = g),
+                                  (e.PropTypes = e)
+                                );
+                              };
+                            },
+                            { 130: 130, 138: 138, 143: 143, 145: 145, 148: 148 },
+                          ],
+                          148: [
+                            function (t, e, n) {
+                              e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
+                            },
+                            {},
+                          ],
+                        },
+                        {},
+                        [45],
+                      )(45);
+                    }),
+                    (w = Br.exports),
+                    {}),
+                  Dr = [
+                    function (t, e, n) {
+                      t.exports = n(1);
+                    },
+                    function (t, e, n) {
+                      var n = n(2),
+                        n = (n = n) && n.__esModule ? n : { default: n };
+                      Mr.ChromePicker = n.default;
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }), (e.Chrome = void 0);
+                      var r =
+                          Object.assign ||
+                          function (t) {
+                            for (var e = 1; e < arguments.length; e++) {
+                              var n,
+                                r = arguments[e];
+                              for (n in r)
+                                Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]);
+                            }
+                            return t;
+                          },
+                        i = function (t, e, n) {
+                          return e && o(t.prototype, e), n && o(t, n), t;
+                        };
+                      function o(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var s = p(n(3)),
+                        a = p(n(4)),
+                        l = n(15),
+                        u = p(n(29)),
+                        c = p(n(30)),
+                        A = p(n(17)),
+                        h = p(n(31));
+                      function p(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      function d(t, e) {
+                        if (t)
+                          return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                        throw new ReferenceError(
+                          "this hasn't been initialised - super() hasn't been called",
+                        );
+                      }
+                      n = e.Chrome = (function (t) {
+                        var e = a;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function a() {
+                          for (var e, t = arguments.length, n = Array(t), r = 0; r < t; r++)
+                            n[r] = arguments[r];
+                          var i = this,
+                            o = a;
+                          if (i instanceof o)
+                            return (
+                              ((o = e =
+                                d(
+                                  this,
+                                  (i = a.__proto__ || Object.getPrototypeOf(a)).call.apply(
+                                    i,
+                                    [this].concat(n),
+                                  ),
+                                )).shouldComponentUpdate = A.default.bind(
+                                e,
+                                e,
+                                arguments[0],
+                                arguments[1],
+                              )),
+                              (e.handleChange = function (t) {
+                                e.props.onChange(t);
+                              }),
+                              d(e, o)
+                            );
+                          throw new TypeError('Cannot call a class as a function');
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          i(a, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    picker: { width: '100%' },
+                                    saturation: {
+                                      width: '100%',
+                                      height: '48px',
+                                      position: 'relative',
+                                      borderRadius: '0px',
+                                      overflow: 'hidden',
+                                    },
+                                    Saturation: { radius: '0px' },
+                                    body: { padding: '0' },
+                                    controls: { marginTop: '1px', display: 'block' },
+                                    swatch: {
+                                      marginTop: '0px',
+                                      width: '16px',
+                                      height: '16px',
+                                      borderRadius: '8px',
+                                      position: 'relative',
+                                      overflow: 'hidden',
+                                    },
+                                    active: {
+                                      Absolute: '0 0 0 0',
+                                      zIndex: 2,
+                                      borderRadius: '8px',
+                                      boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',
+                                      background:
+                                        'rgba(' +
+                                        this.props.rgb.r +
+                                        ', ' +
+                                        this.props.rgb.g +
+                                        ', ' +
+                                        this.props.rgb.b +
+                                        ', ' +
+                                        this.props.rgb.a +
+                                        ')',
+                                    },
+                                    hue: { height: '16px', position: 'relative', width: '100%' },
+                                    Hue: { radius: '0' },
+                                    colors: {
+                                      marginTop: '1px',
+                                      display: 'flex',
+                                      flexDirection: 'row',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                var t = [];
+                                if (this.props.colors)
+                                  for (var e = 0; e < this.props.colors.length; e++) {
+                                    var n = this.props.colors[e];
+                                    t.push(
+                                      s.default.createElement(h.default, {
+                                        key: n,
+                                        color: n,
+                                        active: n.replace('#', '').toLowerCase() == this.props.hex,
+                                        onClick: this.handleChange,
+                                      }),
+                                    );
+                                  }
+                                return s.default.createElement(
+                                  'div',
+                                  { style: this.styles().picker },
+                                  s.default.createElement(
+                                    'div',
+                                    { style: this.styles().saturation },
+                                    s.default.createElement(
+                                      l.Saturation,
+                                      r({}, this.styles().Saturation, this.props, {
+                                        pointer: c.default,
+                                        onChange: this.handleChange,
+                                      }),
+                                    ),
+                                  ),
+                                  s.default.createElement(
+                                    'div',
+                                    { style: this.styles().body },
+                                    s.default.createElement(
+                                      'div',
+                                      { style: this.styles().hue },
+                                      s.default.createElement(
+                                        l.Hue,
+                                        r({}, this.styles().Hue, this.props, {
+                                          pointer: u.default,
+                                          onChange: this.handleChange,
+                                        }),
+                                      ),
+                                    ),
+                                    s.default.createElement(
+                                      'div',
+                                      { style: this.styles().colors },
+                                      t,
+                                    ),
+                                  ),
+                                );
+                              },
+                            },
+                          ]),
+                          a
+                        );
+                      })(a.default.Component);
+                      (n.defaultProps = {
+                        colors: [
+                          '#000000',
+                          '#808080',
+                          '#FFFFFF',
+                          '#D33115',
+                          '#E27300',
+                          '#FCC400',
+                          '#B0BC00',
+                          '#68BC00',
+                          '#16A5A5',
+                          '#009CE0',
+                          '#7B64FF',
+                          '#FA28FF',
+                          '#E20F2E',
+                        ],
+                      }),
+                        (e.default = (0, l.ColorWrap)(n));
+                    },
+                    function (t, e) {
+                      t.exports = br;
+                    },
+                    function (t, e, n) {
+                      t.exports = { Component: n(5), inline: n(6), mixin: { css: n(6) } };
+                    },
+                    function (t, e, n) {
+                      var r = function (t, e, n) {
+                          return e && s(t.prototype, e), n && s(t, n), t;
+                        },
+                        i = function (t, e, n) {
+                          for (var r = !0; r; ) {
+                            var i = t,
+                              o = e,
+                              a = n,
+                              r = !1,
+                              s =
+                                (null === i && (i = Function.prototype),
+                                Object.getOwnPropertyDescriptor(i, o));
+                            if (void 0 !== s) {
+                              if ('value' in s) return s.value;
+                              var l = s.get;
+                              return void 0 === l ? void 0 : l.call(a);
+                            }
+                            l = Object.getPrototypeOf(i);
+                            if (null === l) return;
+                            (t = l), (e = o), (n = a), (r = !0), (s = void 0);
+                          }
+                        },
+                        o = n(3),
+                        a = n(6),
+                        n = (function (t) {
+                          function n() {
+                            var t = this,
+                              e = n;
+                            if (!(t instanceof e))
+                              throw new TypeError('Cannot call a class as a function');
+                            i(Object.getPrototypeOf(n.prototype), 'constructor', this).apply(
+                              this,
+                              arguments,
+                            );
+                          }
+                          var e = n;
+                          if ('function' != typeof t && null !== t)
+                            throw new TypeError(
+                              'Super expression must either be null or a function, not ' + typeof t,
+                            );
+                          return (
+                            (e.prototype = Object.create(t && t.prototype, {
+                              constructor: {
+                                value: e,
+                                enumerable: !1,
+                                writable: !0,
+                                configurable: !0,
+                              },
+                            })),
+                            t &&
+                              (Object.setPrototypeOf
+                                ? Object.setPrototypeOf(e, t)
+                                : (e.__proto__ = t)),
+                            r(n, [
+                              {
+                                key: 'css',
+                                value: function (t) {
+                                  return a.call(this, t);
+                                },
+                              },
+                              {
+                                key: 'styles',
+                                value: function () {
+                                  return this.css();
+                                },
+                              },
+                            ]),
+                            n
+                          );
+                        })(o.Component);
+                      function s(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      (n.contextTypes = { mixins: o.PropTypes.object }), (t.exports = n);
+                    },
+                    function (t, e, u) {
+                      var c = u(7),
+                        A = u(8),
+                        h = u(9);
+                      t.exports = function (t) {
+                        var n = this,
+                          r = ((h = u(9)), []);
+                        if (!this.classes)
+                          throw console.warn(
+                            'Define this.classes on `' + this.constructor.name + '`',
+                          );
+                        A(this.classes());
+                        function e(t, e) {
+                          n.classes()[t]
+                            ? r.push(n.classes()[t])
+                            : t &&
+                              e &&
+                              !0 === e.warn &&
+                              console.warn(
+                                'The `' +
+                                  t +
+                                  '` css class does not exist on `' +
+                                  n.constructor.name +
+                                  '`',
+                              );
+                        }
+                        var i, o;
+                        for (i in (e('default'), this.props)) {
+                          var a = this.props[i];
+                          c(a) ||
+                            (!0 === a ? (e(i), e(i + '-true')) : e(a ? i + '-' + a : i + '-false'));
+                        }
+                        if (this.props && this.props.activeBounds)
+                          for (var s = 0; s < this.props.activeBounds.length; s++)
+                            e(this.props.activeBounds[s]);
+                        for (o in t) !0 === t[o] && e(o, { warn: !0 });
+                        var l = {};
+                        return (
+                          this.context && this.context.mixins && (l = this.context.mixins), h(r, l)
+                        );
+                      };
+                    },
+                    function (t, e) {
+                      t.exports = function (t) {
+                        var e = typeof t;
+                        return !!t && ('object' == e || 'function' == e);
+                      };
+                    },
+                    function (t, e, n) {
+                      var i = n(7);
+                      t.exports = function (t) {
+                        for (var e in t) {
+                          var n = t[e];
+                          if (i(n))
+                            for (var r in n) {
+                              r = n[r];
+                              i(r) ||
+                                console.warn(
+                                  'Make sure the value of the element `' +
+                                    e +
+                                    '` is an object of css. You passed it `' +
+                                    n +
+                                    '`',
+                                );
+                            }
+                          else
+                            console.warn(
+                              'Make sure the value of `' +
+                                e +
+                                '` is an object of html elements. You passed it `' +
+                                n +
+                                '`',
+                            );
+                        }
+                      };
+                    },
+                    function (t, e, n) {
+                      var r = n(10),
+                        i = n(14);
+                      t.exports = function (t, e) {
+                        t = r(t);
+                        return i(t, e);
+                      };
+                    },
+                    function (t, e, n) {
+                      var r = n(11),
+                        i = n(7),
+                        o = n(13);
+                      t.exports = function (t) {
+                        return i(t) && !o(t)
+                          ? t
+                          : 1 === t.length
+                            ? t[0]
+                            : r.recursive.apply(void 0, t);
+                      };
+                    },
+                    function (t, e, n) {
+                      !function (t) {
+                        function e(t, e, n) {
+                          var r = n[0],
+                            i = n.length;
+                          (!t && 'object' === c(r)) || (r = {});
+                          for (var o = 0; o < i; ++o) {
+                            var a = n[o],
+                              s = c(a);
+                            if ('object' === s)
+                              for (var l in a) {
+                                var u = t ? A.clone(a[l]) : a[l];
+                                r[l] = e
+                                  ? (function t(e, n) {
+                                      if ('object' !== c(e)) return n;
+                                      for (var r in n)
+                                        'object' === c(e[r]) && 'object' === c(n[r])
+                                          ? (e[r] = t(e[r], n[r]))
+                                          : (e[r] = n[r]);
+                                      return e;
+                                    })(r[l], u)
+                                  : u;
+                              }
+                          }
+                          return r;
+                        }
+                        function c(t) {
+                          return {}.toString.call(t).slice(8, -1).toLowerCase();
+                        }
+                        var n, A;
+                        (n =
+                          'object' == typeof t && t && 'object' == typeof t.exports && t.exports),
+                          ((A = function (t) {
+                            return e(!0 === t, !1, arguments);
+                          }).recursive = function (t) {
+                            return e(!0 === t, !0, arguments);
+                          }),
+                          (A.clone = function (t) {
+                            var e,
+                              n,
+                              r = t,
+                              i = c(t);
+                            if ('array' === i)
+                              for (r = [], n = t.length, e = 0; e < n; ++e) r[e] = A.clone(t[e]);
+                            else if ('object' === i) for (e in ((r = {}), t)) r[e] = A.clone(t[e]);
+                            return r;
+                          }),
+                          n ? (t.exports = A) : (window.merge = A);
+                      }.call(e, n(12)(t));
+                    },
+                    function (t, e) {
+                      t.exports = function (t) {
+                        return (
+                          t.webpackPolyfill ||
+                            ((t.deprecate = function () {}),
+                            (t.paths = []),
+                            (t.children = []),
+                            (t.webpackPolyfill = 1)),
+                          t
+                        );
+                      };
+                    },
+                    function (t, e) {
+                      var n = Array.isArray;
+                      t.exports = n;
+                    },
+                    function (t, e, n) {
+                      var A = n(7),
+                        h = n(13),
+                        p = n(11),
+                        d = {
+                          borderRadius: function (t) {
+                            return null !== t
+                              ? {
+                                  msBorderRadius: t,
+                                  MozBorderRadius: t,
+                                  OBorderRadius: t,
+                                  WebkitBorderRadius: t,
+                                  borderRadius: t,
+                                }
+                              : void 0;
+                          },
+                          boxShadow: function (t) {
+                            return null !== t
+                              ? {
+                                  msBoxShadow: t,
+                                  MozBoxShadow: t,
+                                  OBoxShadow: t,
+                                  WebkitBoxShadow: t,
+                                  boxShadow: t,
+                                }
+                              : void 0;
+                          },
+                          userSelect: function (t) {
+                            return null !== t
+                              ? {
+                                  WebkitTouchCallout: t,
+                                  KhtmlUserSelect: t,
+                                  MozUserSelect: t,
+                                  msUserSelect: t,
+                                  WebkitUserSelect: t,
+                                  userSelect: t,
+                                }
+                              : void 0;
+                          },
+                          flex: function (t) {
+                            return null !== t
+                              ? {
+                                  WebkitBoxFlex: t,
+                                  MozBoxFlex: t,
+                                  WebkitFlex: t,
+                                  msFlex: t,
+                                  flex: t,
+                                }
+                              : void 0;
+                          },
+                          flexBasis: function (t) {
+                            return null !== t ? { WebkitFlexBasis: t, flexBasis: t } : void 0;
+                          },
+                          justifyContent: function (t) {
+                            return null !== t
+                              ? { WebkitJustifyContent: t, justifyContent: t }
+                              : void 0;
+                          },
+                          transition: function (t) {
+                            return null !== t
+                              ? {
+                                  msTransition: t,
+                                  MozTransition: t,
+                                  OTransition: t,
+                                  WebkitTransition: t,
+                                  transition: t,
+                                }
+                              : void 0;
+                          },
+                          transform: function (t) {
+                            return null !== t
+                              ? {
+                                  msTransform: t,
+                                  MozTransform: t,
+                                  OTransform: t,
+                                  WebkitTransform: t,
+                                  transform: t,
+                                }
+                              : void 0;
+                          },
+                          Absolute: function (t) {
+                            if (null !== t)
+                              return {
+                                position: 'absolute',
+                                top: (t = t.split(' '))[0],
+                                right: t[1],
+                                bottom: t[2],
+                                left: t[3],
+                              };
+                          },
+                          Extend: function (t, e) {
+                            e = e[t];
+                            return e || void 0;
+                          },
+                        };
+                      t.exports = function t(e, n, r) {
+                        var i,
+                          o = p(n, d),
+                          a = {};
+                        for (i in e) {
+                          var s = e[i];
+                          if (A(s) && !h(s)) a[i] = t(s, n, e);
+                          else if (o[i]) {
+                            var l,
+                              u = o[i](s, r);
+                            for (l in u) {
+                              var c = u[l];
+                              a[l] = c;
+                            }
+                          } else a[i] = s;
+                        }
+                        return a;
+                      };
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 });
+                      var r = n(16),
+                        i =
+                          (Object.defineProperty(e, 'Alpha', {
+                            enumerable: !0,
+                            get: function () {
+                              return l(r).default;
+                            },
+                          }),
+                          n(20)),
+                        o =
+                          (Object.defineProperty(e, 'Checkboard', {
+                            enumerable: !0,
+                            get: function () {
+                              return l(i).default;
+                            },
+                          }),
+                          n(21)),
+                        a =
+                          (Object.defineProperty(e, 'Hue', {
+                            enumerable: !0,
+                            get: function () {
+                              return l(o).default;
+                            },
+                          }),
+                          n(22)),
+                        s =
+                          (Object.defineProperty(e, 'Saturation', {
+                            enumerable: !0,
+                            get: function () {
+                              return l(a).default;
+                            },
+                          }),
+                          n(24));
+                      function l(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      Object.defineProperty(e, 'ColorWrap', {
+                        enumerable: !0,
+                        get: function () {
+                          return l(s).default;
+                        },
+                      });
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }), (e.Alpha = void 0);
+                      var r = function (t, e, n) {
+                        return e && i(t.prototype, e), n && i(t, n), t;
+                      };
+                      function i(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var o = u(n(3)),
+                        a = u(n(4)),
+                        s = u(n(17)),
+                        l = u(n(20));
+                      function u(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      function c(t, e) {
+                        if (t)
+                          return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                        throw new ReferenceError(
+                          "this hasn't been initialised - super() hasn't been called",
+                        );
+                      }
+                      n = e.Alpha = (function (t) {
+                        var e = a;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function a() {
+                          for (var r, t = arguments.length, e = Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                          var i = this,
+                            o = a;
+                          if (i instanceof o)
+                            return (
+                              ((o = r =
+                                c(
+                                  this,
+                                  (i = a.__proto__ || Object.getPrototypeOf(a)).call.apply(
+                                    i,
+                                    [this].concat(e),
+                                  ),
+                                )).shouldComponentUpdate = s.default.bind(
+                                r,
+                                r,
+                                arguments[0],
+                                arguments[1],
+                              )),
+                              (r.handleChange = function (t, e) {
+                                e || t.preventDefault();
+                                var e = r.refs.container,
+                                  n = e.clientWidth,
+                                  t =
+                                    (t.pageX || t.touches[0].pageX) -
+                                    (e.getBoundingClientRect().left + window.pageXOffset),
+                                  e = t < 0 ? 0 : n < t ? 1 : Math.round((100 * t) / n) / 100;
+                                r.props.a !== e &&
+                                  r.props.onChange({
+                                    h: r.props.hsl.h,
+                                    s: r.props.hsl.s,
+                                    l: r.props.hsl.l,
+                                    a: e,
+                                    source: 'rgb',
+                                  });
+                              }),
+                              (r.handleMouseDown = function (t) {
+                                r.handleChange(t, !0),
+                                  window.addEventListener('mousemove', r.handleChange),
+                                  window.addEventListener('mouseup', r.handleMouseUp);
+                              }),
+                              (r.handleMouseUp = function () {
+                                r.unbindEventListeners();
+                              }),
+                              (r.unbindEventListeners = function () {
+                                window.removeEventListener('mousemove', r.handleChange),
+                                  window.removeEventListener('mouseup', r.handleMouseUp);
+                              }),
+                              c(r, o)
+                            );
+                          throw new TypeError('Cannot call a class as a function');
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          r(a, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    alpha: { Absolute: '0 0 0 0', borderRadius: this.props.radius },
+                                    checkboard: { Absolute: '0 0 0 0', overflow: 'hidden' },
+                                    gradient: {
+                                      Absolute: '0 0 0 0',
+                                      background:
+                                        'linear-gradient(to right, rgba(' +
+                                        this.props.rgb.r +
+                                        ', ' +
+                                        this.props.rgb.g +
+                                        ', ' +
+                                        this.props.rgb.b +
+                                        ', 0) 0%, rgba(' +
+                                        this.props.rgb.r +
+                                        ', ' +
+                                        this.props.rgb.g +
+                                        ', ' +
+                                        this.props.rgb.b +
+                                        ', 1) 100%)',
+                                      boxShadow: this.props.shadow,
+                                      borderRadius: this.props.radius,
+                                    },
+                                    container: {
+                                      position: 'relative',
+                                      zIndex: '2',
+                                      height: '100%',
+                                      margin: '0 3px',
+                                    },
+                                    pointer: {
+                                      zIndex: '2',
+                                      position: 'absolute',
+                                      left: 100 * this.props.rgb.a + '%',
+                                    },
+                                    slider: {
+                                      width: '4px',
+                                      borderRadius: '1px',
+                                      height: '8px',
+                                      boxShadow: '0 0 2px rgba(0, 0, 0, .6)',
+                                      background: '#fff',
+                                      marginTop: '1px',
+                                      transform: 'translateX(-2px)',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'componentWillUnmount',
+                              value: function () {
+                                this.unbindEventListeners();
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                var t = o.default.createElement('div', {
+                                  style: this.styles().slider,
+                                });
+                                return (
+                                  this.props.pointer &&
+                                    (t = o.default.createElement(this.props.pointer, this.props)),
+                                  o.default.createElement(
+                                    'div',
+                                    { style: this.styles().alpha },
+                                    o.default.createElement(
+                                      'div',
+                                      { style: this.styles().checkboard },
+                                      o.default.createElement(l.default, null),
+                                    ),
+                                    o.default.createElement('div', {
+                                      style: this.styles().gradient,
+                                    }),
+                                    o.default.createElement(
+                                      'div',
+                                      {
+                                        style: this.styles().container,
+                                        ref: 'container',
+                                        onMouseDown: this.handleMouseDown,
+                                        onTouchMove: this.handleChange,
+                                        onTouchStart: this.handleChange,
+                                      },
+                                      o.default.createElement(
+                                        'div',
+                                        { style: this.styles().pointer, ref: 'pointer' },
+                                        t,
+                                      ),
+                                    ),
+                                  )
+                                );
+                              },
+                            },
+                          ]),
+                          a
+                        );
+                      })(a.default.Component);
+                      e.default = n;
+                    },
+                    function (t, e, n) {
+                      t.exports = n(18);
+                    },
+                    function (t, e, n) {
+                      var r = n(19);
+                      t.exports = function (t, e, n) {
+                        return !r(t.props, e) || !r(t.state, n);
+                      };
+                    },
+                    function (t, e) {
+                      var a = Object.prototype.hasOwnProperty;
+                      t.exports = function (t, e) {
+                        if (t !== e) {
+                          if (
+                            'object' != typeof t ||
+                            null === t ||
+                            'object' != typeof e ||
+                            null === e
+                          )
+                            return !1;
+                          var n = Object.keys(t),
+                            r = Object.keys(e);
+                          if (n.length !== r.length) return !1;
+                          for (var i = a.bind(e), o = 0; o < n.length; o++)
+                            if (!i(n[o]) || t[n[o]] !== e[n[o]]) return !1;
+                        }
+                        return !0;
+                      };
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }),
+                        (e.Checkboard = void 0);
+                      var r = function (t, e, n) {
+                        return e && i(t.prototype, e), n && i(t, n), t;
+                      };
+                      function i(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var a = l(n(3)),
+                        o = l(n(4)),
+                        s = l(n(17));
+                      function l(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      function u(t, e) {
+                        if (t)
+                          return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                        throw new ReferenceError(
+                          "this hasn't been initialised - super() hasn't been called",
+                        );
+                      }
+                      var c = {};
+                      function A(t, e, n) {
+                        var r = t + ',' + e + ',' + n;
+                        return (
+                          c[r] ||
+                          ((t = (function (t, e, n) {
+                            if ('undefined' == typeof document) return null;
+                            var r = document.createElement('canvas'),
+                              i = ((r.width = r.height = 2 * n), r.getContext('2d'));
+                            return i
+                              ? ((i.fillStyle = t),
+                                i.fillRect(0, 0, r.width, r.height),
+                                (i.fillStyle = e),
+                                i.fillRect(0, 0, n, n),
+                                i.translate(n, n),
+                                i.fillRect(0, 0, n, n),
+                                r.toDataURL())
+                              : null;
+                          })(t, e, n)),
+                          (c[r] = t))
+                        );
+                      }
+                      n = e.Checkboard = (function (t) {
+                        var e = o;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function o() {
+                          for (var t = arguments.length, e = Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                          var r = this,
+                            i = o;
+                          if (r instanceof i)
+                            return (
+                              ((r = i =
+                                u(
+                                  this,
+                                  (r = o.__proto__ || Object.getPrototypeOf(o)).call.apply(
+                                    r,
+                                    [this].concat(e),
+                                  ),
+                                )).shouldComponentUpdate = s.default.bind(
+                                i,
+                                i,
+                                arguments[0],
+                                arguments[1],
+                              )),
+                              u(i, r)
+                            );
+                          throw new TypeError('Cannot call a class as a function');
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          r(o, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    grid: {
+                                      Absolute: '0 0 0 0',
+                                      background:
+                                        'url(' +
+                                        A(this.props.white, this.props.grey, this.props.size) +
+                                        ') center left',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                return a.default.createElement('div', {
+                                  style: this.styles().grid,
+                                  ref: 'grid',
+                                });
+                              },
+                            },
+                          ]),
+                          o
+                        );
+                      })(o.default.Component);
+                      (n.defaultProps = { size: 8, white: '#fff', grey: '#e6e6e6' }),
+                        (e.default = n);
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }), (e.Hue = void 0);
+                      var r = function (t, e, n) {
+                        return e && i(t.prototype, e), n && i(t, n), t;
+                      };
+                      function i(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var o = l(n(3)),
+                        a = l(n(4)),
+                        s = l(n(17));
+                      function l(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      function u(t, e) {
+                        if (t)
+                          return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                        throw new ReferenceError(
+                          "this hasn't been initialised - super() hasn't been called",
+                        );
+                      }
+                      n = e.Hue = (function (t) {
+                        var e = a;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function a() {
+                          for (var o, t = arguments.length, e = Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                          var r = this,
+                            i = a;
+                          if (r instanceof i)
+                            return (
+                              ((i = o =
+                                u(
+                                  this,
+                                  (r = a.__proto__ || Object.getPrototypeOf(a)).call.apply(
+                                    r,
+                                    [this].concat(e),
+                                  ),
+                                )).shouldComponentUpdate = s.default.bind(
+                                o,
+                                o,
+                                arguments[0],
+                                arguments[1],
+                              )),
+                              (o.handleChange = function (t, e) {
+                                e || t.preventDefault();
+                                var e = o.refs.container,
+                                  n = e.clientWidth,
+                                  r = e.clientHeight,
+                                  i =
+                                    (t.pageX || (t.touches && t.touches[0].pageX) || 0) -
+                                    (e.getBoundingClientRect().left + window.pageXOffset),
+                                  t =
+                                    (t.pageY || (t.touches && t.touches[0].pageY) || 0) -
+                                    (e.getBoundingClientRect().top + window.pageYOffset);
+                                (e =
+                                  'vertical' === o.props.direction
+                                    ? t < 0
+                                      ? 359
+                                      : r < t
+                                        ? 0
+                                        : (360 * ((-100 * t) / r + 100)) / 100
+                                    : i < 0
+                                      ? 0
+                                      : n < i
+                                        ? 359
+                                        : (360 * ((100 * i) / n)) / 100),
+                                  o.props.hsl.h !== e &&
+                                    o.props.onChange({
+                                      h: e,
+                                      s: o.props.hsl.s,
+                                      l: o.props.hsl.l,
+                                      a: o.props.hsl.a,
+                                      source: 'rgb',
+                                    });
+                              }),
+                              (o.handleMouseDown = function (t) {
+                                o.handleChange(t, !0),
+                                  window.addEventListener('mousemove', o.handleChange),
+                                  window.addEventListener('mouseup', o.handleMouseUp);
+                              }),
+                              (o.handleMouseUp = function () {
+                                o.unbindEventListeners();
+                              }),
+                              u(o, i)
+                            );
+                          throw new TypeError('Cannot call a class as a function');
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          r(a, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    hue: {
+                                      Absolute: '0 0 0 0',
+                                      background:
+                                        'linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)',
+                                      borderRadius: this.props.radius,
+                                      boxShadow: this.props.shadow,
+                                    },
+                                    container: {
+                                      margin: '0 2px',
+                                      position: 'relative',
+                                      height: '100%',
+                                    },
+                                    pointer: {
+                                      zIndex: '2',
+                                      position: 'absolute',
+                                      left: (100 * this.props.hsl.h) / 360 + '%',
+                                    },
+                                    slider: {
+                                      marginTop: '1px',
+                                      width: '4px',
+                                      borderRadius: '1px',
+                                      height: '8px',
+                                      boxShadow: '0 0 2px rgba(0, 0, 0, .6)',
+                                      background: '#fff',
+                                      transform: 'translateX(-2px)',
+                                    },
+                                  },
+                                  'direction-vertical': {
+                                    hue: {
+                                      background:
+                                        'linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)',
+                                    },
+                                    pointer: {
+                                      left: '0',
+                                      top: (-100 * this.props.hsl.h) / 360 + 100 + '%',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'componentWillUnmount',
+                              value: function () {
+                                this.unbindEventListeners();
+                              },
+                            },
+                            {
+                              key: 'unbindEventListeners',
+                              value: function () {
+                                window.removeEventListener('mousemove', this.handleChange),
+                                  window.removeEventListener('mouseup', this.handleMouseUp);
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                var t = o.default.createElement('div', {
+                                  style: this.styles().slider,
+                                });
+                                return (
+                                  this.props.pointer &&
+                                    (t = o.default.createElement(this.props.pointer, this.props)),
+                                  o.default.createElement(
+                                    'div',
+                                    { style: this.styles().hue },
+                                    o.default.createElement(
+                                      'div',
+                                      {
+                                        style: this.styles().container,
+                                        ref: 'container',
+                                        onMouseDown: this.handleMouseDown,
+                                        onTouchMove: this.handleChange,
+                                        onTouchStart: this.handleChange,
+                                      },
+                                      o.default.createElement(
+                                        'div',
+                                        { style: this.styles().pointer, ref: 'pointer' },
+                                        t,
+                                      ),
+                                    ),
+                                  )
+                                );
+                              },
+                            },
+                          ]),
+                          a
+                        );
+                      })(a.default.Component);
+                      e.default = n;
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }),
+                        (e.Saturation = void 0);
+                      var i = function (t, e, n) {
+                        return e && r(t.prototype, e), n && r(t, n), t;
+                      };
+                      function r(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var o = u(n(3)),
+                        a = u(n(4)),
+                        s = u(n(23)),
+                        l = u(n(17));
+                      function u(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      n = e.Saturation = (function (t) {
+                        var e = r;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function r(t) {
+                          var e = this,
+                            n = r;
+                          if (!(e instanceof n))
+                            throw new TypeError('Cannot call a class as a function');
+                          var o = (function (t, e) {
+                            if (t)
+                              return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                            throw new ReferenceError(
+                              "this hasn't been initialised - super() hasn't been called",
+                            );
+                          })(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this));
+                          return (
+                            (o.shouldComponentUpdate = l.default.bind(o, o, t, arguments[1])),
+                            (o.handleChange = function (t, e) {
+                              e || t.preventDefault();
+                              var e = o.refs.container,
+                                n = e.clientWidth,
+                                r = e.clientHeight,
+                                i =
+                                  (t.pageX || t.touches[0].pageX) -
+                                  (e.getBoundingClientRect().left + window.pageXOffset),
+                                t =
+                                  (t.pageY || t.touches[0].pageY) -
+                                  (e.getBoundingClientRect().top + window.pageYOffset);
+                              i < 0
+                                ? (i = 0)
+                                : n < i
+                                  ? (i = n)
+                                  : t < 0
+                                    ? (t = 0)
+                                    : r < t && (t = r),
+                                o.throttle(o.props.onChange, {
+                                  h: o.props.hsl.h,
+                                  s: (100 * i) / n,
+                                  v: (-100 * t) / r + 100,
+                                  a: o.props.hsl.a,
+                                  source: 'rgb',
+                                });
+                            }),
+                            (o.handleMouseDown = function (t) {
+                              o.handleChange(t, !0),
+                                window.addEventListener('mousemove', o.handleChange),
+                                window.addEventListener('mouseup', o.handleMouseUp);
+                            }),
+                            (o.handleMouseUp = function () {
+                              o.unbindEventListeners();
+                            }),
+                            (o.throttle = (0, s.default)(function (t, e) {
+                              t(e);
+                            }, 50)),
+                            o
+                          );
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          i(r, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    color: {
+                                      Absolute: '0 0 0 0',
+                                      background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',
+                                      borderRadius: this.props.radius,
+                                    },
+                                    white: {
+                                      Absolute: '0 0 0 0',
+                                      background:
+                                        'linear-gradient(to right, #fff, rgba(255,255,255,0))',
+                                    },
+                                    black: {
+                                      Absolute: '0 0 0 0',
+                                      background: 'linear-gradient(to top, #000, rgba(0,0,0,0))',
+                                      boxShadow: this.props.shadow,
+                                    },
+                                    pointer: {
+                                      position: 'absolute',
+                                      top: -100 * this.props.hsv.v + 100 + '%',
+                                      left: 100 * this.props.hsv.s + '%',
+                                      cursor: 'default',
+                                    },
+                                    circle: {
+                                      width: '4px',
+                                      height: '4px',
+                                      boxShadow:
+                                        '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3), 0 0 1px 2px rgba(0,0,0,.4)',
+                                      borderRadius: '50%',
+                                      cursor: 'hand',
+                                      transform: 'translate(-2px, -2px)',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'componentWillUnmount',
+                              value: function () {
+                                this.unbindEventListeners();
+                              },
+                            },
+                            {
+                              key: 'unbindEventListeners',
+                              value: function () {
+                                window.removeEventListener('mousemove', this.handleChange),
+                                  window.removeEventListener('mouseup', this.handleMouseUp);
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                var t = o.default.createElement('div', {
+                                  style: this.styles().circle,
+                                });
+                                return (
+                                  this.props.pointer &&
+                                    (t = o.default.createElement(this.props.pointer, this.props)),
+                                  o.default.createElement(
+                                    'div',
+                                    {
+                                      style: this.styles().color,
+                                      ref: 'container',
+                                      onMouseDown: this.handleMouseDown,
+                                      onTouchMove: this.handleChange,
+                                      onTouchStart: this.handleChange,
+                                    },
+                                    o.default.createElement(
+                                      'div',
+                                      { style: this.styles().white },
+                                      o.default.createElement('div', {
+                                        style: this.styles().black,
+                                      }),
+                                      o.default.createElement(
+                                        'div',
+                                        { style: this.styles().pointer, ref: 'pointer' },
+                                        t,
+                                      ),
+                                    ),
+                                  )
+                                );
+                              },
+                            },
+                          ]),
+                          r
+                        );
+                      })(a.default.Component);
+                      e.default = n;
+                    },
+                    function (h, t) {
+                      !function (t) {
+                        function v() {
+                          return n.Date.now();
+                        }
+                        var b = 'Expected a function',
+                          r = NaN,
+                          i = '[object Symbol]',
+                          o = /^\s+|\s+$/g,
+                          a = /^[-+]0x[0-9a-f]+$/i,
+                          s = /^0b[01]+$/i,
+                          l = /^0o[0-7]+$/i,
+                          u = parseInt,
+                          t = 'object' == typeof t && t && t.Object === Object && t,
+                          e = 'object' == typeof self && self && self.Object === Object && self,
+                          n = t || e || Function('return this')(),
+                          c = Object.prototype.toString,
+                          y = Math.max,
+                          w = Math.min;
+                        function A(r, n, t) {
+                          var i,
+                            o,
+                            a,
+                            s,
+                            l,
+                            u,
+                            c = 0,
+                            A = !1,
+                            h = !1,
+                            e = !0;
+                          if ('function' != typeof r) throw new TypeError(b);
+                          function p(t) {
+                            var e = i,
+                              n = o;
+                            return (i = o = void 0), (c = t), (s = r.apply(n, e));
+                          }
+                          function d(t) {
+                            var e = t - u;
+                            return void 0 === u || n <= e || e < 0 || (h && a <= t - c);
+                          }
+                          function f() {
+                            var t,
+                              e = v();
+                            if (d(e)) return g(e);
+                            l = setTimeout(f, ((t = n - ((e = e) - u)), h ? w(t, a - (e - c)) : t));
+                          }
+                          function g(t) {
+                            return (l = void 0), e && i ? p(t) : ((i = o = void 0), s);
+                          }
+                          function m() {
+                            var t = v(),
+                              e = d(t);
+                            if (((i = arguments), (o = this), (u = t), e)) {
+                              if (void 0 === l)
+                                return (c = t = u), (l = setTimeout(f, n)), A ? p(t) : s;
+                              if (h) return (l = setTimeout(f, n)), p(u);
+                            }
+                            return void 0 === l && (l = setTimeout(f, n)), s;
+                          }
+                          return (
+                            (n = B(n) || 0),
+                            E(t) &&
+                              ((A = !!t.leading),
+                              (h = 'maxWait' in t),
+                              (a = h ? y(B(t.maxWait) || 0, n) : a),
+                              (e = 'trailing' in t ? !!t.trailing : e)),
+                            (m.cancel = function () {
+                              void 0 !== l && clearTimeout(l), (i = u = o = l = void (c = 0));
+                            }),
+                            (m.flush = function () {
+                              return void 0 === l ? s : g(v());
+                            }),
+                            m
+                          );
+                        }
+                        function E(t) {
+                          var e = typeof t;
+                          return t && ('object' == e || 'function' == e);
+                        }
+                        function B(t) {
+                          if ('number' == typeof t) return t;
+                          if (
+                            'symbol' == typeof (n = t) ||
+                            (!!(e = n) && 'object' == typeof e && c.call(n) == i)
+                          )
+                            return r;
+                          var e;
+                          if (
+                            'string' !=
+                            typeof (t = E(t)
+                              ? E((e = 'function' == typeof t.valueOf ? t.valueOf() : t))
+                                ? e + ''
+                                : e
+                              : t)
+                          )
+                            return 0 === t ? t : +t;
+                          t = t.replace(o, '');
+                          var n = s.test(t);
+                          return n || l.test(t) ? u(t.slice(2), n ? 2 : 8) : a.test(t) ? r : +t;
+                        }
+                        h.exports = function (t, e, n) {
+                          var r = !0,
+                            i = !0;
+                          if ('function' != typeof t) throw new TypeError(b);
+                          return (
+                            E(n) &&
+                              ((r = 'leading' in n ? !!n.leading : r),
+                              (i = 'trailing' in n ? !!n.trailing : i)),
+                            A(t, e, { leading: r, maxWait: e, trailing: i })
+                          );
+                        };
+                      }.call(
+                        t,
+                        (function () {
+                          return this;
+                        })(),
+                      );
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }), (e.ColorWrap = void 0);
+                      var r =
+                          Object.assign ||
+                          function (t) {
+                            for (var e = 1; e < arguments.length; e++) {
+                              var n,
+                                r = arguments[e];
+                              for (n in r)
+                                Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]);
+                            }
+                            return t;
+                          },
+                        o = function (t, e, n) {
+                          return e && i(t.prototype, e), n && i(t, n), t;
+                        };
+                      function i(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var a = A(n(3)),
+                        s = A(n(11)),
+                        l = (A(n(25)), A(n(26))),
+                        u = A(n(27)),
+                        c = A(n(17));
+                      function A(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      n = e.ColorWrap = function (n) {
+                        var t = (function (t) {
+                          var e = i;
+                          if ('function' != typeof t && null !== t)
+                            throw new TypeError(
+                              'Super expression must either be null or a function, not ' + typeof t,
+                            );
+                          function i(t) {
+                            var e = this,
+                              n = i;
+                            if (!(e instanceof n))
+                              throw new TypeError('Cannot call a class as a function');
+                            var r = (function (t, e) {
+                              if (t)
+                                return !e || ('object' != typeof e && 'function' != typeof e)
+                                  ? t
+                                  : e;
+                              throw new ReferenceError(
+                                "this hasn't been initialised - super() hasn't been called",
+                              );
+                            })(this, (i.__proto__ || Object.getPrototypeOf(i)).call(this));
+                            return (
+                              (r.shouldComponentUpdate = c.default.bind(r, r, t, arguments[1])),
+                              (r.handleChange = function (t) {
+                                (t = u.default.simpleCheckForValidColor(t)) &&
+                                  ((t = u.default.toState(t, t.h || r.state.oldHue)),
+                                  r.setState(t),
+                                  r.props.onChangeComplete &&
+                                    r.debounce(r.props.onChangeComplete, t),
+                                  r.props.onChange && r.props.onChange(t));
+                              }),
+                              (r.state = (0, s.default)(u.default.toState(t.color, 0), {
+                                visible: t.display,
+                              })),
+                              (r.debounce = (0, l.default)(function (t, e) {
+                                t(e);
+                              }, 100)),
+                              r
+                            );
+                          }
+                          return (
+                            (e.prototype = Object.create(t && t.prototype, {
+                              constructor: {
+                                value: e,
+                                enumerable: !1,
+                                writable: !0,
+                                configurable: !0,
+                              },
+                            })),
+                            t &&
+                              (Object.setPrototypeOf
+                                ? Object.setPrototypeOf(e, t)
+                                : (e.__proto__ = t)),
+                            o(i, [
+                              {
+                                key: 'componentWillReceiveProps',
+                                value: function (t) {
+                                  this.setState(
+                                    (0, s.default)(u.default.toState(t.color, this.state.oldHue), {
+                                      visible: t.display,
+                                    }),
+                                  );
+                                },
+                              },
+                              {
+                                key: 'render',
+                                value: function () {
+                                  return a.default.createElement(
+                                    n,
+                                    r({}, this.props, this.state, { onChange: this.handleChange }),
+                                  );
+                                },
+                              },
+                            ]),
+                            i
+                          );
+                        })(a.default.Component);
+                        return (t.defaultProps = { color: { h: 250, s: 0.5, l: 0.2, a: 1 } }), t;
+                      };
+                      e.default = n;
+                    },
+                    function (t, e) {
+                      var n = '[object Object]';
+                      var r,
+                        i,
+                        o = Function.prototype,
+                        a = Object.prototype,
+                        s = o.toString,
+                        l = a.hasOwnProperty,
+                        u = s.call(Object),
+                        c = a.toString,
+                        A =
+                          ((r = Object.getPrototypeOf),
+                          (i = Object),
+                          function (t) {
+                            return r(i(t));
+                          });
+                      t.exports = function (t) {
+                        if (
+                          !(e = t) ||
+                          'object' != typeof e ||
+                          c.call(t) != n ||
+                          (function (t) {
+                            var e = !1;
+                            if (null != t && 'function' != typeof t.toString)
+                              try {
+                                e = !!(t + '');
+                              } catch (t) {}
+                            return e;
+                          })(t)
+                        )
+                          return !1;
+                        var e = A(t);
+                        return (
+                          null === e ||
+                          ('function' == typeof (t = l.call(e, 'constructor') && e.constructor) &&
+                            t instanceof t &&
+                            s.call(t) == u)
+                        );
+                      };
+                    },
+                    function (c, t) {
+                      !function (t) {
+                        var v = 'Expected a function',
+                          r = NaN,
+                          i = /^\s+|\s+$/g,
+                          o = /^[-+]0x[0-9a-f]+$/i,
+                          a = /^0b[01]+$/i,
+                          s = /^0o[0-7]+$/i,
+                          l = parseInt,
+                          t = 'object' == typeof t && t && t.Object === Object && t,
+                          e = 'object' == typeof self && self && self.Object === Object && self,
+                          n = t || e || Function('return this')(),
+                          u = Object.prototype.toString,
+                          b = Math.max,
+                          y = Math.min,
+                          w = function () {
+                            return n.Date.now();
+                          };
+                        function E(t) {
+                          var e = typeof t;
+                          return t && ('object' == e || 'function' == e);
+                        }
+                        function B(t) {
+                          if ('number' == typeof t) return t;
+                          if (
+                            'symbol' == typeof (n = t) ||
+                            (!!(e = n) && 'object' == typeof e && '[object Symbol]' == u.call(n))
+                          )
+                            return r;
+                          var e;
+                          if (
+                            'string' !=
+                            typeof (t = E(t)
+                              ? E((e = 'function' == typeof t.valueOf ? t.valueOf() : t))
+                                ? e + ''
+                                : e
+                              : t)
+                          )
+                            return 0 === t ? t : +t;
+                          t = t.replace(i, '');
+                          var n = a.test(t);
+                          return n || s.test(t) ? l(t.slice(2), n ? 2 : 8) : o.test(t) ? r : +t;
+                        }
+                        c.exports = function (r, n, t) {
+                          var i,
+                            o,
+                            a,
+                            s,
+                            l,
+                            u,
+                            c = 0,
+                            A = !1,
+                            h = !1,
+                            e = !0;
+                          if ('function' != typeof r) throw new TypeError(v);
+                          function p(t) {
+                            var e = i,
+                              n = o;
+                            return (i = o = void 0), (c = t), (s = r.apply(n, e));
+                          }
+                          function d(t) {
+                            var e = t - u;
+                            return void 0 === u || n <= e || e < 0 || (h && a <= t - c);
+                          }
+                          function f() {
+                            var t,
+                              e = w();
+                            if (d(e)) return g(e);
+                            l = setTimeout(f, ((t = n - ((e = e) - u)), h ? y(t, a - (e - c)) : t));
+                          }
+                          function g(t) {
+                            return (l = void 0), e && i ? p(t) : ((i = o = void 0), s);
+                          }
+                          function m() {
+                            var t = w(),
+                              e = d(t);
+                            if (((i = arguments), (o = this), (u = t), e)) {
+                              if (void 0 === l)
+                                return (c = t = u), (l = setTimeout(f, n)), A ? p(t) : s;
+                              if (h) return (l = setTimeout(f, n)), p(u);
+                            }
+                            return void 0 === l && (l = setTimeout(f, n)), s;
+                          }
+                          return (
+                            (n = B(n) || 0),
+                            E(t) &&
+                              ((A = !!t.leading),
+                              (h = 'maxWait' in t),
+                              (a = h ? b(B(t.maxWait) || 0, n) : a),
+                              (e = 'trailing' in t ? !!t.trailing : e)),
+                            (m.cancel = function () {
+                              void 0 !== l && clearTimeout(l), (i = u = o = l = void (c = 0));
+                            }),
+                            (m.flush = function () {
+                              return void 0 === l ? s : g(w());
+                            }),
+                            m
+                          );
+                        };
+                      }.call(
+                        t,
+                        (function () {
+                          return this;
+                        })(),
+                      );
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 });
+                      var n = n(28),
+                        o = (n = n) && n.__esModule ? n : { default: n };
+                      e.default = {
+                        simpleCheckForValidColor: function (t) {
+                          for (
+                            var e = ['r', 'g', 'b', 'a', 'h', 's', 'a', 'v'], n = 0, r = 0, i = 0;
+                            i < e.length;
+                            i++
+                          ) {
+                            var o = e[i];
+                            t[o] && (n++, isNaN(t[o]) || r++);
+                          }
+                          if (n === r) return t;
+                        },
+                        toState: function (t, e) {
+                          var n = t.hex ? (0, o.default)(t.hex) : (0, o.default)(t),
+                            r = n.toHsl(),
+                            i = n.toHsv();
+                          return (
+                            0 === r.s && ((r.h = e || 0), (i.h = e || 0)),
+                            {
+                              hsl: r,
+                              hex: '#' + n.toHex(),
+                              rgb: n.toRgb(),
+                              hsv: i,
+                              oldHue: t.h || e || r.h,
+                              source: t.source,
+                            }
+                          );
+                        },
+                        isValidHex: function (t) {
+                          return (0, o.default)(t).isValid();
+                        },
+                      };
+                    },
+                    function (t, e, n) {
+                      var o, a, r, s, i, u, c, l, A, h, p, d, f;
+                      function g(t, e) {
+                        if (((e = e || {}), (t = t || '') instanceof g)) return t;
+                        if (!(this instanceof g)) return new g(t, e);
+                        var n = (function (t) {
+                          var e = { r: 0, g: 0, b: 0 },
+                            n = 1,
+                            r = !1,
+                            i = !1;
+                          'string' == typeof t &&
+                            (t = (function (t) {
+                              t = t.replace(o, '').replace(a, '').toLowerCase();
+                              var e,
+                                n = !1;
+                              if (A[t]) (t = A[t]), (n = !0);
+                              else if ('transparent' == t)
+                                return { r: 0, g: 0, b: 0, a: 0, format: 'name' };
+                              if ((e = f.rgb.exec(t))) return { r: e[1], g: e[2], b: e[3] };
+                              if ((e = f.rgba.exec(t)))
+                                return { r: e[1], g: e[2], b: e[3], a: e[4] };
+                              if ((e = f.hsl.exec(t))) return { h: e[1], s: e[2], l: e[3] };
+                              if ((e = f.hsla.exec(t)))
+                                return { h: e[1], s: e[2], l: e[3], a: e[4] };
+                              if ((e = f.hsv.exec(t))) return { h: e[1], s: e[2], v: e[3] };
+                              if ((e = f.hsva.exec(t)))
+                                return { h: e[1], s: e[2], v: e[3], a: e[4] };
+                              if ((e = f.hex8.exec(t)))
+                                return {
+                                  a: (function (t) {
+                                    return _(t) / 255;
+                                  })(e[1]),
+                                  r: _(e[2]),
+                                  g: _(e[3]),
+                                  b: _(e[4]),
+                                  format: n ? 'name' : 'hex8',
+                                };
+                              if ((e = f.hex6.exec(t)))
+                                return {
+                                  r: _(e[1]),
+                                  g: _(e[2]),
+                                  b: _(e[3]),
+                                  format: n ? 'name' : 'hex',
+                                };
+                              if ((e = f.hex3.exec(t)))
+                                return {
+                                  r: _(e[1] + '' + e[1]),
+                                  g: _(e[2] + '' + e[2]),
+                                  b: _(e[3] + '' + e[3]),
+                                  format: n ? 'name' : 'hex',
+                                };
+                              return !1;
+                            })(t));
+                          'object' == typeof t &&
+                            (t.hasOwnProperty('r') && t.hasOwnProperty('g') && t.hasOwnProperty('b')
+                              ? ((e = (function (t, e, n) {
+                                  return {
+                                    r: 255 * F(t, 255),
+                                    g: 255 * F(e, 255),
+                                    b: 255 * F(n, 255),
+                                  };
+                                })(t.r, t.g, t.b)),
+                                (r = !0),
+                                (i = '%' === String(t.r).substr(-1) ? 'prgb' : 'rgb'))
+                              : t.hasOwnProperty('h') &&
+                                  t.hasOwnProperty('s') &&
+                                  t.hasOwnProperty('v')
+                                ? ((t.s = R(t.s, 1)),
+                                  (t.v = R(t.v, 1)),
+                                  (e = (function (t, e, n) {
+                                    (t = 6 * F(t, 360)), (e = F(e, 100)), (n = F(n, 100));
+                                    var r = s.floor(t),
+                                      t = t - r,
+                                      i = n * (1 - e),
+                                      o = n * (1 - t * e),
+                                      t = n * (1 - (1 - t) * e),
+                                      e = r % 6;
+                                    return {
+                                      r: 255 * [n, o, i, i, t, n][e],
+                                      g: 255 * [t, n, n, o, i, i][e],
+                                      b: 255 * [i, i, t, n, n, o][e],
+                                    };
+                                  })(t.h, t.s, t.v)),
+                                  (r = !0),
+                                  (i = 'hsv'))
+                                : t.hasOwnProperty('h') &&
+                                  t.hasOwnProperty('s') &&
+                                  t.hasOwnProperty('l') &&
+                                  ((t.s = R(t.s)),
+                                  (t.l = R(t.l)),
+                                  (e = (function (t, e, n) {
+                                    var r, i, o;
+                                    function a(t, e, n) {
+                                      return (
+                                        n < 0 && (n += 1),
+                                        1 < n && --n,
+                                        n < 1 / 6
+                                          ? t + 6 * (e - t) * n
+                                          : n < 0.5
+                                            ? e
+                                            : n < 2 / 3
+                                              ? t + (e - t) * (2 / 3 - n) * 6
+                                              : t
+                                      );
+                                    }
+                                    (t = F(t, 360)),
+                                      (e = F(e, 100)),
+                                      (n = F(n, 100)),
+                                      0 === e
+                                        ? (r = i = o = n)
+                                        : ((r = a(
+                                            (e =
+                                              2 * n - (n = n < 0.5 ? n * (1 + e) : n + e - n * e)),
+                                            n,
+                                            t + 1 / 3,
+                                          )),
+                                          (i = a(e, n, t)),
+                                          (o = a(e, n, t - 1 / 3)));
+                                    return { r: 255 * r, g: 255 * i, b: 255 * o };
+                                  })(t.h, t.s, t.l)),
+                                  (r = !0),
+                                  (i = 'hsl')),
+                            t.hasOwnProperty('a') && (n = t.a));
+                          return (
+                            (n = k(n)),
+                            {
+                              ok: r,
+                              format: t.format || i,
+                              r: u(255, c(e.r, 0)),
+                              g: u(255, c(e.g, 0)),
+                              b: u(255, c(e.b, 0)),
+                              a: n,
+                            }
+                          );
+                        })(t);
+                        (this._originalInput = t),
+                          (this._r = n.r),
+                          (this._g = n.g),
+                          (this._b = n.b),
+                          (this._a = n.a),
+                          (this._roundA = i(100 * this._a) / 100),
+                          (this._format = e.format || n.format),
+                          (this._gradientType = e.gradientType),
+                          this._r < 1 && (this._r = i(this._r)),
+                          this._g < 1 && (this._g = i(this._g)),
+                          this._b < 1 && (this._b = i(this._b)),
+                          (this._ok = n.ok),
+                          (this._tc_id = r++);
+                      }
+                      function m(t, e, n) {
+                        (t = F(t, 255)), (e = F(e, 255)), (n = F(n, 255));
+                        var r,
+                          i = c(t, e, n),
+                          o = u(t, e, n),
+                          a = (i + o) / 2;
+                        if (i == o) r = l = 0;
+                        else {
+                          var s = i - o,
+                            l = 0.5 < a ? s / (2 - i - o) : s / (i + o);
+                          switch (i) {
+                            case t:
+                              r = (e - n) / s + (e < n ? 6 : 0);
+                              break;
+                            case e:
+                              r = (n - t) / s + 2;
+                              break;
+                            case n:
+                              r = (t - e) / s + 4;
+                          }
+                          r /= 6;
+                        }
+                        return { h: r, s: l, l: a };
+                      }
+                      function v(t, e, n) {
+                        (t = F(t, 255)), (e = F(e, 255)), (n = F(n, 255));
+                        var r,
+                          i = c(t, e, n),
+                          o = u(t, e, n),
+                          a = i,
+                          s = i - o,
+                          l = 0 === i ? 0 : s / i;
+                        if (i == o) r = 0;
+                        else {
+                          switch (i) {
+                            case t:
+                              r = (e - n) / s + (e < n ? 6 : 0);
+                              break;
+                            case e:
+                              r = (n - t) / s + 2;
+                              break;
+                            case n:
+                              r = (t - e) / s + 4;
+                          }
+                          r /= 6;
+                        }
+                        return { h: r, s: l, v: a };
+                      }
+                      function b(t, e, n, r) {
+                        t = [T(i(t).toString(16)), T(i(e).toString(16)), T(i(n).toString(16))];
+                        return r &&
+                          t[0].charAt(0) == t[0].charAt(1) &&
+                          t[1].charAt(0) == t[1].charAt(1) &&
+                          t[2].charAt(0) == t[2].charAt(1)
+                          ? t[0].charAt(0) + t[1].charAt(0) + t[2].charAt(0)
+                          : t.join('');
+                      }
+                      function y(t, e, n, r) {
+                        return [
+                          T(Math.round(255 * parseFloat(r)).toString(16)),
+                          T(i(t).toString(16)),
+                          T(i(e).toString(16)),
+                          T(i(n).toString(16)),
+                        ].join('');
+                      }
+                      function w(t, e) {
+                        e = 0 === e ? 0 : e || 10;
+                        t = g(t).toHsl();
+                        return (t.s -= e / 100), (t.s = Q(t.s)), g(t);
+                      }
+                      function E(t, e) {
+                        e = 0 === e ? 0 : e || 10;
+                        t = g(t).toHsl();
+                        return (t.s += e / 100), (t.s = Q(t.s)), g(t);
+                      }
+                      function B(t) {
+                        return g(t).desaturate(100);
+                      }
+                      function C(t, e) {
+                        e = 0 === e ? 0 : e || 10;
+                        t = g(t).toHsl();
+                        return (t.l += e / 100), (t.l = Q(t.l)), g(t);
+                      }
+                      function x(t, e) {
+                        e = 0 === e ? 0 : e || 10;
+                        t = g(t).toRgb();
+                        return (
+                          (t.r = c(0, u(255, t.r - i((-e / 100) * 255)))),
+                          (t.g = c(0, u(255, t.g - i((-e / 100) * 255)))),
+                          (t.b = c(0, u(255, t.b - i((-e / 100) * 255)))),
+                          g(t)
+                        );
+                      }
+                      function I(t, e) {
+                        e = 0 === e ? 0 : e || 10;
+                        t = g(t).toHsl();
+                        return (t.l -= e / 100), (t.l = Q(t.l)), g(t);
+                      }
+                      function M(t, e) {
+                        (t = g(t).toHsl()), (e = (i(t.h) + e) % 360);
+                        return (t.h = e < 0 ? 360 + e : e), g(t);
+                      }
+                      function D(t) {
+                        t = g(t).toHsl();
+                        return (t.h = (t.h + 180) % 360), g(t);
+                      }
+                      function S(t) {
+                        var e = g(t).toHsl(),
+                          n = e.h;
+                        return [
+                          g(t),
+                          g({ h: (n + 120) % 360, s: e.s, l: e.l }),
+                          g({ h: (n + 240) % 360, s: e.s, l: e.l }),
+                        ];
+                      }
+                      function U(t) {
+                        var e = g(t).toHsl(),
+                          n = e.h;
+                        return [
+                          g(t),
+                          g({ h: (n + 90) % 360, s: e.s, l: e.l }),
+                          g({ h: (n + 180) % 360, s: e.s, l: e.l }),
+                          g({ h: (n + 270) % 360, s: e.s, l: e.l }),
+                        ];
+                      }
+                      function N(t) {
+                        var e = g(t).toHsl(),
+                          n = e.h;
+                        return [
+                          g(t),
+                          g({ h: (n + 72) % 360, s: e.s, l: e.l }),
+                          g({ h: (n + 216) % 360, s: e.s, l: e.l }),
+                        ];
+                      }
+                      function P(t, e, n) {
+                        (e = e || 6), (n = n || 30);
+                        var r = g(t).toHsl(),
+                          i = 360 / n,
+                          o = [g(t)];
+                        for (r.h = (r.h - ((i * e) >> 1) + 720) % 360; --e; )
+                          (r.h = (r.h + i) % 360), o.push(g(r));
+                        return o;
+                      }
+                      function L(t, e) {
+                        e = e || 6;
+                        for (
+                          var t = g(t).toHsv(), n = t.h, r = t.s, i = t.v, o = [], a = 1 / e;
+                          e--;
+
+                        )
+                          o.push(g({ h: n, s: r, v: i })), (i = (i + a) % 1);
+                        return o;
+                      }
+                      function k(t) {
+                        return (t = parseFloat(t)), (t = isNaN(t) || t < 0 || 1 < t ? 1 : t);
+                      }
+                      function F(t, e) {
+                        'string' == typeof (n = t) &&
+                          -1 != n.indexOf('.') &&
+                          1 === parseFloat(n) &&
+                          (t = '100%');
+                        var n = 'string' == typeof (n = t) && -1 != n.indexOf('%');
+                        return (
+                          (t = u(e, c(0, parseFloat(t)))),
+                          n && (t = parseInt(t * e, 10) / 100),
+                          s.abs(t - e) < 1e-6 ? 1 : (t % e) / parseFloat(e)
+                        );
+                      }
+                      function Q(t) {
+                        return u(1, c(0, t));
+                      }
+                      function _(t) {
+                        return parseInt(t, 16);
+                      }
+                      function T(t) {
+                        return 1 == t.length ? '0' + t : '' + t;
+                      }
+                      function R(t, e) {
+                        return (e = e || 100), (t = t <= 1 ? t * e + '%' : t);
+                      }
+                      (o = /^[\s,#]+/),
+                        (a = /\s+$/),
+                        (r = 0),
+                        (s = Math),
+                        (i = s.round),
+                        (u = s.min),
+                        (c = s.max),
+                        (l = s.random),
+                        (g.prototype = {
+                          isDark: function () {
+                            return this.getBrightness() < 128;
+                          },
+                          isLight: function () {
+                            return !this.isDark();
+                          },
+                          isValid: function () {
+                            return this._ok;
+                          },
+                          getOriginalInput: function () {
+                            return this._originalInput;
+                          },
+                          getFormat: function () {
+                            return this._format;
+                          },
+                          getAlpha: function () {
+                            return this._a;
+                          },
+                          getBrightness: function () {
+                            var t = this.toRgb();
+                            return (299 * t.r + 587 * t.g + 114 * t.b) / 1e3;
+                          },
+                          getLuminance: function () {
+                            var t = this.toRgb(),
+                              e = t.r / 255,
+                              n = t.g / 255,
+                              t = t.b / 255,
+                              e = e <= 0.03928 ? e / 12.92 : Math.pow((0.055 + e) / 1.055, 2.4),
+                              n = n <= 0.03928 ? n / 12.92 : Math.pow((0.055 + n) / 1.055, 2.4),
+                              t = t <= 0.03928 ? t / 12.92 : Math.pow((0.055 + t) / 1.055, 2.4);
+                            return 0.2126 * e + 0.7152 * n + 0.0722 * t;
+                          },
+                          setAlpha: function (t) {
+                            return (this._a = k(t)), (this._roundA = i(100 * this._a) / 100), this;
+                          },
+                          toHsv: function () {
+                            var t = v(this._r, this._g, this._b);
+                            return { h: 360 * t.h, s: t.s, v: t.v, a: this._a };
+                          },
+                          toHsvString: function () {
+                            var t = v(this._r, this._g, this._b),
+                              e = i(360 * t.h),
+                              n = i(100 * t.s),
+                              t = i(100 * t.v);
+                            return 1 == this._a
+                              ? 'hsv(' + e + ', ' + n + '%, ' + t + '%)'
+                              : 'hsva(' + e + ', ' + n + '%, ' + t + '%, ' + this._roundA + ')';
+                          },
+                          toHsl: function () {
+                            var t = m(this._r, this._g, this._b);
+                            return { h: 360 * t.h, s: t.s, l: t.l, a: this._a };
+                          },
+                          toHslString: function () {
+                            var t = m(this._r, this._g, this._b),
+                              e = i(360 * t.h),
+                              n = i(100 * t.s),
+                              t = i(100 * t.l);
+                            return 1 == this._a
+                              ? 'hsl(' + e + ', ' + n + '%, ' + t + '%)'
+                              : 'hsla(' + e + ', ' + n + '%, ' + t + '%, ' + this._roundA + ')';
+                          },
+                          toHex: function (t) {
+                            return b(this._r, this._g, this._b, t);
+                          },
+                          toHexString: function (t) {
+                            return '#' + this.toHex(t);
+                          },
+                          toHex8: function () {
+                            return y(this._r, this._g, this._b, this._a);
+                          },
+                          toHex8String: function () {
+                            return '#' + this.toHex8();
+                          },
+                          toRgb: function () {
+                            return { r: i(this._r), g: i(this._g), b: i(this._b), a: this._a };
+                          },
+                          toRgbString: function () {
+                            return 1 == this._a
+                              ? 'rgb(' + i(this._r) + ', ' + i(this._g) + ', ' + i(this._b) + ')'
+                              : 'rgba(' +
+                                  i(this._r) +
+                                  ', ' +
+                                  i(this._g) +
+                                  ', ' +
+                                  i(this._b) +
+                                  ', ' +
+                                  this._roundA +
+                                  ')';
+                          },
+                          toPercentageRgb: function () {
+                            return {
+                              r: i(100 * F(this._r, 255)) + '%',
+                              g: i(100 * F(this._g, 255)) + '%',
+                              b: i(100 * F(this._b, 255)) + '%',
+                              a: this._a,
+                            };
+                          },
+                          toPercentageRgbString: function () {
+                            return 1 == this._a
+                              ? 'rgb(' +
+                                  i(100 * F(this._r, 255)) +
+                                  '%, ' +
+                                  i(100 * F(this._g, 255)) +
+                                  '%, ' +
+                                  i(100 * F(this._b, 255)) +
+                                  '%)'
+                              : 'rgba(' +
+                                  i(100 * F(this._r, 255)) +
+                                  '%, ' +
+                                  i(100 * F(this._g, 255)) +
+                                  '%, ' +
+                                  i(100 * F(this._b, 255)) +
+                                  '%, ' +
+                                  this._roundA +
+                                  ')';
+                          },
+                          toName: function () {
+                            return 0 === this._a
+                              ? 'transparent'
+                              : (!(this._a < 1) && h[b(this._r, this._g, this._b, !0)]) || !1;
+                          },
+                          toFilter: function (t) {
+                            var e = '#' + y(this._r, this._g, this._b, this._a),
+                              n = e;
+                            return (
+                              'progid:DXImageTransform.Microsoft.gradient(' +
+                              (this._gradientType ? 'GradientType = 1, ' : '') +
+                              'startColorstr=' +
+                              e +
+                              ',endColorstr=' +
+                              (n = t ? g(t).toHex8String() : n) +
+                              ')'
+                            );
+                          },
+                          toString: function (t) {
+                            var e = !!t,
+                              n = ((t = t || this._format), !1),
+                              r = this._a < 1 && 0 <= this._a;
+                            return e ||
+                              !r ||
+                              ('hex' !== t && 'hex6' !== t && 'hex3' !== t && 'name' !== t)
+                              ? ('rgb' === t && (n = this.toRgbString()),
+                                'prgb' === t && (n = this.toPercentageRgbString()),
+                                ('hex' !== t && 'hex6' !== t) || (n = this.toHexString()),
+                                'hex3' === t && (n = this.toHexString(!0)),
+                                'hex8' === t && (n = this.toHex8String()),
+                                'name' === t && (n = this.toName()),
+                                'hsl' === t && (n = this.toHslString()),
+                                (n = 'hsv' === t ? this.toHsvString() : n) || this.toHexString())
+                              : 'name' === t && 0 === this._a
+                                ? this.toName()
+                                : this.toRgbString();
+                          },
+                          _applyModification: function (t, e) {
+                            t = t.apply(null, [this].concat([].slice.call(e)));
+                            return (
+                              (this._r = t._r),
+                              (this._g = t._g),
+                              (this._b = t._b),
+                              this.setAlpha(t._a),
+                              this
+                            );
+                          },
+                          lighten: function () {
+                            return this._applyModification(C, arguments);
+                          },
+                          brighten: function () {
+                            return this._applyModification(x, arguments);
+                          },
+                          darken: function () {
+                            return this._applyModification(I, arguments);
+                          },
+                          desaturate: function () {
+                            return this._applyModification(w, arguments);
+                          },
+                          saturate: function () {
+                            return this._applyModification(E, arguments);
+                          },
+                          greyscale: function () {
+                            return this._applyModification(B, arguments);
+                          },
+                          spin: function () {
+                            return this._applyModification(M, arguments);
+                          },
+                          _applyCombination: function (t, e) {
+                            return t.apply(null, [this].concat([].slice.call(e)));
+                          },
+                          analogous: function () {
+                            return this._applyCombination(P, arguments);
+                          },
+                          complement: function () {
+                            return this._applyCombination(D, arguments);
+                          },
+                          monochromatic: function () {
+                            return this._applyCombination(L, arguments);
+                          },
+                          splitcomplement: function () {
+                            return this._applyCombination(N, arguments);
+                          },
+                          triad: function () {
+                            return this._applyCombination(S, arguments);
+                          },
+                          tetrad: function () {
+                            return this._applyCombination(U, arguments);
+                          },
+                        }),
+                        (g.fromRatio = function (t, e) {
+                          if ('object' == typeof t) {
+                            var n,
+                              r = {};
+                            for (n in t) t.hasOwnProperty(n) && (r[n] = 'a' === n ? t[n] : R(t[n]));
+                            t = r;
+                          }
+                          return g(t, e);
+                        }),
+                        (g.equals = function (t, e) {
+                          return !(!t || !e) && g(t).toRgbString() == g(e).toRgbString();
+                        }),
+                        (g.random = function () {
+                          return g.fromRatio({ r: l(), g: l(), b: l() });
+                        }),
+                        (g.mix = function (t, e, n) {
+                          n = 0 === n ? 0 : n || 50;
+                          var t = g(t).toRgb(),
+                            e = g(e).toRgb(),
+                            n = n / 100,
+                            r = 2 * n - 1,
+                            i = e.a - t.a,
+                            r = r * i == -1 ? r : (r + i) / (1 + r * i),
+                            i = 1 - (r = (r + 1) / 2);
+                          return g({
+                            r: e.r * r + t.r * i,
+                            g: e.g * r + t.g * i,
+                            b: e.b * r + t.b * i,
+                            a: e.a * n + t.a * (1 - n),
+                          });
+                        }),
+                        (g.readability = function (t, e) {
+                          (t = g(t)), (e = g(e));
+                          return (
+                            (Math.max(t.getLuminance(), e.getLuminance()) + 0.05) /
+                            (Math.min(t.getLuminance(), e.getLuminance()) + 0.05)
+                          );
+                        }),
+                        (g.isReadable = function (t, e, n) {
+                          var r = g.readability(t, e),
+                            i = !1,
+                            t = (function (t) {
+                              var e;
+                              (e = (
+                                (t = t || { level: 'AA', size: 'small' }).level || 'AA'
+                              ).toUpperCase()),
+                                (t = (t.size || 'small').toLowerCase()),
+                                'AA' !== e && 'AAA' !== e && (e = 'AA');
+                              'small' !== t && 'large' !== t && (t = 'small');
+                              return { level: e, size: t };
+                            })(n);
+                          switch (t.level + t.size) {
+                            case 'AAsmall':
+                            case 'AAAlarge':
+                              i = 4.5 <= r;
+                              break;
+                            case 'AAlarge':
+                              i = 3 <= r;
+                              break;
+                            case 'AAAsmall':
+                              i = 7 <= r;
+                          }
+                          return i;
+                        }),
+                        (g.mostReadable = function (t, e, n) {
+                          for (
+                            var r,
+                              i = null,
+                              o = 0,
+                              a = (n = n || {}).includeFallbackColors,
+                              s = n.level,
+                              l = n.size,
+                              u = 0;
+                            u < e.length;
+                            u++
+                          )
+                            o < (r = g.readability(t, e[u])) && ((o = r), (i = g(e[u])));
+                          return g.isReadable(t, i, { level: s, size: l }) || !a
+                            ? i
+                            : ((n.includeFallbackColors = !1),
+                              g.mostReadable(t, ['#fff', '#000'], n));
+                        }),
+                        (A = g.names =
+                          {
+                            aliceblue: 'f0f8ff',
+                            antiquewhite: 'faebd7',
+                            aqua: '0ff',
+                            aquamarine: '7fffd4',
+                            azure: 'f0ffff',
+                            beige: 'f5f5dc',
+                            bisque: 'ffe4c4',
+                            black: '000',
+                            blanchedalmond: 'ffebcd',
+                            blue: '00f',
+                            blueviolet: '8a2be2',
+                            brown: 'a52a2a',
+                            burlywood: 'deb887',
+                            burntsienna: 'ea7e5d',
+                            cadetblue: '5f9ea0',
+                            chartreuse: '7fff00',
+                            chocolate: 'd2691e',
+                            coral: 'ff7f50',
+                            cornflowerblue: '6495ed',
+                            cornsilk: 'fff8dc',
+                            crimson: 'dc143c',
+                            cyan: '0ff',
+                            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: 'f0f',
+                            gainsboro: 'dcdcdc',
+                            ghostwhite: 'f8f8ff',
+                            gold: 'ffd700',
+                            goldenrod: 'daa520',
+                            gray: '808080',
+                            green: '008000',
+                            greenyellow: 'adff2f',
+                            grey: '808080',
+                            honeydew: 'f0fff0',
+                            hotpink: 'ff69b4',
+                            indianred: 'cd5c5c',
+                            indigo: '4b0082',
+                            ivory: 'fffff0',
+                            khaki: 'f0e68c',
+                            lavender: 'e6e6fa',
+                            lavenderblush: 'fff0f5',
+                            lawngreen: '7cfc00',
+                            lemonchiffon: 'fffacd',
+                            lightblue: 'add8e6',
+                            lightcoral: 'f08080',
+                            lightcyan: 'e0ffff',
+                            lightgoldenrodyellow: 'fafad2',
+                            lightgray: 'd3d3d3',
+                            lightgreen: '90ee90',
+                            lightgrey: 'd3d3d3',
+                            lightpink: 'ffb6c1',
+                            lightsalmon: 'ffa07a',
+                            lightseagreen: '20b2aa',
+                            lightskyblue: '87cefa',
+                            lightslategray: '789',
+                            lightslategrey: '789',
+                            lightsteelblue: 'b0c4de',
+                            lightyellow: 'ffffe0',
+                            lime: '0f0',
+                            limegreen: '32cd32',
+                            linen: 'faf0e6',
+                            magenta: 'f0f',
+                            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: 'f00',
+                            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: 'fff',
+                            whitesmoke: 'f5f5f5',
+                            yellow: 'ff0',
+                            yellowgreen: '9acd32',
+                          }),
+                        (h = g.hexNames =
+                          (function (t) {
+                            var e,
+                              n = {};
+                            for (e in t) t.hasOwnProperty(e) && (n[t[e]] = e);
+                            return n;
+                          })(A)),
+                        (d =
+                          '[\\s|\\(]+(' +
+                          (p = '(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)') +
+                          ')[,|\\s]+(' +
+                          p +
+                          ')[,|\\s]+(' +
+                          p +
+                          ')\\s*\\)?'),
+                        (p =
+                          '[\\s|\\(]+(' +
+                          p +
+                          ')[,|\\s]+(' +
+                          p +
+                          ')[,|\\s]+(' +
+                          p +
+                          ')[,|\\s]+(' +
+                          p +
+                          ')\\s*\\)?'),
+                        (f = {
+                          rgb: new RegExp('rgb' + d),
+                          rgba: new RegExp('rgba' + p),
+                          hsl: new RegExp('hsl' + d),
+                          hsla: new RegExp('hsla' + p),
+                          hsv: new RegExp('hsv' + d),
+                          hsva: new RegExp('hsva' + p),
+                          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})$/,
+                          hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
+                        }),
+                        void 0 !== t && t.exports
+                          ? (t.exports = g)
+                          : void 0 !==
+                              (d = function () {
+                                return g;
+                              }.call(e, n, e, t)) && (t.exports = d);
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }),
+                        (e.ChromePointer = void 0);
+                      var r = function (t, e, n) {
+                        return e && i(t.prototype, e), n && i(t, n), t;
+                      };
+                      function i(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var a = l(n(3)),
+                        o = l(n(4)),
+                        s = l(n(17));
+                      function l(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      function u(t, e) {
+                        if (t)
+                          return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                        throw new ReferenceError(
+                          "this hasn't been initialised - super() hasn't been called",
+                        );
+                      }
+                      n = e.ChromePointer = (function (t) {
+                        var e = o;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function o() {
+                          for (var t = arguments.length, e = Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                          var r = this,
+                            i = o;
+                          if (r instanceof i)
+                            return (
+                              ((r = i =
+                                u(
+                                  this,
+                                  (r = o.__proto__ || Object.getPrototypeOf(o)).call.apply(
+                                    r,
+                                    [this].concat(e),
+                                  ),
+                                )).shouldComponentUpdate = s.default.bind(
+                                i,
+                                i,
+                                arguments[0],
+                                arguments[1],
+                              )),
+                              u(i, r)
+                            );
+                          throw new TypeError('Cannot call a class as a function');
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          r(o, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    picker: {
+                                      width: '10px',
+                                      height: '16px',
+                                      borderRadius: '5px',
+                                      transform: 'translate(-5px, 0px)',
+                                      backgroundColor: 'rgb(248, 248, 248)',
+                                      boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                return a.default.createElement('div', {
+                                  style: this.styles().picker,
+                                });
+                              },
+                            },
+                          ]),
+                          o
+                        );
+                      })(o.default.Component);
+                      e.default = n;
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }),
+                        (e.ChromePointerCircle = void 0);
+                      var r = function (t, e, n) {
+                        return e && i(t.prototype, e), n && i(t, n), t;
+                      };
+                      function i(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var a = l(n(3)),
+                        o = l(n(4)),
+                        s = l(n(17));
+                      function l(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      function u(t, e) {
+                        if (t)
+                          return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                        throw new ReferenceError(
+                          "this hasn't been initialised - super() hasn't been called",
+                        );
+                      }
+                      n = e.ChromePointerCircle = (function (t) {
+                        var e = o;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function o() {
+                          for (var t = arguments.length, e = Array(t), n = 0; n < t; n++)
+                            e[n] = arguments[n];
+                          var r = this,
+                            i = o;
+                          if (r instanceof i)
+                            return (
+                              ((r = i =
+                                u(
+                                  this,
+                                  (r = o.__proto__ || Object.getPrototypeOf(o)).call.apply(
+                                    r,
+                                    [this].concat(e),
+                                  ),
+                                )).shouldComponentUpdate = s.default.bind(
+                                i,
+                                i,
+                                arguments[0],
+                                arguments[1],
+                              )),
+                              u(i, r)
+                            );
+                          throw new TypeError('Cannot call a class as a function');
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          r(o, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    picker: {
+                                      width: '12px',
+                                      height: '12px',
+                                      borderRadius: '6px',
+                                      boxShadow: 'inset 0 0 0 1px #fff',
+                                      transform: 'translate(-6px, -6px)',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                return a.default.createElement('div', {
+                                  style: this.styles().picker,
+                                });
+                              },
+                            },
+                          ]),
+                          o
+                        );
+                      })(o.default.Component);
+                      e.default = n;
+                    },
+                    function (t, e, n) {
+                      Object.defineProperty(e, '__esModule', { value: !0 }),
+                        (e.CompactColor = void 0);
+                      var r = function (t, e, n) {
+                        return e && i(t.prototype, e), n && i(t, n), t;
+                      };
+                      function i(t, e) {
+                        for (var n = 0; n < e.length; n++) {
+                          var r = e[n];
+                          (r.enumerable = r.enumerable || !1),
+                            (r.configurable = !0),
+                            'value' in r && (r.writable = !0),
+                            Object.defineProperty(t, r.key, r);
+                        }
+                      }
+                      var o = l(n(3)),
+                        a = l(n(4)),
+                        s = l(n(17));
+                      function l(t) {
+                        return t && t.__esModule ? t : { default: t };
+                      }
+                      function u(t, e) {
+                        if (t)
+                          return !e || ('object' != typeof e && 'function' != typeof e) ? t : e;
+                        throw new ReferenceError(
+                          "this hasn't been initialised - super() hasn't been called",
+                        );
+                      }
+                      n = e.CompactColor = (function (t) {
+                        var e = a;
+                        if ('function' != typeof t && null !== t)
+                          throw new TypeError(
+                            'Super expression must either be null or a function, not ' + typeof t,
+                          );
+                        function a() {
+                          for (var t, e = arguments.length, n = Array(e), r = 0; r < e; r++)
+                            n[r] = arguments[r];
+                          var i = this,
+                            o = a;
+                          if (i instanceof o)
+                            return (
+                              ((o = t =
+                                u(
+                                  this,
+                                  (i = a.__proto__ || Object.getPrototypeOf(a)).call.apply(
+                                    i,
+                                    [this].concat(n),
+                                  ),
+                                )).shouldComponentUpdate = s.default.bind(
+                                t,
+                                t,
+                                arguments[0],
+                                arguments[1],
+                              )),
+                              (t.handleClick = function () {
+                                t.props.onClick({ hex: t.props.color });
+                              }),
+                              u(t, o)
+                            );
+                          throw new TypeError('Cannot call a class as a function');
+                        }
+                        return (
+                          (e.prototype = Object.create(t && t.prototype, {
+                            constructor: {
+                              value: e,
+                              enumerable: !1,
+                              writable: !0,
+                              configurable: !0,
+                            },
+                          })),
+                          t &&
+                            (Object.setPrototypeOf
+                              ? Object.setPrototypeOf(e, t)
+                              : (e.__proto__ = t)),
+                          r(a, [
+                            {
+                              key: 'classes',
+                              value: function () {
+                                return {
+                                  default: {
+                                    color: {
+                                      background: this.props.color,
+                                      height: '15px',
+                                      cursor: 'pointer',
+                                      flexGrow: '1',
+                                    },
+                                  },
+                                };
+                              },
+                            },
+                            {
+                              key: 'render',
+                              value: function () {
+                                return o.default.createElement('div', {
+                                  style: this.styles().color,
+                                  ref: 'color',
+                                  onClick: this.handleClick,
+                                });
+                              },
+                            },
+                          ]),
+                          a
+                        );
+                      })(a.default.Component);
+                      e.default = n;
+                    },
+                  ],
+                  Sr = (r = {}).webpackHotUpdate,
+                  kr = !(r.webpackHotUpdate = function (t, e) {
+                    var n = t,
+                      r = e;
+                    if (Vr[n] && jr[n]) {
+                      for (var i in ((jr[n] = !1), r))
+                        Object.prototype.hasOwnProperty.call(r, i) && (Yr[i] = r[i]);
+                      0 == --Gr && 0 === zr && Kr();
+                    }
+                    Sr && Sr(t, e);
+                  });
+                try {
+                  Object.defineProperty({}, 'x', { get: function () {} }), (kr = !0);
+                } catch (t) {}
+                var Fr = !0,
+                  Qr = 'cac23860c44b0ba80f83',
+                  _r = {},
+                  Tr = [];
+                function Rr(e) {
+                  var n = Xr[e];
+                  if (!n) return $r;
+                  function r(t) {
+                    return (
+                      n.hot.active
+                        ? Xr[t]
+                          ? (Xr[t].parents.indexOf(e) < 0 && Xr[t].parents.push(e),
+                            n.children.indexOf(t) < 0 && n.children.push(t))
+                          : (Tr = [e])
+                        : (console.warn(
+                            '[HMR] unexpected require(' + t + ') from disposed module ' + e,
+                          ),
+                          (Tr = [])),
+                      $r(t)
+                    );
+                  }
+                  for (var t in $r)
+                    Object.prototype.hasOwnProperty.call($r, t) &&
+                      (kr
+                        ? Object.defineProperty(
+                            r,
+                            t,
+                            (function (e) {
+                              return {
+                                configurable: !0,
+                                enumerable: !0,
+                                get: function () {
+                                  return $r[e];
+                                },
+                                set: function (t) {
+                                  $r[e] = t;
+                                },
+                              };
+                            })(t),
+                          )
+                        : (r[t] = $r[t]));
+                  function i(t, e) {
+                    'ready' === Nr && Pr('prepare'),
+                      zr++,
+                      $r.e(t, function () {
+                        try {
+                          e.call(null, r);
+                        } finally {
+                          zr--, 'prepare' === Nr && (Hr[t] || Jr(t), 0 === zr && 0 === Gr && Kr());
+                        }
+                      });
+                  }
+                  return (
+                    kr ? Object.defineProperty(r, 'e', { enumerable: !0, value: i }) : (r.e = i), r
+                  );
+                }
+                var Ur = [],
+                  Nr = 'idle';
+                function Pr(t) {
+                  Nr = t;
+                  for (var e = 0; e < Ur.length; e++) Ur[e].call(null, t);
+                }
+                var Lr,
+                  Yr,
+                  Or,
+                  Gr = 0,
+                  zr = 0,
+                  Hr = {},
+                  jr = {},
+                  Vr = {};
+                function qr(t) {
+                  return +t + '' === t ? +t : t;
+                }
+                function Wr(t, r) {
+                  if ('idle' !== Nr) throw new Error('check() is only allowed in idle status');
+                  (r =
+                    'function' == typeof t
+                      ? ((Fr = !1), t)
+                      : ((Fr = t),
+                        r ||
+                          function (t) {
+                            if (t) throw t;
+                          })),
+                    Pr('check');
+                  var e = function (t, e) {
+                    if (t) return r(t);
+                    if (!e) return Pr('idle'), void r(null, null);
+                    (jr = {}), (Vr = {}), (Hr = {});
+                    for (var n = 0; n < e.c.length; n++) Vr[e.c[n]] = !0;
+                    (Or = e.h), Pr('prepare'), (Lr = r), (Yr = {});
+                    Jr(0), 'prepare' === Nr && 0 === zr && 0 === Gr && Kr();
+                  };
+                  if ('undefined' == typeof XMLHttpRequest) e(new Error('No browser support'));
+                  else {
+                    try {
+                      var n = new XMLHttpRequest(),
+                        i = $r.p + '' + Qr + '.hot-update.json';
+                      n.open('GET', i, !0), (n.timeout = 1e4), n.send(null);
+                    } catch (t) {
+                      return void e(t);
+                    }
+                    n.onreadystatechange = function () {
+                      if (4 === n.readyState)
+                        if (0 === n.status)
+                          e(new Error('Manifest request to ' + i + ' timed out.'));
+                        else if (404 === n.status) e();
+                        else if (200 !== n.status && 304 !== n.status)
+                          e(new Error('Manifest request to ' + i + ' failed.'));
+                        else {
+                          try {
+                            var t = JSON.parse(n.responseText);
+                          } catch (t) {
+                            return void e(t);
+                          }
+                          e(null, t);
+                        }
+                    };
+                  }
+                }
+                function Jr(t) {
+                  var e, n, r;
+                  Vr[t]
+                    ? ((jr[t] = !0),
+                      Gr++,
+                      (e = t),
+                      (n = document.getElementsByTagName('head')[0]),
+                      ((r = document.createElement('script')).type = 'text/javascript'),
+                      (r.charset = 'utf-8'),
+                      (r.src = $r.p + '' + e + '.' + Qr + '.hot-update.js'),
+                      n.appendChild(r))
+                    : (Hr[t] = !0);
+                }
+                function Kr() {
+                  Pr('ready');
+                  var t = Lr;
+                  if (((Lr = null), t))
+                    if (Fr) Zr(Fr, t);
+                    else {
+                      var e,
+                        n = [];
+                      for (e in Yr) Object.prototype.hasOwnProperty.call(Yr, e) && n.push(qr(e));
+                      t(null, n);
+                    }
+                }
+                function Zr(t, e) {
+                  if ('ready' !== Nr) throw new Error('apply() is only allowed in ready status');
+                  function l(t, e) {
+                    for (var n = 0; n < e.length; n++) {
+                      var r = e[n];
+                      t.indexOf(r) < 0 && t.push(r);
+                    }
+                  }
+                  'function' == typeof t
+                    ? ((e = t), (t = {}))
+                    : (e =
+                        t && 'object' == typeof t
+                          ? e ||
+                            function (t) {
+                              if (t) throw t;
+                            }
+                          : ((t = {}),
+                            e ||
+                              function (t) {
+                                if (t) throw t;
+                              }));
+                  var n,
+                    r = {},
+                    i = [],
+                    o = {};
+                  for (n in Yr)
+                    if (Object.prototype.hasOwnProperty.call(Yr, n)) {
+                      var a = (function (t) {
+                        for (var e = [t], n = {}, r = e.slice(); 0 < r.length; ) {
+                          var i = r.pop(),
+                            t = Xr[i];
+                          if (t && !t.hot._selfAccepted) {
+                            if (t.hot._selfDeclined)
+                              return new Error('Aborted because of self decline: ' + i);
+                            if (0 === i) return;
+                            for (var o = 0; o < t.parents.length; o++) {
+                              var a = t.parents[o],
+                                s = Xr[a];
+                              if (s.hot._declinedDependencies[i])
+                                return new Error(
+                                  'Aborted because of declined dependency: ' + i + ' in ' + a,
+                                );
+                              0 <= e.indexOf(a) ||
+                                (s.hot._acceptedDependencies[i]
+                                  ? (n[a] || (n[a] = []), l(n[a], [i]))
+                                  : (delete n[a], e.push(a), r.push(a)));
+                            }
+                          }
+                        }
+                        return [e, n];
+                      })((c = qr(n)));
+                      if (!a) {
+                        if (t.ignoreUnaccepted) continue;
+                        return (
+                          Pr('abort'), e(new Error('Aborted because ' + c + ' is not accepted'))
+                        );
+                      }
+                      if (a instanceof Error) return Pr('abort'), e(a);
+                      for (c in ((o[c] = Yr[c]), l(i, a[0]), a[1]))
+                        Object.prototype.hasOwnProperty.call(a[1], c) &&
+                          (r[c] || (r[c] = []), l(r[c], a[1][c]));
+                    }
+                  for (var s = [], u = 0; u < i.length; u++) {
+                    var c = i[u];
+                    Xr[c] &&
+                      Xr[c].hot._selfAccepted &&
+                      s.push({ module: c, errorHandler: Xr[c].hot._selfAccepted });
+                  }
+                  Pr('dispose');
+                  for (var A = i.slice(); 0 < A.length; ) {
+                    var c = A.pop();
+                    if ((g = Xr[c])) {
+                      for (var h = {}, p = g.hot._disposeHandlers, d = 0; d < p.length; d++)
+                        (E = p[d])(h);
+                      (_r[c] = h), (g.hot.active = !1), delete Xr[c];
+                      for (d = 0; d < g.children.length; d++) {
+                        var f = Xr[g.children[d]];
+                        f && 0 <= (v = f.parents.indexOf(c)) && f.parents.splice(v, 1);
+                      }
+                    }
+                  }
+                  for (c in r)
+                    if (Object.prototype.hasOwnProperty.call(r, c))
+                      for (var g = Xr[c], m = r[c], d = 0; d < m.length; d++) {
+                        var v,
+                          b = m[d];
+                        0 <= (v = g.children.indexOf(b)) && g.children.splice(v, 1);
+                      }
+                  for (c in (Pr('apply'), (Qr = Or), o))
+                    Object.prototype.hasOwnProperty.call(o, c) && (Dr[c] = o[c]);
+                  var y = null;
+                  for (c in r)
+                    if (Object.prototype.hasOwnProperty.call(r, c)) {
+                      for (var g = Xr[c], m = r[c], w = [], u = 0; u < m.length; u++) {
+                        var b = m[u],
+                          E = g.hot._acceptedDependencies[b];
+                        0 <= w.indexOf(E) || w.push(E);
+                      }
+                      for (u = 0; u < w.length; u++) {
+                        E = w[u];
+                        try {
+                          E(r);
+                        } catch (t) {
+                          y = y || t;
+                        }
+                      }
+                    }
+                  for (u = 0; u < s.length; u++) {
+                    var B = s[u],
+                      c = B.module;
+                    Tr = [c];
+                    try {
+                      $r(c);
+                    } catch (t) {
+                      if ('function' == typeof B.errorHandler)
+                        try {
+                          B.errorHandler(t);
+                        } catch (t) {
+                          y = y || t;
+                        }
+                      else y = y || t;
+                    }
+                  }
+                  if (y) return Pr('fail'), e(y);
+                  Pr('idle'), e(null, i);
+                }
+                var Xr = {};
+                function $r(t) {
+                  if (Xr[t]) return Xr[t].exports;
+                  var r,
+                    e = (Xr[t] = {
+                      exports: {},
+                      id: t,
+                      loaded: !1,
+                      hot: (r = {
+                        _acceptedDependencies: {},
+                        _declinedDependencies: {},
+                        _selfAccepted: !1,
+                        _selfDeclined: !1,
+                        _disposeHandlers: [],
+                        active: !0,
+                        accept: function (t, e) {
+                          if (void 0 === t) r._selfAccepted = !0;
+                          else if ('function' == typeof t) r._selfAccepted = t;
+                          else if ('object' == typeof t)
+                            for (var n = 0; n < t.length; n++) r._acceptedDependencies[t[n]] = e;
+                          else r._acceptedDependencies[t] = e;
+                        },
+                        decline: function (t) {
+                          if (void 0 === t) r._selfDeclined = !0;
+                          else if ('number' == typeof t) r._declinedDependencies[t] = !0;
+                          else
+                            for (var e = 0; e < t.length; e++) r._declinedDependencies[t[e]] = !0;
+                        },
+                        dispose: function (t) {
+                          r._disposeHandlers.push(t);
+                        },
+                        addDisposeHandler: function (t) {
+                          r._disposeHandlers.push(t);
+                        },
+                        removeDisposeHandler: function (t) {
+                          t = r._disposeHandlers.indexOf(t);
+                          0 <= t && r._disposeHandlers.splice(t, 1);
+                        },
+                        check: Wr,
+                        apply: Zr,
+                        status: function (t) {
+                          if (!t) return Nr;
+                          Ur.push(t);
+                        },
+                        addStatusHandler: function (t) {
+                          Ur.push(t);
+                        },
+                        removeStatusHandler: function (t) {
+                          t = Ur.indexOf(t);
+                          0 <= t && Ur.splice(t, 1);
+                        },
+                        data: _r[t],
+                      }),
+                      parents: Tr,
+                      children: [],
+                    });
+                  return Dr[t].call(e.exports, e, e.exports, Rr(t)), (e.loaded = !0), e.exports;
+                }
+                function ti() {
+                  var r,
+                    n,
+                    e,
+                    o = {},
+                    i = 'undefined' != typeof document ? document : void 0,
+                    a = !1,
+                    s = 1;
+                  function l(t) {
+                    delete o[t];
+                  }
+                  function u(t) {
+                    if (a) setTimeout(u, 0, t);
+                    else {
+                      var e = o[t];
+                      if (e) {
+                        a = !0;
+                        try {
+                          var n = e,
+                            r = n.callback,
+                            i = n.args;
+                          switch (i.length) {
+                            case 0:
+                              r();
+                              break;
+                            case 1:
+                              r(i[0]);
+                              break;
+                            case 2:
+                              r(i[0], i[1]);
+                              break;
+                            case 3:
+                              r(i[0], i[1], i[2]);
+                              break;
+                            default:
+                              r.apply(void 0, i);
+                          }
+                        } finally {
+                          l(t), (a = !1);
+                        }
+                      }
+                    }
+                  }
+                  function t() {
+                    function t(t) {
+                      t.source === e &&
+                        'string' == typeof t.data &&
+                        0 === t.data.indexOf(n) &&
+                        u(+t.data.slice(n.length));
+                    }
+                    var e = window,
+                      n = 'setImmediate$' + Math.random() + '$';
+                    window.addEventListener
+                      ? window.addEventListener('message', t, !1)
+                      : window.attachEvent('onmessage', t),
+                      (r = function (t) {
+                        window.postMessage(n + t, '*');
+                      });
+                  }
+                  return (
+                    void 0 !== jp && '[object process]' === {}.toString.call(jp)
+                      ? (r = function (t) {
+                          jp.nextTick(function () {
+                            u(t);
+                          });
+                        })
+                      : !(function () {
+                            var t,
+                              e,
+                              n = window;
+                            if (n && n.postMessage && !n.importScripts)
+                              return (
+                                (t = !0),
+                                (e = n.onmessage),
+                                (n.onmessage = function () {
+                                  t = !1;
+                                }),
+                                n.postMessage('', '*'),
+                                (n.onmessage = e),
+                                t
+                              );
+                          })()
+                        ? (r =
+                            'undefined' != typeof MessageChannel
+                              ? (((e = new MessageChannel()).port1.onmessage = function (t) {
+                                  u(t.data);
+                                }),
+                                function (t) {
+                                  e.port2.postMessage(t);
+                                })
+                              : i && 'onreadystatechange' in i.createElement('script')
+                                ? ((n = i.documentElement),
+                                  function (t) {
+                                    var e = i.createElement('script');
+                                    (e.onreadystatechange = function () {
+                                      u(t),
+                                        (e.onreadystatechange = null),
+                                        n.removeChild(e),
+                                        (e = null);
+                                    }),
+                                      n.appendChild(e);
+                                  })
+                                : function (t) {
+                                    setTimeout(u, 0, t);
+                                  })
+                        : t(),
+                    {
+                      setImmediate: function (t) {
+                        for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
+                        return (
+                          'function' != typeof t && (t = new Function('' + t)),
+                          (o[s] = { callback: t, args: e }),
+                          r(s),
+                          s++
+                        );
+                      },
+                      clearImmediate: l,
+                    }
+                  );
+                }
+                function ei(t) {
+                  xr.setImmediate(t);
+                }
+                ($r.m = Dr),
+                  ($r.c = Xr),
+                  ($r.p = 'build/'),
+                  ($r.h = function () {
+                    return Qr;
+                  }),
+                  Rr(0)(0),
+                  ((F = F || {}).Promise = J),
+                  (r = F = F || {}),
+                  ((J = r.Core || (r.Core = {})).Rx = t),
+                  (J.Promise = r.Promise),
+                  ((J.Formats || (J.Formats = {})).CIF = e),
+                  (((t = F = F || {}).Core || (t.Core = {})).VERSION = {
+                    number: '3.2.3',
+                    date: 'Feb 1 2019',
+                  }),
+                  (r = F = F || {}),
+                  (r = (Cr = r.Core || (r.Core = {})).Scheduler || (Cr.Scheduler = {})),
+                  (xr =
+                    void 0 !== qp
+                      ? 'undefined' != typeof window && void 0 !== window.setImmediate
+                        ? {
+                            setImmediate: function (t) {
+                              for (var e = [], n = 1; n < arguments.length; n++)
+                                e[n - 1] = arguments[n];
+                              return window.setImmediate.apply(window, [t].concat(e));
+                            },
+                            clearImmediate: function (t) {
+                              return window.clearImmediate(t);
+                            },
+                          }
+                        : { setImmediate: qp, clearImmediate: r.clearImmediate }
+                      : ti()),
+                  (r.immediate = xr.setImmediate),
+                  (r.clearImmediate = xr.clearImmediate),
+                  (r.immediatePromise = function () {
+                    return new Cr.Promise(ei);
+                  });
+                var ni,
+                  ri,
+                  ii,
+                  oi,
+                  ai,
+                  si,
+                  li,
+                  ui,
+                  ci,
+                  Ai,
+                  hi,
+                  pi,
+                  di,
+                  fi,
+                  gi,
+                  nt,
+                  mi,
+                  vi,
+                  bi,
+                  yi,
+                  wi,
+                  Ei,
+                  d,
+                  Bi,
+                  Ci,
+                  xi,
+                  Ii,
+                  Mi,
+                  Di,
+                  Si,
+                  ki,
+                  Fi,
+                  Qi,
+                  _i,
+                  Ti,
+                  Ri,
+                  Ui,
+                  Ni,
+                  Pi,
+                  Li,
+                  Yi,
+                  Oi,
+                  Gi,
+                  zi,
+                  Hi,
+                  ji,
+                  Vi,
+                  qi,
+                  Wi,
+                  Ji,
+                  Ki,
+                  Zi,
+                  Xi,
+                  $i,
+                  to,
+                  eo,
+                  no,
+                  ro,
+                  io,
+                  oo,
+                  ao,
+                  so,
+                  lo,
+                  uo,
+                  co,
+                  Ao,
+                  ho,
+                  po,
+                  fo,
+                  go,
+                  mo,
+                  It,
+                  vo,
+                  bo,
+                  yo,
+                  wo,
+                  Eo,
+                  Bo,
+                  Co,
+                  S,
+                  i,
+                  xo,
+                  o,
+                  Io,
+                  Mo,
+                  Do,
+                  So,
+                  ko,
+                  Fo,
+                  Qo,
+                  _o,
+                  To,
+                  Ro,
+                  Uo,
+                  No,
+                  Po,
+                  Lo,
+                  Yo,
+                  Oo,
+                  Go,
+                  zo,
+                  Ho,
+                  jo,
+                  Vo,
+                  qo,
+                  Wo,
+                  Jo,
+                  Ko,
+                  Zo,
+                  Xo,
+                  $o,
+                  ta,
+                  ea,
+                  na,
+                  ra,
+                  ia,
+                  oa,
+                  aa,
+                  sa,
+                  la,
+                  ua,
+                  ca,
+                  Aa,
+                  ha,
+                  pa,
+                  da,
+                  fa,
+                  D =
+                    (this && this.__awaiter) ||
+                    function (o, a, s, l) {
+                      return new (s = s || Promise)(function (t, e) {
+                        function n(t) {
+                          try {
+                            i(l.next(t));
+                          } catch (t) {
+                            e(t);
+                          }
+                        }
+                        function r(t) {
+                          try {
+                            i(l.throw(t));
+                          } catch (t) {
+                            e(t);
+                          }
+                        }
+                        function i(e) {
+                          e.done
+                            ? t(e.value)
+                            : new s(function (t) {
+                                t(e.value);
+                              }).then(n, r);
+                        }
+                        i((l = l.apply(o, a || [])).next());
+                      });
+                    },
+                  P =
+                    (this && this.__generator) ||
+                    function (r, i) {
+                      var o,
+                        a,
+                        s,
+                        l = {
+                          label: 0,
+                          sent: function () {
+                            if (1 & s[0]) throw s[1];
+                            return s[1];
+                          },
+                          trys: [],
+                          ops: [],
+                        },
+                        t = { next: e(0), throw: e(1), return: e(2) };
+                      return (
+                        'function' == typeof Symbol &&
+                          (t[Symbol.iterator] = function () {
+                            return this;
+                          }),
+                        t
+                      );
+                      function e(n) {
+                        return function (t) {
+                          var e = [n, t];
+                          if (o) throw new TypeError('Generator is already executing.');
+                          for (; l; )
+                            try {
+                              if (
+                                ((o = 1),
+                                a &&
+                                  (s =
+                                    2 & e[0]
+                                      ? a.return
+                                      : e[0]
+                                        ? a.throw || ((s = a.return) && s.call(a), 0)
+                                        : a.next) &&
+                                  !(s = s.call(a, e[1])).done)
+                              )
+                                return s;
+                              switch (((a = 0), (e = s ? [2 & e[0], s.value] : e)[0])) {
+                                case 0:
+                                case 1:
+                                  s = e;
+                                  break;
+                                case 4:
+                                  return l.label++, { value: e[1], done: !1 };
+                                case 5:
+                                  l.label++, (a = e[1]), (e = [0]);
+                                  continue;
+                                case 7:
+                                  (e = l.ops.pop()), l.trys.pop();
+                                  continue;
+                                default:
+                                  if (
+                                    !(s = 0 < (s = l.trys).length && s[s.length - 1]) &&
+                                    (6 === e[0] || 2 === e[0])
+                                  ) {
+                                    l = 0;
+                                    continue;
+                                  }
+                                  if (3 === e[0] && (!s || (e[1] > s[0] && e[1] < s[3]))) {
+                                    l.label = e[1];
+                                    break;
+                                  }
+                                  if (6 === e[0] && l.label < s[1]) {
+                                    (l.label = s[1]), (s = e);
+                                    break;
+                                  }
+                                  if (s && l.label < s[2]) {
+                                    (l.label = s[2]), l.ops.push(e);
+                                    break;
+                                  }
+                                  s[2] && l.ops.pop(), l.trys.pop();
+                                  continue;
+                              }
+                              e = i.call(r, l);
+                            } catch (t) {
+                              (e = [6, t]), (a = 0);
+                            } finally {
+                              o = s = 0;
+                            }
+                          if (5 & e[0]) throw e[1];
+                          return { value: e[0] ? e[1] : void 0, done: !0 };
+                        };
+                      }
+                    };
+                function ga(t) {
+                  return new ri(t);
+                }
+                function ma(t) {
+                  this.computation = t;
+                }
+                function va() {
+                  var e = this;
+                  (this._abortRequested = !1),
+                    (this._abortRequester = function () {
+                      e._abortRequested = !0;
+                    }),
+                    (this.progressTick = new ni.Rx.Subject()),
+                    (this._progress = {
+                      message: 'Working...',
+                      current: 0,
+                      max: 0,
+                      isIndeterminate: !0,
+                      requestAbort: void 0,
+                    }),
+                    (this.progressStream = new ni.Rx.BehaviorSubject(this._progress)),
+                    (this.startEndCounter = 0),
+                    this.progressTick.throttle(1e3 / 15).subscribe(function (t) {
+                      e.progressStream.onNext({
+                        message: t.message,
+                        isIndeterminate: t.isIndeterminate,
+                        current: t.current,
+                        max: t.max,
+                        requestAbort: t.requestAbort,
+                      });
+                    });
+                }
+                function ba() {
+                  var t = Object.create(null);
+                  return (t.__ = void 0), delete t.__, t;
+                }
+                function ya() {
+                  var t = Object.create(ai);
+                  return (t.data = ba()), (t.size = 0), t;
+                }
+                function wa() {
+                  var t = Object.create(si);
+                  return (t.data = ba()), (t.size = 0), t;
+                }
+                function Ea(t) {
+                  this.size = t;
+                }
+                function Ba(t, e) {
+                  (this.idx = t), (this.size = e);
+                }
+                function Ca(t, e) {
+                  (this.mask = t), (this.size = e);
+                }
+                function xa(t) {
+                  this.size = t;
+                }
+                function Ia(t, e, n) {
+                  (this.__rowIndexer = { index: 0 }),
+                    (this.count = t),
+                    (this.indices = new Int32Array(t)),
+                    (this.columns = []);
+                  for (var r = 0; r < t; r++) this.indices[r] = r;
+                  for (var i = 0, o = e; i < o.length; i++) {
+                    var a = o[i],
+                      s = n[a.name];
+                    hi.ChunkedArray.is(s) && (s = hi.ChunkedArray.compact(s)),
+                      Object.defineProperty(this, a.name, {
+                        enumerable: !0,
+                        configurable: !1,
+                        writable: !1,
+                        value: s,
+                      }),
+                      (this.columns[this.columns.length] = a);
+                  }
+                  this.__row = (function (t, e) {
+                    for (var n = Object.create(null), r = 0, i = t.columns; r < i.length; r++) {
+                      var o = i[r];
+                      !(function (t, e) {
+                        Object.defineProperty(n, o.name, {
+                          enumerable: !0,
+                          configurable: !1,
+                          get: function () {
+                            return e[t.index];
+                          },
+                        });
+                      })(e, t[o.name]);
+                    }
+                    return n;
+                  })(this, this.__rowIndexer);
+                }
+                function Ma(t) {
+                  (this.columns = []), (this.count = t);
+                }
+                function Da(t, e, n) {
+                  var e = (e = (e |= 0) <= 0 ? 1 : e) * n,
+                    r = t(e);
+                  return {
+                    elementSize: n,
+                    chunkSize: e,
+                    creator: t,
+                    current: r,
+                    parts: [r],
+                    currentIndex: 0,
+                    elementCount: 0,
+                  };
+                }
+                function Sa(t, e, n) {
+                  return { array: t((e |= 0) * n), currentIndex: 0, elementCount: 0 };
+                }
+                function ka() {
+                  return { _set: gi.FastSet.create(), array: [] };
+                }
+                function Fa(t) {
+                  return new RegExp(
+                    t.extensions
+                      .map(function (t) {
+                        return '(\\' + t + ')';
+                      })
+                      .join('|') + '(\\.gz){0,1}$',
+                    'i',
+                  );
+                }
+                (e = F = F || {}),
+                  ((ni = e.Core || (e.Core = {})).computation = ga),
+                  (ma.prototype.run = function (t) {
+                    return this.runWithContext(t).result;
+                  }),
+                  (ma.prototype.runWithContext = function (t) {
+                    var e = this,
+                      i = t || new ii();
+                    return {
+                      progress: i.progressStream,
+                      result: new ni.Promise(function (n, r) {
+                        return D(e, void 0, void 0, function () {
+                          var e;
+                          return P(this, function (t) {
+                            switch (t.label) {
+                              case 0:
+                                return (
+                                  t.trys.push([0, 2, 3, 4]), i.started(), [4, this.computation(i)]
+                                );
+                              case 1:
+                                return (e = t.sent()), n(e), [3, 4];
+                              case 2:
+                                return (
+                                  (e = t.sent()),
+                                  ma.PRINT_CONSOLE_ERROR && console.error(e),
+                                  r(e),
+                                  [3, 4]
+                                );
+                              case 3:
+                                return i.finished(), [7];
+                              case 4:
+                                return [2];
+                            }
+                          });
+                        });
+                      }),
+                    };
+                  }),
+                  (ri = ma),
+                  (ni.Computation = ri),
+                  ((e = ri = ni.Computation || (ni.Computation = {})).PRINT_CONSOLE_ERROR = !1),
+                  (e.resolve = function (t) {
+                    return ga(function () {
+                      return ni.Promise.resolve(t);
+                    });
+                  }),
+                  (e.reject = function (t) {
+                    return ga(function () {
+                      return ni.Promise.reject(t);
+                    });
+                  }),
+                  (e.createContext = function () {
+                    return new ii();
+                  }),
+                  (e.Aborted = 'Aborted'),
+                  (e.UpdateProgressDelta = 100),
+                  Object.defineProperty(va.prototype, 'isAbortRequested', {
+                    get: function () {
+                      return this._abortRequested;
+                    },
+                    enumerable: !0,
+                    configurable: !0,
+                  }),
+                  (va.prototype.checkAborted = function () {
+                    if (this._abortRequested) throw ri.Aborted;
+                  }),
+                  (va.prototype.requestAbort = function () {
+                    try {
+                      this._abortRequester && this._abortRequester.call(null);
+                    } catch (t) {}
+                  }),
+                  Object.defineProperty(va.prototype, 'progress', {
+                    get: function () {
+                      return this.progressTick;
+                    },
+                    enumerable: !0,
+                    configurable: !0,
+                  }),
+                  (va.prototype.updateProgress = function (t, e, n, r) {
+                    return (
+                      void 0 === n && (n = NaN),
+                      void 0 === r && (r = NaN),
+                      this.checkAborted(),
+                      (this._progress.message = t),
+                      'boolean' != typeof e && e && (this._abortRequester = e),
+                      (this._progress.requestAbort = e ? this._abortRequester : void 0),
+                      isNaN(n)
+                        ? (this._progress.isIndeterminate = !0)
+                        : ((this._progress.isIndeterminate = !1),
+                          (this._progress.current = n),
+                          (this._progress.max = r)),
+                      this.progressTick.onNext(this._progress),
+                      ni.Scheduler.immediatePromise()
+                    );
+                  }),
+                  (va.prototype.started = function () {
+                    this.startEndCounter++;
+                  }),
+                  (va.prototype.finished = function () {
+                    if (
+                      (this.startEndCounter--,
+                      this.startEndCounter <= 0 &&
+                        (this.progressTick.onCompleted(), this.progressStream.onCompleted()),
+                      this.startEndCounter < 0)
+                    )
+                      throw 'Bug in code somewhere, Computation.resolve/reject called too many times.';
+                  }),
+                  (ii = va),
+                  (t = (t = F = F || {}).Core || (t.Core = {})),
+                  (t = (oi = t.Utils || (t.Utils = {})).FastMap || (oi.FastMap = {})),
+                  (ai = {
+                    set: function (t, e) {
+                      void 0 === this.data[t] && void 0 !== e && this.size++, (this.data[t] = e);
+                    },
+                    get: function (t) {
+                      return this.data[t];
+                    },
+                    delete: function (t) {
+                      return void 0 !== this.data[t] && (delete this.data[t], this.size--, !0);
+                    },
+                    has: function (t) {
+                      return void 0 !== this.data[t];
+                    },
+                    clear: function () {
+                      (this.data = ba()), (this.size = 0);
+                    },
+                    forEach: function (t, e) {
+                      for (
+                        var n = this.data,
+                          r = t,
+                          i = void 0 !== e ? e : void 0,
+                          o = 0,
+                          a = Object.keys(n);
+                        o < a.length;
+                        o++
+                      ) {
+                        var s = a[o],
+                          l = n[s];
+                        void 0 !== l && r(l, s, i);
+                      }
+                    },
+                  }),
+                  (t.create = ya),
+                  (t.ofArray = function (t) {
+                    for (var e = ya(), n = 0, r = t; n < r.length; n++) {
+                      var i = r[n];
+                      e.set(i[0], i[1]);
+                    }
+                    return e;
+                  }),
+                  (t.ofObject = function (t) {
+                    for (var e = ya(), n = 0, r = Object.keys(t); n < r.length; n++) {
+                      var i = r[n],
+                        o = t[i];
+                      e.set(i, o);
+                    }
+                    return e;
+                  }),
+                  (t = oi.FastSet || (oi.FastSet = {})),
+                  (si = {
+                    add: function (t) {
+                      return null !== this.data[t] && ((this.data[t] = null), this.size++, !0);
+                    },
+                    delete: function (t) {
+                      return null === this.data[t] && (delete this.data[t], this.size--, !0);
+                    },
+                    has: function (t) {
+                      return null === this.data[t];
+                    },
+                    clear: function () {
+                      (this.data = ba()), (this.size = 0);
+                    },
+                    forEach: function (t, e) {
+                      for (
+                        var n = this.data,
+                          r = t,
+                          i = void 0 !== e ? e : void 0,
+                          o = 0,
+                          a = Object.keys(n);
+                        o < a.length;
+                        o++
+                      ) {
+                        var s = a[o];
+                        null === n[s] && r(s, i);
+                      }
+                    },
+                  }),
+                  (t.create = wa),
+                  (t.ofArray = function (t) {
+                    for (var e = wa(), n = 0, r = t.length; n < r; n++) e.add(t[n]);
+                    return e;
+                  }),
+                  (t = oi.Mask || (oi.Mask = {})),
+                  (Ea.prototype.has = function (t) {
+                    return !1;
+                  }),
+                  (li = Ea),
+                  (Ba.prototype.has = function (t) {
+                    return t === this.idx;
+                  }),
+                  (ui = Ba),
+                  (Ca.prototype.has = function (t) {
+                    return this.mask[t];
+                  }),
+                  (ci = Ca),
+                  (xa.prototype.has = function (t) {
+                    return !0;
+                  }),
+                  (Ai = xa),
+                  (t.ofStructure = function (t) {
+                    return new Ai(t.data.atoms.count);
+                  }),
+                  (t.ofIndices = function (t, e) {
+                    var n = e.length;
+                    if (0 === n) return new li(t);
+                    if (1 === n) return new ui(e[0], t);
+                    if (n / t < 1 / 12) {
+                      for (var r = oi.FastSet.create(), i = 0, o = e; i < o.length; i++) {
+                        var a = o[i];
+                        r.add(a);
+                      }
+                      return r;
+                    }
+                    for (var s = new Int8Array(t), l = 0, u = e; l < u.length; l++)
+                      s[(a = u[l])] = 1;
+                    return new ci(s, n);
+                  }),
+                  (t.ofFragments = function (t) {
+                    for (var e = 0, n = 0, r = t.fragments; n < r.length; n++) e += r[n].atomCount;
+                    var i = t.context.structure.data.atoms.count;
+                    if (e / i < 1 / 12) {
+                      for (var o = oi.FastSet.create(), a = 0, s = t.fragments; a < s.length; a++)
+                        for (var l = 0, u = s[a].atomIndices; l < u.length; l++) {
+                          var c = u[l];
+                          o.add(c);
+                        }
+                      return o;
+                    }
+                    for (var o = new Int8Array(i), A = 0, h = t.fragments; A < h.length; A++)
+                      for (var p = 0, d = h[A].atomIndices; p < d.length; p++) o[(c = d[p])] = 1;
+                    for (var f = 0, c = 0; c < i; c++) 0 !== o[c] && f++;
+                    return new ci(o, f);
+                  }),
+                  (r = (r = F = F || {}).Core || (r.Core = {})),
+                  ((e = r.Utils || (r.Utils = {})).FastNumberParsers =
+                    r.Formats.CIF.Utils.FastNumberParsers),
+                  (e.extend = function (t, e, n) {
+                    for (var r, i = e, o = t, a = n, s = 0, l = Object.keys(e); s < l.length; s++)
+                      void 0 !== (r = i[(u = l[s])]) ? (o[u] = r) : n && (o[u] = a[u]);
+                    if (n)
+                      for (var u, c = 0, A = Object.keys(n); c < A.length; c++)
+                        void 0 === (r = o[(u = A[c])]) && (o[u] = a[u]);
+                    return t;
+                  }),
+                  (e.debounce = function (n, r) {
+                    function i() {
+                      var t,
+                        e = r - (performance.now() - l);
+                      e <= 0
+                        ? (a && clearTimeout(a),
+                          (t = A),
+                          (a = c = A = void 0),
+                          t && (performance.now(), (s = n.apply(u, o)), c || a || (o = u = null)))
+                        : (c = setTimeout(i, e));
+                    }
+                    var o, a, s, l, u, c, A;
+                    return (
+                      (r = Math.max(0, r) || 0),
+                      function () {
+                        (o = arguments), (l = performance.now()), (u = this), (A = c || !0);
+                        var t = !1,
+                          e = !1,
+                          e = !1;
+                        return (
+                          t && c ? (c = clearTimeout(c)) : c || 0 === r || (c = setTimeout(i, r)),
+                          e && ((t = !0), (s = n.apply(u, o))),
+                          !t || c || a || (o = u = null),
+                          s
+                        );
+                      }
+                    );
+                  }),
+                  (t = (t = F = F || {}).Core || (t.Core = {})),
+                  (hi = t.Utils || (t.Utils = {})),
+                  ((pi = hi.DataTable || (hi.DataTable = {})).typedColumn = function (e) {
+                    return function (t) {
+                      return new e(t);
+                    };
+                  }),
+                  (pi.customColumn = function () {
+                    return function (t) {
+                      return new Array(t);
+                    };
+                  }),
+                  (pi.stringColumn = function (t) {
+                    return new Array(t);
+                  }),
+                  (pi.stringNullColumn = function (t) {
+                    return new Array(t);
+                  }),
+                  (pi.builder = function (t) {
+                    return new fi(t);
+                  }),
+                  (pi.ofDefinition = function (t, e) {
+                    for (var n = pi.builder(e), r = 0, i = Object.keys(t); r < i.length; r++) {
+                      var o,
+                        a = i[r];
+                      Object.prototype.hasOwnProperty.call(t, a) && (o = t[a]) && n.addColumn(a, o);
+                    }
+                    return n.seal();
+                  }),
+                  (Ia.prototype.getBuilder = function (t) {
+                    for (var e = new fi(t), n = 0, r = this.columns; n < r.length; n++) {
+                      var i = r[n];
+                      e.addColumn(i.name, i.creator);
+                    }
+                    return e;
+                  }),
+                  (Ia.prototype.getRawData = function () {
+                    var e = this;
+                    return this.columns.map(function (t) {
+                      return e[t.name];
+                    });
+                  }),
+                  (Ia.prototype.getRow = function (t) {
+                    return (this.__rowIndexer.index = t), this.__row;
+                  }),
+                  (di = Ia),
+                  (Ma.prototype.addColumn = function (t, e) {
+                    var n = e(this.count);
+                    return (
+                      Object.defineProperty(this, t, {
+                        enumerable: !0,
+                        configurable: !1,
+                        writable: !1,
+                        value: n,
+                      }),
+                      (this.columns[this.columns.length] = { name: t, creator: e }),
+                      n
+                    );
+                  }),
+                  (Ma.prototype.addRawColumn = function (t, e, n) {
+                    return (
+                      Object.defineProperty(this, t, {
+                        enumerable: !0,
+                        configurable: !1,
+                        writable: !1,
+                        value: n,
+                      }),
+                      (this.columns[this.columns.length] = { name: t, creator: e }),
+                      n
+                    );
+                  }),
+                  (Ma.prototype.getRawData = function () {
+                    var e = this;
+                    return this.columns.map(function (t) {
+                      return e[t.name];
+                    });
+                  }),
+                  (Ma.prototype.seal = function () {
+                    return new di(this.count, this.columns, this);
+                  }),
+                  (fi = Ma),
+                  (r = (r = F = F || {}).Core || (r.Core = {})),
+                  ((gi = r.Utils || (r.Utils = {})).integerSetToSortedTypedArray = function (t) {
+                    var e = new Int32Array(t.size);
+                    return (
+                      t.forEach(
+                        function (t, e) {
+                          e.array[e.index++] = t;
+                        },
+                        { array: e, index: 0 },
+                      ),
+                      Array.prototype.sort.call(e, function (t, e) {
+                        return t - e;
+                      }),
+                      e
+                    );
+                  }),
+                  (gi.makeNativeIntArray = function (t) {
+                    for (var e = [], n = 0; n < t; n++) e[n] = 0;
+                    return e;
+                  }),
+                  (gi.makeNativeFloatArray = function (t) {
+                    var e = [];
+                    if (t) {
+                      e[0] = 0.1;
+                      for (var n = 0; n < t; n++) e[n] = 0;
+                    }
+                    return e;
+                  }),
+                  ((r = gi.ChunkedArray || (gi.ChunkedArray = {})).is = function (t) {
+                    return t.creator && t.chunkSize;
+                  }),
+                  (r.add4 = function (t, e, n, r, i) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      (t.current[t.currentIndex++] = n),
+                      (t.current[t.currentIndex++] = r),
+                      (t.current[t.currentIndex++] = i),
+                      t.elementCount++
+                    );
+                  }),
+                  (r.add3 = function (t, e, n, r) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      (t.current[t.currentIndex++] = n),
+                      (t.current[t.currentIndex++] = r),
+                      t.elementCount++
+                    );
+                  }),
+                  (r.add2 = function (t, e, n) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      (t.current[t.currentIndex++] = n),
+                      t.elementCount++
+                    );
+                  }),
+                  (r.add = function (t, e) {
+                    return (
+                      t.currentIndex >= t.chunkSize &&
+                        ((t.currentIndex = 0),
+                        (t.current = t.creator(t.chunkSize)),
+                        (t.parts[t.parts.length] = t.current)),
+                      (t.current[t.currentIndex++] = e),
+                      t.elementCount++
+                    );
+                  }),
+                  (r.compact = function (t) {
+                    var e = t.creator(t.elementSize * t.elementCount),
+                      n = (t.parts.length - 1) * t.chunkSize;
+                    if (1 === t.parts.length && t.chunkSize === t.elementCount) return t.parts[0];
+                    if (1 < t.parts.length)
+                      if (t.parts[0].buffer)
+                        for (var r = 0; r < t.parts.length - 1; r++)
+                          e.set(t.parts[r], t.chunkSize * r);
+                      else
+                        for (r = 0; r < t.parts.length - 1; r++)
+                          for (var i = t.chunkSize * r, o = t.parts[r], a = 0; a < t.chunkSize; a++)
+                            e[i + a] = o[a];
+                    if (t.current.buffer && t.currentIndex >= t.chunkSize)
+                      e.set(t.current, t.chunkSize * (t.parts.length - 1));
+                    else for (r = 0; r < t.currentIndex; r++) e[n + r] = t.current[r];
+                    return e;
+                  }),
+                  (r.forVertex3D = function (t) {
+                    return Da(
+                      function (t) {
+                        return new Float32Array(t);
+                      },
+                      (t = void 0 === t ? 262144 : t),
+                      3,
+                    );
+                  }),
+                  (r.forIndexBuffer = function (t) {
+                    return Da(
+                      function (t) {
+                        return new Uint32Array(t);
+                      },
+                      (t = void 0 === t ? 262144 : t),
+                      3,
+                    );
+                  }),
+                  (r.forTokenIndices = function (t) {
+                    return Da(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      2,
+                    );
+                  }),
+                  (r.forIndices = function (t) {
+                    return Da(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (r.forInt32 = function (t) {
+                    return Da(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (r.forFloat32 = function (t) {
+                    return Da(
+                      function (t) {
+                        return new Float32Array(t);
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (r.forArray = function (t) {
+                    return Da(
+                      function (t) {
+                        return [];
+                      },
+                      (t = void 0 === t ? 131072 : t),
+                      1,
+                    );
+                  }),
+                  (r.create = Da),
+                  ((r = gi.ArrayBuilder || (gi.ArrayBuilder = {})).add3 = function (t, e, n, r) {
+                    var i = t.array;
+                    (i[t.currentIndex++] = e),
+                      (i[t.currentIndex++] = n),
+                      (i[t.currentIndex++] = r),
+                      t.elementCount++;
+                  }),
+                  (r.add2 = function (t, e, n) {
+                    var r = t.array;
+                    (r[t.currentIndex++] = e), (r[t.currentIndex++] = n), t.elementCount++;
+                  }),
+                  (r.add = function (t, e) {
+                    (t.array[t.currentIndex++] = e), t.elementCount++;
+                  }),
+                  (r.forVertex3D = function (t) {
+                    return Sa(
+                      function (t) {
+                        return new Float32Array(t);
+                      },
+                      t,
+                      3,
+                    );
+                  }),
+                  (r.forIndexBuffer = function (t) {
+                    return Sa(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      t,
+                      3,
+                    );
+                  }),
+                  (r.forTokenIndices = function (t) {
+                    return Sa(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      t,
+                      2,
+                    );
+                  }),
+                  (r.forIndices = function (t) {
+                    return Sa(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      t,
+                      1,
+                    );
+                  }),
+                  (r.forInt32 = function (t) {
+                    return Sa(
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      t,
+                      1,
+                    );
+                  }),
+                  (r.forFloat32 = function (t) {
+                    return Sa(
+                      function (t) {
+                        return new Float32Array(t);
+                      },
+                      t,
+                      1,
+                    );
+                  }),
+                  (r.forArray = function (t) {
+                    return Sa(
+                      function (t) {
+                        return [];
+                      },
+                      t,
+                      1,
+                    );
+                  }),
+                  (r.create = Sa),
+                  (gi.UniqueArray = ka),
+                  ((gi.UniqueArray || (gi.UniqueArray = {})).add = function (t, e) {
+                    var n = t._set,
+                      t = t.array;
+                    n.has(e) || (n.add(e), (t[t.length] = e));
+                  }),
+                  (function (t) {
+                    var e, n;
+                    function r() {
+                      (this.starts = e.FastMap.create()), (this.ends = e.FastMap.create());
+                    }
+                    (e = t.Utils || (t.Utils = {})),
+                      ((n || (n = {})).perfGetTime =
+                        'undefined' != typeof window && window.performance
+                          ? function () {
+                              return window.performance.now();
+                            }
+                          : void 0 !== jp && 'undefined' !== jp.hrtime
+                            ? function () {
+                                var t = jp.hrtime();
+                                return 1e3 * t[0] + t[1] / 1e6;
+                              }
+                            : function () {
+                                return +new Date();
+                              }),
+                      (r.currentTime = function () {
+                        return n.perfGetTime();
+                      }),
+                      (r.prototype.start = function (t) {
+                        this.starts.set(t, n.perfGetTime());
+                      }),
+                      (r.prototype.end = function (t) {
+                        this.ends.set(t, n.perfGetTime());
+                      }),
+                      (r.format = function (t) {
+                        if (isNaN(t)) return 'n/a';
+                        for (
+                          var e = Math.floor(t / 36e5),
+                            n = Math.floor((t / 6e4) % 60),
+                            r = Math.floor((t / 1e3) % 60),
+                            i = Math.floor(t % 1e3).toString();
+                          i.length < 3;
+
+                        )
+                          i = '0' + i;
+                        return 0 < e
+                          ? e + 'h' + n + 'm' + r + '.' + i + 's'
+                          : 0 < n
+                            ? n + 'm' + r + '.' + i + 's'
+                            : 0 < r
+                              ? r + '.' + i + 's'
+                              : t.toFixed(0) + 'ms';
+                      }),
+                      (r.prototype.formatTime = function (t) {
+                        return r.format(this.time(t));
+                      }),
+                      (r.prototype.formatTimeSum = function () {
+                        for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                        return r.format(this.timeSum.apply(this, t));
+                      }),
+                      (r.prototype.time = function (t) {
+                        var e = this.starts.get(t),
+                          n = this.ends.get(t);
+                        return this.starts.delete(t), this.ends.delete(t), n - e;
+                      }),
+                      (r.prototype.timeSum = function () {
+                        for (var e = this, t = [], n = 0; n < arguments.length; n++)
+                          t[n] = arguments[n];
+                        for (
+                          var r = 0,
+                            i = 0,
+                            o = t.map(function (t) {
+                              return e.ends.get(t) - e.starts.get(t);
+                            });
+                          i < o.length;
+                          i++
+                        )
+                          r += o[i];
+                        return r;
+                      }),
+                      (e.PerformanceMonitor = r);
+                  })((e = F = F || {}).Core || (e.Core = {})),
+                  (t = (t = (t = F = F || {}).Core || (t.Core = {})).Formats || (t.Formats = {})),
+                  ((r = t.FormatInfo || (t.FormatInfo = {})).is = function (t) {
+                    return t.name && t.parse;
+                  }),
+                  (r.fromShortcut = function (t, e) {
+                    e = e.toLowerCase().trim();
+                    for (var n = 0, r = t; n < r.length; n++)
+                      for (var i = r[n], o = 0, a = i.shortcuts; o < a.length; o++)
+                        if (a[o].toLowerCase() === e) return i;
+                  }),
+                  (r.formatRegExp = Fa),
+                  (r.formatFileFilters = function (t) {
+                    return t
+                      .map(function (t) {
+                        return t.extensions
+                          .map(function (t) {
+                            return t + ',' + t + '.gz';
+                          })
+                          .join(',');
+                      })
+                      .join(',');
+                  }),
+                  (r.getFormat = function (t, e) {
+                    for (var n = 0, r = e; n < r.length; n++) {
+                      var i = r[n];
+                      if (Fa(i).test(t)) return i;
+                    }
+                  }),
+                  ((r = t.ParserResult || (t.ParserResult = {})).error = function (t, e) {
+                    return new Qa(t, (e = void 0 === e ? -1 : e));
+                  }),
+                  (r.success = function (t, e) {
+                    return new Ta(t, (e = void 0 === e ? [] : e));
+                  }),
+                  (_a.prototype.toString = function () {
+                    return 0 <= this.line
+                      ? '[Line ' + this.line + '] ' + this.message
+                      : this.message;
+                  });
+                var Qa = _a;
+                function _a(t, e) {
+                  (this.message = t), (this.line = e), (this.isError = !0);
+                }
+                t.ParserError = Qa;
+                var Ta = function (t, e) {
+                  (this.result = t), (this.warnings = e), (this.isError = !1);
+                };
+                function Ra(t, e, n, r) {
+                  for (
+                    var i, o = nt.Geometry.LinearAlgebra.Matrix4.identity(), a = 1;
+                    a <= 3;
+                    a++
+                  ) {
+                    for (i = 1; i <= 3; i++)
+                      nt.Geometry.LinearAlgebra.Matrix4.setValue(
+                        o,
+                        a - 1,
+                        i - 1,
+                        t.getColumn(e + '[' + a + '][' + i + ']').getFloat(r),
+                      );
+                    nt.Geometry.LinearAlgebra.Matrix4.setValue(
+                      o,
+                      a - 1,
+                      3,
+                      t.getColumn(n + '[' + a + ']').getFloat(r),
+                    );
+                  }
+                  return o;
+                }
+                function Ua(t, e, n) {
+                  for (
+                    var r = (function (t, e, n) {
+                        var r = 0;
+                        if (!n || !n.isDefined) return e;
+                        for (r = t + 1; r < e && n.areValuesEqual(r - 1, r); r++);
+                        return r;
+                      })(t, e, n.get('pdbx_PDB_model_num')),
+                      e = nt.Utils.DataTable.ofDefinition(nt.Structure.Tables.Atoms, r - t),
+                      i = nt.Utils.DataTable.ofDefinition(nt.Structure.Tables.Positions, r - t),
+                      o = i.x,
+                      a = n.get('Cartn_x'),
+                      s = i.y,
+                      l = n.get('Cartn_y'),
+                      u = i.z,
+                      c = n.get('Cartn_z'),
+                      A = e.id,
+                      h = n.get('id'),
+                      p = e.altLoc,
+                      d = n.get('label_alt_id'),
+                      f = e.rowIndex,
+                      g = e.residueIndex,
+                      m = e.chainIndex,
+                      v = e.entityIndex,
+                      b = e.name,
+                      y = n.get('label_atom_id'),
+                      w = e.elementSymbol,
+                      E = n.get('type_symbol'),
+                      B = e.occupancy,
+                      C = n.get('occupancy'),
+                      x = e.tempFactor,
+                      I = n.get('B_iso_or_equiv'),
+                      M = e.authName,
+                      U = n.get('auth_atom_id'),
+                      N = n.get('label_asym_id'),
+                      P = n.get('label_entity_id'),
+                      L = n.get('pdbx_PDB_ins_code'),
+                      Y = n.get('auth_seq_id'),
+                      n = n.get('pdbx_PDB_model_num'),
+                      D = 0,
+                      S = 0,
+                      k = 0,
+                      F = t,
+                      Q = t;
+                    Q < r;
+                    Q++
+                  ) {
+                    var _ = Q - t,
+                      T =
+                        ((A[_] = h.getInteger(Q)),
+                        (o[_] = a.getFloat(Q)),
+                        (s[_] = l.getFloat(Q)),
+                        (u[_] = c.getFloat(Q)),
+                        (w[_] = E.getString(Q) || mi.ElementSymbol),
+                        (b[_] = y.getString(Q) || w[_]),
+                        (M[_] = U.getString(Q) || b[_]),
+                        (p[_] = d.getString(Q)),
+                        (B[_] = C.getFloat(Q)),
+                        (x[_] = I.getFloat(Q)),
+                        !1),
+                      R = !Y.areValuesEqual(F, Q) || !L.areValuesEqual(F, Q);
+                    N.areValuesEqual(F, Q) || (R = T = !0),
+                      P.areValuesEqual(F, Q) || (k++, (R = T = !0)),
+                      R && S++,
+                      T && D++,
+                      (f[_] = Q),
+                      (g[_] = S),
+                      (m[_] = D),
+                      (v[_] = k),
+                      (F = Q);
+                  }
+                  return {
+                    atoms: e,
+                    positions: i,
+                    modelId: (n.isDefined && n.getString(t)) || mi.ModelId,
+                    endRow: r,
+                  };
+                }
+                function Na(t, e, n, r) {
+                  return new nt.Structure.PolyResidueIdentifier(
+                    e.getString(t) || mi.AsymId,
+                    n.getInteger(t),
+                    r.getString(t),
+                  );
+                }
+                function Pa(t, e, n, r) {
+                  if ('polymer' === n.type[e.entityIndex[r]]) {
+                    for (
+                      var i = !1,
+                        o = !1,
+                        a = t.name,
+                        s = 0,
+                        l = e.atomStartIndex[r],
+                        u = e.atomEndIndex[r];
+                      l < u;
+                      l++
+                    ) {
+                      var c = a[l];
+                      if (
+                        (i || 'CA' !== c ? o || 'O' !== c || ((o = !0), s++) : ((i = !0), s++),
+                        2 === s)
+                      )
+                        break;
+                    }
+                    return (i && o) || (i && !e.isHet[r]);
+                  }
+                }
+                function La(t, e, n, r) {
+                  if (!bi[e.name[r]] && 'polymer' === n.type[e.entityIndex[r]]) {
+                    var i = t.name,
+                      o = 0,
+                      n = e.atomStartIndex[r],
+                      a = e.atomEndIndex[r];
+                    if (a - n == 1 && !e.isHet[n] && 'P' === i[n]) return 1;
+                    for (var s = n; s < a; s++) {
+                      var l = i[s];
+                      if ((("O5'" !== l && "C3'" !== l && 'N3' !== l && 'P' !== l) || o++, 3 <= o))
+                        return 1;
+                    }
+                  }
+                }
+                function Ya(t, e, n, r, i, o) {
+                  for (var a = e.asymId, s = e.entityIndex, l = 0, u = r, c = r, A = i; u < A; ) {
+                    if (La(t, e, n, u)) {
+                      for (c = u + 1; c < A && a[u] === a[c] && s[u] === s[c] && La(t, e, n, c); )
+                        c++;
+                      l = 5;
+                    } else if (Pa(t, e, n, u)) {
+                      for (c = u + 1; c < A && a[u] === a[c] && s[u] === s[c] && Pa(t, e, n, c); )
+                        c++;
+                      l = 4;
+                    } else {
+                      for (
+                        c = u + 1;
+                        c < A &&
+                        a[u] === a[c] &&
+                        s[u] === s[c] &&
+                        !La(t, e, n, c) &&
+                        !Pa(t, e, n, c);
+
+                      )
+                        c++;
+                      l = 0;
+                    }
+                    var h = new nt.Structure.SecondaryStructureElement(
+                      l,
+                      new nt.Structure.PolyResidueIdentifier(
+                        e.asymId[u],
+                        e.seqNumber[u],
+                        e.insCode[u],
+                      ),
+                      new nt.Structure.PolyResidueIdentifier(
+                        e.asymId[c - 1],
+                        e.seqNumber[c - 1],
+                        e.insCode[c - 1],
+                      ),
+                    );
+                    (h.startResidueIndex = u), (h.endResidueIndex = c), (o[o.length] = h), (u = c);
+                  }
+                }
+                function Oa(t, e) {
+                  for (var n = [], r = t.authSeqNumber, i = 0, o = e; i < o.length; i++) {
+                    for (
+                      var a,
+                        s = o[i],
+                        l = s.startResidueIndex,
+                        u = s.endResidueIndex - 1,
+                        c = s.startResidueIndex;
+                      c < u;
+                      c++
+                    )
+                      r[c + 1] - r[c] != 1 &&
+                        (((a = new nt.Structure.SecondaryStructureElement(
+                          s.type,
+                          s.startResidueId,
+                          s.endResidueId,
+                          s.info,
+                        )).startResidueIndex = l),
+                        (a.endResidueIndex = c + 1),
+                        (n[n.length] = a),
+                        (l = c + 1));
+                    l === s.startResidueIndex
+                      ? (n[n.length] = s)
+                      : (((a = new nt.Structure.SecondaryStructureElement(
+                          s.type,
+                          s.startResidueId,
+                          s.endResidueId,
+                          s.info,
+                        )).startResidueIndex = l),
+                        (a.endResidueIndex = s.endResidueIndex),
+                        (n[n.length] = a));
+                  }
+                  return n;
+                }
+                function Ga(t, e, n) {
+                  var r = [],
+                    i = [],
+                    o = t.getCategory('_struct_conf'),
+                    a = t.getCategory('_struct_sheet_range');
+                  if (o) {
+                    var s = o.getColumn('conf_type_id');
+                    if (s)
+                      for (
+                        var l = o.getColumn('beg_label_asym_id'),
+                          u = o.getColumn('beg_label_seq_id'),
+                          c = o.getColumn('pdbx_beg_PDB_ins_code'),
+                          A = o.getColumn('end_label_asym_id'),
+                          h = o.getColumn('end_label_seq_id'),
+                          p = o.getColumn('pdbx_end_PDB_ins_code'),
+                          d = o.getColumn('pdbx_PDB_helix_class'),
+                          f = 0;
+                        f < o.rowCount;
+                        f++
+                      ) {
+                        var g = void 0;
+                        switch ((s.getString(f) || '').toUpperCase()) {
+                          case 'HELX_P':
+                            g = 1;
+                            break;
+                          case 'TURN_P':
+                            g = 2;
+                        }
+                        g &&
+                          (r[r.length] = new nt.Structure.SecondaryStructureElement(
+                            g,
+                            Na(f, l, u, c),
+                            Na(f, A, h, p),
+                            { helixClass: d.getString(f) },
+                          ));
+                      }
+                  }
+                  if (a) {
+                    var l = a.getColumn('beg_label_asym_id'),
+                      u = a.getColumn('beg_label_seq_id'),
+                      c = a.getColumn('pdbx_beg_PDB_ins_code'),
+                      A = a.getColumn('end_label_asym_id'),
+                      h = a.getColumn('end_label_seq_id'),
+                      p = a.getColumn('pdbx_end_PDB_ins_code'),
+                      m = a.getColumn('symmetry'),
+                      v = a.getColumn('sheet_id'),
+                      b = a.getColumn('id');
+                    for (f = 0; f < a.rowCount; f++)
+                      r[r.length] = new nt.Structure.SecondaryStructureElement(
+                        3,
+                        Na(f, l, u, c),
+                        Na(f, A, h, p),
+                        { symmetry: m.getString(f), sheetId: v.getString(f), id: b.getString(f) },
+                      );
+                  }
+                  var y =
+                      0 < r.length
+                        ? (function (t, e) {
+                            for (
+                              var n = (e = e.residues).count,
+                                r = e.asymId,
+                                i = e.seqNumber,
+                                o = e.insCode,
+                                a = void 0,
+                                s = '',
+                                l = nt.Utils.FastMap.create(),
+                                u = nt.Utils.FastMap.create(),
+                                c = 0,
+                                A = t;
+                              c < A.length;
+                              c++
+                            ) {
+                              s =
+                                (p = A[c]).startResidueId.asymId + ' ' + p.startResidueId.seqNumber;
+                              p.startResidueId.insCode && (s += ' ' + p.startResidueId.insCode),
+                                l.set(s, p),
+                                (s = p.endResidueId.asymId + ' ' + p.endResidueId.seqNumber),
+                                p.endResidueId.insCode && (s += ' ' + p.endResidueId.insCode),
+                                u.set(s, p);
+                            }
+                            for (var h = 0; h < n; h++)
+                              (s = r[h] + ' ' + i[h]),
+                                o[h] && (s += ' ' + o[h]),
+                                (a = l.get(s)) &&
+                                  ((a.startResidueIndex = h), (a.endResidueIndex = h + 1)),
+                                (a = u.get(s)) &&
+                                  (a.startResidueIndex < 0 && (a.startResidueIndex = h),
+                                  (a.endResidueIndex = h + 1));
+                            a && (a.endResidueIndex = n);
+                            for (var p, d = [], f = 0, g = t; f < g.length; f++)
+                              (p = g[f]).startResidueIndex < 0 ||
+                                p.endResidueIndex < 0 ||
+                                (3 === p.type && p.length < 3) ||
+                                (0 <= p.endResidueIndex &&
+                                  0 <= p.startResidueIndex &&
+                                  (d[d.length] = p));
+                            for (
+                              d.sort(function (t, e) {
+                                return t.startResidueIndex - e.startResidueIndex;
+                              }),
+                                h = 0;
+                              h < d.length - 1;
+                              h++
+                            )
+                              d[h + 1].startResidueIndex - d[h].endResidueIndex == -1 &&
+                                d[h + 1].startResidueIndex++;
+                            if (!d.length) return d;
+                            for (var m, v = [d[0]], h = 1; h < d.length; h++) {
+                              var b = v[v.length - 1],
+                                y = d[h];
+                              y.startResidueIndex < b.endResidueIndex
+                                ? ((b = b),
+                                  (m = y).endResidueIndex > b.endResidueIndex &&
+                                    (b.endResidueIndex = m.endResidueIndex))
+                                : (v[v.length] = y);
+                            }
+                            return v;
+                          })(r, n)
+                        : [],
+                    w = n.residues,
+                    t = w.count;
+                  if (0 === y.length) return Ya(e, w, n.entities, 0, t, i), Oa(w, i);
+                  var E = y.length - 1;
+                  for (
+                    0 < y[0].startResidueIndex &&
+                      Ya(e, w, n.entities, 0, y[0].startResidueIndex, i),
+                      f = 0;
+                    f < E;
+                    f++
+                  )
+                    (i[i.length] = y[f]),
+                      0 < y[f + 1].startResidueIndex - y[f].endResidueIndex &&
+                        Ya(e, w, n.entities, y[f].endResidueIndex, y[f + 1].startResidueIndex, i);
+                  return (
+                    (i[i.length] = y[E]),
+                    y[E].endResidueIndex < t && Ya(e, w, n.entities, y[E].endResidueIndex, t, i),
+                    Oa(w, i)
+                  );
+                }
+                function za(t, i, o) {
+                  var e = t.getCategory('_struct_conn');
+                  if (e) {
+                    for (
+                      var n,
+                        t = function (t) {
+                          return {
+                            label_asym_id: e.getColumn('ptnr' + t + '_label_asym_id'),
+                            label_seq_id: e.getColumn('ptnr' + t + '_label_seq_id'),
+                            label_atom_id: e.getColumn('ptnr' + t + '_label_atom_id'),
+                            label_alt_id: e.getColumn('pdbx_ptnr' + t + '_label_alt_id'),
+                            ins_code: e.getColumn('pdbx_ptnr' + t + '_PDB_ins_code'),
+                            symmetry: e.getColumn('ptnr' + t + '_symmetry'),
+                          };
+                        },
+                        r = e.getColumn('conn_type_id'),
+                        a = e.getColumn('pdbx_dist_value'),
+                        s = e.getColumn('pdbx_value_order'),
+                        l = t(1),
+                        u = t(2),
+                        c = t(3),
+                        A = function (t, e) {
+                          if (0 === e.label_asym_id.getValuePresence(t)) {
+                            var n = (function (t, e, n, r) {
+                              for (
+                                var i = t.chains,
+                                  o = i.asymId,
+                                  a = i.residueStartIndex,
+                                  s = i.residueEndIndex,
+                                  l = i.count,
+                                  u = (i = t.residues).seqNumber,
+                                  c = i.insCode,
+                                  A = 0;
+                                A < l;
+                                A++
+                              )
+                                if (o[A] === e)
+                                  for (var h = a[A], p = s[A]; h < p; h++)
+                                    if (u[h] === n && c[h] === r) return h;
+                              return -1;
+                            })(
+                              o,
+                              e.label_asym_id.getString(t),
+                              e.label_seq_id.getInteger(t),
+                              e.ins_code.getString(t),
+                            );
+                            if (!(n < 0)) {
+                              var r = (function (t, e, n, r, i) {
+                                for (
+                                  var o = (e = e.residues).atomStartIndex,
+                                    e = e.atomEndIndex,
+                                    a = t.name,
+                                    s = t.altLoc,
+                                    l = o[n],
+                                    u = e[n];
+                                  l <= u;
+                                  l++
+                                )
+                                  if (a[l] === r && s[l] === i) return l;
+                                return -1;
+                              })(
+                                i,
+                                o,
+                                n,
+                                e.label_atom_id.getString(t),
+                                e.label_alt_id.getString(t),
+                              );
+                              if (!(r < 0))
+                                return {
+                                  residueIndex: n,
+                                  atomIndex: r,
+                                  symmetry: e.symmetry.getString(t) || '1_555',
+                                };
+                            }
+                          }
+                        },
+                        h = [],
+                        p = 0;
+                      p < e.rowCount;
+                      p++
+                    ) {
+                      (f = n = void 0),
+                        (n = []),
+                        (f = A((d = p), l)) && n.push(f),
+                        (f = A(d, u)) && n.push(f),
+                        (f = A(d, c)) && n.push(f);
+                      var d = n;
+                      if (!(d.length < 2)) {
+                        var f = r.getString(p),
+                          g = 0;
+                        switch ((s.getString(p) || '').toLowerCase()) {
+                          case 'sing':
+                            g = 1;
+                            break;
+                          case 'doub':
+                            g = 2;
+                            break;
+                          case 'trip':
+                            g = 3;
+                            break;
+                          case 'quad':
+                            g = 4;
+                        }
+                        switch (f) {
+                          case 'disulf':
+                            g = 5;
+                            break;
+                          case 'hydrog':
+                            g = 8;
+                            break;
+                          case 'metalc':
+                            g = 6;
+                            break;
+                          case 'saltbr':
+                            g = 7;
+                        }
+                        h.push({ bondType: g, distance: a.getFloat(p), partners: d });
+                      }
+                    }
+                    return new nt.Structure.StructConn(h);
+                  }
+                }
+                function Ha(t) {
+                  var e = t.getCategory('_pdbx_struct_assembly'),
+                    n = t.getCategory('_pdbx_struct_assembly_gen'),
+                    r = t.getCategory('_pdbx_struct_oper_list');
+                  if (e && n && r) {
+                    for (
+                      var i = {},
+                        o = [],
+                        a = nt.Utils.FastMap.create(),
+                        s = n.getColumn('assembly_id'),
+                        l = n.getColumn('oper_expression'),
+                        u = n.getColumn('asym_id_list'),
+                        c = 0;
+                      c < n.rowCount;
+                      c++
+                    ) {
+                      var A = s.getString(c);
+                      if (!A) return;
+                      var h = a.get(A);
+                      h || ((h = new nt.Structure.AssemblyGen(A)), a.set(A, h), o.push(h)),
+                        h.gens.push(
+                          new nt.Structure.AssemblyGenEntry(
+                            (function (t) {
+                              for (
+                                var e, n = /\(?([^\(\)]+)\)?]*/g, r = [], i = [];
+                                (e = n.exec(t));
+
+                              )
+                                r[r.length] = e[1];
+                              return (
+                                r.forEach(function (t) {
+                                  var o = [];
+                                  t.split(',').forEach(function (t) {
+                                    var e = t.indexOf('-');
+                                    if (0 < e)
+                                      for (
+                                        var n = parseInt(t.substring(0, e)),
+                                          r = parseInt(t.substr(e + 1)),
+                                          i = n;
+                                        i <= r;
+                                        i++
+                                      )
+                                        o[o.length] = i.toString();
+                                    else o[o.length] = t.trim();
+                                  }),
+                                    (i[i.length] = o);
+                                }),
+                                i
+                              );
+                            })(l.getString(c)),
+                            u.getString(c).split(','),
+                          ),
+                        );
+                    }
+                    var p = r.getColumn('id'),
+                      d = r.getColumn('name');
+                    for (c = 0; c < r.rowCount; c++) {
+                      var f = Ra(r, 'matrix', 'vector', c);
+                      if (!f) return;
+                      f = new nt.Structure.AssemblyOperator(p.getString(c), d.getString(c), f);
+                      i[f.id] = f;
+                    }
+                    return new nt.Structure.AssemblyInfo(i, o);
+                  }
+                }
+                function ja(t, e, n) {
+                  var t = Ua(t, e.getCategory('_atom_site').rowCount, n),
+                    r = t.atoms,
+                    i = t.positions,
+                    o = t.modelId,
+                    t = t.endRow,
+                    n = (function (t, e) {
+                      for (
+                        var U = e.count,
+                          n = e.residueIndex,
+                          r = e.chainIndex,
+                          i = e.entityIndex,
+                          o = nt.Utils.DataTable.ofDefinition(
+                            nt.Structure.Tables.Residues,
+                            e.residueIndex[e.count - 1] + 1,
+                          ),
+                          a = nt.Utils.DataTable.ofDefinition(
+                            nt.Structure.Tables.Chains,
+                            e.chainIndex[e.count - 1] + 1,
+                          ),
+                          e = nt.Utils.DataTable.ofDefinition(
+                            nt.Structure.Tables.Entities,
+                            e.entityIndex[e.count - 1] + 1,
+                          ),
+                          s = o.name,
+                          l = o.seqNumber,
+                          u = o.asymId,
+                          c = o.authName,
+                          A = o.authSeqNumber,
+                          h = o.authAsymId,
+                          p = o.insCode,
+                          N = o.entityId,
+                          d = o.isHet,
+                          f = o.atomStartIndex,
+                          g = o.atomEndIndex,
+                          m = o.chainIndex,
+                          v = o.entityIndex,
+                          b = a.asymId,
+                          y = a.entityId,
+                          w = a.authAsymId,
+                          E = a.atomStartIndex,
+                          P = a.atomEndIndex,
+                          L = a.residueStartIndex,
+                          Y = a.residueEndIndex,
+                          O = a.entityIndex,
+                          G = e.entityId,
+                          z = e.type,
+                          H = e.atomStartIndex,
+                          j = e.atomEndIndex,
+                          V = e.residueStartIndex,
+                          q = e.residueEndIndex,
+                          W = e.chainStartIndex,
+                          J = e.chainEndIndex,
+                          K = t.get('label_comp_id'),
+                          Z = t.get('label_seq_id'),
+                          B = t.get('label_asym_id'),
+                          X = t.get('auth_comp_id'),
+                          $ = t.get('auth_seq_id'),
+                          C = t.get('auth_asym_id'),
+                          tt = t.get('group_PDB'),
+                          x = t.get('label_entity_id'),
+                          et = t.get('pdbx_PDB_ins_code'),
+                          I = 0,
+                          M = 0,
+                          D = 0,
+                          S = 0,
+                          k = 0,
+                          F = 0,
+                          Q = 0,
+                          _ = 0,
+                          T = 0,
+                          R = 0,
+                          R = 0;
+                        R < U;
+                        R++
+                      )
+                        n[R] !== n[I] &&
+                          ((s[Q] = K.getString(I) || mi.ResidueName),
+                          (l[Q] = Z.getInteger(I)),
+                          (u[Q] = B.getString(I) || mi.AsymId),
+                          (c[Q] = X.getString(I) || s[Q]),
+                          (A[Q] = $.getInteger(I)),
+                          (h[Q] = C.getString(I) || u[Q]),
+                          (p[Q] = et.getString(I)),
+                          (N[Q] = x.getString(I) || mi.EntityId),
+                          (d[Q] = tt.stringEquals(I, 'HETATM') ? 1 : 0),
+                          (f[Q] = I),
+                          (g[Q] = R),
+                          (m[Q] = _),
+                          (v[Q] = T),
+                          Q++,
+                          (I = R)),
+                          r[R] !== r[M] &&
+                            ((b[_] = B.getString(M) || mi.AsymId),
+                            (w[_] = C.getString(M) || b[_]),
+                            (y[_] = x.getString(M) || mi.EntityId),
+                            (L[_] = F),
+                            (Y[_] = Q),
+                            (E[_] = M),
+                            (P[_] = R),
+                            (O[_] = T),
+                            _++,
+                            (M = R),
+                            (F = Q)),
+                          i[R] !== i[D] &&
+                            ((G[T] = x.getString(D) || mi.EntityId),
+                            (z[T] = 'unknown'),
+                            (H[T] = D),
+                            (j[T] = R),
+                            (V[T] = k),
+                            (q[T] = Q),
+                            (W[T] = S),
+                            (J[T] = _),
+                            T++,
+                            (D = R),
+                            (S = _),
+                            (k = Q));
+                      return (
+                        (G[T] = x.getString(D) || mi.EntityId),
+                        (z[T] = 'unknown'),
+                        (H[T] = D),
+                        (j[T] = R),
+                        (V[T] = k),
+                        (q[T] = Q + 1),
+                        (W[T] = S),
+                        (J[T] = _ + 1),
+                        (b[_] = B.getString(M) || mi.AsymId),
+                        (w[_] = C.getString(M) || b[_]),
+                        (y[_] = x.getString(M) || mi.EntityId),
+                        (L[_] = F),
+                        (Y[_] = Q + 1),
+                        (E[_] = M),
+                        (P[_] = R),
+                        (O[_] = T),
+                        (s[Q] = K.getString(I) || mi.ResidueName),
+                        (l[Q] = Z.getInteger(I)),
+                        (u[Q] = B.getString(I) || mi.AsymId),
+                        (c[Q] = X.getString(I) || s[Q]),
+                        (A[Q] = $.getInteger(I)),
+                        (h[Q] = C.getString(I) || u[Q]),
+                        (p[Q] = et.getString(I)),
+                        (f[Q] = I),
+                        (g[Q] = R),
+                        (m[Q] = _),
+                        (v[Q] = T),
+                        (d[Q] = tt.stringEquals(I, 'HETATM') ? 1 : 0),
+                        { residues: o, chains: a, entities: e }
+                      );
+                    })(n, r),
+                    a = e.getCategory('_entry'),
+                    a =
+                      a && a.getColumn('id').isDefined ? a.getColumn('id').getString(0) : e.header,
+                    s = e.getCategory('_entity'),
+                    l = n.entities;
+                  if (s) {
+                    for (
+                      var u = {}, c = s.getColumn('type'), A = s.getColumn('id'), h = 0;
+                      h < s.rowCount;
+                      h++
+                    ) {
+                      var p = (c.getString(h) || '').toLowerCase(),
+                        d = A.getString(h) || mi.EntityId;
+                      switch (p) {
+                        case 'polymer':
+                        case 'non-polymer':
+                        case 'water':
+                          u[d] = p;
+                          break;
+                        default:
+                          u[d] = 'unknown';
+                      }
+                    }
+                    for (h = 0; h < l.count; h++) {
+                      var f = u[l.entityId[h]];
+                      void 0 !== f && (l.type[h] = f);
+                    }
+                  }
+                  for (
+                    var g = Ga(e, r, n),
+                      m = n.residues,
+                      v = g,
+                      b = m.secondaryStructureIndex,
+                      y = 0,
+                      w = 0,
+                      E = v;
+                    w < E.length;
+                    w++
+                  ) {
+                    for (var B = E[w], C = B.startResidueIndex; C < B.endResidueIndex; C++)
+                      b[C] = y;
+                    y++;
+                  }
+                  return {
+                    model: nt.Structure.Molecule.Model.create({
+                      id: a,
+                      modelId: o,
+                      data: {
+                        atoms: r,
+                        residues: n.residues,
+                        chains: n.chains,
+                        entities: n.entities,
+                        bonds: {
+                          structConn: za(e, r, n),
+                          component: (function (t) {
+                            if (t && t.rowCount) {
+                              for (
+                                var e = new nt.Structure.ComponentBondInfo(),
+                                  n = t.getColumn('comp_id'),
+                                  r = t.getColumn('atom_id_1'),
+                                  i = t.getColumn('atom_id_2'),
+                                  o = t.getColumn('value_order'),
+                                  a = t.rowCount,
+                                  s = e.newEntry(n.getString(0)),
+                                  l = 0;
+                                l < a;
+                                l++
+                              ) {
+                                var u = n.getString(l),
+                                  c = r.getString(l),
+                                  A = i.getString(l),
+                                  h = o.getString(l),
+                                  p = (s.id !== u && (s = e.newEntry(u)), void 0);
+                                switch (h.toLowerCase()) {
+                                  case 'sing':
+                                    p = 1;
+                                    break;
+                                  case 'doub':
+                                  case 'delo':
+                                    p = 2;
+                                    break;
+                                  case 'trip':
+                                    p = 3;
+                                    break;
+                                  case 'quad':
+                                    p = 4;
+                                    break;
+                                  default:
+                                    p = 0;
+                                }
+                                s.add(c, A, p);
+                              }
+                              return e;
+                            }
+                          })(e.getCategory('_chem_comp_bond')),
+                        },
+                        modifiedResidues: (function (t) {
+                          if ((t = t.getCategory('_pdbx_struct_mod_residue'))) {
+                            for (
+                              var e = nt.Utils.DataTable.ofDefinition(
+                                  nt.Structure.Tables.ModifiedResidues,
+                                  t.rowCount,
+                                ),
+                                n = t.getColumn('label_asym_id'),
+                                r = t.getColumn('label_seq_id'),
+                                i = t.getColumn('PDB_ins_code'),
+                                o = t.getColumn('parent_comp_id'),
+                                a = t.getColumn('details'),
+                                s = e.asymId,
+                                l = e.seqNumber,
+                                u = e.insCode,
+                                c = e.parent,
+                                A = e.details,
+                                h = 0,
+                                p = t.rowCount;
+                              h < p;
+                              h++
+                            )
+                              (s[h] = n.getString(h)),
+                                (l[h] = r.getInteger(h)),
+                                (u[h] = i.getString(h)),
+                                (c[h] = o.getString(h)),
+                                (A[h] = a.getString(h));
+                            return e;
+                          }
+                        })(e),
+                        secondaryStructure: g,
+                        symmetryInfo: (function (t) {
+                          var e = t.getCategory('_cell'),
+                            n = t.getCategory('_symmetry'),
+                            t = t.getCategory('_atom_sites'),
+                            r = [1, 1, 1],
+                            i = nt.Geometry.LinearAlgebra.Matrix4.identity(),
+                            o = !1;
+                          if (e && n) {
+                            var a,
+                              s,
+                              l,
+                              u,
+                              c,
+                              A,
+                              h,
+                              n = n.getColumn('space_group_name_H-M').getString(0),
+                              r = [
+                                e.getColumn('length_a').getFloat(0),
+                                e.getColumn('length_b').getFloat(0),
+                                e.getColumn('length_c').getFloat(0),
+                              ],
+                              e = [
+                                e.getColumn('angle_alpha').getFloat(0),
+                                e.getColumn('angle_beta').getFloat(0),
+                                e.getColumn('angle_gamma').getFloat(0),
+                              ];
+                            if (
+                              n &&
+                              !r.every(function (t) {
+                                return isNaN(t) || 0 === t;
+                              }) &&
+                              !r.every(function (t) {
+                                return isNaN(t) || 0 === t;
+                              })
+                            )
+                              return (
+                                (u = function (t) {
+                                  return t * t;
+                                }),
+                                (a = r[0]),
+                                (s = r[1]),
+                                (c = r[2]),
+                                (A = (l = function (t) {
+                                  return (t * Math.PI) / 180;
+                                })(e[0])),
+                                (h = l(e[1])),
+                                (l = l(e[2])),
+                                (u =
+                                  a *
+                                  s *
+                                  c *
+                                  Math.sqrt(
+                                    1 -
+                                      u(Math.cos(A)) -
+                                      u(Math.cos(h)) -
+                                      u(Math.cos(l)) +
+                                      2 * Math.cos(A) * Math.cos(h) * Math.cos(l),
+                                  )),
+                                (c = nt.Geometry.LinearAlgebra.Matrix4.ofRows([
+                                  [a, s * Math.cos(l), c * Math.cos(h), 0],
+                                  [
+                                    0,
+                                    s * Math.sin(l),
+                                    (c * (Math.cos(A) - Math.cos(h) * Math.cos(l))) / Math.sin(l),
+                                    0,
+                                  ],
+                                  [0, 0, u / (a * s * Math.sin(l)), 0],
+                                  [0, 0, 0, 1],
+                                ])),
+                                (A = nt.Geometry.LinearAlgebra.Matrix4.identity()),
+                                nt.Geometry.LinearAlgebra.Matrix4.invert(A, c),
+                                t
+                                  ? (h = Ra(t, 'fract_transf_matrix', 'fract_transf_vector', 0)) &&
+                                    !nt.Geometry.LinearAlgebra.Matrix4.areEqual(A, (i = h), 1e-4) &&
+                                    (o = !0)
+                                  : (i = A),
+                                new nt.Structure.SymmetryInfo(n, r, e, i, o)
+                              );
+                          }
+                        })(e),
+                        assemblyInfo: Ha(e),
+                      },
+                      positions: i,
+                      source: nt.Structure.Molecule.Model.Source.File,
+                    }),
+                    endRow: t,
+                  };
+                }
+                function Va(t) {
+                  (this.data = t),
+                    (this.trimmedToken = { start: 0, end: 0 }),
+                    (this.line = 0),
+                    (this.position = 0),
+                    (this.length = t.length);
+                }
+                function qa() {}
+                function Wa(t) {
+                  for (var e, n, r, i, o, a, s = 0; s < t.atomCount; s++)
+                    (e = s),
+                      (a = o = i = r = void 0),
+                      (r = (n = t).lines[n.currentLine]),
+                      (i = n.atoms),
+                      (o = n.positions),
+                      (a = Mi.ShortStringPool.get(n.stringPool, r.substr(31, 3).trim())),
+                      (i.id[e] = e),
+                      (i.elementSymbol[e] = a),
+                      (i.name[e] = a),
+                      (i.authName[e] = a),
+                      (i.occupancy[e] = 1),
+                      (i.rowIndex[e] = n.currentLine),
+                      (o.x[e] = Ii.Utils.FastNumberParsers.parseFloatSkipTrailingWhitespace(
+                        r,
+                        0,
+                        10,
+                      )),
+                      (o.y[e] = Ii.Utils.FastNumberParsers.parseFloatSkipTrailingWhitespace(
+                        r,
+                        10,
+                        20,
+                      )),
+                      (o.z[e] = Ii.Utils.FastNumberParsers.parseFloatSkipTrailingWhitespace(
+                        r,
+                        20,
+                        30,
+                      )),
+                      t.currentLine++;
+                }
+                function Ja(t) {
+                  for (var e = 0; e < t.bondCount; e++) {
+                    o = i = r = n = void 0;
+                    var n = e,
+                      r = t,
+                      i = r.lines[r.currentLine],
+                      o = r.bonds;
+                    switch (
+                      ((o.atomAIndex[n] =
+                        Ii.Utils.FastNumberParsers.parseIntSkipTrailingWhitespace(i, 0, 3) - 1),
+                      (o.atomBIndex[n] =
+                        Ii.Utils.FastNumberParsers.parseIntSkipTrailingWhitespace(i, 3, 6) - 1),
+                      Ii.Utils.FastNumberParsers.parseIntSkipTrailingWhitespace(i, 6, 9))
+                    ) {
+                      case 1:
+                        o.type[n] = 1;
+                        break;
+                      case 2:
+                        o.type[n] = 2;
+                        break;
+                      case 3:
+                        o.type[n] = 3;
+                        break;
+                      case 4:
+                        o.type[n] = 4;
+                        break;
+                      default:
+                        o.type[n] = 0;
+                    }
+                    t.currentLine++;
+                  }
+                }
+                function Ka(a, s) {
+                  var t = this;
+                  return function (i, o) {
+                    return Di.computation(function (r) {
+                      return D(t, void 0, void 0, function () {
+                        var e, n;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return [4, r.updateProgress('Parsing...')];
+                            case 1:
+                              if ((t.sent(), (e = s(i, o)).isError)) throw e.toString();
+                              if ((e = e.result).dataBlocks.length)
+                                return [4, r.updateProgress('Creating representation...')];
+                              throw 'The ' + a + ' data does not contain a data block.';
+                            case 2:
+                              return (
+                                t.sent(),
+                                (n = ki.mmCIF.ofDataBlock(e.dataBlocks[0])),
+                                [
+                                  2,
+                                  Si.ParserResult.success(
+                                    n,
+                                    1 < e.dataBlocks.length
+                                      ? [
+                                          "The input data contains multiple data blocks, only the first one was parsed. To parse all data blocks, use the function 'mmCIF.ofDataBlock' separately for each block.",
+                                        ]
+                                      : void 0,
+                                  ),
+                                ]
+                              );
+                          }
+                        });
+                      });
+                    });
+                  };
+                }
+                function Za(t, e, n) {
+                  for (var r = [], i = 0; i < n; i++) r[i] = t(e + i);
+                  return r;
+                }
+                function Xa(t, e, n, r) {
+                  for (
+                    var i = new Float32Array(e[0] * e[1] * e[2]),
+                      o = [0, 0, 0],
+                      a = r[0],
+                      s = r[1],
+                      l = r[2],
+                      u = n[0],
+                      c = n[1],
+                      A = n[2],
+                      h = e[0],
+                      p = e[0] * e[1],
+                      d = 0,
+                      f = t.getFloat(0),
+                      g = f,
+                      m = 0;
+                    m < A;
+                    m++
+                  ) {
+                    o[2] = m;
+                    for (var v = 0; v < c; v++) {
+                      o[1] = v;
+                      for (var b = 0; b < u; b++) {
+                        o[0] = b;
+                        var y = t.getFloat(d);
+                        (d += 1),
+                          (i[o[a] + o[s] * h + o[l] * p] = y) < f ? (f = y) : g < y && (g = y);
+                      }
+                    }
+                  }
+                  return { data: i, min: f, max: g };
+                }
+                function $a() {
+                  return $a.zero();
+                }
+                function ts() {
+                  var t = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+                  return (t[0] = 0), t;
+                }
+                function es(t) {
+                  return (
+                    (t[0] = 1),
+                    (t[1] = 0),
+                    (t[2] = 0),
+                    (t[3] = 0),
+                    (t[4] = 0),
+                    (t[5] = 1),
+                    (t[6] = 0),
+                    (t[7] = 0),
+                    (t[8] = 0),
+                    (t[9] = 0),
+                    (t[10] = 1),
+                    (t[11] = 0),
+                    (t[12] = 0),
+                    (t[13] = 0),
+                    (t[14] = 0),
+                    (t[15] = 1),
+                    t
+                  );
+                }
+                function ns(t, e, n) {
+                  var r = e[0],
+                    i = e[1],
+                    o = e[2],
+                    a = e[3],
+                    s = e[4],
+                    l = e[5],
+                    u = e[6],
+                    c = e[7],
+                    A = e[8],
+                    h = e[9],
+                    p = e[10],
+                    d = e[11],
+                    f = e[12],
+                    g = e[13],
+                    m = e[14],
+                    e = e[15],
+                    v = n[0],
+                    b = n[1],
+                    y = n[2],
+                    w = n[3];
+                  return (
+                    (t[0] = v * r + b * s + y * A + w * f),
+                    (t[1] = v * i + b * l + y * h + w * g),
+                    (t[2] = v * o + b * u + y * p + w * m),
+                    (t[3] = v * a + b * c + y * d + w * e),
+                    (v = n[4]),
+                    (b = n[5]),
+                    (y = n[6]),
+                    (w = n[7]),
+                    (t[4] = v * r + b * s + y * A + w * f),
+                    (t[5] = v * i + b * l + y * h + w * g),
+                    (t[6] = v * o + b * u + y * p + w * m),
+                    (t[7] = v * a + b * c + y * d + w * e),
+                    (v = n[8]),
+                    (b = n[9]),
+                    (y = n[10]),
+                    (w = n[11]),
+                    (t[8] = v * r + b * s + y * A + w * f),
+                    (t[9] = v * i + b * l + y * h + w * g),
+                    (t[10] = v * o + b * u + y * p + w * m),
+                    (t[11] = v * a + b * c + y * d + w * e),
+                    (v = n[12]),
+                    (b = n[13]),
+                    (y = n[14]),
+                    (w = n[15]),
+                    (t[12] = v * r + b * s + y * A + w * f),
+                    (t[13] = v * i + b * l + y * h + w * g),
+                    (t[14] = v * o + b * u + y * p + w * m),
+                    (t[15] = v * a + b * c + y * d + w * e),
+                    t
+                  );
+                }
+                function rs(t, e, n) {
+                  return rs.fromValues(t || 0, e || 0, n || 0);
+                }
+                function is() {
+                  var t = [0.1, 0, 0];
+                  return (t[0] = 0), t;
+                }
+                function os(t, e, n) {
+                  var r = is();
+                  return (r[0] = t), (r[1] = e), (r[2] = n), r;
+                }
+                function as(t, e, n, r) {
+                  return (t[0] = e), (t[1] = n), (t[2] = r), t;
+                }
+                function ss(t, e) {
+                  return (t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), t;
+                }
+                function ls(t) {
+                  var e = t[0],
+                    n = t[1],
+                    t = t[2];
+                  return e * e + n * n + t * t;
+                }
+                function us(t, e) {
+                  var n = e[0],
+                    r = e[1],
+                    i = e[2],
+                    n = n * n + r * r + i * i;
+                  return (
+                    0 < n &&
+                      ((n = 1 / Math.sqrt(n)),
+                      (t[0] = e[0] * n),
+                      (t[1] = e[1] * n),
+                      (t[2] = e[2] * n)),
+                    t
+                  );
+                }
+                function cs(t, e) {
+                  return t[0] * e[0] + t[1] * e[1] + t[2] * e[2];
+                }
+                function As(t, e, n) {
+                  var r = e[0],
+                    i = e[1],
+                    e = e[2],
+                    o = n[0],
+                    a = n[1],
+                    n = n[2];
+                  return (t[0] = i * n - e * a), (t[1] = e * o - r * n), (t[2] = r * a - i * o), t;
+                }
+                function hs(t, e) {
+                  ss(Yi, t), ss(Oi, e), us(Yi, Yi), us(Oi, Oi);
+                  t = cs(Yi, Oi);
+                  return 1 < t ? 0 : t < -1 ? Math.PI : Math.acos(t);
+                }
+                function ps(t, e, n, r) {
+                  return ps.fromValues(t || 0, e || 0, n || 0, r || 0);
+                }
+                function ds() {
+                  var t = [0.1, 0, 0, 0];
+                  return (t[0] = 0), t;
+                }
+                function fs(t) {
+                  if (!t.normals) {
+                    for (
+                      var e = new Float32Array(t.vertices.length),
+                        n = t.vertices,
+                        r = t.triangleIndices,
+                        i = ji.zero(),
+                        o = ji.zero(),
+                        a = ji.zero(),
+                        s = ji.zero(),
+                        l = ji.zero(),
+                        u = ji.zero(),
+                        c = 0;
+                      c < r.length;
+                      c += 3
+                    ) {
+                      var A = 3 * r[c],
+                        h = 3 * r[c + 1],
+                        p = 3 * r[c + 2];
+                      ji.set(i, n[A], n[1 + A], n[2 + A]),
+                        ji.set(o, n[h], n[1 + h], n[2 + h]),
+                        ji.set(a, n[p], n[1 + p], n[2 + p]),
+                        ji.sub(s, a, o),
+                        ji.sub(l, o, i),
+                        ji.cross(u, s, l),
+                        (e[A] += u[0]),
+                        (e[1 + A] += u[1]),
+                        (e[2 + A] += u[2]),
+                        (e[h] += u[0]),
+                        (e[1 + h] += u[1]),
+                        (e[2 + h] += u[2]),
+                        (e[p] += u[0]),
+                        (e[1 + p] += u[1]),
+                        (e[2 + p] += u[2]);
+                    }
+                    for (c = 0; c < e.length; c += 3) {
+                      var d = e[c],
+                        f = e[c + 1],
+                        g = e[c + 2],
+                        d = 1 / Math.sqrt(d * d + f * f + g * g);
+                      (e[c] *= d), (e[c + 1] *= d), (e[c + 2] *= d);
+                    }
+                    t.normals = e;
+                  }
+                }
+                function gs(t, e, n, r) {
+                  (n[3 * r] += t[3 * e]),
+                    (n[3 * r + 1] += t[3 * e + 1]),
+                    (n[3 * r + 2] += t[3 * e + 2]);
+                }
+                function ms(C, x, I, M) {
+                  return D(this, void 0, void 0, function () {
+                    var f, g, m, v, b, y, w, E, B;
+                    return P(this, function (t) {
+                      switch (t.label) {
+                        case 0:
+                          return [4, C.updateProgress('Smoothing surface...', !0)];
+                        case 1:
+                          for (
+                            t.sent(),
+                              f = new Int32Array(x.vertexCount),
+                              g = x.triangleIndices.length,
+                              m = x.triangleIndices,
+                              y = 0;
+                            y < g;
+                            y++
+                          )
+                            f[m[y]] += 2;
+                          return (
+                            (v = new Float32Array(x.vertices.length)),
+                            (b = zi.Utils.PerformanceMonitor.currentTime()),
+                            [4, C.updateProgress('Smoothing surface...', !0)]
+                          );
+                        case 2:
+                          t.sent(), (y = 0), (t.label = 3);
+                        case 3:
+                          if (!(y < I)) return [3, 6];
+                          if (0 < y) for (w = 0, E = v.length; w < E; w++) v[w] = 0;
+                          x.normals = void 0;
+                          for (
+                            var e = x,
+                              n = f,
+                              r = v,
+                              i = M,
+                              o = e.triangleIndices.length,
+                              a = e.vertices,
+                              s = e.triangleIndices,
+                              l = 0;
+                            l < o;
+                            l += 3
+                          ) {
+                            var u = s[l],
+                              c = s[l + 1],
+                              A = s[l + 2];
+                            gs(a, c, r, u),
+                              gs(a, A, r, u),
+                              gs(a, u, r, c),
+                              gs(a, A, r, c),
+                              gs(a, u, r, A),
+                              gs(a, c, r, A);
+                          }
+                          for (var h = 2 * i, l = 0, p = e.vertexCount; l < p; l++) {
+                            var d = n[l] + h;
+                            (r[3 * l] = (r[3 * l] + h * a[3 * l]) / d),
+                              (r[3 * l + 1] = (r[3 * l + 1] + h * a[3 * l + 1]) / d),
+                              (r[3 * l + 2] = (r[3 * l + 2] + h * a[3 * l + 2]) / d);
+                          }
+                          return ((B = x.vertices),
+                          (x.vertices = v),
+                          (v = B),
+                          (B = zi.Utils.PerformanceMonitor.currentTime()) - b >
+                            zi.Computation.UpdateProgressDelta)
+                            ? ((b = B), [4, C.updateProgress('Smoothing surface...', !0, y + 1, I)])
+                            : [3, 5];
+                        case 4:
+                          t.sent(), (t.label = 5);
+                        case 5:
+                          return y++, [3, 3];
+                        case 6:
+                          return [2, x];
+                      }
+                    });
+                  });
+                }
+                function vs(t, e) {
+                  for (
+                    var n = Hi.LinearAlgebra.Vector3.zero(),
+                      r = Hi.LinearAlgebra.Vector3.transformMat4,
+                      i = t.vertices,
+                      o = 0,
+                      a = t.vertices.length;
+                    o < a;
+                    o += 3
+                  )
+                    (n[0] = i[o]),
+                      (n[1] = i[o + 1]),
+                      (n[2] = i[o + 2]),
+                      r(n, n, e),
+                      (i[o] = n[0]),
+                      (i[o + 1] = n[1]),
+                      (i[o + 2] = n[2]);
+                  (t.normals = void 0), (t.boundingSphere = void 0);
+                }
+                function bs(t, e, n) {
+                  var r;
+                  if (t.startIndex !== t.endIndex)
+                    if (isNaN(t.splitValue))
+                      for (
+                        var i,
+                          o,
+                          a = t,
+                          s = e,
+                          l = s.pivot,
+                          u = s.structure,
+                          c = u.indices,
+                          A = u.positions,
+                          h = s.radiusSq,
+                          p = a.startIndex;
+                        p < a.endIndex;
+                        p++
+                      )
+                        (o = 3 * c[p]),
+                          (o =
+                            (i = l[0] - A[o]) * i +
+                            (i = l[1] - A[1 + o]) * i +
+                            (i = l[2] - A[2 + o]) * i) <= h && Ji.QueryContext.add(s, o, c[p]);
+                    else
+                      (u = t),
+                        (t = n),
+                        (e = (n = e).pivot[t]),
+                        (
+                          (r = e < u.splitValue)
+                            ? e + n.radius > u.splitValue
+                            : e - n.radius < u.splitValue
+                        )
+                          ? (bs(u.left, n, (t + 1) % 3), bs(u.right, n, (t + 1) % 3))
+                          : bs(r ? u.left : u.right, n, (t + 1) % 3);
+                }
+                function ys(t) {
+                  t.elements;
+                  for (
+                    var e = t.positions,
+                      n = t.bounds,
+                      t = t.indices,
+                      e = {
+                        size: [
+                          1 + ((n.max[0] - n.min[0]) >> 3),
+                          1 + ((n.max[1] - n.min[1]) >> 3),
+                          1 + ((n.max[2] - n.min[2]) >> 3),
+                        ],
+                        positions: e,
+                        indices: t,
+                        bounds: n,
+                      },
+                      t = e.bounds,
+                      n = e.size,
+                      r = n[0],
+                      i = n[1],
+                      o = n[2],
+                      a = e.positions,
+                      s = r * i * o,
+                      l = e.indices.length,
+                      u = (n = t.min)[0],
+                      c = n[1],
+                      A = n[2],
+                      h = 0,
+                      p = new Uint32Array(s),
+                      d = new Int32Array(l),
+                      f = 0;
+                    f < l;
+                    f++
+                  ) {
+                    var g =
+                      (((a[3 * f + 0] - u) >> 3) * i + ((a[3 * f + 1] - c) >> 3)) * o +
+                      ((a[3 * f + 2] - A) >> 3);
+                    1 === (p[g] += 1) && (h += 1), (d[f] = g);
+                  }
+                  for (var m = new Int32Array(h), f = 0, v = 0; f < s; f++) {
+                    var b = p[f];
+                    0 < b && ((p[f] = v + 1), (m[v] = b), (v += 1));
+                  }
+                  for (var y = new Uint32Array(l), f = 1; f < l; ++f) y[f] += y[f - 1] + m[f - 1];
+                  for (var w = new Int32Array(h), E = new Int32Array(l), f = 0; f < l; f++) {
+                    var B = p[d[f]];
+                    0 < B && ((E[y[(B = B - 1)] + w[B]] = f), (w[B] += 1));
+                  }
+                  return {
+                    size: e.size,
+                    bucketArray: E,
+                    bucketCounts: m,
+                    bucketOffset: y,
+                    grid: p,
+                    min: e.bounds.min,
+                    positions: a,
+                  };
+                }
+                function ws(t, e) {
+                  (this.ctx = e),
+                    (this.minX = 0),
+                    (this.minY = 0),
+                    (this.minZ = 0),
+                    (this.maxX = 0),
+                    (this.maxY = 0),
+                    (this.maxZ = 0);
+                  e = $i.Utils.extend({}, t);
+                  e.bottomLeft || (e.bottomLeft = [0, 0, 0]),
+                    e.topRight || (e.topRight = e.scalarField.dimensions),
+                    (this.state = new no(e)),
+                    (this.minX = e.bottomLeft[0]),
+                    (this.minY = e.bottomLeft[1]),
+                    (this.minZ = e.bottomLeft[2]),
+                    (this.maxX = e.topRight[0] - 1),
+                    (this.maxY = e.topRight[1] - 1),
+                    (this.maxZ = e.topRight[2] - 1),
+                    (this.size =
+                      (this.maxX - this.minX) * (this.maxY - this.minY) * (this.maxZ - this.minZ)),
+                    (this.sliceSize = (this.maxX - this.minX) * (this.maxY - this.minY));
+                }
+                function Es(t) {
+                  (this.vertList = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
+                    (this.i = 0),
+                    (this.j = 0),
+                    (this.k = 0),
+                    (this.nX = t.scalarField.dimensions[0]),
+                    (this.nY = t.scalarField.dimensions[1]),
+                    (this.nZ = t.scalarField.dimensions[2]),
+                    (this.isoLevel = t.isoLevel),
+                    (this.scalarField = t.scalarField),
+                    (this.annotationField = t.annotationField);
+                  var e = t.topRight[0] - t.bottomLeft[0],
+                    n = t.topRight[1] - t.bottomLeft[1],
+                    r = t.topRight[2] - t.bottomLeft[2],
+                    e = Math.min(262144, 0 | Math.max((e * n * r) / 16, 1024)),
+                    n = Math.min(65536, 4 * e);
+                  (this.vertexBuffer = $i.Utils.ChunkedArray.forVertex3D(e)),
+                    (this.triangleBuffer = $i.Utils.ChunkedArray.create(
+                      function (t) {
+                        return new Uint32Array(t);
+                      },
+                      n,
+                      3,
+                    )),
+                    (this.annotate = !!t.annotationField),
+                    this.annotate && (this.annotationBuffer = $i.Utils.ChunkedArray.forInt32(e)),
+                    (this.verticesOnEdges = new Int32Array(3 * this.nX * this.nY * 2));
+                }
+                function Bs(t, e) {
+                  (this.inputParameters = t),
+                    (this.ctx = e),
+                    (this.minX = Number.MAX_VALUE),
+                    (this.minY = Number.MAX_VALUE),
+                    (this.minZ = Number.MAX_VALUE),
+                    (this.maxX = -Number.MAX_VALUE),
+                    (this.maxY = -Number.MAX_VALUE),
+                    (this.maxZ = -Number.MAX_VALUE),
+                    (this.nX = 0),
+                    (this.nY = 0),
+                    (this.nZ = 0),
+                    (this.dX = 0.1),
+                    (this.dY = 0.1),
+                    (this.dZ = 0.1),
+                    (this.field = new Float32Array(0)),
+                    (this.distanceField = new Float32Array(0)),
+                    (this.proximityMap = new Int32Array(0)),
+                    (this.minIndex = { i: 0, j: 0, k: 0 }),
+                    (this.maxIndex = { i: 0, j: 0, k: 0 }),
+                    (this.parameters = new oo(t.parameters));
+                  e = t.positions;
+                  (this.x = e.x),
+                    (this.y = e.y),
+                    (this.z = e.z),
+                    (this.atomIndices = t.atomIndices),
+                    0.99 <= this.parameters.density
+                      ? (this.vdwScaleFactor = 1.000000001)
+                      : (this.vdwScaleFactor =
+                          1 - this.parameters.density * this.parameters.density + 1);
+                }
+                function Cs(n) {
+                  var t = this;
+                  return ro.computation(function (e) {
+                    return D(t, void 0, void 0, function () {
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return [4, new ao(n, e).run()];
+                          case 1:
+                            return [2, t.sent()];
+                        }
+                      });
+                    });
+                  });
+                }
+                function xs(t) {
+                  t = co[t];
+                  return void 0 === t ? -1 : t;
+                }
+                function Is(t) {
+                  if (t < 0) return 2.001;
+                  t = Ao[t];
+                  return void 0 === t ? 2.001 : t;
+                }
+                function Ms(t) {
+                  return t === fo;
+                }
+                function Ds(t) {
+                  t = co[t];
+                  return void 0 !== t && po.has(t);
+                }
+                function Ss(t, e, n) {
+                  for (
+                    var r = t.data.bonds,
+                      i = r.structConn,
+                      U = r.component,
+                      r = t.positions,
+                      N = r.x,
+                      P = r.y,
+                      L = r.z,
+                      r = t.data.atoms,
+                      Y = r.elementSymbol,
+                      O = r.residueIndex,
+                      G = r.altLoc,
+                      z = t.data.residues.name,
+                      H = t.queryContext.lookup3d(),
+                      o = lo.Utils.ChunkedArray.create(
+                        function (t) {
+                          return new Int32Array(t);
+                        },
+                        (1.33 * e.length) | 0,
+                        1,
+                      ),
+                      a = lo.Utils.ChunkedArray.create(
+                        function (t) {
+                          return new Int32Array(t);
+                        },
+                        (1.33 * e.length) | 0,
+                        1,
+                      ),
+                      s = lo.Utils.ChunkedArray.create(
+                        function (t) {
+                          return new Uint8Array(t);
+                        },
+                        (1.33 * e.length) | 0,
+                        1,
+                      ),
+                      j = lo.Utils.Mask.ofIndices(t.data.atoms.count, e),
+                      V = { model: t, mask: j, atomA: o, atomB: a, type: s },
+                      q = -1,
+                      W = !1,
+                      l = 0,
+                      J = e;
+                    l < J.length;
+                    l++
+                  ) {
+                    var u = J[l],
+                      c = O[u];
+                    if (!n.forceCompute && c !== q && (W = !!U && U.entries.has(z[c]))) {
+                      B =
+                        E =
+                        E =
+                        x =
+                        nt =
+                        C =
+                        w =
+                        y =
+                        b =
+                        v =
+                        et =
+                        m =
+                        g =
+                        f =
+                        v =
+                        d =
+                        tt =
+                        $ =
+                        d =
+                        X =
+                        Z =
+                        K =
+                        p =
+                        h =
+                        A =
+                        d =
+                          void 0;
+                      for (
+                        var A = c,
+                          h = (d = V).model,
+                          p = d.mask,
+                          K = d.atomA,
+                          Z = d.atomB,
+                          X = d.type,
+                          $ = (d = h.data.residues).atomStartIndex,
+                          tt = d.atomEndIndex,
+                          d = d.name,
+                          f = (v = h.data.atoms).name,
+                          g = v.altLoc,
+                          m = v.elementSymbol,
+                          et = h.data.bonds.component.entries.get(d[A]).map,
+                          v = $[A],
+                          b = tt[A],
+                          y = v;
+                        y < b - 1;
+                        y++
+                      )
+                        if (p.has(y)) {
+                          var w = et.get(f[y]);
+                          if (w)
+                            for (var E, B, C = g[y], nt = Ds(m[y]), x = y + 1; x < b; x++)
+                              p.has(x) &&
+                                ((E = g[x]),
+                                (C && E && C !== E) ||
+                                  (void 0 !== (E = w.get(f[x])) &&
+                                    ((B = nt || Ds(m[x])), go(K, y), go(Z, x), go(X, B ? 6 : E))));
+                        }
+                    }
+                    for (
+                      var q = c,
+                        I = xs(Y[u]),
+                        h = H(N[u], P[u], L[u], 3),
+                        rt = h.elements,
+                        it = h.count,
+                        ot = h.squaredDistances,
+                        at = Ms(I),
+                        st = Is(I),
+                        lt = G[u],
+                        ut = po.has(I),
+                        ct = n.forceCompute ? void 0 : i && i.getAtomEntries(u),
+                        M = 0;
+                      M < it;
+                      M++
+                    ) {
+                      var D = rt[M];
+                      if (!(D <= u) && j.has(D)) {
+                        var S = G[D];
+                        if (!lt || !S || lt === S) {
+                          S = O[D];
+                          if (c !== S || !W) {
+                            var S = xs(Y[D]),
+                              k = Ms(S);
+                            if (!at || !k) {
+                              var F,
+                                Q = Math.sqrt(ot[M]);
+                              if (0 !== Q) {
+                                if (ct) {
+                                  for (var _ = !1, T = 0, At = ct; T < At.length; T++) {
+                                    for (
+                                      var ht = At[T], R = 0, pt = ht.partners;
+                                      R < pt.length;
+                                      R++
+                                    )
+                                      if (pt[R].atomIndex === D) {
+                                        go(o, u), go(a, D), go(s, ht.bondType), (_ = !0);
+                                        break;
+                                      }
+                                    if (_) break;
+                                  }
+                                  if (_) continue;
+                                }
+                                at || k
+                                  ? Q < n.maxHbondLength && (go(o, u), go(a, D), go(s, 1))
+                                  : ((k = S),
+                                    (k =
+                                      0 <
+                                      (F =
+                                        (F = I) < 0 ||
+                                        k < 0 ||
+                                        void 0 ===
+                                          (k =
+                                            ho[
+                                              (F = F) < (k = k)
+                                                ? ((F + k) * (F + k + 1)) / 2 + k
+                                                : ((F + k) * (F + k + 1)) / 2 + F
+                                            ])
+                                          ? -1
+                                          : k)
+                                        ? F
+                                        : S < 0
+                                          ? st
+                                          : Math.max(st, Is(S))),
+                                    (F = po.has(S)),
+                                    Q <= k && (go(o, u), go(a, D), go(s, ut || F ? 6 : 1)));
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                  r = lo.Utils.DataTable.builder(o.elementCount);
+                  return (
+                    r.addRawColumn(
+                      'atomAIndex',
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      lo.Utils.ChunkedArray.compact(o),
+                    ),
+                    r.addRawColumn(
+                      'atomBIndex',
+                      function (t) {
+                        return new Int32Array(t);
+                      },
+                      lo.Utils.ChunkedArray.compact(a),
+                    ),
+                    r.addRawColumn(
+                      'type',
+                      function (t) {
+                        return new Uint8Array(t);
+                      },
+                      lo.Utils.ChunkedArray.compact(s),
+                    ),
+                    r.seal()
+                  );
+                }
+                function ks(t, e, n) {
+                  return wo.distance(t, n.center) - (e + n.radius);
+                }
+                function Fs(t, e, n, r, i, o) {
+                  return (
+                    (o[0] = n.x[e]),
+                    (o[1] = n.y[e]),
+                    (o[2] = n.z[e]),
+                    wo.transformMat4(o, o, r),
+                    ks(o, n.r[e], t) <= i
+                  );
+                }
+                function Qs(t, e, n) {
+                  var r = n.x[t] - n.cX[e],
+                    i = n.y[t] - n.cY[e],
+                    t = n.z[t] - n.cZ[e];
+                  return r * r + i * i + t * t;
+                }
+                function _s(t, e, n) {
+                  var r = n.x[t] - e[0],
+                    i = n.y[t] - e[1],
+                    n = n.z[t] - e[2];
+                  return r * r + i * i + n * n;
+                }
+                function Ts(t) {
+                  return Rs(t.i, t.j, t.k, t.op, yo.clone(t.transform));
+                }
+                function Rs(t, e, n, r, i) {
+                  return {
+                    isIdentity: !(t || e || n || r),
+                    id: r + 1 + '_' + (5 + t) + (5 + e) + (5 + n),
+                    transform: i,
+                  };
+                }
+                function Us(t) {
+                  var e = t.boundingInfo,
+                    n = t.spacegroup,
+                    r = [];
+                  (t.transform = yo.identity()), (r[0] = Ts(t));
+                  for (var i, o = -3; o <= 3; o++)
+                    for (var a = -3; a <= 3; a++)
+                      for (var s = -3; s <= 3; s++)
+                        for (
+                          var l = 0 === o && 0 === a && 0 === s ? 1 : 0, u = n.operatorCount;
+                          l < u;
+                          l++
+                        )
+                          n.getOperatorMatrix(l, o, a, s, t.transform),
+                            (t.i = o),
+                            (t.k = s),
+                            (t.j = a),
+                            (t.op = l),
+                            (i = e.allAtoms.center),
+                            ks(
+                              wo.transformMat4(t.transformed, i, t.transform),
+                              e.allAtoms.radius,
+                              e.target,
+                            ) < t.radius && (r[r.length] = Ts(t));
+                  return r;
+                }
+                function Ns(t, e, n, r, i) {
+                  for (var o = 0; o < i; o++) n[o][r] = t[o][e];
+                }
+                function Ps(t, e, n) {
+                  for (
+                    var U,
+                      N,
+                      P,
+                      L,
+                      r = t.data.residues,
+                      i = r.chainIndex,
+                      o = r.entityIndex,
+                      Y = r.atomStartIndex,
+                      O = r.atomEndIndex,
+                      G = t.data.atoms,
+                      r = t.positions,
+                      z = r.x,
+                      H = r.y,
+                      j = r.z,
+                      V = Eo.builder(e.atomCount),
+                      a = [],
+                      r = Eo.ofDefinition(vo.Tables.Positions, e.atomCount),
+                      q = r.x,
+                      W = r.y,
+                      J = r.z,
+                      s = t.data.entities.getBuilder(e.entityCount),
+                      l = s,
+                      u = t.data.entities.getRawData(),
+                      K = l.getRawData(),
+                      Z = l.chainStartIndex,
+                      X = l.chainEndIndex,
+                      $ = l.residueStartIndex,
+                      tt = l.residueEndIndex,
+                      et = l.atomStartIndex,
+                      nt = l.atomEndIndex,
+                      c = 0,
+                      l = t.data.chains.getBuilder(e.chainCount),
+                      A = l,
+                      h = t.data.chains.getRawData(),
+                      rt = A.getRawData(),
+                      it = A.residueStartIndex,
+                      p = A.residueEndIndex,
+                      ot = A.atomStartIndex,
+                      d = A.atomEndIndex,
+                      f = A.asymId,
+                      g = A.authAsymId,
+                      at = A.entityIndex,
+                      st = l.addColumn('sourceChainIndex', function (t) {
+                        return new Int32Array(t);
+                      }),
+                      lt = l.addColumn('operatorIndex', function (t) {
+                        return new Int32Array(t);
+                      }),
+                      m = 0,
+                      A = t.data.residues.getBuilder(e.residues.length),
+                      v = A,
+                      ut = t.data.residues.getRawData(),
+                      ct = v.getRawData(),
+                      At = v.atomStartIndex,
+                      ht = v.atomEndIndex,
+                      pt = v.asymId,
+                      dt = v.authAsymId,
+                      ft = v.chainIndex,
+                      gt = v.entityIndex,
+                      b = 0,
+                      mt = t.data.atoms.columns;
+                    b < mt.length;
+                    b++
+                  ) {
+                    var y = mt[b],
+                      w = V.addColumn(y.name, y.creator);
+                    'residueIndex' === y.name
+                      ? (N = w)
+                      : 'chainIndex' === y.name
+                        ? (P = w)
+                        : 'entityIndex' === y.name
+                          ? (L = w)
+                          : 'id' === y.name
+                            ? (U = w)
+                            : (a[a.length] = { src: G[y.name], target: w });
+                  }
+                  var E,
+                    B,
+                    C = e.residues,
+                    x = e.operators,
+                    I = It.Geometry.LinearAlgebra.Vector3.zero(),
+                    M = 0,
+                    vt = i[(k = C[0])],
+                    bt = o[k],
+                    D = x[0];
+                  Ns(u, o[k], K, 0, u.length),
+                    (et[($[(Z[0] = 0)] = 0)] = 0),
+                    Ns(h, i[k], rt, 0, h.length),
+                    (ot[(it[(at[0] = 0)] = 0)] = 0),
+                    (E = t.data.chains.asymId[i[k]]),
+                    (B = t.data.chains.authAsymId[i[k]]),
+                    (Q = n[x[0]]) &&
+                      !Q.isIdentity &&
+                      ((f[m] = t.data.chains.asymId[i[k]] + '-' + Q.id),
+                      (g[m] = t.data.chains.authAsymId[i[k]] + '-' + Q.id),
+                      (st[m] = i[k]),
+                      (lt[m] = D),
+                      (E = f[m]),
+                      (B = g[m]));
+                  for (var S = 0, yt = C.length; S < yt; S++) {
+                    var k = C[S],
+                      F = x[S],
+                      Q = n[F],
+                      _ = (Ns(ut, k, ct, S, ct.length), o[k]),
+                      T = i[k],
+                      wt = !1;
+                    _ !== bt
+                      ? ((p[m] = S),
+                        (d[m] = M),
+                        (m += 1),
+                        (X[c] = m),
+                        (tt[c] = S),
+                        (nt[c] = M),
+                        Ns(u, _, K, (c += 1), u.length),
+                        (Z[c] = m),
+                        ($[c] = S),
+                        (et[c] = M),
+                        (wt = !0))
+                      : (T === vt && F === D) || ((p[m] = S), (d[m] = M), (m += 1), (wt = !0)),
+                      wt &&
+                        (Ns(h, T, rt, m, h.length),
+                        (at[m] = c),
+                        (it[m] = S),
+                        (ot[m] = M),
+                        Q.isIdentity ||
+                          ((f[m] = t.data.chains.asymId[T] + '-' + Q.id),
+                          (g[m] = t.data.chains.authAsymId[T] + '-' + Q.id)),
+                        (st[m] = T),
+                        (lt[m] = F),
+                        (E = f[m]),
+                        (B = g[m])),
+                      (vt = T),
+                      (bt = _),
+                      (D = F),
+                      (ft[S] = m),
+                      (gt[S] = c),
+                      (At[S] = M),
+                      (pt[S] = E),
+                      (dt[S] = B);
+                    for (var R = Y[k], Et = O[k]; R < Et; R++) {
+                      wo.set(I, z[R], H[R], j[R]),
+                        wo.transformMat4(I, I, Q.transform),
+                        (q[M] = I[0]),
+                        (W[M] = I[1]),
+                        (J[M] = I[2]),
+                        (U[M] = M + 1),
+                        (N[M] = S),
+                        (P[M] = m),
+                        (L[M] = c);
+                      for (var Bt = 0, Ct = a; Bt < Ct.length; Bt++)
+                        (w = Ct[Bt]).target[M] = w.src[R];
+                      M++;
+                    }
+                    ht[S] = M;
+                  }
+                  (X[c] = m + 1), (tt[c] = C.length), (nt[c] = M), (p[m] = C.length), (d[m] = M);
+                  var v = V.seal(),
+                    A = A.seal(),
+                    l = l.seal(),
+                    s = s.seal(),
+                    xt = (function (t, e, n) {
+                      var r = t.data.residues.secondaryStructureIndex,
+                        i = t.data.secondaryStructure,
+                        o = n.asymId,
+                        a = n.seqNumber,
+                        s = n.insCode,
+                        l = n.secondaryStructureIndex,
+                        u = e.residues,
+                        c = e.operators,
+                        A = u.length,
+                        h = [],
+                        p = 0;
+                      for (; p < A; ) {
+                        for (var d = p, f = r[u[p]], g = c[p]; d < A && c[d] == g && r[u[d]] == f; )
+                          d++;
+                        for (
+                          var m = i[f],
+                            m = new vo.SecondaryStructureElement(
+                              m.type,
+                              new vo.PolyResidueIdentifier(o[p], a[p], s[p]),
+                              new vo.PolyResidueIdentifier(o[d - 1], a[d - 1], s[d - 1]),
+                              m.info,
+                            ),
+                            v = ((m.startResidueIndex = p), (m.endResidueIndex = d), h.length),
+                            b = p;
+                          b < d;
+                          b++
+                        )
+                          l[b] = v;
+                        (h[v] = m), (p = d);
+                      }
+                      return h;
+                    })(t, e, A),
+                    e = t.data.bonds.structConn
+                      ? (function (t, e, n, r, i, o) {
+                          for (
+                            var t = t.entries, a = It.Utils.FastMap.create(), s = 0, l = e.length;
+                            s < l;
+                            s++
+                          )
+                            a.set(e[s].id, s);
+                          for (var u = It.Utils.FastMap.create(), c = 0, A = t; c < A.length; c++)
+                            for (var h = A[c], p = 0, d = h.partners; p < d.length; p++) {
+                              var f = d[p];
+                              u.has(f.residueIndex) ||
+                                u.set(f.residueIndex, It.Utils.FastMap.create());
+                            }
+                          for (s = 0, l = n.length; s < l; s++) {
+                            var g = n[s];
+                            u.has(g) && u.get(g).set(r[s], s);
+                          }
+                          for (
+                            var m = i.atomStartIndex, v = o.atomStartIndex, b = [], y = 0, w = t;
+                            y < w.length;
+                            y++
+                          ) {
+                            for (var h = w[y], E = !0, B = 0, C = h.partners; B < C.length; B++)
+                              if ('1_555' !== (f = C[B]).symmetry) {
+                                E = !1;
+                                break;
+                              }
+                            if (E)
+                              for (var x = 0, I = e.length; x < I; x++)
+                                !(function (n) {
+                                  for (var t = !0, e = 0, r = h.partners; e < r.length; e++) {
+                                    var i = r[e];
+                                    if (!u.get(i.residueIndex).has(n)) {
+                                      t = !1;
+                                      break;
+                                    }
+                                  }
+                                  if (!t) return;
+                                  b.push({
+                                    bondType: h.bondType,
+                                    distance: h.distance,
+                                    partners: h.partners.map(function (t) {
+                                      var e = u.get(t.residueIndex).get(n);
+                                      return {
+                                        residueIndex: e,
+                                        atomIndex: v[e] + (t.atomIndex - m[t.residueIndex]),
+                                        symmetry: t.symmetry,
+                                      };
+                                    }),
+                                  });
+                                })(x);
+                            else {
+                              for (var M = [], D = 0, S = h.partners; D < S.length; D++) {
+                                f = S[D];
+                                if (!a.has(f.symmetry)) break;
+                                var k = a.get(f.symmetry),
+                                  F = u.get(f.residueIndex);
+                                if (!F.has(k)) break;
+                                F = F.get(k);
+                                M.push({
+                                  residueIndex: F,
+                                  atomIndex: v[F] + (f.atomIndex - m[f.residueIndex]),
+                                  symmetry: f.symmetry,
+                                });
+                              }
+                              M.length === h.partners.length &&
+                                b.push({ bondType: h.bondType, distance: h.distance, partners: M });
+                            }
+                          }
+                          return new vo.StructConn(b);
+                        })(t.data.bonds.structConn, n, e.residues, e.operators, t.data.residues, A)
+                      : void 0;
+                  return vo.Molecule.Model.create({
+                    id: t.id,
+                    modelId: t.modelId,
+                    data: {
+                      atoms: v,
+                      residues: A,
+                      chains: l,
+                      entities: s,
+                      bonds: { structConn: e, component: t.data.bonds.component },
+                      secondaryStructure: xt,
+                    },
+                    positions: r,
+                    parent: t,
+                    source: vo.Molecule.Model.Source.Computed,
+                    operators: n.map(function (t) {
+                      return new vo.Operator(t.transform, t.id, t.isIdentity);
+                    }),
+                  });
+                }
+                function Ls(t, e) {
+                  for (
+                    var n = (function (t, e) {
+                        for (
+                          var n = t.x, r = t.y, i = t.z, o = wo.zero(), a = 0, s = e;
+                          a < s.length;
+                          a++
+                        ) {
+                          var l = s[a];
+                          (o[0] += n[l]), (o[1] += r[l]), (o[2] += i[l]);
+                        }
+                        for (
+                          var u = 0 < e.length ? e.length : 1,
+                            c = ((o[0] /= u), (o[1] /= u), (o[2] /= u), 0),
+                            A = 0,
+                            h = e;
+                          A < h.length;
+                          A++
+                        )
+                          (l = h[A]), (c = Math.max(_s(l, o, t), c));
+                        return { center: o, radius: Math.sqrt(c) };
+                      })(t.positions, t.positions.indices),
+                      r = new vo.Spacegroup(t.data.symmetryInfo),
+                      i = yo.zero(),
+                      o = wo.zero(),
+                      a = [],
+                      s = -3;
+                    s <= 3;
+                    s++
+                  )
+                    for (var l = -3; l <= 3; l++)
+                      for (var u = -3; u <= 3; u++)
+                        for (var c, A = 0; A < r.operatorCount; A++)
+                          r.getOperatorMatrix(A, s, l, u, i),
+                            wo.transformMat4(o, n.center, i),
+                            ks(o, n.radius, n) > e ||
+                              ((c = yo.zero()), yo.copy(c, i), a.push(Rs(s, l, u, A, c)));
+                  return a;
+                }
+                function Ys(t, e, n) {
+                  for (
+                    var r = t.data.assemblyInfo, i = [], o = n, a = 0, s = e;
+                    a < s.length;
+                    a++
+                  ) {
+                    for (var l = s[a], u = yo.identity(), c = 0; c < l.length; c++)
+                      yo.mul(u, u, r.operators[l[c]].operator);
+                    o++,
+                      (i[i.length] = (function (t, e) {
+                        for (var n = !0, r = 0; r < 4; r++) {
+                          for (var i = 0; i < 4; i++) {
+                            var o = e[4 * i + r];
+                            if (r === i) {
+                              if (1e-7 < Math.abs(o - 1)) {
+                                n = !1;
+                                break;
+                              }
+                            } else if (1e-7 < Math.abs(o)) {
+                              n = !1;
+                              break;
+                            }
+                          }
+                          if (!n) break;
+                        }
+                        return { isIdentity: n, id: t.toString(), transform: e };
+                      })(o, u));
+                  }
+                  return i;
+                }
+                function Os(t, e, n) {
+                  for (var r = [], i = [], o = 0; o < e.operators.length; o++) i[o] = '';
+                  !(function t(e, n, r, i) {
+                    if (r < 0) n[n.length] = i.slice(0);
+                    else
+                      for (var o = e[r], a = o.length, s = 0; s < a; s++)
+                        (i[r] = o[s]), t(e, n, r - 1, i);
+                  })(e.operators, r, e.operators.length - 1, i);
+                  for (
+                    var a = n.transforms.length,
+                      r = Ys(t, r, n.transforms.length),
+                      s = ((h = n.transforms).push.apply(h, r), It.Utils.FastSet.create()),
+                      l =
+                        (e.asymIds.forEach(function (t) {
+                          return s.add(t);
+                        }),
+                        t.data.residues.asymId),
+                      u = t.data.residues.count,
+                      c = n.mask,
+                      A = 0;
+                    A < u;
+                    A++
+                  )
+                    c[A] = s.has(l[A]);
+                  for (
+                    var h = t,
+                      p = c,
+                      d = r,
+                      t = n,
+                      f = a,
+                      g = (h = h.data).chains,
+                      m = h.entities,
+                      v = h.residues,
+                      b = t.residueIndices,
+                      y = t.operatorIndices,
+                      w = 0,
+                      E = 0,
+                      B = 0,
+                      C = 0,
+                      x = m.count;
+                    C < x;
+                    C++
+                  ) {
+                    for (var I = f, M = !1, D = 0, S = d; D < S.length; D++) {
+                      S[D];
+                      for (var k = m.chainStartIndex[C], F = m.chainEndIndex[C]; k < F; k++) {
+                        for (
+                          var Q = !1, _ = g.residueStartIndex[k], T = g.residueEndIndex[k];
+                          _ < T;
+                          _++
+                        )
+                          p[_] &&
+                            (It.Utils.ChunkedArray.add(b, _),
+                            It.Utils.ChunkedArray.add(y, I),
+                            (w += v.atomEndIndex[_] - v.atomStartIndex[_]),
+                            (Q = !0));
+                        Q && ((E += 1), (M = !0));
+                      }
+                      I++;
+                    }
+                    M && B++;
+                  }
+                  (t.atomCount += w), (t.chainCount += E), (t.entityCount += B);
+                }
+                function Gs(t) {
+                  if ('undefined' == typeof window)
+                    throw 'parse can only be called from a browser.';
+                  (0, eval)(
+                    'with (LiteMol.Core.Structure.Query) { window.__LiteMol_query = ' + t + '; }',
+                  );
+                  t = window.__LiteMol_query;
+                  return (window.__LiteMol_query = void 0), t.compile();
+                }
+                function zs() {
+                  for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                  return i.build(function () {
+                    return o.compileAtomRanges(!1, t, function (t) {
+                      return t.data.residues;
+                    });
+                  });
+                }
+                function Hs() {
+                  for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                  return i.build(function () {
+                    return o.compileAtomRanges(!1, t, function (t) {
+                      return t.data.chains;
+                    });
+                  });
+                }
+                function js() {
+                  for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                  return i.build(function () {
+                    return o.compileAtomRanges(!1, t, function (t) {
+                      return t.data.entities;
+                    });
+                  });
+                }
+                function Vs() {
+                  return i.build(function () {
+                    return o.compileHetGroups();
+                  });
+                }
+                function qs() {
+                  for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                  return i.build(function () {
+                    return o.compileOr(t);
+                  });
+                }
+                function Ws(t) {
+                  return i.build(function () {
+                    return o.compileComplement(t);
+                  });
+                }
+                function Js(t, e) {
+                  return i.build(function () {
+                    return o.compileAmbientResidues(t, e);
+                  });
+                }
+                function Ks(t) {
+                  return i.build(function () {
+                    return o.compileWholeResidues(t);
+                  });
+                }
+                function Zs(t) {
+                  return i.build(function () {
+                    return o.compileUnion(t);
+                  });
+                }
+                function Xs(t, e) {
+                  return i.build(function () {
+                    return o.compileInside(t, e);
+                  });
+                }
+                function $s(t, e) {
+                  return i.build(function () {
+                    return o.compileIntersectWith(t, e);
+                  });
+                }
+                function tl(t, e) {
+                  return i.build(function () {
+                    return o.compileFlatten(t, e);
+                  });
+                }
+                function el(t, e) {
+                  return i.build(function () {
+                    return o.compileExcept(t, e);
+                  });
+                }
+                function nl(t, e) {
+                  this.columns = [];
+                  for (var n = 0, r = Object.keys(t); n < r.length; n++) {
+                    var i = r[n];
+                    void 0 !== t[i] && e[i] && this.columns.push({ value: t[i], array: e[i] });
+                  }
+                }
+                function rl(i) {
+                  return function (n, r) {
+                    return function (t, e) {
+                      return i(n(t, e), r(t, e));
+                    };
+                  };
+                }
+                function il(i) {
+                  return function (n, r) {
+                    return function (t, e) {
+                      return i(n(t, e), r(t, e));
+                    };
+                  };
+                }
+                function ol(n, r, i) {
+                  return function (t, e) {
+                    t = t.structure;
+                    return i(r(t))[n(t.data.atoms)[e]];
+                  };
+                }
+                function al(t, e, n) {
+                  return (
+                    n < 0 && (n += 1),
+                    1 < n && --n,
+                    n < 1 / 6
+                      ? t + 6 * (e - t) * n
+                      : n < 0.5
+                        ? e
+                        : n < 2 / 3
+                          ? t + (e - t) * (2 / 3 - n) * 6
+                          : t
+                  );
+                }
+                function sl(t) {
+                  return {
+                    r: ((t >> 16) & 255) / 255,
+                    g: ((t >> 8) & 255) / 255,
+                    b: (255 & t) / 255,
+                  };
+                }
+                function ll(t) {
+                  this.pallete = t;
+                }
+                function ul(t) {
+                  (this.pallete = t),
+                    (this.colorIndex = 0),
+                    (this.colorMap = Fo.Core.Utils.FastMap.create());
+                }
+                function cl(t, e) {
+                  (this.map = t), (this.fallbackColor = e);
+                }
+                function Al(t, e) {
+                  (this.renderState = t),
+                    (this.domElement = e),
+                    (this.position = { x: 0, y: 0 }),
+                    (this.lastPosition = { x: 0, y: 0 }),
+                    (this.isDirty = !0),
+                    (this.rect = { left: 0, top: 0, right: 0, bottom: 0 }),
+                    (this.exactPosition = { x: 0, y: 0 }),
+                    (this.isInside = !1),
+                    (this.isButtonDown = !1);
+                }
+                function hl() {
+                  this.lights = [];
+                }
+                function pl(t, e) {
+                  void 0 === e && (e = {});
+                  function n() {
+                    (r.renderState.resizing = !0), i();
+                  }
+                  var r = this,
+                    i =
+                      ((this.renderState = new Ho()),
+                      (this.pickInfo = new Oo.Selection.Pick()),
+                      (this.unbindEvents = []),
+                      (this.models = new Oo.ModelStore(this)),
+                      (this.events = new Oo.THREE.EventDispatcher()),
+                      (this.initialResizeTimeout = void 0),
+                      (this.clearHighlightsCall = function () {
+                        return r.clearHighlights(!0);
+                      }),
+                      (this.renderFunc = function (t) {
+                        return r.render(t);
+                      }),
+                      (this.pickBuffer = new Uint8Array(4)),
+                      (e = Yo.Core.Utils.extend({}, e, Oo.DefaultSceneOptions)),
+                      (this.options = e),
+                      (this.parentElement = t),
+                      (this.scene = new Oo.THREE.Scene()),
+                      (this.pickScene = new Oo.THREE.Scene()),
+                      (this.pickTarget = new Oo.THREE.WebGLRenderTarget(1, 1, {
+                        format: Oo.THREE.RGBAFormat,
+                        minFilter: Oo.THREE.LinearFilter,
+                      })),
+                      (this.pickTarget.generateMipmaps = !1),
+                      (this.renderer = new Oo.THREE.WebGLRenderer({
+                        antialias: !0,
+                        alpha: e.alpha,
+                        preserveDrawingBuffer: !0,
+                      })),
+                      this.renderer.setPixelRatio(window.devicePixelRatio || 1),
+                      this.renderer.setClearColor(
+                        new Oo.THREE.Color(e.clearColor.r, e.clearColor.g, e.clearColor.b),
+                      ),
+                      (this.renderer.autoClear = !0),
+                      (this.renderer.sortObjects = !1),
+                      (this.mouseInfo = new Go(this.renderState, this.renderer.domElement)),
+                      (this.lighting = new zo()),
+                      this.lighting.setup(this.scene),
+                      this.parentElement.appendChild(this.renderer.domElement),
+                      Yo.Core.Utils.debounce(function () {
+                        return r.handleResize();
+                      }, 150));
+                  window.addEventListener('resize', n),
+                    document.addEventListener('resize', n),
+                    this.parentElement.addEventListener('resize', n),
+                    this.unbindEvents.push(function () {
+                      return window.removeEventListener('resize', n);
+                    }),
+                    this.unbindEvents.push(function () {
+                      return document.removeEventListener('resize', n);
+                    }),
+                    this.unbindEvents.push(function () {
+                      return r.parentElement.removeEventListener('resize', n);
+                    }),
+                    this.setupMouse(),
+                    (this.camera = new Oo.Camera(this, this.renderer.domElement)),
+                    this.handleResize(),
+                    this.renderer.clear(),
+                    this.needsRender(),
+                    (this.renderState.animationFrame = requestAnimationFrame(this.renderFunc)),
+                    (this.initialResizeTimeout = setTimeout(function () {
+                      (r.initialResizeTimeout = void 0), r.handleResize();
+                    }, 1e3));
+                }
+                function dl(t, e, n, r) {
+                  for (var i = ta, o = 0, a = e.length; o < a; o += 3)
+                    (i[0] = e[o]),
+                      (i[1] = e[o + 1]),
+                      (i[2] = e[o + 2]),
+                      Xo.transformMat4(i, i, t),
+                      r(n, i[0], i[1], i[2]);
+                }
+                function fl(t, e, n, r, i) {
+                  $o.fromScaling(ea, n || aa),
+                    $o.fromTranslation(na, r || sa),
+                    i ? $o.copy(ra, i) : $o.fromIdentity(ra),
+                    $o.mul3(ia, na, ra, ea);
+                  (n = t.vertices.elementCount), (r = 'Static' === t.type ? Zo : Jo);
+                  if ((dl(ia, e.vertices, t.vertices, r), t.normals)) {
+                    if (!e.normals) throw new Error('geom is missing normals.');
+                    $o.mul(oa, ra, ea), dl(oa, e.normals, t.normals, r);
+                  }
+                  if (2 === t.elementSize)
+                    for (
+                      var o = n,
+                        a = e.indices,
+                        s = t.indices,
+                        l = 'Static' === t.type ? Ko : Wo,
+                        u = 0,
+                        c = a.length;
+                      u < c;
+                      u += 2
+                    )
+                      l(s, a[u] + o, a[u + 1] + o);
+                  else
+                    for (
+                      var A = n,
+                        h = e.indices,
+                        p = t.indices,
+                        d = 'Static' === t.type ? Zo : Jo,
+                        f = 0,
+                        g = h.length;
+                      f < g;
+                      f += 3
+                    )
+                      d(p, h[f] + A, h[f + 1] + A, h[f + 2] + A);
+                }
+                function gl() {
+                  if (!la) {
+                    la = Vo.GeometryHelper.toRawGeometry(new Vo.THREE.BoxGeometry(1, 1, 1));
+                    for (var t = 0; t < la.vertices.length; t += 3) la.vertices[t] += 0.5;
+                  }
+                  return la;
+                }
+                function ml(t) {
+                  return t.array;
+                }
+                function vl(t) {
+                  return da.compact(t);
+                }
+                (t.ParserSuccess = Ta),
+                  ((r = t.TokenIndexBuilder || (t.TokenIndexBuilder = {})).addToken = function (
+                    t,
+                    e,
+                    n,
+                  ) {
+                    var r, i;
+                    t.count >= t.tokensLenMinus2 &&
+                      ((r = t),
+                      (i = new Int32Array(Math.round(1.61 * r.tokens.length))).set(r.tokens),
+                      (r.tokens = i),
+                      (r.tokensLenMinus2 = i.length - 2)),
+                      (t.tokens[t.count++] = e),
+                      (t.tokens[t.count++] = n);
+                  }),
+                  (r.create = function (t) {
+                    return {
+                      tokensLenMinus2: Math.round(t) - 2,
+                      count: 0,
+                      tokens: new Int32Array(t),
+                    };
+                  }),
+                  ((r = t.ShortStringPool || (t.ShortStringPool = {})).create = function () {
+                    return Object.create(null);
+                  }),
+                  (r.get = function (t, e) {
+                    if (!(6 < e.length)) {
+                      var n = t[e];
+                      if (void 0 !== n) return n;
+                      t[e] = e;
+                    }
+                    return e;
+                  }),
+                  (e = F = F || {}),
+                  (e =
+                    (e =
+                      (e = (nt = e.Core || (e.Core = {})).Formats || (nt.Formats = {})).Molecule ||
+                      (e.Molecule = {})).mmCIF || (e.mmCIF = {})),
+                  ((t = mi = mi || {}).ElementSymbol = 'X'),
+                  (t.ResidueName = 'UNK'),
+                  (t.AsymId = ''),
+                  (t.EntityId = '1'),
+                  (t.ModelId = '1'),
+                  (vi = [
+                    'id',
+                    'Cartn_x',
+                    'Cartn_y',
+                    'Cartn_z',
+                    'label_atom_id',
+                    'type_symbol',
+                    'occupancy',
+                    'B_iso_or_equiv',
+                    'auth_atom_id',
+                    'label_alt_id',
+                    'label_comp_id',
+                    'label_seq_id',
+                    'label_asym_id',
+                    'auth_comp_id',
+                    'auth_seq_id',
+                    'auth_asym_id',
+                    'group_PDB',
+                    'label_entity_id',
+                    'pdbx_PDB_ins_code',
+                    'pdbx_PDB_model_num',
+                  ]),
+                  (bi = {
+                    ALA: !0,
+                    ARG: !0,
+                    ASP: !0,
+                    CYS: !0,
+                    GLN: !0,
+                    GLU: !0,
+                    GLY: !0,
+                    HIS: !0,
+                    ILE: !0,
+                    LEU: !0,
+                    LYS: !0,
+                    MET: !0,
+                    PHE: !0,
+                    PRO: !0,
+                    SER: !0,
+                    THR: !0,
+                    TRP: !0,
+                    TYR: !0,
+                    VAL: !0,
+                    ASN: !0,
+                    PYL: !0,
+                    SEC: !0,
+                  }),
+                  (e.ofDataBlock = function (t) {
+                    var e = [],
+                      n = t.getCategory('_atom_site'),
+                      r = 0;
+                    if (!n) throw "'_atom_site' category is missing in the input.";
+                    for (
+                      var i = t.getCategory('_entry'),
+                        o = (function (t) {
+                          for (
+                            var e = nt.Utils.FastMap.create(), n = 0, r = vi;
+                            n < r.length;
+                            n++
+                          ) {
+                            var i = r[n];
+                            e.set(i, t.getColumn(i));
+                          }
+                          return e;
+                        })(n),
+                        i =
+                          i && i.getColumn('id').isDefined
+                            ? i.getColumn('id').getString(0)
+                            : t.header;
+                      r < n.rowCount;
+
+                    ) {
+                      var a = ja(r, t, o),
+                        s = a.model,
+                        a = a.endRow;
+                      e.push(s), (r = a);
+                    }
+                    var l = void 0,
+                      u = t.getCategory('_exptl');
+                    if (u)
+                      for (var l = [], c = u.getColumn('method'), A = 0; A < u.rowCount; A++)
+                        0 === c.getValuePresence(A) && l.push(c.getString(A));
+                    return nt.Structure.Molecule.create(i, e, { experimentMethods: l });
+                  }),
+                  (r = F = F || {}),
+                  (yi = r.Core || (r.Core = {})),
+                  (wi = yi.Formats || (yi.Formats = {})),
+                  (function (o) {
+                    function t(t, e, n, r) {
+                      (this.header = t), (this.crystInfo = e), (this.models = n), (this.data = r);
+                    }
+                    (t.prototype.makeEntities = function () {
+                      var t = [
+                          'data_ent',
+                          'loop_',
+                          '_entity.id',
+                          '_entity.type',
+                          '_entity.src_method',
+                          '_entity.pdbx_description',
+                          '_entity.formula_weight',
+                          '_entity.pdbx_number_of_molecules',
+                          '_entity.details',
+                          '_entity.pdbx_mutation',
+                          '_entity.pdbx_fragment',
+                          '_entity.pdbx_ec',
+                          '1 polymer man polymer 0.0 0 ? ? ? ?',
+                          '2 non-polymer syn non-polymer 0.0 0 ? ? ? ?',
+                          '3 water nat water 0.0 0 ? ? ? ?',
+                        ].join('\n'),
+                        t = wi.CIF.Text.parse(t);
+                      if (t.isError) throw t.toString();
+                      return t.result.dataBlocks[0].getCategory('_entity');
+                    }),
+                      (t.prototype.toCifFile = function () {
+                        var t,
+                          e,
+                          n = {
+                            dot: o.Parser.getDotRange(this.data.length),
+                            question: o.Parser.getQuestionmarkRange(this.data.length),
+                            numberTokens: o.Parser.getNumberRanges(this.data.length),
+                            data: this.data,
+                          },
+                          r = new wi.CIF.Text.File(this.data),
+                          i = new wi.CIF.Text.DataBlock(this.data, this.header.id);
+                        return (
+                          r.dataBlocks.push(i),
+                          i.addCategory(this.makeEntities()),
+                          this.crystInfo &&
+                            ((t = (e = this.crystInfo.toCifCategory(this.header.id)).cell),
+                            (e = e.symm),
+                            i.addCategory(t),
+                            i.addCategory(e)),
+                          i.addCategory(this.models.toCifCategory(i, n)),
+                          r
+                        );
+                      }),
+                      (o.MoleculeData = t);
+                    (o.Header = function (t) {
+                      this.id = t;
+                    }),
+                      (n.prototype.getValue = function (t, e) {
+                        var n = this.record.substr(6, 9).trim();
+                        return n.length ? n : '.';
+                      }),
+                      (n.prototype.toCifCategory = function (t) {
+                        (t = [
+                          "_cell.entry_id           '" + t + "'",
+                          '_cell.length_a           ' + this.getValue(6, 9),
+                          '_cell.length_b           ' + this.getValue(15, 9),
+                          '_cell.length_c           ' + this.getValue(24, 9),
+                          '_cell.angle_alpha        ' + this.getValue(33, 7),
+                          '_cell.angle_beta         ' + this.getValue(40, 7),
+                          '_cell.angle_gamma        ' + this.getValue(48, 7),
+                          '_cell.Z_PDB              ' + this.getValue(66, 4),
+                          '_cell.pdbx_unique_axis   ?',
+                          "_symmetry.entry_id                         '" + t + "'",
+                          "_symmetry.space_group_name_H-M             '" +
+                            this.getValue(55, 11) +
+                            "'",
+                          '_symmetry.pdbx_full_space_group_name_H-M   ?',
+                          '_symmetry.cell_setting                     ?',
+                          '_symmetry.Int_Tables_number                ?',
+                          '_symmetry.space_group_name_Hall            ?',
+                        ].join('\n')),
+                          (t = wi.CIF.Text.parse(t));
+                        if (t.isError) throw new Error(t.toString());
+                        return {
+                          cell: t.result.dataBlocks[0].getCategory('_cell'),
+                          symm: t.result.dataBlocks[0].getCategory('_symmetry'),
+                        };
+                      });
+                    var e = n;
+                    function n(t) {
+                      this.record = t;
+                    }
+                    function r(t, e) {
+                      (this.helixTokens = t), (this.sheetTokens = e);
+                    }
+                    (o.CrystStructureInfo = e),
+                      (r.prototype.toCifCategory = function (t) {}),
+                      (o.SecondaryStructure = r);
+                    (i.prototype.writeToken = function (t, e) {
+                      yi.Utils.ArrayBuilder.add2(
+                        e,
+                        this.atomTokens[2 * t],
+                        this.atomTokens[2 * t + 1],
+                      );
+                    }),
+                      (i.prototype.writeTokenCond = function (t, e, n) {
+                        var r = this.atomTokens[2 * t],
+                          t = this.atomTokens[2 * t + 1];
+                        r === t
+                          ? yi.Utils.ArrayBuilder.add2(e, n.start, n.end)
+                          : yi.Utils.ArrayBuilder.add2(e, r, t);
+                      }),
+                      (i.prototype.writeRange = function (t, e) {
+                        yi.Utils.ArrayBuilder.add2(e, t.start, t.end);
+                      }),
+                      (i.prototype.tokenEquals = function (t, e, n, r) {
+                        if (n.length !== e - t) return !1;
+                        for (var i = n.length - 1; 0 <= i; i--)
+                          if (r.charCodeAt(i + t) !== n.charCodeAt(i)) return !1;
+                        return !0;
+                      }),
+                      (i.prototype.getEntityType = function (t, e) {
+                        var n,
+                          t = 14 * t;
+                        return this.tokenEquals(
+                          this.atomTokens[2 * t],
+                          this.atomTokens[2 * t + 1],
+                          'HETATM',
+                          e,
+                        )
+                          ? ((n = this.atomTokens[2 * (4 + t)]),
+                            (t = this.atomTokens[2 * (4 + t) + 1]),
+                            this.tokenEquals(n, t, 'HOH', e) ||
+                            this.tokenEquals(n, t, 'WTR', e) ||
+                            this.tokenEquals(n, t, 'SOL', e)
+                              ? 3
+                              : 2)
+                          : 1;
+                      }),
+                      (i.prototype.writeCifTokens = function (t, e, n) {
+                        for (
+                          var r = 0,
+                            i = 1,
+                            o = 2,
+                            a = 3,
+                            s = 4,
+                            l = 5,
+                            u = 6,
+                            c = 7,
+                            A = 8,
+                            h = 9,
+                            p = 10,
+                            d = 11,
+                            f = 12,
+                            g = 13,
+                            m = 0;
+                          m < this.atomCount;
+                          m++
+                        ) {
+                          var v = 14 * m;
+                          this.writeToken(v + r, e),
+                            this.writeToken(v + i, e),
+                            this.writeToken(v + g, e),
+                            this.writeToken(v + o, e),
+                            this.writeTokenCond(v + a, e, n.dot),
+                            this.writeToken(v + s, e),
+                            this.writeToken(v + l, e),
+                            this.writeRange(n.numberTokens.get(this.getEntityType(m, n.data)), e),
+                            this.writeToken(v + u, e),
+                            this.writeTokenCond(v + c, e, n.dot),
+                            this.writeToken(v + A, e),
+                            this.writeToken(v + h, e),
+                            this.writeToken(v + p, e),
+                            this.writeToken(v + d, e),
+                            this.writeToken(v + f, e),
+                            this.writeRange(n.question, e),
+                            this.writeRange(n.question, e),
+                            this.writeRange(n.question, e),
+                            this.writeRange(n.question, e),
+                            this.writeRange(n.question, e),
+                            this.writeRange(n.question, e),
+                            this.writeToken(v + u, e),
+                            this.writeToken(v + s, e),
+                            this.writeToken(v + l, e),
+                            this.writeToken(v + o, e),
+                            this.writeRange(t, e);
+                        }
+                      }),
+                      (i.COLUMNS = [
+                        '_atom_site.group_PDB',
+                        '_atom_site.id',
+                        '_atom_site.type_symbol',
+                        '_atom_site.label_atom_id',
+                        '_atom_site.label_alt_id',
+                        '_atom_site.label_comp_id',
+                        '_atom_site.label_asym_id',
+                        '_atom_site.label_entity_id',
+                        '_atom_site.label_seq_id',
+                        '_atom_site.pdbx_PDB_ins_code',
+                        '_atom_site.Cartn_x',
+                        '_atom_site.Cartn_y',
+                        '_atom_site.Cartn_z',
+                        '_atom_site.occupancy',
+                        '_atom_site.B_iso_or_equiv',
+                        '_atom_site.Cartn_x_esd',
+                        '_atom_site.Cartn_y_esd',
+                        '_atom_site.Cartn_z_esd',
+                        '_atom_site.occupancy_esd',
+                        '_atom_site.B_iso_or_equiv_esd',
+                        '_atom_site.pdbx_formal_charge',
+                        '_atom_site.auth_seq_id',
+                        '_atom_site.auth_comp_id',
+                        '_atom_site.auth_asym_id',
+                        '_atom_site.auth_atom_id',
+                        '_atom_site.pdbx_PDB_model_num',
+                      ]);
+                    var u = i;
+                    function i(t, e, n) {
+                      (this.idToken = t), (this.atomTokens = e), (this.atomCount = n);
+                    }
+                    function a(t) {
+                      this.models = t;
+                    }
+                    (o.ModelData = u),
+                      (a.prototype.toCifCategory = function (t, e) {
+                        for (var n = 0, r = 0, i = this.models; r < i.length; r++)
+                          n += (o = i[r]).atomCount;
+                        for (
+                          var o,
+                            a = yi.Utils.ArrayBuilder.forTokenIndices(26 * n),
+                            s = 0,
+                            l = this.models;
+                          s < l.length;
+                          s++
+                        )
+                          (o = l[s]).writeCifTokens(o.idToken, a, e);
+                        return new wi.CIF.Text.Category(
+                          t.data,
+                          '_atom_site',
+                          0,
+                          0,
+                          u.COLUMNS,
+                          a.array,
+                          26 * n,
+                        );
+                      }),
+                      (o.ModelsData = a);
+                  })((r = wi.Molecule || (wi.Molecule = {})).PDB || (r.PDB = {})),
+                  (t = F = F || {}),
+                  (Ei = t.Core || (t.Core = {})),
+                  (d = Ei.Formats || (Ei.Formats = {})),
+                  (t = d.Molecule || (d.Molecule = {})),
+                  (Bi = t.PDB || (t.PDB = {})),
+                  (Va.prototype.moveToNextLine = function () {
+                    for (
+                      ;
+                      this.position < this.length && 10 !== this.data.charCodeAt(this.position);
+
+                    )
+                      this.position++;
+                    return this.position++, this.line++, this.position;
+                  }),
+                  (Va.prototype.moveToEndOfLine = function () {
+                    for (; this.position < this.length; ) {
+                      var t = this.data.charCodeAt(this.position);
+                      if (10 === t || 13 === t) return this.position;
+                      this.position++;
+                    }
+                    return this.position;
+                  }),
+                  (Va.prototype.startsWith = function (t, e) {
+                    for (var n = e.length - 1; 0 <= n; n--)
+                      if (this.data.charCodeAt(n + t) !== e.charCodeAt(n)) return !1;
+                    return !0;
+                  }),
+                  (Va.prototype.trim = function (t, e) {
+                    for (; t < e && 32 === this.data.charCodeAt(t); ) t++;
+                    for (; t < e && 32 === this.data.charCodeAt(e - 1); ) e--;
+                    (this.trimmedToken.start = t), (this.trimmedToken.end = e);
+                  }),
+                  (Va.prototype.tokenizeAtomRecord = function (t) {
+                    var e = this.position,
+                      n = this.position,
+                      r = this.moveToEndOfLine() - n;
+                    return (
+                      !(r < 60) &&
+                      (this.trim(n, n + 6),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      this.trim((n = e + 6), n + 5),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      this.trim((n = e + 12), n + 4),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      32 === this.data.charCodeAt(e + 16)
+                        ? d.TokenIndexBuilder.addToken(t, 0, 0)
+                        : d.TokenIndexBuilder.addToken(t, e + 16, e + 17),
+                      this.trim((n = e + 17), n + 3),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      d.TokenIndexBuilder.addToken(t, e + 21, e + 22),
+                      this.trim((n = e + 22), n + 4),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      32 === this.data.charCodeAt(e + 26)
+                        ? d.TokenIndexBuilder.addToken(t, 0, 0)
+                        : d.TokenIndexBuilder.addToken(t, e + 26, e + 27),
+                      this.trim((n = e + 30), n + 8),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      this.trim((n = e + 38), n + 8),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      this.trim((n = e + 46), n + 8),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      this.trim((n = e + 54), n + 6),
+                      d.TokenIndexBuilder.addToken(
+                        t,
+                        this.trimmedToken.start,
+                        this.trimmedToken.end,
+                      ),
+                      66 <= r
+                        ? (this.trim((n = e + 60), n + 6),
+                          d.TokenIndexBuilder.addToken(
+                            t,
+                            this.trimmedToken.start,
+                            this.trimmedToken.end,
+                          ))
+                        : d.TokenIndexBuilder.addToken(t, 0, 0),
+                      78 <= r
+                        ? (this.trim((n = e + 76), n + 2),
+                          this.trimmedToken.start < this.trimmedToken.end
+                            ? d.TokenIndexBuilder.addToken(
+                                t,
+                                this.trimmedToken.start,
+                                this.trimmedToken.end,
+                              )
+                            : d.TokenIndexBuilder.addToken(t, e + 12, e + 13))
+                        : d.TokenIndexBuilder.addToken(t, e + 12, e + 13),
+                      !0)
+                    );
+                  }),
+                  (Ci = Va),
+                  (qa.tokenizeAtom = function (t, e) {
+                    if (!e.tokenizeAtomRecord(t))
+                      return new d.ParserError('Invalid ATOM/HETATM record.', e.line);
+                  }),
+                  (qa.tokenize = function (t, e) {
+                    for (
+                      var n = new Ci(e),
+                        r = e.length,
+                        i = d.TokenIndexBuilder.create(4096),
+                        o = 0,
+                        a = [],
+                        s = void 0,
+                        l = { start: 0, end: 0 };
+                      n.position < r;
+
+                    ) {
+                      var u,
+                        c,
+                        A = !0;
+                      switch (e.charCodeAt(n.position)) {
+                        case 65:
+                          if (n.startsWith(n.position, 'ATOM')) {
+                            var h,
+                              i = i || d.TokenIndexBuilder.create(4096);
+                            if ((o++, (h = qa.tokenizeAtom(i, n)))) return h;
+                          }
+                          break;
+                        case 67:
+                          n.startsWith(n.position, 'CRYST1') &&
+                            ((u = n.position),
+                            (c = n.moveToEndOfLine()),
+                            (s = new Bi.CrystStructureInfo(e.substring(u, c))));
+                          break;
+                        case 69:
+                          n.startsWith(n.position, 'ENDMDL') && 0 < o
+                            ? (0 === a.length && (l = { start: e.length + 3, end: e.length + 4 }),
+                              i && a.push(new Bi.ModelData(l, i.tokens, o)),
+                              (o = 0),
+                              (i = null))
+                            : n.startsWith(n.position, 'END') &&
+                              ((u = n.position),
+                              (c = n.moveToEndOfLine()),
+                              n.trim(u, c),
+                              n.trimmedToken.end - n.trimmedToken.start == 3 && (A = !1));
+                          break;
+                        case 72:
+                          if (n.startsWith(n.position, 'HETATM'))
+                            if (
+                              ((i = i || d.TokenIndexBuilder.create(4096)),
+                              o++,
+                              (h = qa.tokenizeAtom(i, n)))
+                            )
+                              return h;
+                          break;
+                        case 77:
+                          n.startsWith(n.position, 'MODEL') &&
+                            (0 < o &&
+                              (0 === a.length && (l = { start: e.length + 3, end: e.length + 4 }),
+                              i && a.push(new Bi.ModelData(l, i.tokens, o))),
+                            (u = n.position + 6),
+                            (c = n.moveToEndOfLine()),
+                            n.trim(u, c),
+                            (l = { start: n.trimmedToken.start, end: n.trimmedToken.end }),
+                            (0 < o || !i) && (i = d.TokenIndexBuilder.create(4096)),
+                            (o = 0));
+                      }
+                      if ((n.moveToNextLine(), !A)) break;
+                    }
+                    var p = e + '.?0123';
+                    return (
+                      0 < o &&
+                        (0 === a.length && (l = { start: e.length + 3, end: e.length + 4 }),
+                        i && a.push(new Bi.ModelData(l, i.tokens, o))),
+                      new Bi.MoleculeData(new Bi.Header(t), s, new Bi.ModelsData(a), p)
+                    );
+                  }),
+                  (qa.getDotRange = function (t) {
+                    return { start: t - 6, end: t - 5 };
+                  }),
+                  (qa.getNumberRanges = function (t) {
+                    for (var e = Ei.Utils.FastMap.create(), n = 0; n < 4; n++)
+                      e.set(n, { start: t - 4 + n, end: t - 3 + n });
+                    return e;
+                  }),
+                  (qa.getQuestionmarkRange = function (t) {
+                    return { start: t - 5, end: t - 4 };
+                  }),
+                  (qa.parse = function (t, e) {
+                    t = qa.tokenize(t, e);
+                    return t instanceof d.ParserError
+                      ? d.ParserResult.error(t.message, t.line)
+                      : d.ParserResult.success(t.toCifFile());
+                  }),
+                  (xi = qa),
+                  (Bi.Parser = xi),
+                  (Bi.toCifFile = function (t, e) {
+                    return xi.parse(t, e);
+                  }),
+                  (e = F = F || {}),
+                  (Ii = e.Core || (e.Core = {})),
+                  (Mi = Ii.Formats || (Ii.Formats = {})),
+                  (((e = Mi.Molecule || (Mi.Molecule = {})).SDF || (e.SDF = {})).parse = function (
+                    t,
+                    e,
+                  ) {
+                    try {
+                      (A = e),
+                        (h = (c = (c = t).split(/\r?\n/g))[0].trim()).length || (h = 'SDF'),
+                        (p = +(d = c[3]).substr(0, 3)),
+                        (d = +d.substr(3, 3));
+                      var n = {
+                          id: A || h,
+                          atomCount: p,
+                          bondCount: d,
+                          atoms: Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Atoms, p),
+                          positions: Ii.Utils.DataTable.ofDefinition(
+                            Ii.Structure.Tables.Positions,
+                            p,
+                          ),
+                          bonds: Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Bonds, d),
+                          lines: c,
+                          currentLine: 4,
+                          error: void 0,
+                          stringPool: Mi.ShortStringPool.create(),
+                        },
+                        r =
+                          (Wa(n),
+                          Ja(n),
+                          (o = n),
+                          (a = Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Residues, 1)),
+                          (s = Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Chains, 1)),
+                          (l = Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Entities, 1)),
+                          (a.isHet[0] = 1),
+                          (a.insCode[0] = null),
+                          (a.name[0] = a.authName[0] = 'UNK'),
+                          (a.atomEndIndex[0] = s.atomEndIndex[0] = l.atomEndIndex[0] = o.atomCount),
+                          (a.asymId[0] = a.authAsymId[0] = s.asymId[0] = s.authAsymId[0] = 'X'),
+                          (a.entityId[0] = s.entityId[0] = l.entityId[0] = '1'),
+                          (s.residueEndIndex[0] = l.residueEndIndex[0] = 0),
+                          (l.chainEndIndex[0] = 1),
+                          (l.type[0] = 'non-polymer'),
+                          (u = new Ii.Structure.PolyResidueIdentifier('X', 0, null)),
+                          ((u = [
+                            new Ii.Structure.SecondaryStructureElement(0, u, u),
+                          ])[0].startResidueIndex = 0),
+                          (u[0].endResidueIndex = 1),
+                          Ii.Structure.Molecule.Model.create({
+                            id: o.id,
+                            modelId: '1',
+                            data: {
+                              atoms: o.atoms,
+                              residues: a,
+                              chains: s,
+                              entities: l,
+                              bonds: { input: o.bonds },
+                              secondaryStructure: u,
+                              symmetryInfo: void 0,
+                              assemblyInfo: void 0,
+                            },
+                            positions: o.positions,
+                            source: Ii.Structure.Molecule.Model.Source.File,
+                          }));
+                      if (n.error) return Mi.ParserResult.error(n.error, n.currentLine + 1);
+                      var i = Ii.Structure.Molecule.create(e || n.id, [r]);
+                      return Mi.ParserResult.success(i);
+                    } catch (t) {
+                      return Mi.ParserResult.error('' + t);
+                    }
+                    var o, a, s, l, u, c, A, h, p, d;
+                  }),
+                  (r = F = F || {}),
+                  (Di = r.Core || (r.Core = {})),
+                  (Si = Di.Formats || (Di.Formats = {})),
+                  (function (t) {
+                    var e = this;
+                    (t.mmCIF = {
+                      name: 'mmCIF',
+                      shortcuts: ['mmcif', 'cif'],
+                      extensions: ['.cif'],
+                      parse: Ka('CIF', Si.CIF.Text.parse),
+                    }),
+                      (t.mmBCIF = {
+                        name: 'mmCIF (Binary)',
+                        shortcuts: ['mmbcif', 'bcif', 'binarycif'],
+                        extensions: ['.bcif'],
+                        isBinary: !0,
+                        parse: Ka('BinaryCIF', Si.CIF.Binary.parse),
+                      }),
+                      (t.PDB = {
+                        name: 'PDB',
+                        shortcuts: ['pdb', 'ent'],
+                        extensions: ['.pdb', '.ent'],
+                        parse: Ka('PDB', function (t, e) {
+                          return ki.PDB.toCifFile((e && e.id) || 'PDB', t);
+                        }),
+                      }),
+                      (t.SDF = {
+                        name: 'SDF',
+                        shortcuts: ['sdf', 'mol'],
+                        extensions: ['.sdf', '.mol'],
+                        parse: function (r, i) {
+                          return Di.computation(function (n) {
+                            return D(e, void 0, void 0, function () {
+                              var e;
+                              return P(this, function (t) {
+                                switch (t.label) {
+                                  case 0:
+                                    return [4, n.updateProgress('Parsing...')];
+                                  case 1:
+                                    if (
+                                      (t.sent(),
+                                      (e = ki.SDF.parse(r, (i && i.id) || void 0)).isError)
+                                    )
+                                      throw e.toString();
+                                    return [2, Si.ParserResult.success(e.result)];
+                                }
+                              });
+                            });
+                          });
+                        },
+                      }),
+                      (t.All = [t.mmCIF, t.mmBCIF, t.PDB, t.SDF]);
+                  })(
+                    (ki = Si.Molecule || (Si.Molecule = {})).SupportedFormats ||
+                      (ki.SupportedFormats = {}),
+                  ),
+                  (function (t) {
+                    function e(t, e) {
+                      (this.data = t),
+                        (this.dimensions = e),
+                        (this.len = this.dimensions[0] * this.dimensions[1] * this.dimensions[2]),
+                        (this.nX = this.dimensions[0]),
+                        (this.nY = this.dimensions[1]);
+                    }
+                    Object.defineProperty(e.prototype, 'length', {
+                      get: function () {
+                        return this.len;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      (e.prototype.getAt = function (t) {
+                        return this.data[t];
+                      }),
+                      (e.prototype.setAt = function (t, e) {
+                        this.data[t] = e;
+                      }),
+                      (e.prototype.get = function (t, e, n) {
+                        return this.data[(this.nX * (n * this.nY + e) + t) | 0];
+                      }),
+                      (e.prototype.set = function (t, e, n, r) {
+                        this.data[(this.nX * (n * this.nY + e) + t) | 0] = r;
+                      }),
+                      (e.prototype.fill = function (t) {
+                        for (var e = this.data, n = t, r = e.length, i = 0; i < r; i++) e[i] = n;
+                      }),
+                      (t.Field3DZYX = e),
+                      (t.createSpacegroup = function (t, e, n) {
+                        var r = (Math.PI / 180) * n[0],
+                          i = (Math.PI / 180) * n[1],
+                          o = (Math.PI / 180) * n[2],
+                          a = e[0],
+                          s = e[1],
+                          l = e[2],
+                          u = Math.cos(i),
+                          r = (Math.cos(r) - Math.cos(i) * Math.cos(o)) / Math.sin(o),
+                          i = Math.sqrt(1 - u * u - r * r);
+                        return {
+                          number: t,
+                          size: e,
+                          angles: n,
+                          basis: {
+                            x: [a, 0, 0],
+                            y: [Math.cos(o) * s, Math.sin(o) * s, 0],
+                            z: [u * l, r * l, i * l],
+                          },
+                        };
+                      });
+                  })(
+                    (t = (t = (t = F = F || {}).Core || (t.Core = {})).Formats || (t.Formats = {}))
+                      .Density || (t.Density = {}),
+                  ),
+                  (e = (e = F = F || {}).Core || (e.Core = {})),
+                  (Fi = e.Formats || (e.Formats = {})),
+                  (((Qi = Fi.Density || (Fi.Density = {})).CCP4 || (Qi.CCP4 = {})).parse =
+                    function (t) {
+                      return _i.parse(t);
+                    }),
+                  ((_i || (_i = {})).parse = function (t) {
+                    var e = new DataView(t, 0, 1024),
+                      n = [],
+                      r = !1,
+                      i = e.getInt32(12, !1);
+                    if (2 !== i && ((r = !0), 2 !== (i = e.getInt32(12, !0))))
+                      return Fi.ParserResult.error('Only CCP4 mode 2 is supported.');
+                    function o(t) {
+                      return e.getInt32(4 * t, r);
+                    }
+                    function a(t) {
+                      return e.getFloat32(4 * t, r);
+                    }
+                    i = {
+                      extent: Za(o, 0, 3),
+                      mode: i,
+                      nxyzStart: Za(o, 4, 3),
+                      grid: Za(o, 7, 3),
+                      cellSize: Za(a, 10, 3),
+                      cellAngles: Za(a, 13, 3),
+                      crs2xyz: Za(o, 16, 3),
+                      min: a(19),
+                      max: a(20),
+                      mean: a(21),
+                      spacegroupNumber: o(22),
+                      symBytes: o(23),
+                      skewFlag: o(24),
+                      skewMatrix: Za(a, 25, 9),
+                      skewTranslation: Za(a, 34, 3),
+                      origin2k: Za(a, 49, 3),
+                    };
+                    if (
+                      (c = t.byteLength - 4 * i.extent[0] * i.extent[1] * i.extent[2]) !==
+                      1024 + i.symBytes
+                    )
+                      if (1024 === c) n.push('File contains bogus symmetry record.');
+                      else {
+                        if (c < 1024)
+                          return Fi.ParserResult.error(
+                            "File appears truncated and doesn't match header.",
+                          );
+                        if (!(1024 < c && c < 1048576))
+                          return Fi.ParserResult.error(
+                            "File is MUCH larger than expected and doesn't match header.",
+                          );
+                        (c = 1024 + i.symBytes),
+                          n.push(
+                            "File is larger than expected and doesn't match header. Continuing file load, good luck!",
+                          );
+                      }
+                    0 === i.grid[0] &&
+                      0 < i.extent[0] &&
+                      ((i.grid[0] = i.extent[0] - 1), n.push('Fixed X interval count.')),
+                      0 === i.grid[1] &&
+                        0 < i.extent[1] &&
+                        ((i.grid[1] = i.extent[1] - 1), n.push('Fixed Y interval count.')),
+                      0 === i.grid[2] &&
+                        0 < i.extent[2] &&
+                        ((i.grid[2] = i.extent[2] - 1), n.push('Fixed Z interval count.')),
+                      0 === i.crs2xyz[0] &&
+                        0 === i.crs2xyz[1] &&
+                        0 === i.crs2xyz[2] &&
+                        (n.push('All crs2xyz records are zero. Setting crs2xyz to 1, 2, 3.'),
+                        (i.crs2xyz = [1, 2, 3])),
+                      0 === i.cellSize[0] &&
+                        0 === i.cellSize[1] &&
+                        0 === i.cellSize[2] &&
+                        (n.push(
+                          'Cell dimensions are all zero. Setting to 1.0, 1.0, 1.0. Map file will not align with other structures.',
+                        ),
+                        (i.cellSize[0] = 1),
+                        (i.cellSize[1] = 1),
+                        (i.cellSize[2] = 1));
+                    ((c = [0, 0, 0])[i.crs2xyz[0] - 1] = 0),
+                      (c[i.crs2xyz[1] - 1] = 1),
+                      (c[i.crs2xyz[2] - 1] = 2),
+                      (s =
+                        0 === i.origin2k[0] && 0 === i.origin2k[1] && 0 === i.origin2k[2]
+                          ? [i.nxyzStart[c[0]], i.nxyzStart[c[1]], i.nxyzStart[c[2]]]
+                          : [i.origin2k[c[0]], i.origin2k[c[1]], i.origin2k[c[2]]]);
+                    var s,
+                      l = [i.extent[c[0]], i.extent[c[1]], i.extent[c[2]]],
+                      u = 13330 === new Uint16Array(new Uint8Array([18, 52]).buffer)[0],
+                      u =
+                        r === u
+                          ? (function (t, e, n, r, i) {
+                              var o,
+                                a,
+                                s,
+                                l,
+                                u,
+                                c,
+                                A,
+                                h,
+                                p = new Float32Array(e[0] * e[1] * e[2]),
+                                d = [0, 0, 0],
+                                f = 0,
+                                g = 0.1,
+                                m = 0,
+                                v = 0.1,
+                                b = r[0],
+                                y = r[1],
+                                w = r[2];
+                              for (
+                                o = n[0], a = n[1], s = n[2], A = e[0], h = e[0] * e[1], c = 0;
+                                c < s;
+                                c++
+                              )
+                                for (d[2] = c, u = 0; u < a; u++)
+                                  for (d[1] = u, l = 0; l < o; l++)
+                                    (d[0] = l),
+                                      (g = t[f]),
+                                      (m += (v = g - i) * v),
+                                      (p[d[b] + d[y] * A + d[w] * h] = g),
+                                      (f += 1);
+                              return (m /= o * a * s), (m = Math.sqrt(m)), { data: p, sigma: m };
+                            })(
+                              new Float32Array(t, 1024 + i.symBytes, l[0] * l[1] * l[2]),
+                              l,
+                              i.extent,
+                              c,
+                              i.mean,
+                            )
+                          : (function (t, e, n, r, i, o) {
+                              var a,
+                                s,
+                                l,
+                                u,
+                                c,
+                                A,
+                                h,
+                                p,
+                                d = new Float32Array(n[0] * n[1] * n[2]),
+                                f = [0, 0, 0],
+                                g = 0,
+                                m = 0.1,
+                                v = 0,
+                                b = 0.1,
+                                y = i[0],
+                                w = i[1],
+                                E = i[2];
+                              for (
+                                a = r[0], s = r[1], l = r[2], h = n[0], p = n[0] * n[1], A = 0;
+                                A < l;
+                                A++
+                              )
+                                for (f[2] = A, c = 0; c < s; c++)
+                                  for (f[1] = c, u = 0; u < a; u++)
+                                    (f[0] = u),
+                                      (m = t.getFloat32(g, e)),
+                                      (v += (b = m - o) * b),
+                                      (d[f[y] + f[w] * h + f[E] * p] = m),
+                                      (g += 4);
+                              return (v /= a * s * l), (v = Math.sqrt(v)), { data: d, sigma: v };
+                            })(new DataView(t, 1024 + i.symBytes), r, l, i.extent, c, i.mean),
+                      t = new Qi.Field3DZYX(u.data, l),
+                      c = {
+                        spacegroup: Qi.createSpacegroup(
+                          i.spacegroupNumber,
+                          i.cellSize,
+                          i.cellAngles,
+                        ),
+                        box: {
+                          origin: [s[0] / i.grid[0], s[1] / i.grid[1], s[2] / i.grid[2]],
+                          dimensions: [l[0] / i.grid[0], l[1] / i.grid[1], l[2] / i.grid[2]],
+                          sampleCount: l,
+                        },
+                        data: t,
+                        valuesInfo: { min: i.min, max: i.max, mean: i.mean, sigma: u.sigma },
+                      };
+                    return Fi.ParserResult.success(c, n);
+                  }),
+                  (r = (r = F = F || {}).Core || (r.Core = {})),
+                  (Ti = r.Formats || (r.Formats = {})),
+                  (((Ri = Ti.Density || (Ti.Density = {})).CIF || (Ri.CIF = {})).parse = function (
+                    t,
+                  ) {
+                    return t.getCategory('_density_info')
+                      ? Ui.parseLegacy(t)
+                      : t.getCategory('_volume_data_3d_info')
+                        ? Ui.parse(t)
+                        : Ti.ParserResult.error('Invalid data format.');
+                  }),
+                  ((r = Ui = Ui || {}).parse = function (t) {
+                    var r = t.getCategory('_volume_data_3d_info');
+                    if (!r)
+                      return Ti.ParserResult.error('_volume_data_3d_info category is missing.');
+                    if (!t.getCategory('_volume_data_3d'))
+                      return Ti.ParserResult.error('_volume_data_3d category is missing.');
+                    function e(t) {
+                      for (var e = [0, 0, 0], n = 0; n < 3; n++)
+                        e[n] = r.getColumn(t + '[' + n + ']').getFloat(0);
+                      return e;
+                    }
+                    function n(t) {
+                      return r.getColumn(t).getFloat(0);
+                    }
+                    var i = {
+                        name: r.getColumn('name').getString(0),
+                        axisOrder: e('axis_order'),
+                        origin: e('origin'),
+                        dimensions: e('dimensions'),
+                        sampleCount: e('sample_count'),
+                        spacegroupNumber: 0 | n('spacegroup_number'),
+                        cellSize: e('spacegroup_cell_size'),
+                        cellAngles: e('spacegroup_cell_angles'),
+                        mean: n('mean_sampled'),
+                        sigma: n('sigma_sampled'),
+                      },
+                      o = [0, 0, 0];
+                    function a(t) {
+                      return [t[o[0]], t[o[1]], t[o[2]]];
+                    }
+                    (o[i.axisOrder[0]] = 0), (o[i.axisOrder[1]] = 1), (o[i.axisOrder[2]] = 2);
+                    var s = a(i.sampleCount),
+                      t = Xa(
+                        t.getCategory('_volume_data_3d').getColumn('values'),
+                        s,
+                        i.sampleCount,
+                        o,
+                      ),
+                      l = new Ri.Field3DZYX(t.data, s),
+                      s = {
+                        name: i.name,
+                        spacegroup: Ri.createSpacegroup(
+                          i.spacegroupNumber,
+                          i.cellSize,
+                          i.cellAngles,
+                        ),
+                        box: { origin: a(i.origin), dimensions: a(i.dimensions), sampleCount: s },
+                        data: l,
+                        valuesInfo: { min: t.min, max: t.max, mean: i.mean, sigma: i.sigma },
+                      };
+                    return Ti.ParserResult.success(s);
+                  }),
+                  (r.parseLegacy = function (t) {
+                    var r = t.getCategory('_density_info');
+                    if (!r) return Ti.ParserResult.error('_density_info category is missing.');
+                    if (!t.getCategory('_density_data'))
+                      return Ti.ParserResult.error('_density_data category is missing.');
+                    function e(t) {
+                      for (var e = [], n = 0; n < 3; n++)
+                        e[n] = r.getColumn(t + '[' + n + ']').getFloat(0);
+                      return e;
+                    }
+                    function n(t) {
+                      return r.getColumn(t).getFloat(0);
+                    }
+                    var i = {
+                        name: r.getColumn('name').getString(0),
+                        grid: e('grid'),
+                        axisOrder: e('axis_order'),
+                        extent: e('extent'),
+                        origin: e('origin'),
+                        cellSize: e('cell_size'),
+                        cellAngles: e('cell_angles'),
+                        mean: n('mean'),
+                        sigma: n('sigma'),
+                        spacegroupNumber: 0 | n('spacegroup_number'),
+                      },
+                      o =
+                        (((s = [0, 0, 0])[i.axisOrder[0]] = 0),
+                        (s[i.axisOrder[1]] = 1),
+                        (s[i.axisOrder[2]] = 2),
+                        [i.origin[s[0]], i.origin[s[1]], i.origin[s[2]]]),
+                      a = [i.extent[s[0]], i.extent[s[1]], i.extent[s[2]]],
+                      t = Xa(t.getCategory('_density_data').getColumn('values'), a, i.extent, s),
+                      s = new Ri.Field3DZYX(t.data, a),
+                      o = {
+                        name: i.name,
+                        spacegroup: Ri.createSpacegroup(
+                          i.spacegroupNumber,
+                          i.cellSize,
+                          i.cellAngles,
+                        ),
+                        box: {
+                          origin: [o[0] / i.grid[0], o[1] / i.grid[1], o[2] / i.grid[2]],
+                          dimensions: [a[0] / i.grid[0], a[1] / i.grid[1], a[2] / i.grid[2]],
+                          sampleCount: a,
+                        },
+                        data: s,
+                        valuesInfo: { min: t.min, max: t.max, mean: i.mean, sigma: i.sigma },
+                      };
+                    return Ti.ParserResult.success(o);
+                  }),
+                  (t = F = F || {}),
+                  (t = (Ni = t.Core || (t.Core = {})).Formats || (Ni.Formats = {})),
+                  ((t =
+                    (Pi = t.Density || (t.Density = {})).SupportedFormats ||
+                    (Pi.SupportedFormats = {})).CCP4 = {
+                    name: 'CCP4',
+                    shortcuts: ['ccp4', 'map'],
+                    extensions: ['.ccp4', '.map'],
+                    isBinary: !0,
+                    parse: function (t) {
+                      return (function (n, r, i) {
+                        var t = this;
+                        return Ni.computation(function (e) {
+                          return D(t, void 0, void 0, function () {
+                            return P(this, function (t) {
+                              switch (t.label) {
+                                case 0:
+                                  return [4, e.updateProgress('Parsing ' + r + '...')];
+                                case 1:
+                                  return t.sent(), [2, i(n)];
+                              }
+                            });
+                          });
+                        });
+                      })(t, 'CCP4', function (t) {
+                        return Pi.CCP4.parse(t);
+                      });
+                    },
+                  }),
+                  (t.All = [t.CCP4]),
+                  ((e =
+                    (e =
+                      (e = (e = F = F || {}).Core || (e.Core = {})).Geometry || (e.Geometry = {}))
+                      .LinearAlgebra || (e.LinearAlgebra = {})).Matrix4 = $a),
+                  ((Li = $a = e.Matrix4 || (e.Matrix4 = {})).zero = ts),
+                  (Li.identity = function () {
+                    var t = ts();
+                    return (
+                      (t[0] = 1),
+                      (t[1] = 0),
+                      (t[2] = 0),
+                      (t[3] = 0),
+                      (t[4] = 0),
+                      (t[5] = 1),
+                      (t[6] = 0),
+                      (t[7] = 0),
+                      (t[8] = 0),
+                      (t[9] = 0),
+                      (t[10] = 1),
+                      (t[11] = 0),
+                      (t[12] = 0),
+                      (t[13] = 0),
+                      (t[14] = 0),
+                      (t[15] = 1),
+                      t
+                    );
+                  }),
+                  (Li.fromIdentity = es),
+                  (Li.ofRows = function (t) {
+                    for (var e, n, r = ts(), i = 0; i < 4; i++)
+                      for (n = t[i], e = 0; e < 4; e++) r[4 * e + i] = n[e];
+                    return r;
+                  }),
+                  (Li.areEqual = function (t, e, n) {
+                    for (var r = 0; r < 16; r++) if (Math.abs(t[r] - e[r]) > n) return !1;
+                    return !0;
+                  }),
+                  (Li.setValue = function (t, e, n, r) {
+                    t[4 * n + e] = r;
+                  }),
+                  (Li.copy = function (t, e) {
+                    return (
+                      (t[0] = e[0]),
+                      (t[1] = e[1]),
+                      (t[2] = e[2]),
+                      (t[3] = e[3]),
+                      (t[4] = e[4]),
+                      (t[5] = e[5]),
+                      (t[6] = e[6]),
+                      (t[7] = e[7]),
+                      (t[8] = e[8]),
+                      (t[9] = e[9]),
+                      (t[10] = e[10]),
+                      (t[11] = e[11]),
+                      (t[12] = e[12]),
+                      (t[13] = e[13]),
+                      (t[14] = e[14]),
+                      (t[15] = e[15]),
+                      t
+                    );
+                  }),
+                  (Li.clone = function (t) {
+                    return Li.copy(Li.zero(), t);
+                  }),
+                  (Li.invert = function (t, e) {
+                    var n = e[0],
+                      r = e[1],
+                      i = e[2],
+                      o = e[3],
+                      a = e[4],
+                      s = e[5],
+                      l = e[6],
+                      u = e[7],
+                      c = e[8],
+                      A = e[9],
+                      h = e[10],
+                      p = e[11],
+                      d = e[12],
+                      f = e[13],
+                      g = e[14],
+                      e = e[15],
+                      m = n * s - r * a,
+                      v = n * l - i * a,
+                      b = n * u - o * a,
+                      y = r * l - i * s,
+                      w = r * u - o * s,
+                      E = i * u - o * l,
+                      B = c * f - A * d,
+                      C = c * g - h * d,
+                      x = c * e - p * d,
+                      I = A * g - h * f,
+                      M = A * e - p * f,
+                      D = h * e - p * g,
+                      S = m * D - v * M + b * I + y * x - w * C + E * B;
+                    return S
+                      ? ((t[0] = (s * D - l * M + u * I) * (S = 1 / S)),
+                        (t[1] = (i * M - r * D - o * I) * S),
+                        (t[2] = (f * E - g * w + e * y) * S),
+                        (t[3] = (h * w - A * E - p * y) * S),
+                        (t[4] = (l * x - a * D - u * C) * S),
+                        (t[5] = (n * D - i * x + o * C) * S),
+                        (t[6] = (g * b - d * E - e * v) * S),
+                        (t[7] = (c * E - h * b + p * v) * S),
+                        (t[8] = (a * M - s * x + u * B) * S),
+                        (t[9] = (r * x - n * M - o * B) * S),
+                        (t[10] = (d * w - f * b + e * m) * S),
+                        (t[11] = (A * b - c * w - p * m) * S),
+                        (t[12] = (s * C - a * I - l * B) * S),
+                        (t[13] = (n * I - r * C + i * B) * S),
+                        (t[14] = (f * v - d * y - g * m) * S),
+                        (t[15] = (c * y - A * v + h * m) * S),
+                        t)
+                      : null;
+                  }),
+                  (Li.mul = ns),
+                  (Li.mul3 = function (t, e, n, r) {
+                    return ns(t, ns(t, e, n), r);
+                  }),
+                  (Li.translate = function (t, e, n) {
+                    var r,
+                      i,
+                      o,
+                      a,
+                      s,
+                      l,
+                      u,
+                      c,
+                      A,
+                      h,
+                      p,
+                      d,
+                      f = n[0],
+                      g = n[1],
+                      n = n[2];
+                    return (
+                      e === t
+                        ? ((t[12] = e[0] * f + e[4] * g + e[8] * n + e[12]),
+                          (t[13] = e[1] * f + e[5] * g + e[9] * n + e[13]),
+                          (t[14] = e[2] * f + e[6] * g + e[10] * n + e[14]),
+                          (t[15] = e[3] * f + e[7] * g + e[11] * n + e[15]))
+                        : ((r = e[0]),
+                          (i = e[1]),
+                          (o = e[2]),
+                          (a = e[3]),
+                          (s = e[4]),
+                          (l = e[5]),
+                          (u = e[6]),
+                          (c = e[7]),
+                          (A = e[8]),
+                          (h = e[9]),
+                          (p = e[10]),
+                          (d = e[11]),
+                          (t[0] = r),
+                          (t[1] = i),
+                          (t[2] = o),
+                          (t[3] = a),
+                          (t[4] = s),
+                          (t[5] = l),
+                          (t[6] = u),
+                          (t[7] = c),
+                          (t[8] = A),
+                          (t[9] = h),
+                          (t[10] = p),
+                          (t[11] = d),
+                          (t[12] = r * f + s * g + A * n + e[12]),
+                          (t[13] = i * f + l * g + h * n + e[13]),
+                          (t[14] = o * f + u * g + p * n + e[14]),
+                          (t[15] = a * f + c * g + d * n + e[15])),
+                      t
+                    );
+                  }),
+                  (Li.fromTranslation = function (t, e) {
+                    return (
+                      (t[0] = 1),
+                      (t[1] = 0),
+                      (t[2] = 0),
+                      (t[3] = 0),
+                      (t[4] = 0),
+                      (t[5] = 1),
+                      (t[6] = 0),
+                      (t[7] = 0),
+                      (t[8] = 0),
+                      (t[9] = 0),
+                      (t[10] = 1),
+                      (t[11] = 0),
+                      (t[12] = e[0]),
+                      (t[13] = e[1]),
+                      (t[14] = e[2]),
+                      (t[15] = 1),
+                      t
+                    );
+                  }),
+                  (Li.rotate = function (t, e, n, r) {
+                    var i,
+                      o,
+                      a,
+                      s,
+                      l,
+                      u,
+                      c,
+                      A,
+                      h,
+                      p,
+                      d,
+                      f,
+                      g,
+                      m,
+                      v,
+                      b,
+                      y,
+                      w,
+                      E,
+                      B,
+                      C = r[0],
+                      x = r[1],
+                      r = r[2],
+                      I = Math.sqrt(C * C + x * x + r * r);
+                    return Math.abs(I) < 1e-6
+                      ? null
+                      : ((C *= I = 1 / I),
+                        (x *= I),
+                        (r *= I),
+                        (I = Math.sin(n)),
+                        (n = Math.cos(n)),
+                        (o = e[0]),
+                        (a = e[1]),
+                        (s = e[2]),
+                        (l = e[3]),
+                        (u = e[4]),
+                        (c = e[5]),
+                        (A = e[6]),
+                        (h = e[7]),
+                        (p = e[8]),
+                        (d = e[9]),
+                        (f = e[10]),
+                        (g = e[11]),
+                        (v = C * x * (i = 1 - n) - r * I),
+                        (b = x * x * i + n),
+                        (y = r * x * i + C * I),
+                        (w = C * r * i + x * I),
+                        (E = x * r * i - C * I),
+                        (B = r * r * i + n),
+                        (t[0] =
+                          o * (n = C * C * i + n) +
+                          u * (m = x * C * i + r * I) +
+                          p * (r = r * C * i - x * I)),
+                        (t[1] = a * n + c * m + d * r),
+                        (t[2] = s * n + A * m + f * r),
+                        (t[3] = l * n + h * m + g * r),
+                        (t[4] = o * v + u * b + p * y),
+                        (t[5] = a * v + c * b + d * y),
+                        (t[6] = s * v + A * b + f * y),
+                        (t[7] = l * v + h * b + g * y),
+                        (t[8] = o * w + u * E + p * B),
+                        (t[9] = a * w + c * E + d * B),
+                        (t[10] = s * w + A * E + f * B),
+                        (t[11] = l * w + h * E + g * B),
+                        e !== t &&
+                          ((t[12] = e[12]), (t[13] = e[13]), (t[14] = e[14]), (t[15] = e[15])),
+                        t);
+                  }),
+                  (Li.fromRotation = function (t, e, n) {
+                    var r,
+                      i = n[0],
+                      o = n[1],
+                      n = n[2],
+                      a = Math.sqrt(i * i + o * o + n * n);
+                    return Math.abs(a) < 1e-6
+                      ? es(t)
+                      : ((i *= a = 1 / a),
+                        (o *= a),
+                        (n *= a),
+                        (a = Math.sin(e)),
+                        (e = Math.cos(e)),
+                        (t[0] = i * i * (r = 1 - e) + e),
+                        (t[1] = o * i * r + n * a),
+                        (t[2] = n * i * r - o * a),
+                        (t[3] = 0),
+                        (t[4] = i * o * r - n * a),
+                        (t[5] = o * o * r + e),
+                        (t[6] = n * o * r + i * a),
+                        (t[7] = 0),
+                        (t[8] = i * n * r + o * a),
+                        (t[9] = o * n * r - i * a),
+                        (t[10] = n * n * r + e),
+                        (t[11] = 0),
+                        (t[12] = 0),
+                        (t[13] = 0),
+                        (t[14] = 0),
+                        (t[15] = 1),
+                        t);
+                  }),
+                  (Li.scale = function (t, e, n) {
+                    var r = n[0],
+                      i = n[1],
+                      n = n[2];
+                    return (
+                      (t[0] = e[0] * r),
+                      (t[1] = e[1] * r),
+                      (t[2] = e[2] * r),
+                      (t[3] = e[3] * r),
+                      (t[4] = e[4] * i),
+                      (t[5] = e[5] * i),
+                      (t[6] = e[6] * i),
+                      (t[7] = e[7] * i),
+                      (t[8] = e[8] * n),
+                      (t[9] = e[9] * n),
+                      (t[10] = e[10] * n),
+                      (t[11] = e[11] * n),
+                      (t[12] = e[12]),
+                      (t[13] = e[13]),
+                      (t[14] = e[14]),
+                      (t[15] = e[15]),
+                      t
+                    );
+                  }),
+                  (Li.fromScaling = function (t, e) {
+                    return (
+                      (t[0] = e[0]),
+                      (t[1] = 0),
+                      (t[2] = 0),
+                      (t[3] = 0),
+                      (t[4] = 0),
+                      (t[5] = e[1]),
+                      (t[6] = 0),
+                      (t[7] = 0),
+                      (t[8] = 0),
+                      (t[9] = 0),
+                      (t[10] = e[2]),
+                      (t[11] = 0),
+                      (t[12] = 0),
+                      (t[13] = 0),
+                      (t[14] = 0),
+                      (t[15] = 1),
+                      t
+                    );
+                  }),
+                  (Li.makeTable = function (t) {
+                    for (var e = '', n = 0; n < 4; n++) {
+                      for (var r = 0; r < 4; r++)
+                        (e += t[4 * r + n].toString()), r < 3 && (e += ' ');
+                      n < 3 && (e += '\n');
+                    }
+                    return e;
+                  }),
+                  (Li.determinant = function (t) {
+                    var e = t[0],
+                      n = t[1],
+                      r = t[2],
+                      i = t[3],
+                      o = t[4],
+                      a = t[5],
+                      s = t[6],
+                      l = t[7],
+                      u = t[8],
+                      c = t[9],
+                      A = t[10],
+                      h = t[11],
+                      p = t[12],
+                      d = t[13],
+                      f = t[14],
+                      t = t[15];
+                    return (
+                      (e * a - n * o) * (A * t - h * f) -
+                      (e * s - r * o) * (c * t - h * d) +
+                      (e * l - i * o) * (c * f - A * d) +
+                      (n * s - r * a) * (u * t - h * p) -
+                      (n * l - i * a) * (u * f - A * p) +
+                      (r * l - i * s) * (u * d - c * p)
+                    );
+                  }),
+                  (e.Vector3 = rs),
+                  ((r = rs = e.Vector3 || (e.Vector3 = {})).zero = is),
+                  (r.clone = function (t) {
+                    var e = is();
+                    return (e[0] = t[0]), (e[1] = t[1]), (e[2] = t[2]), e;
+                  }),
+                  (r.fromObj = function (t) {
+                    return os(t.x, t.y, t.z);
+                  }),
+                  (r.toObj = function (t) {
+                    return { x: t[0], y: t[1], z: t[2] };
+                  }),
+                  (r.fromValues = os),
+                  (r.set = as),
+                  (r.copy = ss),
+                  (r.add = function (t, e, n) {
+                    return (t[0] = e[0] + n[0]), (t[1] = e[1] + n[1]), (t[2] = e[2] + n[2]), t;
+                  }),
+                  (r.sub = function (t, e, n) {
+                    return (t[0] = e[0] - n[0]), (t[1] = e[1] - n[1]), (t[2] = e[2] - n[2]), t;
+                  }),
+                  (r.scale = function (t, e, n) {
+                    return (t[0] = e[0] * n), (t[1] = e[1] * n), (t[2] = e[2] * n), t;
+                  }),
+                  (r.scaleAndAdd = function (t, e, n, r) {
+                    return (
+                      (t[0] = e[0] + n[0] * r),
+                      (t[1] = e[1] + n[1] * r),
+                      (t[2] = e[2] + n[2] * r),
+                      t
+                    );
+                  }),
+                  (r.distance = function (t, e) {
+                    var n = e[0] - t[0],
+                      r = e[1] - t[1],
+                      e = e[2] - t[2];
+                    return Math.sqrt(n * n + r * r + e * e);
+                  }),
+                  (r.squaredDistance = function (t, e) {
+                    var n = e[0] - t[0],
+                      r = e[1] - t[1],
+                      e = e[2] - t[2];
+                    return n * n + r * r + e * e;
+                  }),
+                  (r.magnitude = function (t) {
+                    var e = t[0],
+                      n = t[1],
+                      t = t[2];
+                    return Math.sqrt(e * e + n * n + t * t);
+                  }),
+                  (r.squaredMagnitude = ls),
+                  (r.normalize = us),
+                  (r.dot = cs),
+                  (r.cross = As),
+                  (r.lerp = function (t, e, n, r) {
+                    var i = e[0],
+                      o = e[1],
+                      e = e[2];
+                    return (
+                      (t[0] = i + r * (n[0] - i)),
+                      (t[1] = o + r * (n[1] - o)),
+                      (t[2] = e + r * (n[2] - e)),
+                      t
+                    );
+                  }),
+                  (r.transformMat4 = function (t, e, n) {
+                    var r = e[0],
+                      i = e[1],
+                      e = e[2],
+                      o = n[3] * r + n[7] * i + n[11] * e + n[15];
+                    return (
+                      (t[0] = (n[0] * r + n[4] * i + n[8] * e + n[12]) / (o = o || 1)),
+                      (t[1] = (n[1] * r + n[5] * i + n[9] * e + n[13]) / o),
+                      (t[2] = (n[2] * r + n[6] * i + n[10] * e + n[14]) / o),
+                      t
+                    );
+                  }),
+                  (Yi = is()),
+                  (Oi = is()),
+                  (r.angle = hs),
+                  (Gi = is()),
+                  (r.makeRotation = function (t, e, n) {
+                    var r = hs(e, n);
+                    return Math.abs(r) < 1e-4
+                      ? $a.fromIdentity(t)
+                      : (ls((e = As(Gi, e, n))) < 1e-4 &&
+                          (Math.abs(Yi[0] - 1) < 1e-6 ? as(e, 0, 1, 0) : as(e, 1, 0, 0)),
+                        $a.fromRotation(t, r, e));
+                  }),
+                  (e.Vector4 = ps),
+                  ((r = ps = e.Vector4 || (e.Vector4 = {})).zero = ds),
+                  (r.clone = function (t) {
+                    var e = ds();
+                    return (e[0] = t[0]), (e[1] = t[1]), (e[2] = t[2]), (e[3] = t[3]), e;
+                  }),
+                  (r.fromValues = function (t, e, n, r) {
+                    var i = ds();
+                    return (i[0] = t), (i[1] = e), (i[2] = n), (i[3] = r), i;
+                  }),
+                  (r.set = function (t, e, n, r, i) {
+                    return (t[0] = e), (t[1] = n), (t[2] = r), (t[3] = i), t;
+                  }),
+                  (r.distance = function (t, e) {
+                    var n = e[0] - t[0],
+                      r = e[1] - t[1],
+                      i = e[2] - t[2],
+                      e = e[3] - t[3];
+                    return Math.sqrt(n * n + r * r + i * i + e * e);
+                  }),
+                  (r.squaredDistance = function (t, e) {
+                    var n = e[0] - t[0],
+                      r = e[1] - t[1],
+                      i = e[2] - t[2],
+                      e = e[3] - t[3];
+                    return n * n + r * r + i * i + e * e;
+                  }),
+                  (r.norm = function (t) {
+                    var e = t[0],
+                      n = t[1],
+                      r = t[2],
+                      t = t[3];
+                    return Math.sqrt(e * e + n * n + r * r + t * t);
+                  }),
+                  (r.squaredNorm = function (t) {
+                    var e = t[0],
+                      n = t[1],
+                      r = t[2],
+                      t = t[3];
+                    return e * e + n * n + r * r + t * t;
+                  }),
+                  (r.transform = function (t, e, n) {
+                    var r = e[0],
+                      i = e[1],
+                      o = e[2],
+                      e = e[3];
+                    return (
+                      (t[0] = n[0] * r + n[4] * i + n[8] * o + n[12] * e),
+                      (t[1] = n[1] * r + n[5] * i + n[9] * o + n[13] * e),
+                      (t[2] = n[2] * r + n[6] * i + n[10] * o + n[14] * e),
+                      (t[3] = n[3] * r + n[7] * i + n[11] * o + n[15] * e),
+                      t
+                    );
+                  }),
+                  (t = F = F || {}),
+                  (zi = t.Core || (t.Core = {})),
+                  (Hi = zi.Geometry || (zi.Geometry = {})),
+                  (t = Hi.Surface || (Hi.Surface = {})),
+                  (ji = Hi.LinearAlgebra.Vector3),
+                  (t.computeNormalsImmediate = fs),
+                  (t.computeNormals = function (n) {
+                    var t = this;
+                    return zi.computation(function (e) {
+                      return D(t, void 0, void 0, function () {
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return n.normals
+                                ? [2, n]
+                                : [4, e.updateProgress('Computing normals...')];
+                            case 1:
+                              return t.sent(), fs(n), [2, n];
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (t.laplacianSmooth = function (n, r, i) {
+                    var t = this;
+                    return (
+                      void 0 === i && (i = 1),
+                      0 === (r = (r = void 0 === r ? 1 : r) < 1 ? 0 : r)
+                        ? zi.Computation.resolve(n)
+                        : zi.computation(function (e) {
+                            return D(t, void 0, void 0, function () {
+                              return P(this, function (t) {
+                                switch (t.label) {
+                                  case 0:
+                                    return [4, ms(e, n, r, (1.1 * i) / 1.1)];
+                                  case 1:
+                                    return [2, t.sent()];
+                                }
+                              });
+                            });
+                          })
+                    );
+                  }),
+                  (t.computeBoundingSphere = function (h) {
+                    var t = this;
+                    return zi.computation(function (A) {
+                      return D(t, void 0, void 0, function () {
+                        var e, n, r, i, o, a, s, l, u, c;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return h.boundingSphere
+                                ? [2, h]
+                                : [4, A.updateProgress('Computing bounding sphere...')];
+                            case 1:
+                              for (
+                                t.sent(), e = h.vertices, a = i = r = n = 0, s = h.vertices.length;
+                                a < s;
+                                a += 3
+                              )
+                                (n += e[a]), (r += e[a + 1]), (i += e[a + 2]);
+                              for (
+                                n /= h.vertexCount,
+                                  r /= h.vertexCount,
+                                  i /= h.vertexCount,
+                                  a = o = 0,
+                                  s = e.length;
+                                a < s;
+                                a += 3
+                              )
+                                (l = n - e[a]),
+                                  (u = r - e[a + 1]),
+                                  (c = i - e[a + 2]),
+                                  (o = Math.max(o, l * l + u * u + c * c));
+                              return (
+                                (h.boundingSphere = {
+                                  center: Hi.LinearAlgebra.Vector3.fromValues(n, r, i),
+                                  radius: Math.sqrt(o),
+                                }),
+                                [2, h]
+                              );
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (t.transformImmediate = vs),
+                  (t.transform = function (n, r) {
+                    var t = this;
+                    return zi.computation(function (e) {
+                      return D(t, void 0, void 0, function () {
+                        return P(this, function (t) {
+                          return e.updateProgress('Updating surface...'), vs(n, r), [2, n];
+                        });
+                      });
+                    });
+                  }),
+                  (e =
+                    (e =
+                      (e = (e = F = F || {}).Core || (e.Core = {})).Geometry || (e.Geometry = {}))
+                      .Query3D || (e.Query3D = {})),
+                  ((Vi = e.Box3D || (e.Box3D = {})).createInfinite = function () {
+                    return {
+                      min: [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE],
+                      max: [-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE],
+                    };
+                  }),
+                  ((r = e.QueryContext || (e.QueryContext = {})).add = function (t, e, n) {
+                    ((t = t.buffer).squaredDistances[t.count] = e),
+                      (t.elements[t.count++] = t.sourceElements[n]);
+                  }),
+                  (r.update = function (t, e, n, r, i) {
+                    (t.pivot[0] = e),
+                      (t.pivot[1] = n),
+                      (t.pivot[2] = r),
+                      (t.radius = i),
+                      (t.radiusSq = i * i),
+                      (t.buffer.count = 0);
+                  }),
+                  (r.create = function (t, e) {
+                    return {
+                      structure: t,
+                      buffer: { sourceElements: e, elements: [], count: 0, squaredDistances: [] },
+                      pivot: [0.1, 0.1, 0.1],
+                      radius: 1.1,
+                      radiusSq: 1.1 * 1.1,
+                    };
+                  }),
+                  ((Wi = qi = qi || {}).add = function (t, e, n, r) {
+                    (t.data[t._count++] = e),
+                      (t.data[t._count++] = n),
+                      (t.data[t._count++] = r),
+                      (t.boundsMin[0] = Math.min(e, t.boundsMin[0])),
+                      (t.boundsMin[1] = Math.min(n, t.boundsMin[1])),
+                      (t.boundsMin[2] = Math.min(r, t.boundsMin[2])),
+                      (t.boundsMax[0] = Math.max(e, t.boundsMax[0])),
+                      (t.boundsMax[1] = Math.max(n, t.boundsMax[1])),
+                      (t.boundsMax[2] = Math.max(r, t.boundsMax[2]));
+                  }),
+                  (Wi.create = function (t) {
+                    var t = new Float32Array((3 * t) | 0),
+                      e = Vi.createInfinite();
+                    return { _count: 0, data: t, bounds: e, boundsMin: e.min, boundsMax: e.max };
+                  }),
+                  (Wi.createAdder = function (r) {
+                    var i = Wi.add;
+                    return function (t, e, n) {
+                      i(r, t, e, n);
+                    };
+                  }),
+                  (e.createInputData = function (t, e) {
+                    for (
+                      var n = qi.create(t.length),
+                        r = new Int32Array(t.length),
+                        i = qi.createAdder(n),
+                        o = 0;
+                      o < t.length;
+                      o++
+                    )
+                      e(t[(r[o] = o)], i);
+                    return { elements: t, positions: n.data, bounds: n.bounds, indices: r };
+                  }),
+                  (t = (t = (t = F = F || {}).Core || (t.Core = {})).Geometry || (t.Geometry = {})),
+                  (Ji = t.Query3D || (t.Query3D = {})),
+                  ((t = Ki = Ki || {}).nearest = bs),
+                  (t.create = function (t, e, n, r, i) {
+                    return { splitValue: t, startIndex: e, endIndex: n, left: r, right: i };
+                  }),
+                  ((Zi || (Zi = {})).build = function (t, e) {
+                    t.elements;
+                    var n = t.positions,
+                      r = t.bounds,
+                      t = t.indices;
+                    return {
+                      root: (function t(e, n, r, i) {
+                        var o = r - n + 1;
+                        if (o <= 0) return e.emptyNode;
+                        if (o <= e.leafSize)
+                          return Ki.create(NaN, n, r + 1, e.emptyNode, e.emptyNode);
+                        for (
+                          var a,
+                            s,
+                            l,
+                            o = e.bounds.min[i],
+                            u = e.bounds.max[i],
+                            c = 0.5 * (o + u),
+                            A = n,
+                            h = r;
+                          A < h;
+
+                        ) {
+                          for (
+                            s = e.indices[h], e.indices[h] = e.indices[A], e.indices[A] = s;
+                            A <= r && e.positions[3 * e.indices[A] + i] <= c;
+
+                          )
+                            A++;
+                          for (; n <= h && e.positions[3 * e.indices[h] + i] > c; ) h--;
+                        }
+                        return (
+                          (a = A - 1),
+                          (e.bounds.max[i] = c),
+                          (l = t(e, n, a, (i + 1) % 3)),
+                          (e.bounds.max[i] = u),
+                          (e.bounds.min[i] = c),
+                          (u = t(e, 1 + a, r, (i + 1) % 3)),
+                          (e.bounds.min[i] = o),
+                          Ki.create(c, n, r + 1, l, u)
+                        );
+                      })(
+                        {
+                          bounds: r,
+                          positions: n,
+                          leafSize: e,
+                          indices: t,
+                          emptyNode: Ki.create(NaN, -1, -1, void 0, void 0),
+                        },
+                        0,
+                        t.length - 1,
+                        0,
+                      ),
+                      indices: t,
+                      positions: n,
+                    };
+                  }),
+                  (Ji.createSubdivisionTree = function (t, e) {
+                    var o = Zi.build(t, (e = void 0 === e ? 32 : e));
+                    return function () {
+                      var i = Ji.QueryContext.create(o, t.elements);
+                      return function (t, e, n, r) {
+                        return (
+                          Ji.QueryContext.update(i, t, e, n, r), Ki.nearest(o.root, i, 0), i.buffer
+                        );
+                      };
+                    };
+                  }),
+                  (r = (r = (r = F = F || {}).Core || (r.Core = {})).Geometry || (r.Geometry = {})),
+                  ((Xi = r.Query3D || (r.Query3D = {})).createSpatialHash = function (t) {
+                    var e = ys(t);
+                    return function () {
+                      var T = Xi.QueryContext.create(e, t.elements);
+                      return function (t, e, n, r) {
+                        Xi.QueryContext.update(T, t, e, n, r);
+                        for (
+                          var i = T,
+                            t = i.structure,
+                            n = (e = t.min)[0],
+                            r = e[1],
+                            e = e[2],
+                            o = (p = t.size)[0],
+                            a = p[1],
+                            s = p[2],
+                            l = t.bucketOffset,
+                            u = t.bucketCounts,
+                            c = t.bucketArray,
+                            A = t.grid,
+                            h = t.positions,
+                            p = i.radius,
+                            d = i.radiusSq,
+                            f = (t = i.pivot)[0],
+                            g = t[1],
+                            m = t[2],
+                            t = Math.max(0, (f - p - n) >> 3),
+                            v = Math.max(0, (g - p - r) >> 3),
+                            b = Math.max(0, (m - p - e) >> 3),
+                            y = Math.min(o, (f + p - n) >> 3),
+                            w = Math.min(a, (g + p - r) >> 3),
+                            E = Math.min(s, (m + p - e) >> 3),
+                            B = t;
+                          B <= y;
+                          B++
+                        )
+                          for (var C = v; C <= w; C++)
+                            for (var x = b; x <= E; x++) {
+                              var I = A[(B * a + C) * s + x];
+                              if (0 < I)
+                                for (var I = I - 1, M = l[I], D = M + u[I], S = M; S < D; S++) {
+                                  var k = c[S],
+                                    F = h[3 * k + 0] - f,
+                                    Q = h[3 * k + 1] - g,
+                                    _ = h[3 * k + 2] - m,
+                                    F = F * F + Q * Q + _ * _;
+                                  F <= d && Xi.QueryContext.add(i, F, k);
+                                }
+                            }
+                        return T.buffer;
+                      };
+                    };
+                  }),
+                  (e = F = F || {}),
+                  (e = ($i = e.Core || (e.Core = {})).Geometry || ($i.Geometry = {})),
+                  ((to = e.MarchingCubes || (e.MarchingCubes = {})).compute = function (n) {
+                    var t = this;
+                    return $i.computation(function (e) {
+                      return D(t, void 0, void 0, function () {
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return [4, new eo(n, e).run()];
+                            case 1:
+                              return [2, t.sent()];
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (ws.prototype.doSlices = function () {
+                    return D(this, void 0, void 0, function () {
+                      var e, n, r, i;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            (e = 0),
+                              (n = $i.Utils.PerformanceMonitor.currentTime()),
+                              (r = this.minZ),
+                              (t.label = 1);
+                          case 1:
+                            return r < this.maxZ
+                              ? (this.slice(r),
+                                (e += this.sliceSize),
+                                (i = $i.Utils.PerformanceMonitor.currentTime()) - n >
+                                $i.Computation.UpdateProgressDelta
+                                  ? [
+                                      4,
+                                      this.ctx.updateProgress(
+                                        'Computing surface...',
+                                        !0,
+                                        e,
+                                        this.size,
+                                      ),
+                                    ]
+                                  : [3, 3])
+                              : [3, 4];
+                          case 2:
+                            t.sent(), (n = i), (t.label = 3);
+                          case 3:
+                            return r++, [3, 1];
+                          case 4:
+                            return [2];
+                        }
+                      });
+                    });
+                  }),
+                  (ws.prototype.slice = function (t) {
+                    for (var e = this.minY; e < this.maxY; e++)
+                      for (var n = this.minX; n < this.maxX; n++) this.state.processCell(n, e, t);
+                    this.state.clearEdgeVertexIndexSlice(t);
+                  }),
+                  (ws.prototype.finish = function () {
+                    var t = $i.Utils.ChunkedArray.compact(this.state.vertexBuffer),
+                      e = $i.Utils.ChunkedArray.compact(this.state.triangleBuffer);
+                    return (
+                      (this.state.vertexBuffer = void 0),
+                      (this.state.verticesOnEdges = void 0),
+                      {
+                        vertexCount: (t.length / 3) | 0,
+                        triangleCount: (e.length / 3) | 0,
+                        vertices: t,
+                        triangleIndices: e,
+                        annotation: this.state.annotate
+                          ? $i.Utils.ChunkedArray.compact(this.state.annotationBuffer)
+                          : void 0,
+                      }
+                    );
+                  }),
+                  (ws.prototype.run = function () {
+                    return D(this, void 0, void 0, function () {
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return [
+                              4,
+                              this.ctx.updateProgress('Computing surface...', !0, 0, this.size),
+                            ];
+                          case 1:
+                            return t.sent(), [4, this.doSlices()];
+                          case 2:
+                            return t.sent(), [4, this.ctx.updateProgress('Finalizing...')];
+                          case 3:
+                            return t.sent(), [2, this.finish()];
+                        }
+                      });
+                    });
+                  }),
+                  (eo = ws),
+                  (Es.prototype.get3dOffsetFromEdgeInfo = function (t) {
+                    return this.nX * (((this.k + t.k) % 2) * this.nY + this.j + t.j) + this.i + t.i;
+                  }),
+                  (Es.prototype.clearEdgeVertexIndexSlice = function (t) {
+                    for (
+                      var e = t % 2 == 0 ? 0 : 3 * this.nX * this.nY,
+                        n = t % 2 == 0 ? 3 * this.nX * this.nY : this.verticesOnEdges.length,
+                        r = e;
+                      r < n;
+                      r++
+                    )
+                      this.verticesOnEdges[r] = 0;
+                  }),
+                  (Es.prototype.interpolate = function (t) {
+                    var e = to.EdgeIdInfo[t],
+                      e = 3 * this.get3dOffsetFromEdgeInfo(e) + e.e,
+                      n = this.verticesOnEdges[e];
+                    if (0 < n) return (n - 1) | 0;
+                    var n = to.CubeEdges[t],
+                      t = n.a,
+                      n = n.b,
+                      r = t.i + this.i,
+                      i = t.j + this.j,
+                      t = t.k + this.k,
+                      o = n.i + this.i,
+                      a = n.j + this.j,
+                      n = n.k + this.k,
+                      s = this.scalarField.get(r, i, t),
+                      l = this.scalarField.get(o, a, n),
+                      s = (this.isoLevel - s) / (s - l),
+                      l =
+                        0 |
+                        $i.Utils.ChunkedArray.add3(
+                          this.vertexBuffer,
+                          r + s * (r - o),
+                          i + s * (i - a),
+                          t + s * (t - n),
+                        );
+                    return (
+                      (this.verticesOnEdges[e] = 1 + l),
+                      this.annotate &&
+                        ((e =
+                          s < 0.5
+                            ? this.annotationField.get(r, i, t)
+                            : this.annotationField.get(o, a, n)) < 0 &&
+                          (e =
+                            s < 0.5
+                              ? this.annotationField.get(o, a, n)
+                              : this.annotationField.get(r, i, t)),
+                        $i.Utils.ChunkedArray.add(this.annotationBuffer, e)),
+                      l
+                    );
+                  }),
+                  (Es.prototype.processCell = function (t, e, n) {
+                    var r = 0;
+                    if (
+                      (this.scalarField.get(t, e, n) < this.isoLevel && (r |= 1),
+                      this.scalarField.get(t + 1, e, n) < this.isoLevel && (r |= 2),
+                      this.scalarField.get(t + 1, e + 1, n) < this.isoLevel && (r |= 4),
+                      this.scalarField.get(t, e + 1, n) < this.isoLevel && (r |= 8),
+                      this.scalarField.get(t, e, n + 1) < this.isoLevel && (r |= 16),
+                      this.scalarField.get(t + 1, e, n + 1) < this.isoLevel && (r |= 32),
+                      this.scalarField.get(t + 1, e + 1, n + 1) < this.isoLevel && (r |= 64),
+                      this.scalarField.get(t, e + 1, n + 1) < this.isoLevel && (r |= 128),
+                      0 !== r && 255 !== r)
+                    ) {
+                      (this.i = t), (this.j = e), (this.k = n);
+                      for (
+                        var t = to.EdgeTable[r],
+                          i =
+                            (0 < (1 & t) && (this.vertList[0] = this.interpolate(0)),
+                            0 < (2 & t) && (this.vertList[1] = this.interpolate(1)),
+                            0 < (4 & t) && (this.vertList[2] = this.interpolate(2)),
+                            0 < (8 & t) && (this.vertList[3] = this.interpolate(3)),
+                            0 < (16 & t) && (this.vertList[4] = this.interpolate(4)),
+                            0 < (32 & t) && (this.vertList[5] = this.interpolate(5)),
+                            0 < (64 & t) && (this.vertList[6] = this.interpolate(6)),
+                            0 < (128 & t) && (this.vertList[7] = this.interpolate(7)),
+                            0 < (256 & t) && (this.vertList[8] = this.interpolate(8)),
+                            0 < (512 & t) && (this.vertList[9] = this.interpolate(9)),
+                            0 < (1024 & t) && (this.vertList[10] = this.interpolate(10)),
+                            0 < (2048 & t) && (this.vertList[11] = this.interpolate(11)),
+                            to.TriTable[r]),
+                          o = 0;
+                        o < i.length;
+                        o += 3
+                      )
+                        $i.Utils.ChunkedArray.add3(
+                          this.triangleBuffer,
+                          this.vertList[i[o]],
+                          this.vertList[i[o + 1]],
+                          this.vertList[i[o + 2]],
+                        );
+                    }
+                  }),
+                  (no = Es),
+                  (t =
+                    (t =
+                      (t = (t = F = F || {}).Core || (t.Core = {})).Geometry || (t.Geometry = {}))
+                      .MarchingCubes || (t.MarchingCubes = {})),
+                  (r = function (t, e, n) {
+                    (this.i = 0 | t), (this.j = 0 | e), (this.k = 0 | n);
+                  }),
+                  (t.Index = r),
+                  (e = function (t, e) {
+                    (this.a = t), (this.b = e);
+                  }),
+                  (t.IndexPair = e),
+                  (t.EdgesXY = [
+                    [],
+                    [0, 3],
+                    [0, 1],
+                    [1, 3],
+                    [1, 2],
+                    [0, 1, 1, 2, 2, 3, 0, 3],
+                    [0, 2],
+                    [2, 3],
+                    [2, 3],
+                    [0, 2],
+                    [0, 1, 1, 2, 2, 3, 0, 3],
+                    [1, 2],
+                    [1, 3],
+                    [0, 1],
+                    [0, 3],
+                    [],
+                  ]),
+                  (t.EdgesXZ = [
+                    [],
+                    [0, 8],
+                    [0, 9],
+                    [9, 8],
+                    [9, 4],
+                    [0, 9, 9, 4, 4, 8, 0, 8],
+                    [0, 4],
+                    [4, 8],
+                    [4, 8],
+                    [0, 4],
+                    [0, 9, 9, 4, 4, 8, 0, 8],
+                    [9, 4],
+                    [9, 8],
+                    [0, 9],
+                    [0, 8],
+                    [],
+                  ]),
+                  (t.EdgesYZ = [
+                    [],
+                    [3, 8],
+                    [3, 11],
+                    [11, 8],
+                    [11, 7],
+                    [3, 11, 11, 7, 7, 8, 3, 8],
+                    [3, 7],
+                    [7, 8],
+                    [7, 8],
+                    [3, 7],
+                    [3, 11, 11, 7, 7, 8, 3, 8],
+                    [11, 7],
+                    [11, 8],
+                    [3, 11],
+                    [3, 8],
+                    [],
+                  ]),
+                  (t.CubeVertices = [
+                    new r(0, 0, 0),
+                    new r(1, 0, 0),
+                    new r(1, 1, 0),
+                    new r(0, 1, 0),
+                    new r(0, 0, 1),
+                    new r(1, 0, 1),
+                    new r(1, 1, 1),
+                    new r(0, 1, 1),
+                  ]),
+                  (t.CubeEdges = [
+                    new e(t.CubeVertices[0], t.CubeVertices[1]),
+                    new e(t.CubeVertices[1], t.CubeVertices[2]),
+                    new e(t.CubeVertices[2], t.CubeVertices[3]),
+                    new e(t.CubeVertices[3], t.CubeVertices[0]),
+                    new e(t.CubeVertices[4], t.CubeVertices[5]),
+                    new e(t.CubeVertices[5], t.CubeVertices[6]),
+                    new e(t.CubeVertices[6], t.CubeVertices[7]),
+                    new e(t.CubeVertices[7], t.CubeVertices[4]),
+                    new e(t.CubeVertices[0], t.CubeVertices[4]),
+                    new e(t.CubeVertices[1], t.CubeVertices[5]),
+                    new e(t.CubeVertices[2], t.CubeVertices[6]),
+                    new e(t.CubeVertices[3], t.CubeVertices[7]),
+                  ]),
+                  (t.EdgeIdInfo = [
+                    { i: 0, j: 0, k: 0, e: 0 },
+                    { i: 1, j: 0, k: 0, e: 1 },
+                    { i: 0, j: 1, k: 0, e: 0 },
+                    { i: 0, j: 0, k: 0, e: 1 },
+                    { i: 0, j: 0, k: 1, e: 0 },
+                    { i: 1, j: 0, k: 1, e: 1 },
+                    { i: 0, j: 1, k: 1, e: 0 },
+                    { i: 0, j: 0, k: 1, e: 1 },
+                    { i: 0, j: 0, k: 0, e: 2 },
+                    { i: 1, j: 0, k: 0, e: 2 },
+                    { i: 1, j: 1, k: 0, e: 2 },
+                    { i: 0, j: 1, k: 0, e: 2 },
+                  ]),
+                  (t.EdgeTable = [
+                    0, 265, 515, 778, 1030, 1295, 1541, 1804, 2060, 2309, 2575, 2822, 3082, 3331,
+                    3593, 3840, 400, 153, 915, 666, 1430, 1183, 1941, 1692, 2460, 2197, 2975, 2710,
+                    3482, 3219, 3993, 3728, 560, 825, 51, 314, 1590, 1855, 1077, 1340, 2620, 2869,
+                    2111, 2358, 3642, 3891, 3129, 3376, 928, 681, 419, 170, 1958, 1711, 1445, 1196,
+                    2988, 2725, 2479, 2214, 4010, 3747, 3497, 3232, 1120, 1385, 1635, 1898, 102,
+                    367, 613, 876, 3180, 3429, 3695, 3942, 2154, 2403, 2665, 2912, 1520, 1273, 2035,
+                    1786, 502, 255, 1013, 764, 3580, 3317, 4095, 3830, 2554, 2291, 3065, 2800, 1616,
+                    1881, 1107, 1370, 598, 863, 85, 348, 3676, 3925, 3167, 3414, 2650, 2899, 2137,
+                    2384, 1984, 1737, 1475, 1226, 966, 719, 453, 204, 4044, 3781, 3535, 3270, 3018,
+                    2755, 2505, 2240, 2240, 2505, 2755, 3018, 3270, 3535, 3781, 4044, 204, 453, 719,
+                    966, 1226, 1475, 1737, 1984, 2384, 2137, 2899, 2650, 3414, 3167, 3925, 3676,
+                    348, 85, 863, 598, 1370, 1107, 1881, 1616, 2800, 3065, 2291, 2554, 3830, 4095,
+                    3317, 3580, 764, 1013, 255, 502, 1786, 2035, 1273, 1520, 2912, 2665, 2403, 2154,
+                    3942, 3695, 3429, 3180, 876, 613, 367, 102, 1898, 1635, 1385, 1120, 3232, 3497,
+                    3747, 4010, 2214, 2479, 2725, 2988, 1196, 1445, 1711, 1958, 170, 419, 681, 928,
+                    3376, 3129, 3891, 3642, 2358, 2111, 2869, 2620, 1340, 1077, 1855, 1590, 314, 51,
+                    825, 560, 3728, 3993, 3219, 3482, 2710, 2975, 2197, 2460, 1692, 1941, 1183,
+                    1430, 666, 915, 153, 400, 3840, 3593, 3331, 3082, 2822, 2575, 2309, 2060, 1804,
+                    1541, 1295, 1030, 778, 515, 265, 0,
+                  ]),
+                  (t.TriTable = [
+                    [],
+                    [0, 8, 3],
+                    [0, 1, 9],
+                    [1, 8, 3, 9, 8, 1],
+                    [1, 2, 10],
+                    [0, 8, 3, 1, 2, 10],
+                    [9, 2, 10, 0, 2, 9],
+                    [2, 8, 3, 2, 10, 8, 10, 9, 8],
+                    [3, 11, 2],
+                    [0, 11, 2, 8, 11, 0],
+                    [1, 9, 0, 2, 3, 11],
+                    [1, 11, 2, 1, 9, 11, 9, 8, 11],
+                    [3, 10, 1, 11, 10, 3],
+                    [0, 10, 1, 0, 8, 10, 8, 11, 10],
+                    [3, 9, 0, 3, 11, 9, 11, 10, 9],
+                    [9, 8, 10, 10, 8, 11],
+                    [4, 7, 8],
+                    [4, 3, 0, 7, 3, 4],
+                    [0, 1, 9, 8, 4, 7],
+                    [4, 1, 9, 4, 7, 1, 7, 3, 1],
+                    [1, 2, 10, 8, 4, 7],
+                    [3, 4, 7, 3, 0, 4, 1, 2, 10],
+                    [9, 2, 10, 9, 0, 2, 8, 4, 7],
+                    [2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4],
+                    [8, 4, 7, 3, 11, 2],
+                    [11, 4, 7, 11, 2, 4, 2, 0, 4],
+                    [9, 0, 1, 8, 4, 7, 2, 3, 11],
+                    [4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1],
+                    [3, 10, 1, 3, 11, 10, 7, 8, 4],
+                    [1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4],
+                    [4, 7, 8, 9, 0, 11, 9, 11, 10, 11, 0, 3],
+                    [4, 7, 11, 4, 11, 9, 9, 11, 10],
+                    [9, 5, 4],
+                    [9, 5, 4, 0, 8, 3],
+                    [0, 5, 4, 1, 5, 0],
+                    [8, 5, 4, 8, 3, 5, 3, 1, 5],
+                    [1, 2, 10, 9, 5, 4],
+                    [3, 0, 8, 1, 2, 10, 4, 9, 5],
+                    [5, 2, 10, 5, 4, 2, 4, 0, 2],
+                    [2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8],
+                    [9, 5, 4, 2, 3, 11],
+                    [0, 11, 2, 0, 8, 11, 4, 9, 5],
+                    [0, 5, 4, 0, 1, 5, 2, 3, 11],
+                    [2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5],
+                    [10, 3, 11, 10, 1, 3, 9, 5, 4],
+                    [4, 9, 5, 0, 8, 1, 8, 10, 1, 8, 11, 10],
+                    [5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3],
+                    [5, 4, 8, 5, 8, 10, 10, 8, 11],
+                    [9, 7, 8, 5, 7, 9],
+                    [9, 3, 0, 9, 5, 3, 5, 7, 3],
+                    [0, 7, 8, 0, 1, 7, 1, 5, 7],
+                    [1, 5, 3, 3, 5, 7],
+                    [9, 7, 8, 9, 5, 7, 10, 1, 2],
+                    [10, 1, 2, 9, 5, 0, 5, 3, 0, 5, 7, 3],
+                    [8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2],
+                    [2, 10, 5, 2, 5, 3, 3, 5, 7],
+                    [7, 9, 5, 7, 8, 9, 3, 11, 2],
+                    [9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11],
+                    [2, 3, 11, 0, 1, 8, 1, 7, 8, 1, 5, 7],
+                    [11, 2, 1, 11, 1, 7, 7, 1, 5],
+                    [9, 5, 8, 8, 5, 7, 10, 1, 3, 10, 3, 11],
+                    [5, 7, 0, 5, 0, 9, 7, 11, 0, 1, 0, 10, 11, 10, 0],
+                    [11, 10, 0, 11, 0, 3, 10, 5, 0, 8, 0, 7, 5, 7, 0],
+                    [11, 10, 5, 7, 11, 5],
+                    [10, 6, 5],
+                    [0, 8, 3, 5, 10, 6],
+                    [9, 0, 1, 5, 10, 6],
+                    [1, 8, 3, 1, 9, 8, 5, 10, 6],
+                    [1, 6, 5, 2, 6, 1],
+                    [1, 6, 5, 1, 2, 6, 3, 0, 8],
+                    [9, 6, 5, 9, 0, 6, 0, 2, 6],
+                    [5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8],
+                    [2, 3, 11, 10, 6, 5],
+                    [11, 0, 8, 11, 2, 0, 10, 6, 5],
+                    [0, 1, 9, 2, 3, 11, 5, 10, 6],
+                    [5, 10, 6, 1, 9, 2, 9, 11, 2, 9, 8, 11],
+                    [6, 3, 11, 6, 5, 3, 5, 1, 3],
+                    [0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6],
+                    [3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9],
+                    [6, 5, 9, 6, 9, 11, 11, 9, 8],
+                    [5, 10, 6, 4, 7, 8],
+                    [4, 3, 0, 4, 7, 3, 6, 5, 10],
+                    [1, 9, 0, 5, 10, 6, 8, 4, 7],
+                    [10, 6, 5, 1, 9, 7, 1, 7, 3, 7, 9, 4],
+                    [6, 1, 2, 6, 5, 1, 4, 7, 8],
+                    [1, 2, 5, 5, 2, 6, 3, 0, 4, 3, 4, 7],
+                    [8, 4, 7, 9, 0, 5, 0, 6, 5, 0, 2, 6],
+                    [7, 3, 9, 7, 9, 4, 3, 2, 9, 5, 9, 6, 2, 6, 9],
+                    [3, 11, 2, 7, 8, 4, 10, 6, 5],
+                    [5, 10, 6, 4, 7, 2, 4, 2, 0, 2, 7, 11],
+                    [0, 1, 9, 4, 7, 8, 2, 3, 11, 5, 10, 6],
+                    [9, 2, 1, 9, 11, 2, 9, 4, 11, 7, 11, 4, 5, 10, 6],
+                    [8, 4, 7, 3, 11, 5, 3, 5, 1, 5, 11, 6],
+                    [5, 1, 11, 5, 11, 6, 1, 0, 11, 7, 11, 4, 0, 4, 11],
+                    [0, 5, 9, 0, 6, 5, 0, 3, 6, 11, 6, 3, 8, 4, 7],
+                    [6, 5, 9, 6, 9, 11, 4, 7, 9, 7, 11, 9],
+                    [10, 4, 9, 6, 4, 10],
+                    [4, 10, 6, 4, 9, 10, 0, 8, 3],
+                    [10, 0, 1, 10, 6, 0, 6, 4, 0],
+                    [8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10],
+                    [1, 4, 9, 1, 2, 4, 2, 6, 4],
+                    [3, 0, 8, 1, 2, 9, 2, 4, 9, 2, 6, 4],
+                    [0, 2, 4, 4, 2, 6],
+                    [8, 3, 2, 8, 2, 4, 4, 2, 6],
+                    [10, 4, 9, 10, 6, 4, 11, 2, 3],
+                    [0, 8, 2, 2, 8, 11, 4, 9, 10, 4, 10, 6],
+                    [3, 11, 2, 0, 1, 6, 0, 6, 4, 6, 1, 10],
+                    [6, 4, 1, 6, 1, 10, 4, 8, 1, 2, 1, 11, 8, 11, 1],
+                    [9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3],
+                    [8, 11, 1, 8, 1, 0, 11, 6, 1, 9, 1, 4, 6, 4, 1],
+                    [3, 11, 6, 3, 6, 0, 0, 6, 4],
+                    [6, 4, 8, 11, 6, 8],
+                    [7, 10, 6, 7, 8, 10, 8, 9, 10],
+                    [0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10],
+                    [10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0],
+                    [10, 6, 7, 10, 7, 1, 1, 7, 3],
+                    [1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7],
+                    [2, 6, 9, 2, 9, 1, 6, 7, 9, 0, 9, 3, 7, 3, 9],
+                    [7, 8, 0, 7, 0, 6, 6, 0, 2],
+                    [7, 3, 2, 6, 7, 2],
+                    [2, 3, 11, 10, 6, 8, 10, 8, 9, 8, 6, 7],
+                    [2, 0, 7, 2, 7, 11, 0, 9, 7, 6, 7, 10, 9, 10, 7],
+                    [1, 8, 0, 1, 7, 8, 1, 10, 7, 6, 7, 10, 2, 3, 11],
+                    [11, 2, 1, 11, 1, 7, 10, 6, 1, 6, 7, 1],
+                    [8, 9, 6, 8, 6, 7, 9, 1, 6, 11, 6, 3, 1, 3, 6],
+                    [0, 9, 1, 11, 6, 7],
+                    [7, 8, 0, 7, 0, 6, 3, 11, 0, 11, 6, 0],
+                    [7, 11, 6],
+                    [7, 6, 11],
+                    [3, 0, 8, 11, 7, 6],
+                    [0, 1, 9, 11, 7, 6],
+                    [8, 1, 9, 8, 3, 1, 11, 7, 6],
+                    [10, 1, 2, 6, 11, 7],
+                    [1, 2, 10, 3, 0, 8, 6, 11, 7],
+                    [2, 9, 0, 2, 10, 9, 6, 11, 7],
+                    [6, 11, 7, 2, 10, 3, 10, 8, 3, 10, 9, 8],
+                    [7, 2, 3, 6, 2, 7],
+                    [7, 0, 8, 7, 6, 0, 6, 2, 0],
+                    [2, 7, 6, 2, 3, 7, 0, 1, 9],
+                    [1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6],
+                    [10, 7, 6, 10, 1, 7, 1, 3, 7],
+                    [10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8],
+                    [0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7],
+                    [7, 6, 10, 7, 10, 8, 8, 10, 9],
+                    [6, 8, 4, 11, 8, 6],
+                    [3, 6, 11, 3, 0, 6, 0, 4, 6],
+                    [8, 6, 11, 8, 4, 6, 9, 0, 1],
+                    [9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6],
+                    [6, 8, 4, 6, 11, 8, 2, 10, 1],
+                    [1, 2, 10, 3, 0, 11, 0, 6, 11, 0, 4, 6],
+                    [4, 11, 8, 4, 6, 11, 0, 2, 9, 2, 10, 9],
+                    [10, 9, 3, 10, 3, 2, 9, 4, 3, 11, 3, 6, 4, 6, 3],
+                    [8, 2, 3, 8, 4, 2, 4, 6, 2],
+                    [0, 4, 2, 4, 6, 2],
+                    [1, 9, 0, 2, 3, 4, 2, 4, 6, 4, 3, 8],
+                    [1, 9, 4, 1, 4, 2, 2, 4, 6],
+                    [8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1],
+                    [10, 1, 0, 10, 0, 6, 6, 0, 4],
+                    [4, 6, 3, 4, 3, 8, 6, 10, 3, 0, 3, 9, 10, 9, 3],
+                    [10, 9, 4, 6, 10, 4],
+                    [4, 9, 5, 7, 6, 11],
+                    [0, 8, 3, 4, 9, 5, 11, 7, 6],
+                    [5, 0, 1, 5, 4, 0, 7, 6, 11],
+                    [11, 7, 6, 8, 3, 4, 3, 5, 4, 3, 1, 5],
+                    [9, 5, 4, 10, 1, 2, 7, 6, 11],
+                    [6, 11, 7, 1, 2, 10, 0, 8, 3, 4, 9, 5],
+                    [7, 6, 11, 5, 4, 10, 4, 2, 10, 4, 0, 2],
+                    [3, 4, 8, 3, 5, 4, 3, 2, 5, 10, 5, 2, 11, 7, 6],
+                    [7, 2, 3, 7, 6, 2, 5, 4, 9],
+                    [9, 5, 4, 0, 8, 6, 0, 6, 2, 6, 8, 7],
+                    [3, 6, 2, 3, 7, 6, 1, 5, 0, 5, 4, 0],
+                    [6, 2, 8, 6, 8, 7, 2, 1, 8, 4, 8, 5, 1, 5, 8],
+                    [9, 5, 4, 10, 1, 6, 1, 7, 6, 1, 3, 7],
+                    [1, 6, 10, 1, 7, 6, 1, 0, 7, 8, 7, 0, 9, 5, 4],
+                    [4, 0, 10, 4, 10, 5, 0, 3, 10, 6, 10, 7, 3, 7, 10],
+                    [7, 6, 10, 7, 10, 8, 5, 4, 10, 4, 8, 10],
+                    [6, 9, 5, 6, 11, 9, 11, 8, 9],
+                    [3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5],
+                    [0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11],
+                    [6, 11, 3, 6, 3, 5, 5, 3, 1],
+                    [1, 2, 10, 9, 5, 11, 9, 11, 8, 11, 5, 6],
+                    [0, 11, 3, 0, 6, 11, 0, 9, 6, 5, 6, 9, 1, 2, 10],
+                    [11, 8, 5, 11, 5, 6, 8, 0, 5, 10, 5, 2, 0, 2, 5],
+                    [6, 11, 3, 6, 3, 5, 2, 10, 3, 10, 5, 3],
+                    [5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2],
+                    [9, 5, 6, 9, 6, 0, 0, 6, 2],
+                    [1, 5, 8, 1, 8, 0, 5, 6, 8, 3, 8, 2, 6, 2, 8],
+                    [1, 5, 6, 2, 1, 6],
+                    [1, 3, 6, 1, 6, 10, 3, 8, 6, 5, 6, 9, 8, 9, 6],
+                    [10, 1, 0, 10, 0, 6, 9, 5, 0, 5, 6, 0],
+                    [0, 3, 8, 5, 6, 10],
+                    [10, 5, 6],
+                    [11, 5, 10, 7, 5, 11],
+                    [11, 5, 10, 11, 7, 5, 8, 3, 0],
+                    [5, 11, 7, 5, 10, 11, 1, 9, 0],
+                    [10, 7, 5, 10, 11, 7, 9, 8, 1, 8, 3, 1],
+                    [11, 1, 2, 11, 7, 1, 7, 5, 1],
+                    [0, 8, 3, 1, 2, 7, 1, 7, 5, 7, 2, 11],
+                    [9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7],
+                    [7, 5, 2, 7, 2, 11, 5, 9, 2, 3, 2, 8, 9, 8, 2],
+                    [2, 5, 10, 2, 3, 5, 3, 7, 5],
+                    [8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5],
+                    [9, 0, 1, 5, 10, 3, 5, 3, 7, 3, 10, 2],
+                    [9, 8, 2, 9, 2, 1, 8, 7, 2, 10, 2, 5, 7, 5, 2],
+                    [1, 3, 5, 3, 7, 5],
+                    [0, 8, 7, 0, 7, 1, 1, 7, 5],
+                    [9, 0, 3, 9, 3, 5, 5, 3, 7],
+                    [9, 8, 7, 5, 9, 7],
+                    [5, 8, 4, 5, 10, 8, 10, 11, 8],
+                    [5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0],
+                    [0, 1, 9, 8, 4, 10, 8, 10, 11, 10, 4, 5],
+                    [10, 11, 4, 10, 4, 5, 11, 3, 4, 9, 4, 1, 3, 1, 4],
+                    [2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8],
+                    [0, 4, 11, 0, 11, 3, 4, 5, 11, 2, 11, 1, 5, 1, 11],
+                    [0, 2, 5, 0, 5, 9, 2, 11, 5, 4, 5, 8, 11, 8, 5],
+                    [9, 4, 5, 2, 11, 3],
+                    [2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4],
+                    [5, 10, 2, 5, 2, 4, 4, 2, 0],
+                    [3, 10, 2, 3, 5, 10, 3, 8, 5, 4, 5, 8, 0, 1, 9],
+                    [5, 10, 2, 5, 2, 4, 1, 9, 2, 9, 4, 2],
+                    [8, 4, 5, 8, 5, 3, 3, 5, 1],
+                    [0, 4, 5, 1, 0, 5],
+                    [8, 4, 5, 8, 5, 3, 9, 0, 5, 0, 3, 5],
+                    [9, 4, 5],
+                    [4, 11, 7, 4, 9, 11, 9, 10, 11],
+                    [0, 8, 3, 4, 9, 7, 9, 11, 7, 9, 10, 11],
+                    [1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11],
+                    [3, 1, 4, 3, 4, 8, 1, 10, 4, 7, 4, 11, 10, 11, 4],
+                    [4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2],
+                    [9, 7, 4, 9, 11, 7, 9, 1, 11, 2, 11, 1, 0, 8, 3],
+                    [11, 7, 4, 11, 4, 2, 2, 4, 0],
+                    [11, 7, 4, 11, 4, 2, 8, 3, 4, 3, 2, 4],
+                    [2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9],
+                    [9, 10, 7, 9, 7, 4, 10, 2, 7, 8, 7, 0, 2, 0, 7],
+                    [3, 7, 10, 3, 10, 2, 7, 4, 10, 1, 10, 0, 4, 0, 10],
+                    [1, 10, 2, 8, 7, 4],
+                    [4, 9, 1, 4, 1, 7, 7, 1, 3],
+                    [4, 9, 1, 4, 1, 7, 0, 8, 1, 8, 7, 1],
+                    [4, 0, 3, 7, 4, 3],
+                    [4, 8, 7],
+                    [9, 10, 8, 10, 11, 8],
+                    [3, 0, 9, 3, 9, 11, 11, 9, 10],
+                    [0, 1, 10, 0, 10, 8, 8, 10, 11],
+                    [3, 1, 10, 11, 3, 10],
+                    [1, 2, 11, 1, 11, 9, 9, 11, 8],
+                    [3, 0, 9, 3, 9, 11, 1, 2, 9, 2, 11, 9],
+                    [0, 2, 11, 8, 0, 11],
+                    [3, 2, 11],
+                    [2, 3, 8, 2, 8, 10, 10, 8, 9],
+                    [9, 10, 2, 0, 9, 2],
+                    [2, 3, 8, 2, 8, 10, 0, 1, 8, 1, 10, 8],
+                    [1, 10, 2],
+                    [1, 3, 8, 9, 1, 8],
+                    [0, 9, 1],
+                    [0, 3, 8],
+                    [],
+                  ]),
+                  (r = F = F || {}),
+                  (ro = r.Core || (r.Core = {})),
+                  (io = ro.Geometry || (ro.Geometry = {})),
+                  (r = io.MolecularSurface || (io.MolecularSurface = {})),
+                  (oo = function (t) {
+                    ro.Utils.extend(this, t, {
+                      exactBoundary: !1,
+                      boundaryDelta: { dx: 1.5, dy: 1.5, dz: 1.5 },
+                      probeRadius: 1.4,
+                      atomRadii: function () {
+                        return 1;
+                      },
+                      density: 1.1,
+                      interactive: !1,
+                      smoothingIterations: 1,
+                    }),
+                      this.exactBoundary && (this.boundaryDelta = { dx: 0, dy: 0, dz: 0 }),
+                      this.density < 0.05 && (this.density = 0.05);
+                  }),
+                  (Bs.prototype.findBounds = function () {
+                    for (var t = 0, e = this.atomIndices; t < e.length; t++) {
+                      var n = e[t],
+                        r = this.parameters.exactBoundary
+                          ? 0
+                          : this.vdwScaleFactor * this.parameters.atomRadius(n) +
+                            this.parameters.probeRadius,
+                        i = this.x[n],
+                        o = this.y[n],
+                        n = this.z[n];
+                      r < 0 ||
+                        ((this.minX = Math.min(this.minX, i - r)),
+                        (this.minY = Math.min(this.minY, o - r)),
+                        (this.minZ = Math.min(this.minZ, n - r)),
+                        (this.maxX = Math.max(this.maxX, i + r)),
+                        (this.maxY = Math.max(this.maxY, o + r)),
+                        (this.maxZ = Math.max(this.maxZ, n + r)));
+                    }
+                    this.minX === Number.MAX_VALUE &&
+                      ((this.minX = this.minY = this.minZ = -1),
+                      (this.maxX = this.maxY = this.maxZ = 1)),
+                      (this.minX -= this.parameters.boundaryDelta.dx),
+                      (this.minY -= this.parameters.boundaryDelta.dy),
+                      (this.minZ -= this.parameters.boundaryDelta.dz),
+                      (this.maxX += this.parameters.boundaryDelta.dx),
+                      (this.maxY += this.parameters.boundaryDelta.dy),
+                      (this.maxZ += this.parameters.boundaryDelta.dz),
+                      (this.nX = Math.floor((this.maxX - this.minX) * this.parameters.density)),
+                      (this.nY = Math.floor((this.maxY - this.minY) * this.parameters.density)),
+                      (this.nZ = Math.floor((this.maxZ - this.minZ) * this.parameters.density)),
+                      (this.nX = Math.min(this.nX, 333)),
+                      (this.nY = Math.min(this.nY, 333)),
+                      (this.nZ = Math.min(this.nZ, 333)),
+                      (this.dX = (this.maxX - this.minX) / (this.nX - 1)),
+                      (this.dY = (this.maxY - this.minY) / (this.nY - 1)),
+                      (this.dZ = (this.maxZ - this.minZ) / (this.nZ - 1));
+                  }),
+                  (Bs.prototype.initData = function () {
+                    for (
+                      var t = this.nX * this.nY * this.nZ,
+                        e =
+                          ((this.field = new Float32Array(t)),
+                          (this.distanceField = new Float32Array(t)),
+                          (this.proximityMap = new Int32Array(t)),
+                          Number.POSITIVE_INFINITY),
+                        n = 0,
+                        r = this.proximityMap.length;
+                      n < r;
+                      n++
+                    )
+                      (this.distanceField[n] = e), (this.proximityMap[n] = -1);
+                  }),
+                  (Bs.prototype.updateMinIndex = function (t, e, n) {
+                    (this.minIndex.i = Math.max(0 | Math.floor((t - this.minX) / this.dX), 0)),
+                      (this.minIndex.j = Math.max(0 | Math.floor((e - this.minY) / this.dY), 0)),
+                      (this.minIndex.k = Math.max(0 | Math.floor((n - this.minZ) / this.dZ), 0));
+                  }),
+                  (Bs.prototype.updateMaxIndex = function (t, e, n) {
+                    (this.maxIndex.i = Math.min(0 | Math.ceil((t - this.minX) / this.dX), this.nX)),
+                      (this.maxIndex.j = Math.min(
+                        0 | Math.ceil((e - this.minY) / this.dY),
+                        this.nY,
+                      )),
+                      (this.maxIndex.k = Math.min(
+                        0 | Math.ceil((n - this.minZ) / this.dZ),
+                        this.nZ,
+                      ));
+                  }),
+                  (Bs.prototype.addBall = function (t, e) {
+                    for (
+                      var n = e * e,
+                        r = this.x[t],
+                        i = this.y[t],
+                        o = this.z[t],
+                        a =
+                          (this.updateMinIndex(r - e, i - e, o - e),
+                          this.updateMaxIndex(r + e, i + e, o + e),
+                          this.minIndex.i),
+                        s = this.minIndex.j,
+                        e = this.minIndex.k,
+                        l = this.maxIndex.i,
+                        u = this.maxIndex.j,
+                        c = this.maxIndex.k,
+                        r = this.minX - r,
+                        i = this.minY - i,
+                        o = this.minZ - o,
+                        A = e;
+                      A < c;
+                      A++
+                    )
+                      for (var h = o + A * this.dZ, p = h * h, d = A * this.nY, f = s; f < u; f++)
+                        for (
+                          var g = i + f * this.dY, m = p + g * g, v = this.nX * (d + f), b = a;
+                          b < l;
+                          b++
+                        ) {
+                          var y = r + b * this.dX,
+                            y = m + y * y,
+                            w = v + b,
+                            E = n / (1e-6 + y) - 1;
+                          y < this.distanceField[w] &&
+                            ((this.proximityMap[w] = t), (this.distanceField[w] = y)),
+                            0 < E && (this.field[w] += E);
+                        }
+                  }),
+                  (Bs.prototype.processChunks = function () {
+                    return D(this, void 0, void 0, function () {
+                      var e, n, r, i, o, a;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return (
+                              (e = 1e4),
+                              (n = ro.Utils.PerformanceMonitor.currentTime()),
+                              [4, this.ctx.updateProgress('Creating field...', !0)]
+                            );
+                          case 1:
+                            t.sent(), (r = 0), (i = this.atomIndices.length), (t.label = 2);
+                          case 2:
+                            return r < i
+                              ? ((a = this.atomIndices[r]),
+                                0 <=
+                                  (o =
+                                    this.vdwScaleFactor * this.parameters.atomRadius(a) +
+                                    this.parameters.probeRadius) && this.addBall(a, o),
+                                (r + 1) % e == 0 &&
+                                (a = ro.Utils.PerformanceMonitor.currentTime()) - n >
+                                  ro.Computation.UpdateProgressDelta
+                                  ? ((n = a),
+                                    [4, this.ctx.updateProgress('Creating field...', !0, r, i)])
+                                  : [3, 4])
+                              : [3, 5];
+                          case 3:
+                            t.sent(), (t.label = 4);
+                          case 4:
+                            return r++, [3, 2];
+                          case 5:
+                            return [2];
+                        }
+                      });
+                    });
+                  }),
+                  (Bs.prototype.finish = function () {
+                    var t = io.LinearAlgebra.Matrix4.zero(),
+                      t =
+                        (io.LinearAlgebra.Matrix4.fromTranslation(t, [
+                          this.minX,
+                          this.minY,
+                          this.minZ,
+                        ]),
+                        (t[0] = this.dX),
+                        (t[5] = this.dY),
+                        (t[10] = this.dZ),
+                        {
+                          data: {
+                            scalarField: new ro.Formats.Density.Field3DZYX(this.field, [
+                              this.nX,
+                              this.nY,
+                              this.nZ,
+                            ]),
+                            annotationField: this.parameters.interactive
+                              ? new ro.Formats.Density.Field3DZYX(this.proximityMap, [
+                                  this.nX,
+                                  this.nY,
+                                  this.nZ,
+                                ])
+                              : void 0,
+                            isoLevel: 0.05,
+                          },
+                          bottomLeft: io.LinearAlgebra.Vector3.fromValues(
+                            this.minX,
+                            this.minY,
+                            this.minZ,
+                          ),
+                          topRight: io.LinearAlgebra.Vector3.fromValues(
+                            this.maxX,
+                            this.maxY,
+                            this.maxZ,
+                          ),
+                          transform: t,
+                          inputParameters: this.inputParameters,
+                          parameters: this.parameters,
+                        });
+                    return (this.distanceField = null), (this.proximityMap = null), t;
+                  }),
+                  (Bs.prototype.run = function () {
+                    return D(this, void 0, void 0, function () {
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return [4, this.ctx.updateProgress('Initializing...')];
+                          case 1:
+                            return (
+                              t.sent(),
+                              this.findBounds(),
+                              this.initData(),
+                              [4, this.processChunks()]
+                            );
+                          case 2:
+                            return (
+                              t.sent(),
+                              [
+                                4,
+                                this.ctx.updateProgress(
+                                  'Finalizing...',
+                                  void 0,
+                                  this.atomIndices.length,
+                                  this.atomIndices.length,
+                                ),
+                              ]
+                            );
+                          case 3:
+                            return t.sent(), [2, this.finish()];
+                        }
+                      });
+                    });
+                  }),
+                  (ao = Bs),
+                  (r.createMolecularIsoFieldAsync = Cs),
+                  (r.computeMolecularSurfaceAsync = function (a) {
+                    var t = this;
+                    return ro.computation(function (o) {
+                      return D(t, void 0, void 0, function () {
+                        var e, n, r, i;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return [4, Cs(a).run(o)];
+                            case 1:
+                              return (e = t.sent()), [4, io.MarchingCubes.compute(e.data).run(o)];
+                            case 2:
+                              return (
+                                (n = t.sent()), [4, io.Surface.transform(n, e.transform).run(o)]
+                              );
+                            case 3:
+                              return (
+                                (n = t.sent()),
+                                (r = (a.parameters && a.parameters.smoothingIterations) || 1),
+                                (i = 1),
+                                a.parameters &&
+                                  a.parameters.density < 1 &&
+                                  (i = 2 / a.parameters.density),
+                                [4, io.Surface.laplacianSmooth(n, r, i).run(o)]
+                              );
+                            case 4:
+                              return [2, { surface: (n = t.sent()), usedParameters: e.parameters }];
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (e = F = F || {}),
+                  (function (r) {
+                    var t = so.Utils.DataTable,
+                      n =
+                        ((e.prototype.add = function (t, e, n, r) {
+                          void 0 === r && (r = !0);
+                          var i = this.map.get(t);
+                          void 0 !== i
+                            ? void 0 === i.get(e) && i.set(e, n)
+                            : ((i = so.Utils.FastMap.create()).set(e, n), this.map.set(t, i)),
+                            r && this.add(e, t, n, !1);
+                        }),
+                        e);
+                    function e(t) {
+                      (this.id = t), (this.map = so.Utils.FastMap.create());
+                    }
+                    function i() {
+                      this.entries = so.Utils.FastMap.create();
+                    }
+                    function o(t, e, n) {
+                      (this.asymId = t), (this.seqNumber = e), (this.insCode = n);
+                    }
+                    function a(t, e, n, r) {
+                      void 0 === r && (r = {}),
+                        (this.type = t),
+                        (this.startResidueId = e),
+                        (this.endResidueId = n),
+                        (this.info = r),
+                        (this.startResidueIndex = -1),
+                        (this.endResidueIndex = -1);
+                    }
+                    (r.ComponentBondInfoEntry = n),
+                      (i.prototype.newEntry = function (t) {
+                        var e = new n(t);
+                        return this.entries.set(t, e), e;
+                      }),
+                      (r.ComponentBondInfo = i),
+                      (o.areEqual = function (t, e, n, r, i) {
+                        return t.asymId === n[e] && t.seqNumber === r[e] && t.insCode === i[e];
+                      }),
+                      (o.compare = function (t, e) {
+                        return t.asymId === e.asymId
+                          ? t.seqNumber === e.seqNumber
+                            ? t.insCode === e.insCode
+                              ? 0
+                              : void 0 === t.insCode ||
+                                  (void 0 !== e.insCode && t.insCode < e.insCode)
+                                ? -1
+                                : 1
+                            : t.seqNumber < e.seqNumber
+                              ? -1
+                              : 1
+                          : t.asymId < e.asymId
+                            ? -1
+                            : 1;
+                      }),
+                      (o.compareResidue = function (t, e, n, r, i) {
+                        return t.asymId === n[e]
+                          ? t.seqNumber === r[e]
+                            ? t.insCode === i[e]
+                              ? 0
+                              : void 0 === t.insCode || (void 0 !== i[e] && t.insCode < i[e])
+                                ? -1
+                                : 1
+                            : t.seqNumber < r[e]
+                              ? -1
+                              : 1
+                          : t.asymId < n[e]
+                            ? -1
+                            : 1;
+                      }),
+                      (r.PolyResidueIdentifier = o),
+                      Object.defineProperty(a.prototype, 'length', {
+                        get: function () {
+                          return this.endResidueIndex - this.startResidueIndex;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (r.SecondaryStructureElement = a);
+                    (r.SymmetryInfo = function (t, e, n, r, i) {
+                      (this.spacegroupName = t),
+                        (this.cellSize = e),
+                        (this.cellAngles = n),
+                        (this.toFracTransform = r),
+                        (this.isNonStandardCrytalFrame = i);
+                    }),
+                      (l._resKey = function (t, e) {
+                        return t < e ? t + '-' + e : e + '-' + t;
+                      }),
+                      (l.prototype.getResiduePairIndex = function () {
+                        if (!this._residuePairIndex) {
+                          this._residuePairIndex = so.Utils.FastMap.create();
+                          for (var t = 0, e = this.entries; t < e.length; t++)
+                            for (var n = e[t], r = n.partners, i = r.length, o = 0; o < i - 1; o++)
+                              for (var a = o + o; a < i; a++) {
+                                var s = l._resKey(r[o].residueIndex, r[a].residueIndex);
+                                this._residuePairIndex.has(s)
+                                  ? this._residuePairIndex.get(s).push(n)
+                                  : this._residuePairIndex.set(s, [n]);
+                              }
+                        }
+                        return this._residuePairIndex;
+                      }),
+                      (l.prototype.getAtomIndex = function () {
+                        if (!this._atomIndex) {
+                          this._atomIndex = so.Utils.FastMap.create();
+                          for (var t = 0, e = this.entries; t < e.length; t++)
+                            for (var n = e[t], r = 0, i = n.partners; r < i.length; r++) {
+                              var o = i[r].atomIndex;
+                              this._atomIndex.has(o)
+                                ? this._atomIndex.get(o).push(n)
+                                : this._atomIndex.set(o, [n]);
+                            }
+                        }
+                        return this._atomIndex;
+                      }),
+                      (l.prototype.getResidueEntries = function (t, e) {
+                        return this.getResiduePairIndex().get(l._resKey(t, e)) || l._emptyEntry;
+                      }),
+                      (l.prototype.getAtomEntries = function (t) {
+                        return this.getAtomIndex().get(t) || l._emptyEntry;
+                      }),
+                      (l._emptyEntry = []);
+                    var s = l;
+                    function l(t) {
+                      (this.entries = t),
+                        (this._residuePairIndex = void 0),
+                        (this._atomIndex = void 0);
+                    }
+                    r.StructConn = s;
+                    function u(t, e) {
+                      (this.operators = t), (this.asymIds = e);
+                    }
+                    function c(t) {
+                      (this.name = t), (this.gens = []);
+                    }
+                    function A(t, e) {
+                      (this.operators = t), (this.assemblies = e);
+                    }
+                    (r.AssemblyOperator = function (t, e, n) {
+                      (this.id = t), (this.name = e), (this.operator = n);
+                    }),
+                      (r.AssemblyGenEntry = u),
+                      (r.AssemblyGen = c);
+                    (r.AssemblyInfo = A),
+                      (s = r.Tables || (r.Tables = {})),
+                      (h = t.typedColumn(Int32Array)),
+                      (f = t.typedColumn(Float32Array)),
+                      (p = t.stringColumn),
+                      (d = t.stringNullColumn),
+                      (s.Positions = { x: f, y: f, z: f }),
+                      (s.Atoms = {
+                        id: h,
+                        altLoc: p,
+                        residueIndex: h,
+                        chainIndex: h,
+                        entityIndex: h,
+                        name: p,
+                        elementSymbol: p,
+                        occupancy: f,
+                        tempFactor: f,
+                        authName: p,
+                        rowIndex: h,
+                      }),
+                      (s.Residues = {
+                        name: p,
+                        seqNumber: h,
+                        asymId: p,
+                        authName: p,
+                        authSeqNumber: h,
+                        authAsymId: p,
+                        insCode: d,
+                        entityId: p,
+                        isHet: t.typedColumn(Int8Array),
+                        atomStartIndex: h,
+                        atomEndIndex: h,
+                        chainIndex: h,
+                        entityIndex: h,
+                        secondaryStructureIndex: h,
+                      }),
+                      (s.Chains = {
+                        asymId: p,
+                        entityId: p,
+                        authAsymId: p,
+                        atomStartIndex: h,
+                        atomEndIndex: h,
+                        residueStartIndex: h,
+                        residueEndIndex: h,
+                        entityIndex: h,
+                        sourceChainIndex: void 0,
+                        operatorIndex: void 0,
+                      }),
+                      (s.Entities = {
+                        entityId: p,
+                        type: t.customColumn(),
+                        atomStartIndex: h,
+                        atomEndIndex: h,
+                        residueStartIndex: h,
+                        residueEndIndex: h,
+                        chainStartIndex: h,
+                        chainEndIndex: h,
+                      }),
+                      (s.Bonds = { atomAIndex: h, atomBIndex: h, type: t.typedColumn(Int8Array) }),
+                      (s.ModifiedResidues = {
+                        asymId: p,
+                        seqNumber: h,
+                        insCode: d,
+                        parent: p,
+                        details: d,
+                      }),
+                      (g.prototype.apply = function (t) {
+                        so.Geometry.LinearAlgebra.Vector3.transformMat4(t, t, this.matrix);
+                      }),
+                      (g.applyToModelUnsafe = function (t, e) {
+                        for (
+                          var n = so.Geometry.LinearAlgebra.Vector3.zero(),
+                            r = e.positions,
+                            i = r.x,
+                            o = r.y,
+                            a = r.z,
+                            s = 0,
+                            l = e.positions.count;
+                          s < l;
+                          s++
+                        )
+                          (n[0] = i[s]),
+                            (n[1] = o[s]),
+                            (n[2] = a[s]),
+                            so.Geometry.LinearAlgebra.Vector3.transformMat4(n, n, t),
+                            (i[s] = n[0]),
+                            (o[s] = n[1]),
+                            (a[s] = n[2]);
+                      });
+                    var h,
+                      p,
+                      d,
+                      f = g;
+                    function g(t, e, n) {
+                      (this.matrix = t), (this.id = e), (this.isIdentity = n);
+                    }
+                    function m(t) {
+                      var e = so.Utils.extend({}, t),
+                        n = void 0;
+                      return (
+                        Object.defineProperty(e, 'queryContext', {
+                          enumerable: !0,
+                          configurable: !1,
+                          get: function () {
+                            return (n = n || r.Query.Context.ofStructure(e));
+                          },
+                        }),
+                        e
+                      );
+                    }
+                    (r.Operator = f),
+                      ((t = r.Molecule || (r.Molecule = {})).create = function (t, e, n) {
+                        return { id: t, models: e, properties: (n = void 0 === n ? {} : n) };
+                      }),
+                      ((t = t.Model || (t.Model = {})).create = m),
+                      ((s = t.Source || (t.Source = {}))[(s.File = 0)] = 'File'),
+                      (s[(s.Computed = 1)] = 'Computed'),
+                      (t.withTransformedXYZ = function (t, e, n) {
+                        for (
+                          var r = t.positions,
+                            i = r.x,
+                            o = r.y,
+                            a = r.z,
+                            s = (r = t.positions.getBuilder(t.positions.count).seal()).x,
+                            l = r.y,
+                            u = r.z,
+                            c = so.Geometry.LinearAlgebra.Vector3.zero(),
+                            A = 0,
+                            h = t.positions.count;
+                          A < h;
+                          A++
+                        )
+                          n(e, i[A], o[A], a[A], c), (s[A] = c[0]), (l[A] = c[1]), (u[A] = c[2]);
+                        return m({
+                          id: t.id,
+                          modelId: t.modelId,
+                          data: t.data,
+                          positions: r,
+                          parent: t.parent,
+                          source: t.source,
+                          operators: t.operators,
+                        });
+                      });
+                  })((so = e.Core || (e.Core = {})).Structure || (so.Structure = {})),
+                  (t = F = F || {}),
+                  (lo = t.Core || (t.Core = {})),
+                  ((uo = lo.Structure || (lo.Structure = {})).isBondTypeCovalent = function (t) {
+                    return 0 <= t && t <= 5;
+                  }),
+                  (co = {
+                    H: 0,
+                    h: 0,
+                    D: 0,
+                    d: 0,
+                    T: 0,
+                    t: 0,
+                    He: 2,
+                    HE: 2,
+                    he: 2,
+                    Li: 3,
+                    LI: 3,
+                    li: 3,
+                    Be: 4,
+                    BE: 4,
+                    be: 4,
+                    B: 5,
+                    b: 5,
+                    C: 6,
+                    c: 6,
+                    N: 7,
+                    n: 7,
+                    O: 8,
+                    o: 8,
+                    F: 9,
+                    f: 9,
+                    Ne: 10,
+                    NE: 10,
+                    ne: 10,
+                    Na: 11,
+                    NA: 11,
+                    na: 11,
+                    Mg: 12,
+                    MG: 12,
+                    mg: 12,
+                    Al: 13,
+                    AL: 13,
+                    al: 13,
+                    Si: 14,
+                    SI: 14,
+                    si: 14,
+                    P: 15,
+                    p: 15,
+                    S: 16,
+                    s: 16,
+                    Cl: 17,
+                    CL: 17,
+                    cl: 17,
+                    Ar: 18,
+                    AR: 18,
+                    ar: 18,
+                    K: 19,
+                    k: 19,
+                    Ca: 20,
+                    CA: 20,
+                    ca: 20,
+                    Sc: 21,
+                    SC: 21,
+                    sc: 21,
+                    Ti: 22,
+                    TI: 22,
+                    ti: 22,
+                    V: 23,
+                    v: 23,
+                    Cr: 24,
+                    CR: 24,
+                    cr: 24,
+                    Mn: 25,
+                    MN: 25,
+                    mn: 25,
+                    Fe: 26,
+                    FE: 26,
+                    fe: 26,
+                    Co: 27,
+                    CO: 27,
+                    co: 27,
+                    Ni: 28,
+                    NI: 28,
+                    ni: 28,
+                    Cu: 29,
+                    CU: 29,
+                    cu: 29,
+                    Zn: 30,
+                    ZN: 30,
+                    zn: 30,
+                    Ga: 31,
+                    GA: 31,
+                    ga: 31,
+                    Ge: 32,
+                    GE: 32,
+                    ge: 32,
+                    As: 33,
+                    AS: 33,
+                    as: 33,
+                    Se: 34,
+                    SE: 34,
+                    se: 34,
+                    Br: 35,
+                    BR: 35,
+                    br: 35,
+                    Kr: 36,
+                    KR: 36,
+                    kr: 36,
+                    Rb: 37,
+                    RB: 37,
+                    rb: 37,
+                    Sr: 38,
+                    SR: 38,
+                    sr: 38,
+                    Y: 39,
+                    y: 39,
+                    Zr: 40,
+                    ZR: 40,
+                    zr: 40,
+                    Nb: 41,
+                    NB: 41,
+                    nb: 41,
+                    Mo: 42,
+                    MO: 42,
+                    mo: 42,
+                    Tc: 43,
+                    TC: 43,
+                    tc: 43,
+                    Ru: 44,
+                    RU: 44,
+                    ru: 44,
+                    Rh: 45,
+                    RH: 45,
+                    rh: 45,
+                    Pd: 46,
+                    PD: 46,
+                    pd: 46,
+                    Ag: 47,
+                    AG: 47,
+                    ag: 47,
+                    Cd: 48,
+                    CD: 48,
+                    cd: 48,
+                    In: 49,
+                    IN: 49,
+                    in: 49,
+                    Sn: 50,
+                    SN: 50,
+                    sn: 50,
+                    Sb: 51,
+                    SB: 51,
+                    sb: 51,
+                    Te: 52,
+                    TE: 52,
+                    te: 52,
+                    I: 53,
+                    i: 53,
+                    Xe: 54,
+                    XE: 54,
+                    xe: 54,
+                    Cs: 55,
+                    CS: 55,
+                    cs: 55,
+                    Ba: 56,
+                    BA: 56,
+                    ba: 56,
+                    La: 57,
+                    LA: 57,
+                    la: 57,
+                    Ce: 58,
+                    CE: 58,
+                    ce: 58,
+                    Pr: 59,
+                    PR: 59,
+                    pr: 59,
+                    Nd: 60,
+                    ND: 60,
+                    nd: 60,
+                    Pm: 61,
+                    PM: 61,
+                    pm: 61,
+                    Sm: 62,
+                    SM: 62,
+                    sm: 62,
+                    Eu: 63,
+                    EU: 63,
+                    eu: 63,
+                    Gd: 64,
+                    GD: 64,
+                    gd: 64,
+                    Tb: 65,
+                    TB: 65,
+                    tb: 65,
+                    Dy: 66,
+                    DY: 66,
+                    dy: 66,
+                    Ho: 67,
+                    HO: 67,
+                    ho: 67,
+                    Er: 68,
+                    ER: 68,
+                    er: 68,
+                    Tm: 69,
+                    TM: 69,
+                    tm: 69,
+                    Yb: 70,
+                    YB: 70,
+                    yb: 70,
+                    Lu: 71,
+                    LU: 71,
+                    lu: 71,
+                    Hf: 72,
+                    HF: 72,
+                    hf: 72,
+                    Ta: 73,
+                    TA: 73,
+                    ta: 73,
+                    W: 74,
+                    w: 74,
+                    Re: 75,
+                    RE: 75,
+                    re: 75,
+                    Os: 76,
+                    OS: 76,
+                    os: 76,
+                    Ir: 77,
+                    IR: 77,
+                    ir: 77,
+                    Pt: 78,
+                    PT: 78,
+                    pt: 78,
+                    Au: 79,
+                    AU: 79,
+                    au: 79,
+                    Hg: 80,
+                    HG: 80,
+                    hg: 80,
+                    Tl: 81,
+                    TL: 81,
+                    tl: 81,
+                    Pb: 82,
+                    PB: 82,
+                    pb: 82,
+                    Bi: 83,
+                    BI: 83,
+                    bi: 83,
+                    Po: 84,
+                    PO: 84,
+                    po: 84,
+                    At: 85,
+                    AT: 85,
+                    at: 85,
+                    Rn: 86,
+                    RN: 86,
+                    rn: 86,
+                    Fr: 87,
+                    FR: 87,
+                    fr: 87,
+                    Ra: 88,
+                    RA: 88,
+                    ra: 88,
+                    Ac: 89,
+                    AC: 89,
+                    ac: 89,
+                    Th: 90,
+                    TH: 90,
+                    th: 90,
+                    Pa: 91,
+                    PA: 91,
+                    pa: 91,
+                    U: 92,
+                    u: 92,
+                    Np: 93,
+                    NP: 93,
+                    np: 93,
+                    Pu: 94,
+                    PU: 94,
+                    pu: 94,
+                    Am: 95,
+                    AM: 95,
+                    am: 95,
+                    Cm: 96,
+                    CM: 96,
+                    cm: 96,
+                    Bk: 97,
+                    BK: 97,
+                    bk: 97,
+                    Cf: 98,
+                    CF: 98,
+                    cf: 98,
+                    Es: 99,
+                    ES: 99,
+                    es: 99,
+                    Fm: 100,
+                    FM: 100,
+                    fm: 100,
+                    Md: 101,
+                    MD: 101,
+                    md: 101,
+                    No: 102,
+                    NO: 102,
+                    no: 102,
+                    Lr: 103,
+                    LR: 103,
+                    lr: 103,
+                    Rf: 104,
+                    RF: 104,
+                    rf: 104,
+                    Db: 105,
+                    DB: 105,
+                    db: 105,
+                    Sg: 106,
+                    SG: 106,
+                    sg: 106,
+                    Bh: 107,
+                    BH: 107,
+                    bh: 107,
+                    Hs: 108,
+                    HS: 108,
+                    hs: 108,
+                    Mt: 109,
+                    MT: 109,
+                    mt: 109,
+                  }),
+                  (Ao = {
+                    0: 1.42,
+                    1: 1.42,
+                    3: 2.7,
+                    4: 2.7,
+                    6: 1.75,
+                    7: 1.6,
+                    8: 1.52,
+                    11: 2.7,
+                    12: 2.7,
+                    13: 2.7,
+                    14: 1.9,
+                    15: 1.9,
+                    16: 1.9,
+                    17: 1.8,
+                    19: 2.7,
+                    20: 2.7,
+                    21: 2.7,
+                    22: 2.7,
+                    23: 2.7,
+                    24: 2.7,
+                    25: 2.7,
+                    26: 2.7,
+                    27: 2.7,
+                    28: 2.7,
+                    29: 2.7,
+                    30: 2.7,
+                    31: 2.7,
+                    33: 2.68,
+                    37: 2.7,
+                    38: 2.7,
+                    39: 2.7,
+                    40: 2.7,
+                    41: 2.7,
+                    42: 2.7,
+                    43: 2.7,
+                    44: 2.7,
+                    45: 2.7,
+                    46: 2.7,
+                    47: 2.7,
+                    48: 2.7,
+                    49: 2.7,
+                    50: 2.7,
+                    55: 2.7,
+                    56: 2.7,
+                    57: 2.7,
+                    58: 2.7,
+                    59: 2.7,
+                    60: 2.7,
+                    61: 2.7,
+                    62: 2.7,
+                    63: 2.7,
+                    64: 2.7,
+                    65: 2.7,
+                    66: 2.7,
+                    67: 2.7,
+                    68: 2.7,
+                    69: 2.7,
+                    70: 2.7,
+                    71: 2.7,
+                    72: 2.7,
+                    73: 2.7,
+                    74: 2.7,
+                    75: 2.7,
+                    76: 2.7,
+                    77: 2.7,
+                    78: 2.7,
+                    79: 2.7,
+                    80: 2.7,
+                    81: 2.7,
+                    82: 2.7,
+                    83: 2.7,
+                    87: 2.7,
+                    88: 2.7,
+                    89: 2.7,
+                    90: 2.7,
+                    91: 2.7,
+                    92: 2.7,
+                    93: 2.7,
+                    94: 2.7,
+                    95: 2.7,
+                    96: 2.7,
+                    97: 2.7,
+                    98: 2.7,
+                    99: 2.7,
+                    100: 2.7,
+                    101: 2.7,
+                    102: 2.7,
+                    103: 2.7,
+                    104: 2.7,
+                    105: 2.7,
+                    106: 2.7,
+                    107: 2.7,
+                    108: 2.7,
+                    109: 2.88,
+                  }),
+                  (ho = {
+                    0: 0.8,
+                    20: 1.31,
+                    27: 1.3,
+                    35: 1.3,
+                    44: 1.05,
+                    54: 1,
+                    60: 1.84,
+                    72: 1.88,
+                    84: 1.75,
+                    85: 1.56,
+                    86: 1.76,
+                    98: 1.6,
+                    99: 1.68,
+                    100: 1.63,
+                    112: 1.55,
+                    113: 1.59,
+                    114: 1.36,
+                    129: 1.45,
+                    144: 1.6,
+                    170: 1.4,
+                    180: 1.55,
+                    202: 2.4,
+                    222: 2.24,
+                    224: 1.91,
+                    225: 1.98,
+                    243: 2.02,
+                    269: 2,
+                    293: 1.9,
+                    480: 2.3,
+                    512: 2.3,
+                    544: 2.3,
+                    612: 2.1,
+                    629: 1.54,
+                    665: 1,
+                    813: 2.6,
+                    854: 2.27,
+                    894: 1.93,
+                    896: 2.1,
+                    937: 2.05,
+                    938: 2.06,
+                    981: 1.62,
+                    1258: 2.68,
+                    1309: 2.33,
+                    1484: 1,
+                    1763: 2.14,
+                    1823: 2.48,
+                    1882: 2.1,
+                    1944: 1.72,
+                    2380: 2.34,
+                    3367: 2.44,
+                    3733: 2.11,
+                    3819: 2.6,
+                    3821: 2.36,
+                    4736: 2.75,
+                    5724: 2.73,
+                    5959: 2.63,
+                    6519: 2.84,
+                    6750: 2.87,
+                    8991: 2.81,
+                  }),
+                  (po = (function () {
+                    for (
+                      var t = lo.Utils.FastSet.create(),
+                        e = 0,
+                        n = [
+                          'LI',
+                          'NA',
+                          'K',
+                          'RB',
+                          'CS',
+                          'FR',
+                          'BE',
+                          'MG',
+                          'CA',
+                          'SR',
+                          'BA',
+                          'RA',
+                          'AL',
+                          'GA',
+                          'IN',
+                          'SN',
+                          'TL',
+                          'PB',
+                          'BI',
+                          'SC',
+                          'TI',
+                          'V',
+                          'CR',
+                          'MN',
+                          'FE',
+                          'CO',
+                          'NI',
+                          'CU',
+                          'ZN',
+                          'Y',
+                          'ZR',
+                          'NB',
+                          'MO',
+                          'TC',
+                          'RU',
+                          'RH',
+                          'PD',
+                          'AG',
+                          'CD',
+                          'LA',
+                          'HF',
+                          'TA',
+                          'W',
+                          'RE',
+                          'OS',
+                          'IR',
+                          'PT',
+                          'AU',
+                          'HG',
+                          'AC',
+                          'RF',
+                          'DB',
+                          'SG',
+                          'BH',
+                          'HS',
+                          'MT',
+                          'CE',
+                          'PR',
+                          'ND',
+                          'PM',
+                          'SM',
+                          'EU',
+                          'GD',
+                          'TB',
+                          'DY',
+                          'HO',
+                          'ER',
+                          'TM',
+                          'YB',
+                          'LU',
+                          'TH',
+                          'PA',
+                          'U',
+                          'NP',
+                          'PU',
+                          'AM',
+                          'CM',
+                          'BK',
+                          'CF',
+                          'ES',
+                          'FM',
+                          'MD',
+                          'NO',
+                          'LR',
+                        ];
+                      e < n.length;
+                      e++
+                    )
+                      t.add(co[n[e]]);
+                    return t;
+                  })()),
+                  (fo = co.H),
+                  (go = lo.Utils.ChunkedArray.add),
+                  (uo.computeBonds = function (t, e, n) {
+                    if (t.data.bonds.input) {
+                      var r = t,
+                        i = e,
+                        o = r.data.bonds.input;
+                      if (i.length === r.data.atoms.count) return o;
+                      for (
+                        var a = lo.Utils.Mask.ofIndices(r.data.atoms.count, i),
+                          s = o.atomAIndex,
+                          l = o.atomBIndex,
+                          u = o.type,
+                          c = 0,
+                          A = 0,
+                          h = o.count;
+                        A < h;
+                        A++
+                      )
+                        a.has(s[A]) && a.has(l[A]) && c++;
+                      for (
+                        var p = (i = lo.Utils.DataTable.ofDefinition(uo.Tables.Bonds, c))
+                            .atomAIndex,
+                          d = i.atomBIndex,
+                          f = i.type,
+                          g = r.data.atoms.elementSymbol,
+                          m = 0,
+                          A = 0,
+                          h = o.count;
+                        A < h;
+                        A++
+                      ) {
+                        var v = s[A],
+                          b = l[A];
+                        a.has(v) &&
+                          a.has(b) &&
+                          ((p[m] = v),
+                          (d[m] = b),
+                          (v = Ds(g[v]) || Ds(g[b])),
+                          (f[m] = v ? 6 : u[A]),
+                          m++);
+                      }
+                      return i;
+                    }
+                    return Ss(t, e, {
+                      maxHbondLength: (n && n.maxHbondLength) || 1.15,
+                      forceCompute: !(!n || !n.forceCompute),
+                    });
+                  }),
+                  (r = F = F || {}),
+                  (function (t) {
+                    var r,
+                      o = mo.Geometry.LinearAlgebra.Matrix4,
+                      n = mo.Geometry.LinearAlgebra.Vector4;
+                    function e(t) {
+                      if (
+                        ((this.info = t),
+                        (this.temp = o.zero()),
+                        (this.tempV = new Float64Array(4)),
+                        void 0 === r.Spacegroup[t.spacegroupName])
+                      )
+                        throw (
+                          "'" +
+                          t.spacegroupName +
+                          "' is not a spacegroup recognized by the library."
+                        );
+                      (this.space = this.getSpace()), (this.operators = this.getOperators());
+                    }
+                    Object.defineProperty(e.prototype, 'operatorCount', {
+                      get: function () {
+                        return this.operators.length;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      (e.prototype.getOperatorMatrix = function (t, e, n, r, i) {
+                        return (
+                          (this.tempV[0] = e),
+                          (this.tempV[1] = n),
+                          (this.tempV[2] = r),
+                          o.fromTranslation(this.temp, this.tempV),
+                          o.mul(
+                            i,
+                            o.mul(i, o.mul(i, this.space.fromFrac, this.temp), this.operators[t]),
+                            this.space.toFrac,
+                          ),
+                          i
+                        );
+                      }),
+                      (e.prototype.getSpace = function () {
+                        var t = this.info.toFracTransform,
+                          e = o.zero();
+                        return (
+                          o.invert(e, t),
+                          {
+                            toFrac: t,
+                            fromFrac: e,
+                            baseX: n.transform(n.zero(), n.fromValues(1, 0, 0, 1), t),
+                            baseY: n.transform(n.zero(), n.fromValues(0, 1, 0, 1), t),
+                            baseZ: n.transform(n.zero(), n.fromValues(0, 0, 1, 1), t),
+                          }
+                        );
+                      }),
+                      (e.getOperator = function (t) {
+                        var e = r.Transform[t[0]],
+                          n = r.Transform[t[1]],
+                          t = r.Transform[t[2]];
+                        return o.ofRows([e, n, t, [0, 0, 0, 1]]);
+                      }),
+                      (e.prototype.getOperators = function () {
+                        return r.Group[r.Spacegroup[this.info.spacegroupName]].map(function (t) {
+                          return e.getOperator(r.Operator[t]);
+                        });
+                      }),
+                      (t.Spacegroup = e),
+                      ((t = r = t.SpacegroupTables || (t.SpacegroupTables = {})).Transform = [
+                        [1, 0, 0, 0],
+                        [0, 1, 0, 0],
+                        [0, 0, 1, 0],
+                        [-1, 0, 0, 0],
+                        [0, -1, 0, 0],
+                        [0, 0, -1, 0],
+                        [0, 1, 0, 0.5],
+                        [1, 0, 0, 0.5],
+                        [-1, 0, 0, 0.5],
+                        [0, 0, 1, 0.5],
+                        [0, -1, 0, 0.5],
+                        [0, 0, -1, 0.5],
+                        [1, 0, 0, 0.25],
+                        [0, -1, 0, 0.25],
+                        [0, 0, 1, 0.25],
+                        [-1, 0, 0, 0.25],
+                        [0, 1, 0, 0.25],
+                        [0, -1, 0, 0.75],
+                        [0, 0, 1, 0.75],
+                        [0, 1, 0, 0.75],
+                        [1, 0, 0, 0.75],
+                        [-1, 0, 0, 0.75],
+                        [0, 0, -1, 0.25],
+                        [0, 0, -1, 0.75],
+                        [1, -1, 0, 0],
+                        [-1, 1, 0, 0],
+                        [0, 0, 1, 0.333333333333333],
+                        [0, 0, 1, 0.666666666666667],
+                        [1, 0, 0, 0.666666666666667],
+                        [0, 1, 0, 0.333333333333333],
+                        [0, -1, 0, 0.666666666666667],
+                        [1, -1, 0, 0.333333333333333],
+                        [-1, 1, 0, 0.666666666666667],
+                        [-1, 0, 0, 0.333333333333333],
+                        [1, 0, 0, 0.333333333333333],
+                        [0, 1, 0, 0.666666666666667],
+                        [0, -1, 0, 0.333333333333333],
+                        [1, -1, 0, 0.666666666666667],
+                        [-1, 1, 0, 0.333333333333333],
+                        [-1, 0, 0, 0.666666666666667],
+                        [0, 0, -1, 0.333333333333333],
+                        [0, 0, -1, 0.666666666666667],
+                        [0, 0, 1, 0.833333333333333],
+                        [0, 0, 1, 0.166666666666667],
+                        [0, 0, -1, 0.833333333333333],
+                        [0, 0, -1, 0.166666666666667],
+                      ]),
+                      (t.Operator = [
+                        [0, 1, 2],
+                        [3, 4, 5],
+                        [3, 1, 5],
+                        [3, 6, 5],
+                        [7, 6, 2],
+                        [8, 6, 5],
+                        [0, 4, 2],
+                        [0, 4, 9],
+                        [7, 10, 2],
+                        [7, 10, 9],
+                        [0, 10, 2],
+                        [8, 10, 5],
+                        [3, 1, 11],
+                        [3, 6, 11],
+                        [0, 10, 9],
+                        [8, 6, 11],
+                        [3, 4, 2],
+                        [0, 4, 5],
+                        [3, 4, 9],
+                        [7, 10, 5],
+                        [8, 4, 9],
+                        [8, 10, 9],
+                        [8, 10, 2],
+                        [0, 6, 9],
+                        [3, 10, 9],
+                        [0, 10, 11],
+                        [7, 1, 9],
+                        [8, 1, 11],
+                        [7, 4, 11],
+                        [7, 6, 9],
+                        [7, 10, 11],
+                        [3, 10, 2],
+                        [8, 1, 5],
+                        [0, 4, 11],
+                        [3, 1, 2],
+                        [3, 1, 9],
+                        [7, 4, 2],
+                        [8, 1, 2],
+                        [8, 1, 9],
+                        [3, 6, 9],
+                        [7, 4, 9],
+                        [8, 6, 2],
+                        [8, 6, 9],
+                        [3, 6, 2],
+                        [12, 13, 14],
+                        [15, 16, 14],
+                        [12, 17, 18],
+                        [15, 19, 18],
+                        [20, 13, 18],
+                        [21, 16, 18],
+                        [20, 17, 14],
+                        [21, 19, 14],
+                        [0, 1, 5],
+                        [8, 10, 11],
+                        [7, 6, 11],
+                        [7, 6, 5],
+                        [8, 4, 2],
+                        [7, 4, 5],
+                        [7, 1, 5],
+                        [7, 1, 11],
+                        [0, 10, 5],
+                        [0, 1, 11],
+                        [0, 6, 11],
+                        [0, 6, 5],
+                        [3, 10, 11],
+                        [8, 4, 11],
+                        [15, 13, 22],
+                        [12, 16, 22],
+                        [15, 17, 23],
+                        [12, 19, 23],
+                        [21, 13, 23],
+                        [20, 16, 23],
+                        [21, 17, 22],
+                        [20, 19, 22],
+                        [4, 0, 2],
+                        [1, 3, 2],
+                        [4, 0, 14],
+                        [1, 3, 18],
+                        [4, 0, 9],
+                        [1, 3, 9],
+                        [4, 0, 18],
+                        [1, 3, 14],
+                        [10, 7, 9],
+                        [6, 8, 9],
+                        [4, 7, 14],
+                        [6, 3, 18],
+                        [10, 0, 18],
+                        [1, 8, 14],
+                        [1, 3, 5],
+                        [4, 0, 5],
+                        [6, 8, 11],
+                        [10, 7, 11],
+                        [1, 3, 11],
+                        [4, 0, 11],
+                        [10, 7, 2],
+                        [6, 8, 2],
+                        [3, 10, 22],
+                        [7, 1, 23],
+                        [8, 4, 23],
+                        [0, 6, 22],
+                        [1, 0, 5],
+                        [4, 3, 5],
+                        [1, 0, 23],
+                        [4, 3, 22],
+                        [10, 7, 14],
+                        [6, 8, 18],
+                        [8, 6, 22],
+                        [7, 10, 23],
+                        [4, 3, 11],
+                        [1, 0, 11],
+                        [1, 0, 22],
+                        [4, 3, 23],
+                        [10, 7, 18],
+                        [6, 8, 14],
+                        [8, 6, 23],
+                        [7, 10, 22],
+                        [6, 7, 11],
+                        [10, 8, 11],
+                        [8, 1, 23],
+                        [0, 10, 22],
+                        [3, 6, 22],
+                        [7, 4, 23],
+                        [4, 3, 2],
+                        [1, 0, 2],
+                        [10, 8, 2],
+                        [6, 7, 2],
+                        [4, 3, 9],
+                        [1, 0, 9],
+                        [10, 8, 9],
+                        [6, 7, 9],
+                        [4, 8, 14],
+                        [6, 0, 18],
+                        [10, 3, 18],
+                        [1, 7, 14],
+                        [4, 8, 18],
+                        [6, 0, 14],
+                        [10, 3, 14],
+                        [1, 7, 18],
+                        [6, 7, 5],
+                        [10, 8, 5],
+                        [6, 8, 5],
+                        [10, 7, 5],
+                        [8, 1, 22],
+                        [0, 10, 23],
+                        [3, 6, 23],
+                        [7, 4, 22],
+                        [4, 24, 2],
+                        [25, 3, 2],
+                        [4, 24, 26],
+                        [25, 3, 27],
+                        [4, 24, 27],
+                        [25, 3, 26],
+                        [28, 29, 26],
+                        [30, 31, 26],
+                        [32, 33, 26],
+                        [34, 35, 27],
+                        [36, 37, 27],
+                        [38, 39, 27],
+                        [2, 0, 1],
+                        [1, 2, 0],
+                        [1, 25, 5],
+                        [24, 0, 5],
+                        [39, 36, 40],
+                        [35, 38, 40],
+                        [37, 34, 40],
+                        [33, 30, 41],
+                        [29, 32, 41],
+                        [31, 28, 41],
+                        [5, 3, 4],
+                        [4, 5, 3],
+                        [25, 1, 5],
+                        [0, 24, 5],
+                        [24, 4, 5],
+                        [3, 25, 5],
+                        [4, 3, 41],
+                        [25, 1, 40],
+                        [24, 4, 41],
+                        [3, 25, 40],
+                        [4, 3, 40],
+                        [25, 1, 41],
+                        [24, 4, 40],
+                        [3, 25, 41],
+                        [35, 34, 40],
+                        [37, 36, 40],
+                        [39, 38, 40],
+                        [29, 28, 41],
+                        [31, 30, 41],
+                        [33, 32, 41],
+                        [3, 5, 4],
+                        [5, 4, 3],
+                        [25, 1, 2],
+                        [0, 24, 2],
+                        [24, 4, 2],
+                        [3, 25, 2],
+                        [25, 1, 9],
+                        [0, 24, 9],
+                        [24, 4, 9],
+                        [3, 25, 9],
+                        [30, 33, 26],
+                        [32, 29, 26],
+                        [28, 31, 26],
+                        [36, 39, 27],
+                        [38, 35, 27],
+                        [34, 37, 27],
+                        [0, 2, 1],
+                        [2, 1, 0],
+                        [30, 33, 42],
+                        [32, 29, 42],
+                        [28, 31, 42],
+                        [36, 39, 43],
+                        [38, 35, 43],
+                        [34, 37, 43],
+                        [7, 9, 6],
+                        [9, 6, 7],
+                        [25, 1, 11],
+                        [0, 24, 11],
+                        [24, 4, 11],
+                        [3, 25, 11],
+                        [35, 34, 44],
+                        [37, 36, 44],
+                        [39, 38, 44],
+                        [29, 28, 45],
+                        [31, 30, 45],
+                        [33, 32, 45],
+                        [8, 11, 10],
+                        [11, 10, 8],
+                        [1, 25, 2],
+                        [24, 0, 2],
+                        [1, 25, 42],
+                        [24, 0, 43],
+                        [1, 25, 43],
+                        [24, 0, 42],
+                        [1, 25, 27],
+                        [24, 0, 26],
+                        [1, 25, 26],
+                        [24, 0, 27],
+                        [1, 25, 9],
+                        [24, 0, 9],
+                        [4, 24, 5],
+                        [25, 3, 5],
+                        [4, 24, 11],
+                        [25, 3, 11],
+                        [1, 0, 40],
+                        [4, 3, 44],
+                        [0, 24, 45],
+                        [1, 0, 41],
+                        [4, 3, 45],
+                        [0, 24, 44],
+                        [0, 24, 40],
+                        [0, 24, 41],
+                        [2, 3, 4],
+                        [5, 3, 1],
+                        [5, 0, 4],
+                        [4, 2, 3],
+                        [1, 5, 3],
+                        [4, 5, 0],
+                        [2, 7, 6],
+                        [2, 8, 10],
+                        [5, 8, 6],
+                        [5, 7, 10],
+                        [1, 9, 7],
+                        [4, 9, 8],
+                        [1, 11, 8],
+                        [4, 11, 7],
+                        [9, 0, 6],
+                        [9, 3, 10],
+                        [11, 3, 6],
+                        [11, 0, 10],
+                        [6, 2, 7],
+                        [10, 2, 8],
+                        [6, 5, 8],
+                        [10, 5, 7],
+                        [9, 7, 1],
+                        [9, 8, 4],
+                        [11, 8, 1],
+                        [11, 7, 4],
+                        [6, 9, 0],
+                        [10, 9, 3],
+                        [6, 11, 3],
+                        [10, 11, 0],
+                        [9, 7, 6],
+                        [9, 8, 10],
+                        [11, 8, 6],
+                        [11, 7, 10],
+                        [6, 9, 7],
+                        [10, 9, 8],
+                        [6, 11, 8],
+                        [10, 11, 7],
+                        [2, 3, 10],
+                        [5, 8, 1],
+                        [11, 0, 4],
+                        [10, 2, 3],
+                        [1, 5, 8],
+                        [4, 11, 0],
+                        [5, 0, 1],
+                        [2, 0, 4],
+                        [2, 3, 1],
+                        [1, 5, 0],
+                        [4, 2, 0],
+                        [1, 2, 3],
+                        [11, 8, 10],
+                        [11, 7, 6],
+                        [9, 7, 10],
+                        [9, 8, 6],
+                        [10, 11, 8],
+                        [6, 11, 7],
+                        [10, 9, 7],
+                        [6, 9, 8],
+                        [5, 8, 10],
+                        [5, 7, 6],
+                        [2, 7, 10],
+                        [2, 8, 6],
+                        [4, 11, 8],
+                        [1, 11, 7],
+                        [4, 9, 7],
+                        [1, 9, 8],
+                        [11, 3, 10],
+                        [11, 0, 6],
+                        [9, 0, 10],
+                        [9, 3, 6],
+                        [10, 5, 8],
+                        [6, 5, 7],
+                        [10, 2, 7],
+                        [6, 2, 8],
+                        [11, 8, 4],
+                        [11, 7, 1],
+                        [9, 7, 4],
+                        [9, 8, 1],
+                        [10, 11, 3],
+                        [6, 11, 0],
+                        [10, 9, 0],
+                        [6, 9, 3],
+                        [22, 15, 13],
+                        [22, 12, 16],
+                        [14, 12, 13],
+                        [14, 15, 16],
+                        [13, 22, 15],
+                        [16, 22, 12],
+                        [13, 14, 12],
+                        [16, 14, 15],
+                        [22, 21, 17],
+                        [22, 20, 19],
+                        [14, 20, 17],
+                        [14, 21, 19],
+                        [13, 23, 21],
+                        [16, 23, 20],
+                        [13, 18, 20],
+                        [16, 18, 21],
+                        [23, 15, 17],
+                        [23, 12, 19],
+                        [18, 12, 17],
+                        [18, 15, 19],
+                        [17, 22, 21],
+                        [19, 22, 20],
+                        [17, 14, 20],
+                        [19, 14, 21],
+                        [23, 21, 13],
+                        [23, 20, 16],
+                        [18, 20, 13],
+                        [18, 21, 16],
+                        [17, 23, 15],
+                        [19, 23, 12],
+                        [17, 18, 12],
+                        [19, 18, 15],
+                        [5, 0, 6],
+                        [2, 7, 4],
+                        [9, 3, 1],
+                        [6, 5, 0],
+                        [4, 2, 7],
+                        [1, 9, 3],
+                        [0, 2, 4],
+                        [3, 2, 1],
+                        [0, 5, 1],
+                        [2, 1, 3],
+                        [2, 4, 0],
+                        [5, 1, 0],
+                        [7, 9, 10],
+                        [8, 9, 6],
+                        [7, 11, 6],
+                        [9, 6, 8],
+                        [9, 10, 7],
+                        [11, 6, 7],
+                        [1, 7, 11],
+                        [4, 8, 11],
+                        [1, 8, 9],
+                        [4, 7, 9],
+                        [0, 9, 10],
+                        [3, 9, 6],
+                        [3, 11, 10],
+                        [0, 11, 6],
+                        [2, 6, 8],
+                        [2, 10, 7],
+                        [5, 6, 7],
+                        [5, 10, 8],
+                        [6, 0, 11],
+                        [10, 3, 11],
+                        [6, 3, 9],
+                        [10, 0, 9],
+                        [7, 2, 10],
+                        [8, 2, 6],
+                        [8, 5, 10],
+                        [7, 5, 6],
+                        [9, 1, 8],
+                        [9, 4, 7],
+                        [11, 1, 7],
+                        [11, 4, 8],
+                        [7, 9, 4],
+                        [8, 9, 1],
+                        [8, 11, 4],
+                        [7, 11, 1],
+                        [9, 6, 3],
+                        [9, 10, 0],
+                        [11, 6, 0],
+                        [11, 10, 3],
+                        [19, 12, 23],
+                        [13, 15, 22],
+                        [16, 21, 18],
+                        [17, 20, 14],
+                        [20, 14, 17],
+                        [21, 18, 16],
+                        [15, 22, 13],
+                        [12, 23, 19],
+                        [18, 16, 21],
+                        [14, 17, 20],
+                        [23, 19, 12],
+                        [22, 13, 15],
+                        [19, 20, 22],
+                        [13, 21, 23],
+                        [16, 15, 14],
+                        [17, 12, 18],
+                        [20, 18, 13],
+                        [21, 14, 19],
+                        [15, 23, 17],
+                        [12, 22, 16],
+                        [18, 19, 15],
+                        [14, 13, 12],
+                        [23, 16, 20],
+                        [22, 17, 21],
+                        [16, 12, 22],
+                        [17, 15, 23],
+                        [19, 21, 14],
+                        [13, 20, 18],
+                        [12, 14, 13],
+                        [15, 18, 19],
+                        [21, 22, 17],
+                        [20, 23, 16],
+                        [14, 16, 15],
+                        [18, 17, 12],
+                        [22, 19, 20],
+                        [23, 13, 21],
+                        [16, 20, 23],
+                        [17, 21, 22],
+                        [19, 15, 18],
+                        [13, 12, 14],
+                        [12, 18, 17],
+                        [15, 14, 16],
+                        [21, 23, 13],
+                        [20, 22, 19],
+                        [14, 19, 21],
+                        [18, 13, 20],
+                        [22, 16, 12],
+                        [23, 17, 15],
+                        [19, 12, 22],
+                        [17, 21, 23],
+                        [16, 15, 18],
+                        [13, 20, 14],
+                        [20, 14, 13],
+                        [15, 18, 16],
+                        [21, 23, 17],
+                        [12, 22, 19],
+                        [18, 16, 15],
+                        [14, 13, 20],
+                        [22, 19, 12],
+                        [23, 17, 21],
+                        [3, 2, 4],
+                        [3, 5, 1],
+                        [0, 5, 4],
+                        [2, 4, 3],
+                        [5, 1, 3],
+                        [5, 4, 0],
+                        [1, 7, 9],
+                        [4, 8, 9],
+                        [1, 8, 11],
+                        [4, 7, 11],
+                        [0, 9, 6],
+                        [3, 9, 10],
+                        [3, 11, 6],
+                        [0, 11, 10],
+                        [2, 6, 7],
+                        [2, 10, 8],
+                        [5, 6, 8],
+                        [5, 10, 7],
+                        [6, 0, 9],
+                        [10, 3, 9],
+                        [6, 3, 11],
+                        [10, 0, 11],
+                        [7, 2, 6],
+                        [8, 2, 10],
+                        [8, 5, 6],
+                        [7, 5, 10],
+                        [9, 1, 7],
+                        [9, 4, 8],
+                        [11, 1, 8],
+                        [11, 4, 7],
+                        [7, 9, 1],
+                        [8, 9, 4],
+                        [8, 11, 1],
+                        [7, 11, 4],
+                        [9, 6, 0],
+                        [9, 10, 3],
+                        [11, 6, 3],
+                        [11, 10, 0],
+                        [8, 9, 10],
+                        [8, 11, 6],
+                        [7, 11, 10],
+                        [9, 10, 8],
+                        [11, 6, 8],
+                        [11, 10, 7],
+                        [6, 0, 2],
+                        [10, 3, 2],
+                        [6, 3, 5],
+                        [10, 0, 5],
+                        [7, 2, 1],
+                        [8, 2, 4],
+                        [8, 5, 1],
+                        [7, 5, 4],
+                        [9, 1, 0],
+                        [9, 4, 3],
+                        [11, 1, 3],
+                        [11, 4, 0],
+                        [1, 7, 2],
+                        [4, 8, 2],
+                        [1, 8, 5],
+                        [4, 7, 5],
+                        [0, 9, 1],
+                        [3, 9, 4],
+                        [3, 11, 1],
+                        [0, 11, 4],
+                        [2, 6, 0],
+                        [2, 10, 3],
+                        [5, 6, 3],
+                        [5, 10, 0],
+                        [0, 2, 6],
+                        [3, 2, 10],
+                        [3, 5, 6],
+                        [0, 5, 10],
+                        [2, 1, 7],
+                        [2, 4, 8],
+                        [5, 1, 8],
+                        [5, 4, 7],
+                        [16, 12, 14],
+                        [13, 21, 18],
+                        [19, 15, 23],
+                        [17, 20, 22],
+                        [12, 14, 16],
+                        [21, 18, 13],
+                        [15, 23, 19],
+                        [20, 22, 17],
+                        [14, 16, 12],
+                        [18, 13, 21],
+                        [23, 19, 15],
+                        [22, 17, 20],
+                        [19, 20, 18],
+                        [17, 15, 14],
+                        [16, 21, 22],
+                        [13, 12, 23],
+                        [20, 18, 19],
+                        [15, 14, 17],
+                        [21, 22, 16],
+                        [12, 23, 13],
+                        [18, 19, 20],
+                        [14, 17, 15],
+                        [22, 16, 21],
+                        [23, 13, 12],
+                        [6, 0, 5],
+                        [10, 3, 5],
+                        [6, 3, 2],
+                        [10, 0, 2],
+                        [7, 2, 4],
+                        [8, 2, 1],
+                        [8, 5, 4],
+                        [7, 5, 1],
+                        [9, 1, 3],
+                        [9, 4, 0],
+                        [11, 1, 0],
+                        [11, 4, 3],
+                        [1, 7, 5],
+                        [4, 8, 5],
+                        [1, 8, 2],
+                        [4, 7, 2],
+                        [0, 9, 4],
+                        [3, 9, 1],
+                        [3, 11, 4],
+                        [0, 11, 1],
+                        [2, 6, 3],
+                        [2, 10, 0],
+                        [5, 6, 0],
+                        [5, 10, 3],
+                        [0, 2, 10],
+                        [3, 2, 6],
+                        [3, 5, 10],
+                        [0, 5, 6],
+                        [2, 1, 8],
+                        [2, 4, 7],
+                        [5, 1, 7],
+                        [5, 4, 8],
+                        [21, 17, 23],
+                        [20, 16, 22],
+                        [12, 13, 18],
+                        [15, 19, 14],
+                        [23, 21, 17],
+                        [22, 20, 16],
+                        [18, 12, 13],
+                        [14, 15, 19],
+                        [17, 23, 21],
+                        [16, 22, 20],
+                        [13, 18, 12],
+                        [19, 14, 15],
+                        [21, 13, 22],
+                        [20, 19, 23],
+                        [12, 17, 14],
+                        [15, 16, 18],
+                        [23, 15, 13],
+                        [22, 12, 19],
+                        [18, 20, 17],
+                        [14, 21, 16],
+                        [17, 22, 15],
+                        [16, 23, 12],
+                        [13, 14, 20],
+                        [19, 18, 21],
+                        [15, 17, 22],
+                        [12, 16, 23],
+                        [20, 13, 14],
+                        [21, 19, 18],
+                        [22, 21, 13],
+                        [23, 20, 19],
+                        [14, 12, 17],
+                        [18, 15, 16],
+                        [13, 23, 15],
+                        [19, 22, 12],
+                        [17, 18, 20],
+                        [16, 14, 21],
+                        [15, 13, 23],
+                        [12, 19, 22],
+                        [20, 17, 18],
+                        [21, 16, 14],
+                        [22, 15, 17],
+                        [23, 12, 16],
+                        [14, 20, 13],
+                        [18, 21, 19],
+                        [13, 22, 21],
+                        [19, 23, 20],
+                        [17, 14, 12],
+                        [16, 18, 15],
+                        [6, 5, 3],
+                        [4, 9, 3],
+                        [9, 3, 4],
+                        [5, 7, 4],
+                        [4, 5, 7],
+                        [5, 3, 6],
+                      ]),
+                      (t.Group = [
+                        [0],
+                        [0, 1],
+                        [0, 2],
+                        [0, 3],
+                        [0, 2, 4, 5],
+                        [0, 6],
+                        [0, 7],
+                        [0, 6, 4, 8],
+                        [0, 7, 4, 9],
+                        [0, 6, 2, 1],
+                        [0, 3, 1, 10],
+                        [0, 6, 2, 1, 4, 8, 5, 11],
+                        [0, 12, 1, 7],
+                        [0, 1, 13, 14],
+                        [0, 12, 1, 7, 4, 15, 11, 9],
+                        [0, 16, 2, 17],
+                        [0, 18, 12, 17],
+                        [0, 16, 5, 19],
+                        [0, 20, 13, 19],
+                        [0, 18, 12, 17, 4, 21, 15, 19],
+                        [0, 16, 2, 17, 4, 22, 5, 19],
+                        [0, 16, 2, 17, 23, 24, 13, 25, 26, 20, 27, 28, 4, 22, 5, 19],
+                        [0, 16, 17, 2, 29, 21, 30, 15],
+                        [0, 20, 13, 19, 29, 31, 32, 33],
+                        [0, 16, 6, 34],
+                        [0, 18, 7, 34],
+                        [0, 16, 7, 35],
+                        [0, 16, 36, 37],
+                        [0, 18, 36, 38],
+                        [0, 16, 14, 39],
+                        [0, 20, 40, 34],
+                        [0, 16, 8, 41],
+                        [0, 18, 8, 42],
+                        [0, 16, 9, 42],
+                        [0, 16, 6, 34, 4, 22, 8, 41],
+                        [0, 18, 7, 34, 4, 21, 9, 41],
+                        [0, 16, 7, 35, 4, 22, 9, 42],
+                        [0, 16, 6, 34, 23, 24, 14, 39],
+                        [0, 16, 10, 43, 23, 24, 7, 35],
+                        [0, 16, 36, 37, 23, 24, 9, 42],
+                        [0, 16, 8, 41, 23, 24, 40, 38],
+                        [0, 16, 6, 34, 23, 24, 14, 39, 26, 20, 40, 38, 4, 22, 8, 41],
+                        [0, 16, 44, 45, 23, 24, 46, 47, 26, 20, 48, 49, 4, 22, 50, 51],
+                        [0, 16, 6, 34, 29, 21, 9, 42],
+                        [0, 16, 8, 41, 29, 21, 7, 35],
+                        [0, 16, 36, 37, 29, 21, 14, 39],
+                        [0, 16, 2, 17, 1, 52, 6, 34],
+                        [0, 16, 2, 17, 53, 54, 9, 42],
+                        [0, 16, 12, 33, 1, 52, 7, 35],
+                        [0, 16, 2, 17, 11, 55, 8, 41],
+                        [0, 56, 2, 57, 1, 58, 6, 37],
+                        [0, 56, 15, 25, 1, 58, 9, 39],
+                        [0, 20, 27, 17, 1, 59, 40, 34],
+                        [0, 56, 12, 28, 1, 58, 7, 38],
+                        [0, 16, 5, 19, 1, 52, 8, 41],
+                        [0, 22, 13, 28, 1, 55, 14, 38],
+                        [0, 18, 13, 60, 1, 61, 14, 43],
+                        [0, 16, 15, 30, 1, 52, 9, 42],
+                        [0, 16, 5, 19, 11, 55, 6, 34],
+                        [0, 21, 12, 19, 1, 54, 7, 41],
+                        [0, 20, 13, 19, 1, 59, 14, 41],
+                        [0, 20, 3, 30, 1, 59, 10, 42],
+                        [0, 18, 12, 17, 1, 61, 7, 34, 4, 21, 15, 19, 11, 54, 9, 41],
+                        [0, 24, 13, 17, 1, 62, 14, 34, 4, 20, 27, 19, 11, 59, 40, 41],
+                        [0, 16, 2, 17, 1, 52, 6, 34, 4, 22, 5, 19, 11, 55, 8, 41],
+                        [0, 16, 12, 33, 1, 52, 7, 35, 4, 22, 15, 30, 11, 55, 9, 42],
+                        [0, 31, 3, 17, 1, 63, 10, 34, 4, 56, 32, 19, 11, 58, 36, 41],
+                        [0, 22, 2, 19, 64, 59, 14, 38, 4, 16, 5, 17, 65, 62, 40, 39],
+                        [
+                          0, 16, 2, 17, 1, 52, 6, 34, 23, 24, 13, 25, 64, 62, 14, 39, 26, 20, 27,
+                          28, 65, 59, 40, 38, 4, 22, 5, 19, 11, 55, 8, 41,
+                        ],
+                        [
+                          0, 16, 2, 17, 66, 67, 44, 45, 23, 24, 13, 25, 68, 69, 46, 47, 26, 20, 27,
+                          28, 70, 71, 48, 49, 4, 22, 5, 19, 72, 73, 50, 51,
+                        ],
+                        [0, 16, 2, 17, 1, 52, 6, 34, 29, 21, 15, 30, 53, 54, 9, 42],
+                        [0, 16, 5, 19, 1, 52, 8, 41, 29, 21, 12, 33, 53, 54, 7, 35],
+                        [0, 20, 13, 19, 1, 59, 14, 41, 29, 31, 32, 33, 53, 63, 36, 35],
+                        [0, 31, 3, 17, 1, 63, 10, 34, 29, 20, 27, 30, 53, 59, 40, 42],
+                        [0, 16, 74, 75],
+                        [0, 18, 76, 77],
+                        [0, 16, 78, 79],
+                        [0, 18, 80, 81],
+                        [0, 16, 74, 75, 29, 21, 82, 83],
+                        [0, 21, 84, 85, 29, 16, 86, 87],
+                        [0, 16, 88, 89],
+                        [0, 16, 88, 89, 29, 21, 90, 91],
+                        [0, 16, 74, 75, 1, 52, 88, 89],
+                        [0, 16, 78, 79, 1, 52, 92, 93],
+                        [0, 16, 94, 95, 11, 55, 88, 89],
+                        [0, 16, 82, 83, 53, 54, 88, 89],
+                        [0, 16, 74, 75, 1, 52, 88, 89, 29, 21, 82, 83, 53, 54, 90, 91],
+                        [0, 21, 84, 85, 96, 97, 88, 91, 29, 16, 86, 87, 98, 99, 90, 89],
+                        [0, 16, 74, 75, 2, 17, 100, 101],
+                        [0, 16, 94, 95, 5, 19, 100, 101],
+                        [0, 18, 76, 77, 2, 33, 102, 103],
+                        [0, 18, 104, 105, 106, 107, 100, 108],
+                        [0, 16, 78, 79, 2, 17, 109, 108],
+                        [0, 16, 82, 83, 15, 30, 100, 101],
+                        [0, 18, 80, 81, 2, 33, 110, 111],
+                        [0, 18, 112, 113, 114, 115, 100, 108],
+                        [0, 16, 74, 75, 2, 17, 100, 101, 29, 21, 82, 83, 15, 30, 116, 117],
+                        [0, 21, 84, 85, 118, 119, 116, 101, 29, 16, 86, 87, 120, 121, 100, 117],
+                        [0, 16, 74, 75, 6, 34, 122, 123],
+                        [0, 16, 74, 75, 8, 41, 124, 125],
+                        [0, 16, 78, 79, 7, 35, 122, 123],
+                        [0, 16, 82, 83, 9, 42, 122, 123],
+                        [0, 16, 74, 75, 7, 35, 126, 127],
+                        [0, 16, 74, 75, 9, 42, 128, 129],
+                        [0, 16, 78, 79, 6, 34, 126, 127],
+                        [0, 16, 78, 79, 8, 41, 128, 129],
+                        [0, 16, 74, 75, 6, 34, 122, 123, 29, 21, 82, 83, 9, 42, 128, 129],
+                        [0, 16, 74, 75, 7, 35, 126, 127, 29, 21, 82, 83, 8, 41, 124, 125],
+                        [0, 21, 84, 85, 6, 42, 130, 131, 29, 16, 86, 87, 9, 34, 132, 133],
+                        [0, 21, 84, 85, 7, 41, 134, 135, 29, 16, 86, 87, 8, 35, 136, 137],
+                        [0, 16, 89, 88, 2, 17, 122, 123],
+                        [0, 16, 89, 88, 12, 33, 126, 127],
+                        [0, 16, 89, 88, 5, 19, 124, 125],
+                        [0, 16, 89, 88, 15, 30, 128, 129],
+                        [0, 16, 88, 89, 6, 34, 100, 101],
+                        [0, 16, 89, 88, 7, 35, 109, 108],
+                        [0, 16, 89, 88, 8, 41, 138, 139],
+                        [0, 16, 89, 88, 9, 42, 116, 117],
+                        [0, 16, 89, 88, 6, 34, 100, 101, 29, 21, 91, 90, 9, 42, 116, 117],
+                        [0, 16, 89, 88, 7, 35, 109, 108, 29, 21, 91, 90, 8, 41, 138, 139],
+                        [0, 16, 89, 88, 2, 17, 122, 123, 29, 21, 91, 90, 15, 30, 128, 129],
+                        [0, 16, 89, 88, 118, 121, 132, 131, 29, 21, 91, 90, 120, 119, 130, 133],
+                        [0, 16, 74, 75, 2, 17, 100, 101, 1, 52, 88, 89, 6, 34, 122, 123],
+                        [0, 16, 74, 75, 12, 33, 109, 108, 1, 52, 88, 89, 7, 35, 126, 127],
+                        [0, 16, 74, 75, 2, 17, 100, 101, 11, 55, 140, 141, 8, 41, 124, 125],
+                        [0, 16, 74, 75, 2, 17, 100, 101, 53, 54, 90, 91, 9, 42, 128, 129],
+                        [0, 16, 74, 75, 5, 19, 138, 139, 1, 52, 88, 89, 8, 41, 124, 125],
+                        [0, 16, 74, 75, 15, 30, 116, 117, 1, 52, 88, 89, 9, 42, 128, 129],
+                        [0, 16, 94, 95, 5, 19, 100, 101, 11, 55, 88, 89, 6, 34, 124, 125],
+                        [0, 16, 94, 95, 15, 30, 109, 108, 11, 55, 88, 89, 7, 35, 128, 129],
+                        [0, 16, 78, 79, 2, 17, 109, 108, 1, 52, 92, 93, 6, 34, 126, 127],
+                        [0, 16, 78, 79, 12, 33, 100, 101, 1, 52, 92, 93, 7, 35, 122, 123],
+                        [0, 16, 82, 83, 12, 33, 138, 139, 53, 54, 88, 89, 8, 41, 126, 127],
+                        [0, 16, 82, 83, 2, 17, 116, 117, 53, 54, 88, 89, 9, 42, 122, 123],
+                        [0, 16, 78, 79, 5, 19, 116, 117, 1, 52, 92, 93, 8, 41, 128, 129],
+                        [0, 16, 82, 83, 15, 30, 100, 101, 1, 52, 90, 91, 9, 42, 122, 123],
+                        [0, 16, 82, 83, 15, 30, 100, 101, 53, 54, 88, 89, 6, 34, 128, 129],
+                        [0, 16, 82, 83, 5, 19, 109, 108, 53, 54, 88, 89, 7, 35, 124, 125],
+                        [
+                          0, 16, 74, 75, 2, 17, 100, 101, 1, 52, 88, 89, 6, 34, 122, 123, 29, 21,
+                          82, 83, 15, 30, 116, 117, 53, 54, 90, 91, 9, 42, 128, 129,
+                        ],
+                        [
+                          0, 16, 74, 75, 12, 33, 109, 108, 1, 52, 88, 89, 7, 35, 126, 127, 29, 21,
+                          82, 83, 5, 19, 138, 139, 53, 54, 90, 91, 8, 41, 124, 125,
+                        ],
+                        [
+                          0, 21, 84, 85, 118, 119, 116, 101, 96, 97, 88, 91, 9, 34, 132, 133, 29,
+                          16, 86, 87, 120, 121, 100, 117, 98, 99, 90, 89, 6, 42, 130, 131,
+                        ],
+                        [
+                          0, 21, 84, 85, 142, 143, 138, 108, 96, 97, 88, 91, 8, 35, 136, 137, 29,
+                          16, 86, 87, 144, 145, 109, 139, 98, 99, 90, 89, 7, 41, 134, 135,
+                        ],
+                        [0, 146, 147],
+                        [0, 148, 149],
+                        [0, 150, 151],
+                        [0, 146, 147, 152, 153, 154, 155, 156, 157],
+                        [0, 158, 159],
+                        [0, 146, 147, 1, 160, 161],
+                        [
+                          0, 146, 147, 1, 160, 161, 152, 153, 154, 162, 163, 164, 155, 156, 157,
+                          165, 166, 167,
+                        ],
+                        [0, 158, 159, 1, 168, 169],
+                        [0, 146, 147, 101, 170, 171],
+                        [0, 146, 147, 100, 172, 173],
+                        [0, 148, 149, 174, 175, 171],
+                        [0, 148, 149, 100, 176, 177],
+                        [0, 150, 151, 178, 179, 171],
+                        [0, 150, 151, 100, 180, 181],
+                        [
+                          0, 146, 147, 100, 172, 173, 152, 153, 154, 182, 183, 184, 155, 156, 157,
+                          185, 186, 187,
+                        ],
+                        [0, 158, 159, 101, 188, 189],
+                        [0, 146, 147, 122, 190, 191],
+                        [0, 146, 147, 123, 192, 193],
+                        [0, 146, 147, 126, 194, 195],
+                        [0, 146, 147, 127, 196, 197],
+                        [
+                          0, 146, 147, 122, 190, 191, 152, 153, 154, 198, 199, 200, 155, 156, 157,
+                          201, 202, 203,
+                        ],
+                        [0, 158, 159, 123, 204, 205],
+                        [
+                          0, 146, 147, 126, 194, 195, 152, 153, 154, 206, 207, 208, 155, 156, 157,
+                          209, 210, 211,
+                        ],
+                        [0, 158, 159, 129, 212, 213],
+                        [0, 146, 147, 101, 170, 171, 1, 160, 161, 123, 192, 193],
+                        [0, 146, 147, 108, 214, 215, 1, 160, 161, 127, 196, 197],
+                        [0, 146, 147, 100, 172, 173, 1, 160, 161, 122, 190, 191],
+                        [0, 146, 147, 109, 216, 217, 1, 160, 161, 126, 194, 195],
+                        [
+                          0, 146, 147, 100, 172, 173, 1, 160, 161, 122, 190, 191, 152, 153, 154,
+                          182, 183, 184, 162, 163, 164, 198, 199, 200, 155, 156, 157, 185, 186, 187,
+                          165, 166, 167, 201, 202, 203,
+                        ],
+                        [0, 158, 159, 101, 188, 189, 1, 168, 169, 123, 204, 205],
+                        [
+                          0, 146, 147, 109, 216, 217, 1, 160, 161, 126, 194, 195, 152, 153, 154,
+                          218, 219, 220, 162, 163, 164, 206, 207, 208, 155, 156, 157, 221, 222, 223,
+                          165, 166, 167, 209, 210, 211,
+                        ],
+                        [0, 158, 159, 117, 224, 225, 1, 168, 169, 129, 212, 213],
+                        [0, 146, 147, 16, 226, 227],
+                        [0, 148, 149, 18, 228, 229],
+                        [0, 150, 151, 18, 230, 231],
+                        [0, 150, 151, 16, 232, 233],
+                        [0, 148, 149, 16, 234, 235],
+                        [0, 146, 147, 18, 236, 237],
+                        [0, 146, 147, 52, 238, 239],
+                        [0, 146, 147, 16, 226, 227, 1, 160, 161, 52, 238, 239],
+                        [0, 146, 147, 18, 236, 237, 1, 160, 161, 61, 240, 241],
+                        [0, 146, 147, 16, 226, 227, 100, 172, 173, 101, 170, 171],
+                        [0, 148, 149, 18, 228, 229, 242, 172, 181, 243, 214, 244],
+                        [0, 150, 151, 18, 230, 231, 245, 172, 177, 246, 214, 247],
+                        [0, 150, 151, 16, 232, 233, 245, 172, 177, 174, 170, 248],
+                        [0, 148, 149, 16, 234, 235, 242, 172, 181, 178, 170, 249],
+                        [0, 146, 147, 18, 236, 237, 100, 172, 173, 108, 214, 215],
+                        [0, 146, 147, 16, 226, 227, 122, 190, 191, 123, 192, 193],
+                        [0, 146, 147, 16, 226, 227, 126, 194, 195, 127, 196, 197],
+                        [0, 146, 147, 18, 236, 237, 126, 194, 195, 123, 192, 193],
+                        [0, 146, 147, 18, 236, 237, 122, 190, 191, 127, 196, 197],
+                        [0, 146, 147, 52, 238, 239, 122, 190, 191, 101, 170, 171],
+                        [0, 146, 147, 61, 240, 241, 126, 194, 195, 101, 170, 171],
+                        [0, 146, 147, 52, 238, 239, 100, 172, 173, 123, 192, 193],
+                        [0, 146, 147, 61, 240, 241, 100, 172, 173, 127, 196, 197],
+                        [
+                          0, 146, 147, 16, 226, 227, 100, 172, 173, 101, 170, 171, 1, 160, 161, 52,
+                          239, 238, 122, 190, 191, 123, 192, 193,
+                        ],
+                        [
+                          0, 146, 147, 16, 226, 227, 109, 216, 217, 108, 214, 215, 1, 160, 161, 52,
+                          239, 238, 126, 194, 195, 127, 196, 197,
+                        ],
+                        [
+                          0, 146, 147, 18, 236, 237, 109, 216, 217, 101, 170, 171, 1, 160, 161, 61,
+                          241, 240, 126, 194, 195, 123, 192, 193,
+                        ],
+                        [
+                          0, 146, 147, 18, 236, 237, 100, 172, 173, 108, 214, 215, 1, 160, 161, 61,
+                          241, 240, 122, 190, 191, 127, 196, 197,
+                        ],
+                        [0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 23, 24, 13, 25, 256,
+                          257, 258, 259, 260, 261, 262, 263, 26, 20, 27, 28, 264, 265, 266, 267,
+                          268, 269, 270, 271, 4, 22, 5, 19, 272, 273, 274, 275, 276, 277, 278, 279,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 29, 21, 15, 30, 280,
+                          281, 282, 283, 284, 285, 286, 287,
+                        ],
+                        [0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 29, 31, 32, 33,
+                          280, 288, 289, 290, 284, 291, 292, 293,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 1, 52, 6, 34, 168,
+                          294, 295, 296, 169, 297, 298, 299,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 53, 54, 9, 42, 300,
+                          301, 302, 303, 304, 305, 306, 307,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 1, 52, 6, 34, 168,
+                          294, 295, 296, 169, 297, 298, 299, 23, 24, 13, 25, 256, 257, 258, 259,
+                          260, 261, 262, 263, 64, 62, 14, 39, 308, 309, 310, 311, 312, 313, 314,
+                          315, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 65, 59, 40,
+                          38, 316, 317, 318, 319, 320, 321, 322, 323, 4, 22, 5, 19, 272, 273, 274,
+                          275, 276, 277, 278, 279, 11, 55, 8, 41, 324, 325, 326, 327, 328, 329, 330,
+                          331,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 66, 67, 44, 45, 332,
+                          333, 334, 335, 336, 337, 338, 339, 23, 24, 13, 25, 256, 257, 258, 259,
+                          260, 261, 262, 263, 68, 69, 46, 47, 340, 341, 342, 343, 344, 345, 346,
+                          347, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 70, 71, 48,
+                          49, 348, 349, 350, 351, 352, 353, 354, 355, 4, 22, 5, 19, 272, 273, 274,
+                          275, 276, 277, 278, 279, 72, 73, 50, 51, 356, 357, 358, 359, 360, 361,
+                          362, 363,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 1, 52, 6, 34, 168,
+                          294, 295, 296, 169, 297, 298, 299, 29, 21, 15, 30, 280, 281, 282, 283,
+                          284, 285, 286, 287, 53, 54, 9, 42, 300, 301, 302, 303, 304, 305, 306, 307,
+                        ],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 1, 59, 14, 41, 168,
+                          325, 318, 311, 169, 313, 330, 323,
+                        ],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 1, 59, 14, 41, 168,
+                          325, 318, 311, 169, 313, 330, 323, 29, 31, 32, 33, 280, 288, 289, 290,
+                          284, 291, 292, 293, 53, 63, 36, 35, 300, 364, 365, 366, 304, 367, 368,
+                          369,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74,
+                          370, 371, 188, 372, 373, 374, 375, 189,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82,
+                          376, 377, 224, 378, 379, 380, 381, 225,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74,
+                          370, 371, 188, 372, 373, 374, 375, 189, 23, 24, 13, 25, 256, 257, 258,
+                          259, 260, 261, 262, 263, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
+                          392, 393, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 394,
+                          395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 4, 22, 5, 19, 272,
+                          273, 274, 275, 276, 277, 278, 279, 138, 139, 95, 94, 406, 407, 408, 409,
+                          410, 411, 412, 413,
+                        ],
+                        [
+                          0, 24, 5, 28, 158, 265, 258, 275, 159, 277, 270, 263, 414, 415, 416, 417,
+                          418, 419, 420, 421, 422, 423, 424, 425, 23, 16, 27, 19, 256, 273, 251,
+                          267, 260, 269, 278, 255, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+                          436, 437, 26, 22, 13, 17, 264, 250, 274, 259, 268, 261, 254, 279, 438,
+                          439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 4, 20, 2, 25, 272,
+                          257, 266, 252, 276, 253, 262, 271, 450, 451, 452, 453, 454, 455, 456, 457,
+                          458, 459, 460, 461,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74,
+                          370, 371, 188, 372, 373, 374, 375, 189, 29, 21, 15, 30, 280, 281, 282,
+                          283, 284, 285, 286, 287, 116, 117, 83, 82, 376, 377, 224, 378, 379, 380,
+                          381, 225,
+                        ],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 450, 415, 440, 429,
+                          454, 431, 420, 445, 458, 447, 436, 425,
+                        ],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 462, 463, 464, 465,
+                          466, 467, 468, 469, 470, 471, 472, 473,
+                        ],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 462, 463, 464, 465,
+                          466, 467, 468, 469, 470, 471, 472, 473, 29, 31, 32, 33, 280, 288, 289,
+                          290, 284, 291, 292, 293, 450, 415, 440, 429, 454, 431, 420, 445, 458, 447,
+                          436, 425,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 123, 122, 88, 89,
+                          204, 474, 475, 476, 205, 477, 478, 479,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 123, 122, 88, 89,
+                          204, 474, 475, 476, 205, 477, 478, 479, 23, 24, 13, 25, 256, 257, 258,
+                          259, 260, 261, 262, 263, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+                          490, 491, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 492,
+                          493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 4, 22, 5, 19, 272,
+                          273, 274, 275, 276, 277, 278, 279, 125, 124, 140, 141, 504, 505, 506, 507,
+                          508, 509, 510, 511,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 123, 122, 88, 89,
+                          204, 474, 475, 476, 205, 477, 478, 479, 29, 21, 15, 30, 280, 281, 282,
+                          283, 284, 285, 286, 287, 129, 128, 90, 91, 212, 512, 513, 514, 213, 515,
+                          516, 517,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 129, 128, 90, 91,
+                          212, 512, 513, 514, 213, 515, 516, 517,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 129, 128, 90, 91,
+                          212, 512, 513, 514, 213, 515, 516, 517, 23, 24, 13, 25, 256, 257, 258,
+                          259, 260, 261, 262, 263, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527,
+                          528, 529, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 530,
+                          531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 4, 22, 5, 19, 272,
+                          273, 274, 275, 276, 277, 278, 279, 127, 126, 92, 93, 542, 543, 544, 545,
+                          546, 547, 548, 549,
+                        ],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 550, 551, 552, 553,
+                          554, 555, 556, 557, 558, 559, 560, 561, 29, 31, 32, 33, 280, 288, 289,
+                          290, 284, 291, 292, 293, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571,
+                          572, 573,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74,
+                          370, 371, 188, 372, 373, 374, 375, 189, 1, 52, 6, 34, 168, 294, 295, 296,
+                          169, 297, 298, 299, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477,
+                          205,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74,
+                          370, 371, 188, 372, 373, 374, 375, 189, 53, 54, 9, 42, 300, 301, 302, 303,
+                          304, 305, 306, 307, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516, 515,
+                          213,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82,
+                          376, 377, 224, 378, 379, 380, 381, 225, 1, 52, 6, 34, 168, 294, 295, 296,
+                          169, 297, 298, 299, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516, 515,
+                          213,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82,
+                          376, 377, 224, 378, 379, 380, 381, 225, 53, 54, 9, 42, 300, 301, 302, 303,
+                          304, 305, 306, 307, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477,
+                          205,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74,
+                          370, 371, 188, 372, 373, 374, 375, 189, 1, 52, 6, 34, 168, 294, 295, 296,
+                          169, 297, 298, 299, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477,
+                          205, 23, 24, 13, 25, 256, 257, 258, 259, 260, 261, 262, 263, 382, 383,
+                          384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 64, 62, 14, 39, 308,
+                          309, 310, 311, 312, 313, 314, 315, 481, 480, 483, 482, 486, 487, 484, 485,
+                          491, 490, 489, 488, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270,
+                          271, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 65, 59,
+                          40, 38, 316, 317, 318, 319, 320, 321, 322, 323, 493, 492, 495, 494, 498,
+                          499, 496, 497, 503, 502, 501, 500, 4, 22, 5, 19, 272, 273, 274, 275, 276,
+                          277, 278, 279, 138, 139, 95, 94, 406, 407, 408, 409, 410, 411, 412, 413,
+                          11, 55, 8, 41, 324, 325, 326, 327, 328, 329, 330, 331, 124, 125, 141, 140,
+                          506, 507, 504, 505, 511, 510, 509, 508,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82,
+                          376, 377, 224, 378, 379, 380, 381, 225, 1, 52, 6, 34, 168, 294, 295, 296,
+                          169, 297, 298, 299, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516, 515,
+                          213, 23, 24, 13, 25, 256, 257, 258, 259, 260, 261, 262, 263, 574, 575,
+                          576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 64, 62, 14, 39, 308,
+                          309, 310, 311, 312, 313, 314, 315, 519, 518, 521, 520, 524, 525, 522, 523,
+                          529, 528, 527, 526, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270,
+                          271, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 65, 59,
+                          40, 38, 316, 317, 318, 319, 320, 321, 322, 323, 531, 530, 533, 532, 536,
+                          537, 534, 535, 541, 540, 539, 538, 4, 22, 5, 19, 272, 273, 274, 275, 276,
+                          277, 278, 279, 109, 108, 79, 78, 598, 599, 600, 601, 602, 603, 604, 605,
+                          11, 55, 8, 41, 324, 325, 326, 327, 328, 329, 330, 331, 126, 127, 93, 92,
+                          544, 545, 542, 543, 549, 548, 547, 546,
+                        ],
+                        [
+                          0, 24, 5, 28, 158, 265, 258, 275, 159, 277, 270, 263, 414, 415, 416, 417,
+                          418, 419, 420, 421, 422, 423, 424, 425, 66, 69, 50, 49, 332, 349, 342,
+                          359, 336, 361, 354, 347, 493, 123, 483, 140, 498, 507, 204, 485, 503, 490,
+                          509, 205, 23, 16, 27, 19, 256, 273, 251, 267, 260, 269, 278, 255, 426,
+                          427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 68, 67, 48, 51,
+                          340, 357, 334, 351, 344, 353, 362, 339, 124, 480, 89, 494, 506, 499, 484,
+                          474, 511, 478, 501, 488, 26, 22, 13, 17, 264, 250, 274, 259, 268, 261,
+                          254, 279, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 70,
+                          73, 46, 45, 348, 333, 358, 343, 352, 345, 338, 363, 122, 492, 141, 482,
+                          475, 487, 496, 505, 479, 510, 489, 500, 4, 20, 2, 25, 272, 257, 266, 252,
+                          276, 253, 262, 271, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
+                          461, 72, 71, 44, 47, 356, 341, 350, 335, 360, 337, 346, 355, 481, 125,
+                          495, 88, 486, 476, 504, 497, 491, 502, 477, 508,
+                        ],
+                        [
+                          0, 24, 5, 28, 158, 265, 258, 275, 159, 277, 270, 263, 414, 415, 416, 417,
+                          418, 419, 420, 421, 422, 423, 424, 425, 606, 607, 608, 609, 610, 611, 612,
+                          613, 614, 615, 616, 617, 531, 129, 521, 92, 536, 545, 212, 523, 541, 528,
+                          547, 213, 23, 16, 27, 19, 256, 273, 251, 267, 260, 269, 278, 255, 426,
+                          427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 618, 619, 620, 621,
+                          622, 623, 624, 625, 626, 627, 628, 629, 126, 518, 91, 532, 544, 537, 522,
+                          512, 549, 516, 539, 526, 26, 22, 13, 17, 264, 250, 274, 259, 268, 261,
+                          254, 279, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 630,
+                          631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 128, 530, 93, 520,
+                          513, 525, 534, 543, 517, 548, 527, 538, 4, 20, 2, 25, 272, 257, 266, 252,
+                          276, 253, 262, 271, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
+                          461, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 519, 127,
+                          533, 90, 524, 514, 542, 535, 529, 540, 515, 546,
+                        ],
+                        [
+                          0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74,
+                          370, 371, 188, 372, 373, 374, 375, 189, 1, 52, 6, 34, 168, 294, 295, 296,
+                          169, 297, 298, 299, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477,
+                          205, 29, 21, 15, 30, 280, 281, 282, 283, 284, 285, 286, 287, 116, 117, 83,
+                          82, 376, 377, 224, 378, 379, 380, 381, 225, 53, 54, 9, 42, 300, 301, 302,
+                          303, 304, 305, 306, 307, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516,
+                          515, 213,
+                        ],
+                        [
+                          0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 462, 463, 464, 465,
+                          466, 467, 468, 469, 470, 471, 472, 473, 1, 59, 14, 41, 168, 325, 318, 311,
+                          169, 313, 330, 323, 551, 550, 553, 552, 556, 557, 554, 555, 561, 560, 559,
+                          558, 29, 31, 32, 33, 280, 288, 289, 290, 284, 291, 292, 293, 450, 415,
+                          440, 429, 454, 431, 420, 445, 458, 447, 436, 425, 53, 63, 36, 35, 300,
+                          364, 365, 366, 304, 367, 368, 369, 563, 562, 565, 564, 568, 569, 566, 567,
+                          573, 572, 571, 570,
+                        ],
+                        [0, 16],
+                        [0, 18],
+                        [0, 16, 26, 20],
+                        [0, 2, 23, 13],
+                        [0, 3, 4, 32],
+                        [0, 2, 29, 15],
+                        [0, 3, 29, 27],
+                        [0, 52],
+                        [0, 63],
+                        [0, 52, 26, 59],
+                        [0, 63, 26, 54],
+                        [0, 52, 16, 1],
+                        [0, 18, 1, 61],
+                        [0, 52, 16, 1, 26, 59, 20, 65],
+                        [0, 31, 1, 63],
+                        [0, 1, 24, 62],
+                        [0, 31, 1, 63, 26, 21, 65, 54],
+                        [0, 2, 57, 56],
+                        [0, 60, 3, 16],
+                        [0, 22, 57, 3],
+                        [0, 2, 28, 20],
+                        [0, 17, 13, 24],
+                        [0, 20, 19, 13, 4, 24, 17, 27],
+                        [0, 22, 57, 3, 4, 16, 60, 32],
+                        [0, 22, 57, 3, 23, 20, 30, 12, 26, 24, 33, 15, 4, 16, 60, 32],
+                        [0, 22, 57, 3, 29, 18, 27, 25],
+                        [0, 22, 3, 57, 1, 55, 10, 37],
+                        [0, 22, 385, 396, 3, 57, 109, 117],
+                        [
+                          0, 22, 57, 3, 159, 279, 654, 655, 158, 274, 656, 657, 29, 18, 25, 27, 284,
+                          658, 262, 269, 280, 659, 257, 267,
+                        ],
+                      ]),
+                      (t.Spacegroup = {
+                        'P 1': 0,
+                        'P -1': 1,
+                        'P 1 2 1': 2,
+                        'P 1 21 1': 3,
+                        'C 1 2 1': 4,
+                        'P 1 m 1': 5,
+                        'P 1 c 1': 6,
+                        'C 1 m 1': 7,
+                        'C 1 c 1': 8,
+                        'P 1 2/m 1': 9,
+                        'P 1 21/m 1': 10,
+                        'C 1 2/m 1': 11,
+                        'P 1 2/c 1': 12,
+                        'P 1 21/c 1': 13,
+                        'C 1 2/c 1': 14,
+                        'P 2 2 2': 15,
+                        'P 2 2 21': 16,
+                        'P 21 21 2': 17,
+                        'P 21 21 21': 18,
+                        'C 2 2 21': 19,
+                        'C 2 2 2': 20,
+                        'F 2 2 2': 21,
+                        'I 2 2 2': 22,
+                        'I 21 21 21': 23,
+                        'P m m 2': 24,
+                        'P m c 21': 25,
+                        'P c c 2': 26,
+                        'P m a 2': 27,
+                        'P c a 21': 28,
+                        'P n c 2': 29,
+                        'P m n 21': 30,
+                        'P b a 2': 31,
+                        'P n a 21': 32,
+                        'P n n 2': 33,
+                        'C m m 2': 34,
+                        'C m c 21': 35,
+                        'C c c 2': 36,
+                        'A m m 2': 37,
+                        'A b m 2': 38,
+                        'A m a 2': 39,
+                        'A b a 2': 40,
+                        'F m m 2': 41,
+                        'F d d 2': 42,
+                        'I m m 2': 43,
+                        'I b a 2': 44,
+                        'I m a 2': 45,
+                        'P 2/m 2/m 2/m': 46,
+                        'P m m m': 46,
+                        'P 2/n 2/n 2/n': 47,
+                        'P n n n': 47,
+                        'P 2/c 2/c 2/m': 48,
+                        'P c c m': 48,
+                        'P 2/b 2/a 2/n': 49,
+                        'P b a n': 49,
+                        'P 21/m 2/m 2/a': 50,
+                        'P m m a': 50,
+                        'P 2/n 21/n 2/a': 51,
+                        'P n n a': 51,
+                        'P 2/m 2/n 21/a': 52,
+                        'P m n a': 52,
+                        'P 21/c 2/c 2/a': 53,
+                        'P c c a': 53,
+                        'P 21/b 21/a 2/m': 54,
+                        'P b a m': 54,
+                        'P 21/c 21/c 2/n': 55,
+                        'P c c n': 55,
+                        'P 2/b 21/c 21/m': 56,
+                        'P b c m': 56,
+                        'P 21/n 21/n 2/m': 57,
+                        'P n n m': 57,
+                        'P 21/m 21/m 2/n': 58,
+                        'P m m n': 58,
+                        'P 21/b 2/c 21/n': 59,
+                        'P b c n': 59,
+                        'P 21/b 21/c 21/a': 60,
+                        'P b c a': 60,
+                        'P 21/n 21/m 21/a': 61,
+                        'P n m a': 61,
+                        'C 2/m 2/c 21/m': 62,
+                        'C m c m': 62,
+                        'C 2/m 2/c 21/a': 63,
+                        'C m c a': 63,
+                        'C 2/m 2/m 2/m': 64,
+                        'C m m m': 64,
+                        'C 2/c 2/c 2/m': 65,
+                        'C c c m': 65,
+                        'C 2/m 2/m 2/a': 66,
+                        'C m m a': 66,
+                        'C 2/c 2/c 2/a': 67,
+                        'C c c a': 67,
+                        'F 2/m 2/m 2/m': 68,
+                        'F m m m': 68,
+                        'F 2/d 2/d 2/d': 69,
+                        'F d d d': 69,
+                        'I 2/m 2/m 2/m': 70,
+                        'I m m m': 70,
+                        'I 2/b 2/a 2/m': 71,
+                        'I b a m': 71,
+                        'I 21/b 21/c 21/a': 72,
+                        'I b c a': 72,
+                        'I 21/m 21/m 21/a': 73,
+                        'I m m a': 73,
+                        'P 4': 74,
+                        'P 41': 75,
+                        'P 42': 76,
+                        'P 43': 77,
+                        'I 4': 78,
+                        'I 41': 79,
+                        'P -4': 80,
+                        'I -4': 81,
+                        'P 4/m': 82,
+                        'P 42/m': 83,
+                        'P 4/n': 84,
+                        'P 42/n': 85,
+                        'I 4/m': 86,
+                        'I 41/a': 87,
+                        'P 4 2 2': 88,
+                        'P 4 21 2': 89,
+                        'P 41 2 2': 90,
+                        'P 41 21 2': 91,
+                        'P 42 2 2': 92,
+                        'P 42 21 2': 93,
+                        'P 43 2 2': 94,
+                        'P 43 21 2': 95,
+                        'I 4 2 2': 96,
+                        'I 41 2 2': 97,
+                        'P 4 m m': 98,
+                        'P 4 b m': 99,
+                        'P 42 c m': 100,
+                        'P 42 n m': 101,
+                        'P 4 c c': 102,
+                        'P 4 n c': 103,
+                        'P 42 m c': 104,
+                        'P 42 b c': 105,
+                        'I 4 m m': 106,
+                        'I 4 c m': 107,
+                        'I 41 m d': 108,
+                        'I 41 c d': 109,
+                        'P -4 2 m': 110,
+                        'P -4 2 c': 111,
+                        'P -4 21 m': 112,
+                        'P -4 21 c': 113,
+                        'P -4 m 2': 114,
+                        'P -4 c 2': 115,
+                        'P -4 b 2': 116,
+                        'P -4 n 2': 117,
+                        'I -4 m 2': 118,
+                        'I -4 c 2': 119,
+                        'I -4 2 m': 120,
+                        'I -4 2 d': 121,
+                        'P 4/m 2/m 2/m': 122,
+                        'P4/m m m': 122,
+                        'P 4/m 2/c 2/c': 123,
+                        'P4/m c c': 123,
+                        'P 4/n 2/b 2/m': 124,
+                        'P4/n b m': 124,
+                        'P 4/n 2/n 2/c': 125,
+                        'P4/n n c': 125,
+                        'P 4/m 21/b 2/m': 126,
+                        'P4/m b m': 126,
+                        'P 4/m 21/n 2/c': 127,
+                        'P4/m n c': 127,
+                        'P 4/n 21/m 2/m': 128,
+                        'P4/n m m': 128,
+                        'P 4/n 2/c 2/c': 129,
+                        'P4/n c c': 129,
+                        'P 42/m 2/m 2/c': 130,
+                        'P42/m m c': 130,
+                        'P 42/m 2/c 2/m': 131,
+                        'P42/m c m': 131,
+                        'P 42/n 2/b 2/c': 132,
+                        'P42/n b c': 132,
+                        'P 42/n 2/n 2/m': 133,
+                        'P42/n n m': 133,
+                        'P 42/m 21/b 2/c': 134,
+                        'P42/m b c': 134,
+                        'P 42/m 21/n 2/m': 135,
+                        'P42/m n m': 135,
+                        'P 42/n 21/m 2/c': 136,
+                        'P42/n m c': 136,
+                        'P 42/n 21/c 2/m': 137,
+                        'P42/n c m': 137,
+                        'I 4/m 2/m 2/m': 138,
+                        'I4/m m m': 138,
+                        'I 4/m 2/c 2/m': 139,
+                        'I4/m c m': 139,
+                        'I 41/a 2/m 2/d': 140,
+                        'I41/a m d': 140,
+                        'I 41/a 2/c 2/d': 141,
+                        'I41/a c d': 141,
+                        'P 3': 142,
+                        'P 31': 143,
+                        'P 32': 144,
+                        'H 3': 145,
+                        'R 3': 146,
+                        'P -3': 147,
+                        'H -3': 148,
+                        'R -3': 149,
+                        'P 3 1 2': 150,
+                        'P 3 2 1': 151,
+                        'P 31 1 2': 152,
+                        'P 31 2 1': 153,
+                        'P 32 1 2': 154,
+                        'P 32 2 1': 155,
+                        'H 3 2': 156,
+                        'R 3 2': 157,
+                        'P 3 m 1': 158,
+                        'P 3 1 m': 159,
+                        'P 3 c 1': 160,
+                        'P 3 1 c': 161,
+                        'H 3 m': 162,
+                        'R 3 m': 163,
+                        'H 3 c': 164,
+                        'R 3 c': 165,
+                        'P -3 1 2/m': 166,
+                        'P -3 1 m': 166,
+                        'P -3 1 2/c': 167,
+                        'P -3 1 c': 167,
+                        'P -3 2/m 1': 168,
+                        'P -3 m 1': 168,
+                        'P -3 2/c 1': 169,
+                        'P -3 c 1': 169,
+                        'H -3 2/m': 170,
+                        'H -3 m': 170,
+                        'R -3 2/m': 171,
+                        'R -3 m': 171,
+                        'H -3 2/c': 172,
+                        'H -3 c': 172,
+                        'R -3 2/c': 173,
+                        'R -3 c': 173,
+                        'P 6': 174,
+                        'P 61': 175,
+                        'P 65': 176,
+                        'P 62': 177,
+                        'P 64': 178,
+                        'P 63': 179,
+                        'P -6': 180,
+                        'P 6/m': 181,
+                        'P 63/m': 182,
+                        'P 6 2 2': 183,
+                        'P 61 2 2': 184,
+                        'P 65 2 2': 185,
+                        'P 62 2 2': 186,
+                        'P 64 2 2': 187,
+                        'P 63 2 2': 188,
+                        'P 6 m m': 189,
+                        'P 6 c c': 190,
+                        'P 63 c m': 191,
+                        'P 63 m c': 192,
+                        'P -6 m 2': 193,
+                        'P -6 c 2': 194,
+                        'P -6 2 m': 195,
+                        'P -6 2 c': 196,
+                        'P 6/m 2/m 2/m': 197,
+                        'P 6/m m m': 197,
+                        'P 6/m 2/c 2/c': 198,
+                        'P 6/m c c': 198,
+                        'P 63/m 2/c 2/m': 199,
+                        'P 63/m c m': 199,
+                        'P 63/m 2/m 2/c': 200,
+                        'P 63/m m c': 200,
+                        'P 2 3': 201,
+                        'F 2 3': 202,
+                        'I 2 3': 203,
+                        'P 21 3': 204,
+                        'I 21 3': 205,
+                        'P 2/m -3': 206,
+                        'P m -3': 206,
+                        'P 2/n -3': 207,
+                        'P n -3': 207,
+                        'F 2/m -3': 208,
+                        'F m -3': 208,
+                        'F 2/d -3': 209,
+                        'F d -3': 209,
+                        'I 2/m -3': 210,
+                        'I m -3': 210,
+                        'P 21/a -3': 211,
+                        'P a -3': 211,
+                        'I 21/a -3': 212,
+                        'I a -3': 212,
+                        'P 4 3 2': 213,
+                        'P 42 3 2': 214,
+                        'F 4 3 2': 215,
+                        'F 41 3 2': 216,
+                        'I 4 3 2': 217,
+                        'P 43 3 2': 218,
+                        'P 41 3 2': 219,
+                        'I 41 3 2': 220,
+                        'P -4 3 m': 221,
+                        'F -4 3 m': 222,
+                        'I -4 3 m': 223,
+                        'P -4 3 n': 224,
+                        'F -4 3 c': 225,
+                        'I -4 3 d': 226,
+                        'P 4/m -3 2/m': 227,
+                        'P m -3 m': 227,
+                        'P 4/n -3 2/n': 228,
+                        'P n -3 n': 228,
+                        'P 42/m -3 2/n': 229,
+                        'P m -3 n': 229,
+                        'P 42/n -3 2/m': 230,
+                        'P n -3 m': 230,
+                        'F 4/m -3 2/m': 231,
+                        'F m -3 m': 231,
+                        'F 4/m -3 2/c': 232,
+                        'F m -3 c': 232,
+                        'F 41/d -3 2/m': 233,
+                        'F d -3 m': 233,
+                        'F 41/d -3 2/c': 234,
+                        'F d -3 c': 234,
+                        'I 4/m -3 2/m': 235,
+                        'I m -3 m': 235,
+                        'I 41/a -3 2/d': 236,
+                        'I a -3 d': 236,
+                        'P 1 1 2': 237,
+                        'P 1 1 21': 238,
+                        'B 1 1 2': 239,
+                        'B 2': 239,
+                        'A 1 2 1': 240,
+                        'C 1 21 1': 241,
+                        'I 1 2 1': 242,
+                        'I 2': 242,
+                        'I 1 21 1': 243,
+                        'P 1 1 m': 244,
+                        'P 1 1 b': 245,
+                        'B 1 1 m': 246,
+                        'B 1 1 b': 247,
+                        'P 1 1 2/m': 248,
+                        'P 1 1 21/m': 249,
+                        'B 1 1 2/m': 250,
+                        'P 1 1 2/b': 251,
+                        'P 1 1 21/b': 252,
+                        'B 1 1 2/b': 253,
+                        'P 21 2 2': 254,
+                        'P 2 21 2': 255,
+                        'P 21 21 2 (a)': 256,
+                        'P 21 2 21': 257,
+                        'P 2 21 21': 258,
+                        'C 2 2 21a)': 259,
+                        'C 2 2 2a': 260,
+                        'F 2 2 2a': 261,
+                        'I 2 2 2a': 262,
+                        'P 21/m 21/m 2/n a': 263,
+                        'P 42 21 2a': 264,
+                        'I 2 3a': 265,
+                      });
+                  })((mo = r.Core || (r.Core = {})).Structure || (mo.Structure = {})),
+                  (e = F = F || {}),
+                  (It = e.Core || (e.Core = {})),
+                  (vo = It.Structure || (It.Structure = {})),
+                  (Eo = It.Utils.DataTable),
+                  (e = bo = bo || {}),
+                  (yo = It.Geometry.LinearAlgebra.Matrix4),
+                  (wo = It.Geometry.LinearAlgebra.Vector3),
+                  (e.buildPivotGroupSymmetry = function (t, e, n) {
+                    var r = t.data.symmetryInfo;
+                    return !r || (r.cellSize[0] < 1.1 && r.cellSize[1] < 1.1 && r.cellSize[2] < 1.1)
+                      ? t
+                      : ((n = n ? vo.Query.apply(n, t).unionAtomIndices() : t.data.atoms.indices),
+                        (n = (function (t, e) {
+                          for (
+                            var n = t.data.atoms,
+                              r = t.data.residues,
+                              i = t.data.chains,
+                              o = t.data.entities,
+                              a = (t = t.positions).x,
+                              s = t.y,
+                              l = t.z,
+                              u = (t = Eo.builder(o.count)).addColumn('x', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              c = t.addColumn('y', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              A = t.addColumn('z', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              U = t.addColumn('r', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              h = Eo.builder(i.count),
+                              p = h.addColumn('x', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              N = h.addColumn('y', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              P = h.addColumn('z', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              L = h.addColumn('r', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              d = Eo.builder(r.count),
+                              Y = d.addColumn('x', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              O = d.addColumn('y', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              G = d.addColumn('z', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              z = d.addColumn('r', function (t) {
+                                return new Float64Array(t);
+                              }),
+                              f = wo.zero(),
+                              g = 0,
+                              m = wo.zero(),
+                              v = 0,
+                              b = 0,
+                              y = wo.zero(),
+                              w = 0,
+                              E = wo.zero(),
+                              B = 0,
+                              C = wo.zero(),
+                              x = 0,
+                              I = 0,
+                              H = o.count;
+                            I < H;
+                            I++
+                          ) {
+                            wo.set(y, 0, 0, 0);
+                            for (var M = o.chainStartIndex[I], D = o.chainEndIndex[I]; M < D; M++) {
+                              wo.set(E, 0, 0, 0);
+                              for (
+                                var S = i.residueStartIndex[M], k = i.residueEndIndex[M];
+                                S < k;
+                                S++
+                              ) {
+                                wo.set(C, 0, 0, 0);
+                                for (var F = r.atomStartIndex[S], Q = r.atomEndIndex[S]; F < Q; F++)
+                                  (C[0] += a[F]), (C[1] += s[F]), (C[2] += l[F]);
+                                wo.add(f, f, C),
+                                  (b = r.atomEndIndex[S] - r.atomStartIndex[S]),
+                                  wo.add(E, E, C),
+                                  (Y[S] = C[0] / b),
+                                  (O[S] = C[1] / b),
+                                  (G[S] = C[2] / b);
+                              }
+                              wo.add(y, y, E),
+                                (b = i.atomEndIndex[M] - i.atomStartIndex[M]),
+                                (p[M] = E[0] / b),
+                                (N[M] = E[1] / b),
+                                (P[M] = E[2] / b);
+                            }
+                            (b = o.atomEndIndex[I] - o.atomStartIndex[I]),
+                              (u[I] = y[0] / b),
+                              (c[I] = y[1] / b),
+                              (A[I] = y[2] / b);
+                          }
+                          (f[0] /= n.count), (f[1] /= n.count), (f[2] /= n.count);
+                          for (var _ = 0, j = e; _ < j.length; _++) {
+                            F = j[_];
+                            (m[0] += a[F]), (m[1] += s[F]), (m[2] += l[F]);
+                          }
+                          for (
+                            var n = 0 < e.length ? e.length : 1,
+                              V =
+                                ((m[0] /= n),
+                                (m[1] /= n),
+                                (m[2] /= n),
+                                { x: a, y: s, z: l, cX: u, cY: c, cZ: A }),
+                              q = { x: a, y: s, z: l, cX: p, cY: N, cZ: P },
+                              T = { x: a, y: s, z: l, cX: Y, cY: O, cZ: G },
+                              I = 0,
+                              H = o.count;
+                            I < H;
+                            I++
+                          ) {
+                            for (
+                              w = 0, M = o.chainStartIndex[I], D = o.chainEndIndex[I];
+                              M < D;
+                              M++
+                            ) {
+                              for (
+                                B = 0, S = i.residueStartIndex[M], k = i.residueEndIndex[M];
+                                S < k;
+                                S++
+                              ) {
+                                for (
+                                  x = 0, F = r.atomStartIndex[S], Q = r.atomEndIndex[S];
+                                  F < Q;
+                                  F++
+                                )
+                                  (x = Math.max(x, Qs(F, S, T))),
+                                    (B = Math.max(B, Qs(F, M, q))),
+                                    (w = Math.max(w, Qs(F, I, V))),
+                                    (g = Math.max(g, _s(F, f, T)));
+                                (x = Math.sqrt(x)), (z[S] = x);
+                              }
+                              (B = Math.sqrt(B)), (L[M] = B);
+                            }
+                            (w = Math.sqrt(w)), (U[I] = w);
+                          }
+                          for (var g = Math.sqrt(g), R = 0, W = e; R < W.length; R++)
+                            (F = W[R]), (v = Math.max(v, _s(F, m, T)));
+                          return (
+                            (v = Math.sqrt(v)),
+                            {
+                              entities: t.seal(),
+                              chains: h.seal(),
+                              residues: d.seal(),
+                              allAtoms: { center: f, radius: g },
+                              target: { center: m, radius: v },
+                            }
+                          );
+                        })(t, n)),
+                        (r = new vo.Spacegroup(r)),
+                        (n = {
+                          model: t,
+                          boundingInfo: n,
+                          spacegroup: r,
+                          radius: e,
+                          transform: yo.zero(),
+                          transformed: wo.zero(),
+                          i: 0,
+                          j: 0,
+                          k: 0,
+                          op: 0,
+                        }),
+                        (r = Us(n)),
+                        Ps(
+                          t,
+                          (function (t, e) {
+                            for (
+                              var n = t.boundingInfo,
+                                r = t.radius,
+                                i = n.target,
+                                o = (t = t.model).data.residues,
+                                a = t.data.chains,
+                                s = t.data.entities,
+                                l = It.Utils.ChunkedArray.create(
+                                  function (t) {
+                                    return new Int32Array(t);
+                                  },
+                                  o.count,
+                                  1,
+                                ),
+                                u = It.Utils.ChunkedArray.create(
+                                  function (t) {
+                                    return new Int32Array(t);
+                                  },
+                                  o.count,
+                                  1,
+                                ),
+                                c = wo.zero(),
+                                A = 0,
+                                h = 0,
+                                p = 0,
+                                d = 0,
+                                f = 0,
+                                g = s.count;
+                              f < g;
+                              f++
+                            ) {
+                              for (var A = 0, m = !1, v = 0, b = e; v < b.length; v++) {
+                                for (
+                                  var y = b[v], w = s.chainStartIndex[f], E = s.chainEndIndex[f];
+                                  w < E;
+                                  w++
+                                )
+                                  if (Fs(i, w, n.chains, y.transform, r, c)) {
+                                    for (
+                                      var B = !1,
+                                        C = a.residueStartIndex[w],
+                                        x = a.residueEndIndex[w];
+                                      C < x;
+                                      C++
+                                    )
+                                      Fs(i, C, n.residues, y.transform, r, c) &&
+                                        (It.Utils.ChunkedArray.add(l, C),
+                                        It.Utils.ChunkedArray.add(u, A),
+                                        (h += o.atomEndIndex[C] - o.atomStartIndex[C]),
+                                        (B = !0));
+                                    B && ((p += 1), (m = !0));
+                                  }
+                                A++;
+                              }
+                              m && d++;
+                            }
+                            return {
+                              residues: It.Utils.ChunkedArray.compact(l),
+                              operators: It.Utils.ChunkedArray.compact(u),
+                              atomCount: h,
+                              chainCount: p,
+                              entityCount: d,
+                            };
+                          })(n, r),
+                          r,
+                        ));
+                  }),
+                  (e.buildMates = function (t, e) {
+                    var n = t.data.symmetryInfo;
+                    return !n || (n.cellSize[0] < 1.1 && n.cellSize[1] < 1.1 && n.cellSize[2] < 1.1)
+                      ? t
+                      : ((n = Ls(t, e)),
+                        Ps(
+                          t,
+                          (function (t, e) {
+                            for (
+                              var n = (t = t.data).atoms,
+                                r = t.chains,
+                                i = t.entities,
+                                t = t.residues,
+                                o = It.Utils.ArrayBuilder.create(
+                                  function (t) {
+                                    return new Int32Array(t);
+                                  },
+                                  t.count * e.length,
+                                  1,
+                                ),
+                                a = It.Utils.ArrayBuilder.create(
+                                  function (t) {
+                                    return new Int32Array(t);
+                                  },
+                                  t.count * e.length,
+                                  1,
+                                ),
+                                t = e.length * n.count,
+                                n = e.length * r.count,
+                                s = i.count,
+                                l = 0,
+                                u = i.count;
+                              l < u;
+                              l++
+                            )
+                              for (var c = 0; c < e.length; c++)
+                                for (
+                                  var A = i.chainStartIndex[l], h = i.chainEndIndex[l];
+                                  A < h;
+                                  A++
+                                )
+                                  for (
+                                    var p = r.residueStartIndex[A], d = r.residueEndIndex[A];
+                                    p < d;
+                                    p++
+                                  )
+                                    It.Utils.ArrayBuilder.add(o, p),
+                                      It.Utils.ArrayBuilder.add(a, c);
+                            return {
+                              residues: o.array,
+                              operators: a.array,
+                              atomCount: t,
+                              chainCount: n,
+                              entityCount: s,
+                            };
+                          })(t, n),
+                          n,
+                        ));
+                  }),
+                  (e.buildAssemblyEntry = Os),
+                  (e.buildAssembly = function (t, e) {
+                    for (
+                      var n = {
+                          atomCount: 0,
+                          chainCount: 0,
+                          entityCount: 0,
+                          transforms: [],
+                          mask: new Int8Array(t.data.residues.count),
+                          residueIndices: It.Utils.ChunkedArray.create(
+                            function (t) {
+                              return new Int32Array(t);
+                            },
+                            t.data.residues.count,
+                            1,
+                          ),
+                          operatorIndices: It.Utils.ChunkedArray.create(
+                            function (t) {
+                              return new Int32Array(t);
+                            },
+                            t.data.residues.count,
+                            1,
+                          ),
+                        },
+                        r = 0,
+                        i = e.gens;
+                      r < i.length;
+                      r++
+                    )
+                      Os(t, i[r], n);
+                    return Ps(
+                      t,
+                      {
+                        residues: It.Utils.ChunkedArray.compact(n.residueIndices),
+                        operators: It.Utils.ChunkedArray.compact(n.operatorIndices),
+                        atomCount: n.atomCount,
+                        chainCount: n.chainCount,
+                        entityCount: n.entityCount,
+                      },
+                      n.transforms,
+                    );
+                  }),
+                  (vo.buildPivotGroupSymmetry = function (t, e, n) {
+                    return bo.buildPivotGroupSymmetry(t, e, n);
+                  }),
+                  (vo.buildSymmetryMates = function (t, e) {
+                    return bo.buildMates(t, e);
+                  }),
+                  (vo.buildAssembly = function (t, e) {
+                    return bo.buildAssembly(t, e);
+                  }),
+                  (t = F = F || {}),
+                  (function (n) {
+                    n.apply = function (t, e) {
+                      return n.Builder.toQuery(t)(e.queryContext);
+                    };
+                    Object.defineProperty(i.prototype, 'atomCount', {
+                      get: function () {
+                        return this.mask.size;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      Object.defineProperty(i.prototype, 'isComplete', {
+                        get: function () {
+                          return this.mask.size === this.structure.data.atoms.count;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(i.prototype, 'lookup3d', {
+                        get: function () {
+                          return this.lazyLoopup3d || this.makeLookup3d(), this.lazyLoopup3d;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (i.prototype.hasAtom = function (t) {
+                        return !!this.mask.has(t);
+                      }),
+                      (i.prototype.hasRange = function (t, e) {
+                        for (var n = t; n < e; n++) if (this.mask.has(n)) return !0;
+                        return !1;
+                      }),
+                      (i.ofStructure = function (t) {
+                        return new i(t, Bo.Utils.Mask.ofStructure(t));
+                      }),
+                      (i.ofFragments = function (t) {
+                        return new i(t.context.structure, Bo.Utils.Mask.ofFragments(t));
+                      }),
+                      (i.ofAtomIndices = function (t, e) {
+                        return new i(t, Bo.Utils.Mask.ofIndices(t.data.atoms.count, e));
+                      }),
+                      (i.prototype.makeLookup3d = function () {
+                        for (
+                          var t = new Int32Array(this.mask.size),
+                            e = 0,
+                            n = this.structure.positions,
+                            r = n.x,
+                            i = n.y,
+                            o = n.z,
+                            a = 0,
+                            s = this.structure.positions.count;
+                          a < s;
+                          a++
+                        )
+                          this.mask.has(a) && (t[e++] = a);
+                        n = Bo.Geometry.Query3D.createInputData(t, function (t, e) {
+                          return e(r[t], i[t], o[t]);
+                        });
+                        this.lazyLoopup3d = Bo.Geometry.Query3D.createSpatialHash(n);
+                      });
+                    var r = i;
+                    function i(t, e) {
+                      (this.mask = e), (this.structure = t);
+                    }
+                    n.Context = r;
+                    Object.defineProperty(s.prototype, 'hashCode', {
+                      get: function () {
+                        if (this._hashComputed) return this._hashCode;
+                        for (var t = 23, e = 0, n = this.atomIndices; e < n.length; e++)
+                          t = (31 * t + n[e]) | 0;
+                        return (this._hashCode = t), (this._hashComputed = !0), t;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      Object.defineProperty(s.prototype, 'id', {
+                        get: function () {
+                          return this.context.structure.id + '_' + this.tag;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(s.prototype, 'atomCount', {
+                        get: function () {
+                          return this.atomIndices.length;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(s.prototype, 'isHet', {
+                        get: function () {
+                          var t = this.context.structure.data.atoms.residueIndex[this.tag];
+                          return this.context.structure.data.residues.isHet[t];
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(s.prototype, 'fingerprint', {
+                        get: function () {
+                          if (this._fingerprint) return this._fingerprint;
+                          for (
+                            var t = this.residueIndices,
+                              e = this.context.structure.data.residues,
+                              n = e.name,
+                              r = e.asymId,
+                              i = e.seqNumber,
+                              o = e.insCode,
+                              a = [],
+                              s = 0,
+                              l = t;
+                            s < l.length;
+                            s++
+                          ) {
+                            var u = l[s],
+                              c = n[u] + ' ' + r[u] + ' ' + i[u];
+                            o[u] && (c += ' i:' + o[u]), (a[a.length] = c);
+                          }
+                          return a.join('-');
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(s.prototype, 'authFingerprint', {
+                        get: function () {
+                          if (this._authFingerprint) return this._authFingerprint;
+                          for (
+                            var t = this.residueIndices,
+                              e = this.context.structure.data.residues,
+                              n = e.authName,
+                              r = e.authAsymId,
+                              i = e.authSeqNumber,
+                              o = e.insCode,
+                              a = [],
+                              s = 0,
+                              l = t;
+                            s < l.length;
+                            s++
+                          ) {
+                            var u = l[s],
+                              c = n[u] + ' ' + r[u] + ' ' + i[u];
+                            o[u] && (c += ' i:' + o[u]), (a[a.length] = c);
+                          }
+                          return a.join('-');
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (s.prototype.find = function (t) {
+                        var e = r.ofFragments(new o(this.context, [this]));
+                        return n.Builder.toQuery(t)(e);
+                      }),
+                      (s.prototype.computeIndices = function () {
+                        if (!this._residueIndices) {
+                          for (
+                            var t = Bo.Utils.FastSet.create(),
+                              e = Bo.Utils.FastSet.create(),
+                              n = Bo.Utils.FastSet.create(),
+                              r = this.context.structure.data.atoms.residueIndex,
+                              i = this.context.structure.data.residues.chainIndex,
+                              o = this.context.structure.data.chains.entityIndex,
+                              a = 0,
+                              s = this.atomIndices;
+                            a < s.length;
+                            a++
+                          ) {
+                            var l = s[a];
+                            t.add(r[l]);
+                          }
+                          this._residueIndices = Bo.Utils.integerSetToSortedTypedArray(t);
+                          for (var u = 0, c = this._residueIndices; u < c.length; u++) {
+                            l = c[u];
+                            e.add(i[l]);
+                          }
+                          this._chainIndices = Bo.Utils.integerSetToSortedTypedArray(e);
+                          for (var A = 0, h = this._chainIndices; A < h.length; A++) {
+                            l = h[A];
+                            n.add(o[l]);
+                          }
+                          this._entityIndices = Bo.Utils.integerSetToSortedTypedArray(n);
+                        }
+                      }),
+                      Object.defineProperty(s.prototype, 'residueIndices', {
+                        get: function () {
+                          return this.computeIndices(), this._residueIndices;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(s.prototype, 'chainIndices', {
+                        get: function () {
+                          return this.computeIndices(), this._chainIndices;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(s.prototype, 'entityIndices', {
+                        get: function () {
+                          return this.computeIndices(), this._entityIndices;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (s.areEqual = function (t, e) {
+                        if (t.atomCount !== e.atomCount) return !1;
+                        for (var n = t.atomIndices, r = e.atomIndices, i = 0; i < n.length; i++)
+                          if (n[i] !== r[i]) return !1;
+                        return t.tag === e.tag;
+                      }),
+                      (s.ofSet = function (t, e) {
+                        var n = new Int32Array(e.size);
+                        return (
+                          e.forEach(
+                            function (t, e) {
+                              e.array[e.index++] = t;
+                            },
+                            { array: n, index: 0 },
+                          ),
+                          Array.prototype.sort.call(n, function (t, e) {
+                            return t - e;
+                          }),
+                          new s(t, n[0], n)
+                        );
+                      }),
+                      (s.ofArray = function (t, e, n) {
+                        return new s(t, e, n);
+                      }),
+                      (s.ofIndex = function (t, e) {
+                        var n = new Int32Array(1);
+                        return new s(t, (n[0] = e), n);
+                      }),
+                      (s.ofIndexRange = function (t, e, n) {
+                        for (var r = 0, i = e; i < n; i++) t.hasAtom(i) && r++;
+                        for (var o = new Int32Array(r), a = 0, i = e; i < n; i++)
+                          t.hasAtom(i) && (o[a++] = i);
+                        return new s(t, e, o);
+                      });
+                    var a = s;
+                    function s(t, e, n) {
+                      (this._hashCode = 0),
+                        (this._hashComputed = !1),
+                        (this.context = t),
+                        (this.tag = e),
+                        (this.atomIndices = n);
+                    }
+                    n.Fragment = a;
+                    (e.empty = function (t) {
+                      return new e(t, []);
+                    }),
+                      Object.defineProperty(e.prototype, 'length', {
+                        get: function () {
+                          return this.fragments.length;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (e.prototype.unionAtomIndices = function () {
+                        if (!this.length) return [];
+                        if (1 === this.length) return this.fragments[0].atomIndices;
+                        for (
+                          var t = new Int8Array(this.context.structure.data.atoms.count),
+                            e = 0,
+                            n = 0,
+                            r = this.fragments;
+                          n < r.length;
+                          n++
+                        )
+                          for (var i = 0, o = r[n].atomIndices; i < o.length; i++)
+                            t[(c = o[i])] = 1;
+                        for (var a = 0, s = t; a < s.length; a++) e += c = s[a];
+                        for (var l = new Int32Array(e), u = 0, c = 0, A = t.length; c < A; c++)
+                          t[c] && (l[u++] = c);
+                        return l;
+                      }),
+                      (e.prototype.unionFragment = function () {
+                        if (!this.length) return new a(this.context, 0, new Int32Array(0));
+                        if (1 === this.length) return this.fragments[0];
+                        var t = this.unionAtomIndices();
+                        return new a(this.context, t[0], t);
+                      });
+                    var o = e;
+                    function e(t, e) {
+                      (this.context = t), (this.fragments = e);
+                    }
+                    function t(t) {
+                      (this.ctx = t), (this.fragments = []);
+                    }
+                    function l(t) {
+                      (this.ctx = t),
+                        (this.fragments = []),
+                        (this.byHash = Bo.Utils.FastMap.create());
+                    }
+                    (n.FragmentSeq = o),
+                      (t.prototype.add = function (t) {
+                        this.fragments[this.fragments.length] = t;
+                      }),
+                      (t.prototype.getSeq = function () {
+                        return new o(this.ctx, this.fragments);
+                      }),
+                      (n.FragmentSeqBuilder = t),
+                      (l.prototype.add = function (t) {
+                        var e = t.hashCode;
+                        if (this.byHash.has(e)) {
+                          for (var n = this.byHash.get(e), r = 0, i = n; r < i.length; r++) {
+                            var o = i[r];
+                            if (a.areEqual(t, o)) return this;
+                          }
+                          (this.fragments[this.fragments.length] = t), (n[n.length] = t);
+                        } else (this.fragments[this.fragments.length] = t), this.byHash.set(e, [t]);
+                        return this;
+                      }),
+                      (l.prototype.getSeq = function () {
+                        return new o(this.ctx, this.fragments);
+                      }),
+                      (n.HashFragmentSeqBuilder = l);
+                  })(
+                    (t = (Bo = t.Core || (t.Core = {})).Structure || (Bo.Structure = {})).Query ||
+                      (t.Query = {}),
+                  ),
+                  (r = F = F || {}),
+                  (r = (Co = r.Core || (r.Core = {})).Structure || (Co.Structure = {})),
+                  (S = r.Query || (r.Query = {})),
+                  ((xo = i = S.Builder || (S.Builder = {})).BuilderPrototype = {}),
+                  (xo.registerModifier = function (t, n) {
+                    xo.BuilderPrototype[t] = function () {
+                      for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                      return n.call.apply(n, [void 0, this].concat(t));
+                    };
+                  }),
+                  (xo.build = function (t) {
+                    return Object.create(xo.BuilderPrototype, {
+                      compile: { writable: !1, configurable: !1, value: t },
+                    });
+                  }),
+                  (xo.parse = Gs),
+                  (xo.toQuery = function (t) {
+                    return (t = t.compile
+                      ? t.compile()
+                      : 'string' == typeof t || t instanceof String
+                        ? Gs(t)
+                        : t);
+                  }),
+                  (S.allAtoms = function () {
+                    return i.build(function () {
+                      return o.compileAllAtoms();
+                    });
+                  }),
+                  (S.atomsByElement = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return i.build(function () {
+                      return o.compileAtoms(t, function (t) {
+                        return t.data.atoms.elementSymbol;
+                      });
+                    });
+                  }),
+                  (S.atomsByName = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return i.build(function () {
+                      return o.compileAtoms(t, function (t) {
+                        return t.data.atoms.name;
+                      });
+                    });
+                  }),
+                  (S.atomsById = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return i.build(function () {
+                      return o.compileAtoms(t, function (t) {
+                        return t.data.atoms.id;
+                      });
+                    });
+                  }),
+                  (S.residues = zs),
+                  (S.chains = Hs),
+                  (S.entities = js),
+                  (S.notEntities = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return i.build(function () {
+                      return o.compileAtomRanges(!0, t, function (t) {
+                        return t.data.entities;
+                      });
+                    });
+                  }),
+                  (S.everything = function () {
+                    return i.build(function () {
+                      return o.compileEverything();
+                    });
+                  }),
+                  (S.entitiesFromIndices = function (t) {
+                    return i.build(function () {
+                      return o.compileFromIndices(!1, t, function (t) {
+                        return t.data.entities;
+                      });
+                    });
+                  }),
+                  (S.chainsFromIndices = function (t) {
+                    return i.build(function () {
+                      return o.compileFromIndices(!1, t, function (t) {
+                        return t.data.chains;
+                      });
+                    });
+                  }),
+                  (S.residuesFromIndices = function (t) {
+                    return i.build(function () {
+                      return o.compileFromIndices(!1, t, function (t) {
+                        return t.data.residues;
+                      });
+                    });
+                  }),
+                  (S.atomsFromIndices = function (t) {
+                    return i.build(function () {
+                      return o.compileAtomIndices(t);
+                    });
+                  }),
+                  (S.sequence = function (t, e, n, r) {
+                    return i.build(function () {
+                      return o.compileSequence(t, e, n, r);
+                    });
+                  }),
+                  (S.hetGroups = Vs),
+                  (S.nonHetPolymer = function () {
+                    return i.build(function () {
+                      return o.compileNonHetPolymer();
+                    });
+                  }),
+                  (S.polymerTrace = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return i.build(function () {
+                      return o.compilePolymerNames(t, !1);
+                    });
+                  }),
+                  (S.cartoons = function () {
+                    return qs(
+                      i.build(function () {
+                        return o.compilePolymerNames(['CA', 'O', "O5'", "C3'", 'N3'], !1);
+                      }),
+                      Vs(),
+                      js({ type: 'water' }),
+                    );
+                  }),
+                  (S.backbone = function () {
+                    return i.build(function () {
+                      return o.compilePolymerNames(
+                        ['N', 'CA', 'C', 'O', 'P', 'OP1', 'OP2', "O3'", "O5'", "C3'", "C5'", 'C4'],
+                        !1,
+                      );
+                    });
+                  }),
+                  (S.sidechain = function () {
+                    return i.build(function () {
+                      return o.compilePolymerNames(
+                        ['N', 'CA', 'C', 'O', 'P', 'OP1', 'OP2', "O3'", "O5'", "C3'", "C5'", 'C4'],
+                        !0,
+                      );
+                    });
+                  }),
+                  (S.atomsInBox = function (t, e) {
+                    return i.build(function () {
+                      return o.compileAtomsInBox(t, e);
+                    });
+                  }),
+                  (S.or = qs),
+                  i.registerModifier('complement', Ws),
+                  (S.complement = Ws),
+                  i.registerModifier('ambientResidues', Js),
+                  (S.ambientResidues = Js),
+                  i.registerModifier('wholeResidues', Ks),
+                  (S.wholeResidues = Ks),
+                  i.registerModifier('union', Zs),
+                  (S.union = Zs),
+                  i.registerModifier('inside', Xs),
+                  (S.inside = Xs),
+                  i.registerModifier('intersectWith', $s),
+                  (S.intersectWith = $s),
+                  i.registerModifier('flatten', tl),
+                  (S.flatten = tl),
+                  i.registerModifier('except', el),
+                  (S.except = el),
+                  (S.residuesByName = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return zs.apply(
+                      void 0,
+                      t.map(function (t) {
+                        return { name: t };
+                      }),
+                    );
+                  }),
+                  (S.residuesById = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return zs.apply(
+                      void 0,
+                      t.map(function (t) {
+                        return { authSeqNumber: t };
+                      }),
+                    );
+                  }),
+                  (S.chainsById = function () {
+                    for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                    return Hs.apply(
+                      void 0,
+                      t.map(function (t) {
+                        return { authAsymId: t };
+                      }),
+                    );
+                  }),
+                  (r = o = S.Compiler || (S.Compiler = {})),
+                  (nl.prototype.isSatisfied = function (t) {
+                    for (var e = 0, n = this.columns; e < n.length; e++) {
+                      var r = n[e];
+                      if (r.value !== r.array[t]) return !1;
+                    }
+                    return !0;
+                  }),
+                  (Io = nl),
+                  (r.compileEverything = function () {
+                    return function (t) {
+                      var e;
+                      if (t.isComplete)
+                        return (
+                          (e = t.structure.data.atoms.indices),
+                          new S.FragmentSeq(t, [new S.Fragment(t, e[0], e)])
+                        );
+                      for (
+                        var n = new Int32Array(t.atomCount),
+                          r = 0,
+                          i = 0,
+                          o = t.structure.data.atoms.indices;
+                        i < o.length;
+                        i++
+                      ) {
+                        var a = o[i];
+                        t.hasAtom(a) && (n[r++] = a);
+                      }
+                      return new S.FragmentSeq(t, [S.Fragment.ofArray(t, n[0], n)]);
+                    };
+                  }),
+                  (r.compileAllAtoms = function () {
+                    return function (t) {
+                      for (
+                        var e = new S.FragmentSeqBuilder(t),
+                          n = 0,
+                          r = t.structure.data.atoms.count;
+                        n < r;
+                        n++
+                      )
+                        t.hasAtom(n) && e.add(S.Fragment.ofIndex(t, n));
+                      return e.getSeq();
+                    };
+                  }),
+                  (r.compileAtoms = function (a, s) {
+                    return function (t) {
+                      for (
+                        var e = Co.Utils.FastSet.ofArray(a),
+                          n = s(t.structure),
+                          r = new S.FragmentSeqBuilder(t),
+                          i = 0,
+                          o = n.length;
+                        i < o;
+                        i++
+                      )
+                        t.hasAtom(i) && e.has(n[i]) && r.add(S.Fragment.ofIndex(t, i));
+                      return r.getSeq();
+                    };
+                  }),
+                  (r.compileAtomIndices = function (u) {
+                    return function (t) {
+                      for (var e = 0, n = 0, r = u; n < r.length; n++) {
+                        var i = r[n];
+                        t.hasAtom(i) && e++;
+                      }
+                      if (!e) return S.FragmentSeq.empty(t);
+                      if (e === u.length)
+                        return new S.FragmentSeq(t, [S.Fragment.ofArray(t, u[0], u)]);
+                      for (var o = 0, a = new Int32Array(e), s = 0, l = u; s < l.length; s++) {
+                        i = l[s];
+                        t.hasAtom(i) && (a[o++] = i);
+                      }
+                      return new S.FragmentSeq(t, [S.Fragment.ofArray(t, a[0], a)]);
+                    };
+                  }),
+                  (r.compileFromIndices = function (c, A, h) {
+                    return function (t) {
+                      var e = h(t.structure),
+                        n = e.atomStartIndex,
+                        r = e.atomEndIndex,
+                        i = new S.FragmentSeqBuilder(t);
+                      if (c)
+                        for (var o = Co.Utils.FastSet.ofArray(A), a = e.count, s = 0; s < a; s++)
+                          o.has(s) ||
+                            (t.hasRange(n[s], r[s]) &&
+                              i.add(S.Fragment.ofIndexRange(t, n[s], r[s])));
+                      else
+                        for (var l = 0, u = A; l < u.length; l++) {
+                          s = u[l];
+                          t.hasRange(n[s], r[s]) && i.add(S.Fragment.ofIndexRange(t, n[s], r[s]));
+                        }
+                      return i.getSeq();
+                    };
+                  }),
+                  (r.compileAtomRanges = function (h, p, d) {
+                    return function (t) {
+                      for (
+                        var e = d(t.structure),
+                          n = e.atomStartIndex,
+                          r = e.atomEndIndex,
+                          i = new S.FragmentSeqBuilder(t),
+                          o = e.count,
+                          a = !1,
+                          s = p.map(function (t) {
+                            return new Io(t, e);
+                          }),
+                          l = 0 === s.length,
+                          u = 0;
+                        u < o;
+                        u++
+                      )
+                        if (t.hasRange(n[u], r[u])) {
+                          for (var a = l, c = 0, A = s; c < A.length; c++)
+                            if (A[c].isSatisfied(u)) {
+                              a = !0;
+                              break;
+                            }
+                          (a = h ? !a : a) && i.add(S.Fragment.ofIndexRange(t, n[u], r[u]));
+                        }
+                      return i.getSeq();
+                    };
+                  }),
+                  (r.compileSequence = function (x, I, M, D) {
+                    return function (t) {
+                      for (
+                        var e = t.structure.data,
+                          n = e.residues,
+                          e = e.chains,
+                          r = n.seqNumber,
+                          i = n.authSeqNumber,
+                          o = n.insCode,
+                          a = n.atomStartIndex,
+                          s = n.atomEndIndex,
+                          l = e.entityId,
+                          u = e.count,
+                          c = e.residueStartIndex,
+                          A = e.residueEndIndex,
+                          h = new S.FragmentSeqBuilder(t),
+                          n = t.structure.parent,
+                          p = e.sourceChainIndex,
+                          d = n && p,
+                          f = 'string' == typeof I ? { asymId: I } : I,
+                          g = new Io(f, d ? n.data.chains : e),
+                          n = 'string' == typeof f.authAsymId,
+                          m = n ? i : r,
+                          v = n ? M.authSeqNumber : M.seqNumber,
+                          b = n ? D.authSeqNumber : D.seqNumber,
+                          y = 0;
+                        y < u;
+                        y++
+                      )
+                        if ((!x || l[y] === x) && g.isSatisfied(d ? p[y] : y)) {
+                          for (var w, E = c[y], B = A[y], C = -1; E < B; E++)
+                            if (m[E] >= v && m[E] <= b && (!M.insCode || o[E] === M.insCode)) {
+                              C = E;
+                              break;
+                            }
+                          if (!(E < 0 || E === B)) {
+                            for (
+                              E = C;
+                              E < B &&
+                              (!(m[E] >= b) || (D.insCode && m[E] === b && o[E] !== D.insCode));
+                              E++
+                            );
+                            (w = E),
+                              t.hasRange(a[C], s[w]) &&
+                                h.add(S.Fragment.ofIndexRange(t, a[C], s[w]));
+                          }
+                        }
+                      return h.getSeq();
+                    };
+                  }),
+                  (r.compileHetGroups = function () {
+                    return function (t) {
+                      for (
+                        var e = t.structure.data.residues,
+                          n = e.atomStartIndex,
+                          r = e.atomEndIndex,
+                          i = e.isHet,
+                          o = e.entityIndex,
+                          a = e.count,
+                          s = t.structure.data.entities.type,
+                          l = new S.FragmentSeqBuilder(t),
+                          u = 0;
+                        u < a;
+                        u++
+                      )
+                        t.hasRange(n[u], r[u]) &&
+                          'water' !== s[o[u]] &&
+                          i[u] &&
+                          l.add(S.Fragment.ofIndexRange(t, n[u], r[u]));
+                      return l.getSeq();
+                    };
+                  }),
+                  (r.compileNonHetPolymer = function () {
+                    return function (t) {
+                      for (
+                        var e = t.structure.data.residues,
+                          n = e.atomStartIndex,
+                          r = e.atomEndIndex,
+                          e = t.structure.data.entities,
+                          i = e.type,
+                          o = e.count,
+                          a = e.residueStartIndex,
+                          s = e.residueEndIndex,
+                          l = 0,
+                          u = 0;
+                        u < o;
+                        u++
+                      )
+                        if ('polymer' === i[u])
+                          for (var c = a[u], A = s[u]; c < A; c++)
+                            for (var h = n[c], p = r[c]; h < p; h++) t.hasAtom(h) && l++;
+                      if (!l) return S.FragmentSeq.empty(t);
+                      for (var d = new Int32Array(l), f = 0, u = 0; u < o; u++)
+                        if ('polymer' === i[u])
+                          for (c = a[u], A = s[u]; c < A; c++)
+                            for (h = n[c], p = r[c]; h < p; h++) t.hasAtom(h) && (d[f++] = h);
+                      return new S.FragmentSeq(t, [S.Fragment.ofArray(t, d[0], d)]);
+                    };
+                  }),
+                  (r.compileAtomsInBox = function (A, h) {
+                    return function (t) {
+                      for (
+                        var e,
+                          n,
+                          r,
+                          i = t.structure.positions,
+                          o = i.x,
+                          a = i.y,
+                          s = i.z,
+                          l = i.count,
+                          u = [],
+                          c = 0;
+                        c < l;
+                        c++
+                      )
+                        t.hasAtom(c) &&
+                          ((e = o[c]),
+                          (n = a[c]),
+                          (r = s[c]),
+                          e >= A.x &&
+                            e <= h.x &&
+                            n >= A.y &&
+                            n <= h.y &&
+                            r >= A.z &&
+                            r <= h.z &&
+                            (u[u.length] = c));
+                      return u.length
+                        ? new S.FragmentSeq(t, [new S.Fragment(t, u[0], u)])
+                        : S.FragmentSeq.empty(t);
+                    };
+                  }),
+                  (r.compileInside = function (t, e) {
+                    var n = i.toQuery(t),
+                      r = i.toQuery(e);
+                    return function (t) {
+                      return new S.FragmentSeq(t, n(S.Context.ofFragments(r(t))).fragments);
+                    };
+                  }),
+                  (r.compileIntersectWith = function (t, e) {
+                    var s = i.toQuery(t),
+                      l = i.toQuery(e);
+                    return function (t) {
+                      for (
+                        var e = s(t),
+                          n = Co.Utils.Mask.ofFragments(l(t)),
+                          r = new S.FragmentSeqBuilder(t),
+                          i = 0,
+                          o = e.fragments;
+                        i < o.length;
+                        i++
+                      ) {
+                        var a = (function (t, e, n) {
+                          for (var r = 0, i = 0, o = e.atomIndices; i < o.length; i++) {
+                            var a = o[i];
+                            n.has(a) && r++;
+                          }
+                          if (r) {
+                            for (
+                              var s = new Int32Array(r), l = 0, u = 0, c = e.atomIndices;
+                              u < c.length;
+                              u++
+                            ) {
+                              a = c[u];
+                              n.has(a) && (s[l++] = a);
+                            }
+                            return S.Fragment.ofArray(t, s[0], s);
+                          }
+                        })(t, o[i], n);
+                        a && r.add(a);
+                      }
+                      return r.getSeq();
+                    };
+                  }),
+                  (r.compileFilter = function (t, o) {
+                    var a = i.toQuery(t);
+                    return function (t) {
+                      for (
+                        var e, n = a(t).fragments, r = new S.FragmentSeqBuilder(t), i = 0;
+                        i < n.length;
+                        i++
+                      )
+                        (e = n[i]), o(e) && r.add(e);
+                      return r.getSeq();
+                    };
+                  }),
+                  (r.compileComplement = function (t) {
+                    var s = i.toQuery(t);
+                    return function (t) {
+                      for (
+                        var e = Co.Utils.Mask.ofFragments(s(t)),
+                          n = 0,
+                          r = 0,
+                          i = 0,
+                          o = t.structure.data.atoms.count;
+                        i < o;
+                        i++
+                      )
+                        t.hasAtom(i) && !e.has(i) && n++;
+                      if (!n) return S.FragmentSeq.empty(t);
+                      for (
+                        var a = new Int32Array(n), i = 0, o = t.structure.data.atoms.count;
+                        i < o;
+                        i++
+                      )
+                        t.hasAtom(i) && !e.has(i) && (a[r++] = i);
+                      return new S.FragmentSeq(t, [S.Fragment.ofArray(t, a[0], a)]);
+                    };
+                  }),
+                  (r.compileOr = function (t) {
+                    var s = t.map(function (t) {
+                      return i.toQuery(t);
+                    });
+                    return 1 === s.length
+                      ? s[0]
+                      : function (t) {
+                          for (
+                            var e = new S.HashFragmentSeqBuilder(t), n = 0, r = s;
+                            n < r.length;
+                            n++
+                          )
+                            for (var i = 0, o = (0, r[n])(t).fragments; i < o.length; i++) {
+                              var a = o[i];
+                              e.add(a);
+                            }
+                          return e.getSeq();
+                        };
+                  }),
+                  (r.compileUnion = function (t) {
+                    var a = i.toQuery(t);
+                    return function (t) {
+                      for (
+                        var e, n = a(t).fragments, r = Co.Utils.FastSet.create(), i = 0, o = 0;
+                        o < n.length;
+                        o++
+                      )
+                        for (e = n[o].atomIndices, i = 0; i < e.length; i++) r.add(e[i]);
+                      return 0 === r.size
+                        ? S.FragmentSeq.empty(t)
+                        : new S.FragmentSeq(t, [S.Fragment.ofSet(t, r)]);
+                    };
+                  }),
+                  (r.compilePolymerNames = function (A, h) {
+                    return function (t) {
+                      var e = t.structure,
+                        n = e.data.entities,
+                        r = e.data.atoms.name,
+                        i = [],
+                        o = 0,
+                        a = Co.Utils.FastSet.ofArray(A);
+                      if (h) {
+                        for (var s = 0; s < e.data.entities.count; s++)
+                          if ('polymer' === n.type[s])
+                            for (
+                              var l = n.atomStartIndex[s], u = n.atomEndIndex[s], c = l;
+                              c < u;
+                              c++
+                            )
+                              t.hasAtom(c) && !a.has(r[c]) && (i[o++] = c);
+                      } else
+                        for (s = 0; s < n.count; s++)
+                          if ('polymer' === n.type[s])
+                            for (l = n.atomStartIndex[s], u = n.atomEndIndex[s], c = l; c < u; c++)
+                              t.hasAtom(c) && a.has(r[c]) && (i[o++] = c);
+                      return i.length
+                        ? new S.FragmentSeq(t, [S.Fragment.ofArray(t, i[0], new Int32Array(i))])
+                        : S.FragmentSeq.empty(t);
+                    };
+                  }),
+                  (r.compileAmbientResidues = function (t, w) {
+                    var E = i.toQuery(t);
+                    return function (t) {
+                      for (
+                        var e = E(t),
+                          n = t.lookup3d(),
+                          r = new S.HashFragmentSeqBuilder(t),
+                          i = t.structure.positions,
+                          o = i.x,
+                          a = i.y,
+                          s = i.z,
+                          l = t.structure.data.atoms.residueIndex,
+                          u = t.structure.data.residues.atomStartIndex,
+                          c = t.structure.data.residues.atomEndIndex,
+                          A = 0,
+                          h = e.fragments;
+                        A < h.length;
+                        A++
+                      ) {
+                        for (
+                          var p = h[A], d = Co.Utils.FastSet.create(), f = 0, g = p.atomIndices;
+                          f < g.length;
+                          f++
+                        )
+                          for (
+                            var m = g[f],
+                              m = (d.add(l[m]), n(o[m], a[m], s[m], w)),
+                              v = m.elements,
+                              b = m.count,
+                              y = 0;
+                            y < b;
+                            y++
+                          )
+                            d.add(l[v[y]]);
+                        (p = { count: 0, start: u, end: c }),
+                          (p =
+                            (d.forEach(function (t, e) {
+                              e.count += e.end[t] - e.start[t];
+                            }, p),
+                            new Int32Array(p.count)));
+                        d.forEach(
+                          function (t, e) {
+                            for (var n = e.start[t], r = e.end[t]; n < r; n++)
+                              e.indices[e.offset++] = n;
+                          },
+                          { indices: p, offset: 0, start: u, end: c },
+                        ),
+                          Array.prototype.sort.call(p, function (t, e) {
+                            return t - e;
+                          }),
+                          r.add(S.Fragment.ofArray(t, p[0], p));
+                      }
+                      return r.getSeq();
+                    };
+                  }),
+                  (r.compileWholeResidues = function (t) {
+                    var p = i.toQuery(t);
+                    return function (t) {
+                      for (
+                        var e = p(t),
+                          n = new S.HashFragmentSeqBuilder(t),
+                          r = t.structure.data.atoms.residueIndex,
+                          i = t.structure.data.residues.atomStartIndex,
+                          o = t.structure.data.residues.atomEndIndex,
+                          a = 0,
+                          s = e.fragments;
+                        a < s.length;
+                        a++
+                      ) {
+                        for (
+                          var l = s[a], u = Co.Utils.FastSet.create(), c = 0, A = l.atomIndices;
+                          c < A.length;
+                          c++
+                        ) {
+                          var h = A[c];
+                          u.add(r[h]);
+                        }
+                        (l = { count: 0, start: i, end: o }),
+                          (l =
+                            (u.forEach(function (t, e) {
+                              e.count += e.end[t] - e.start[t];
+                            }, l),
+                            new Int32Array(l.count)));
+                        u.forEach(
+                          function (t, e) {
+                            for (var n = e.start[t], r = e.end[t]; n < r; n++)
+                              e.indices[e.offset++] = n;
+                          },
+                          { indices: l, offset: 0, start: i, end: o },
+                        ),
+                          Array.prototype.sort.call(l, function (t, e) {
+                            return t - e;
+                          }),
+                          n.add(S.Fragment.ofArray(t, l[0], l));
+                      }
+                      return n.getSeq();
+                    };
+                  }),
+                  (r.compileFlatten = function (t, u) {
+                    var c = i.toQuery(t);
+                    return function (t) {
+                      for (
+                        var e = c(t), n = new S.HashFragmentSeqBuilder(t), r = 0, i = e.fragments;
+                        r < i.length;
+                        r++
+                      )
+                        for (var o = i[r], a = 0, s = u(o).fragments; a < s.length; a++) {
+                          var l = s[a];
+                          n.add(l);
+                        }
+                      return n.getSeq();
+                    };
+                  }),
+                  (r.compileExcept = function (t, e) {
+                    var f = i.toQuery(t),
+                      g = i.toQuery(e);
+                    return function (t) {
+                      for (
+                        var e = f(t),
+                          n = Co.Utils.Mask.ofFragments(g(t)),
+                          r = new S.HashFragmentSeqBuilder(t),
+                          i = 0,
+                          o = e.fragments;
+                        i < o.length;
+                        i++
+                      ) {
+                        for (var a = o[i], s = 0, l = 0, u = a.atomIndices; l < u.length; l++) {
+                          var c = u[l];
+                          n.has(c) || s++;
+                        }
+                        if (s) {
+                          for (
+                            var A = new Int32Array(s), h = 0, p = 0, d = a.atomIndices;
+                            p < d.length;
+                            p++
+                          ) {
+                            c = d[p];
+                            n.has(c) || (A[h++] = c);
+                          }
+                          r.add(S.Fragment.ofArray(t, A[0], A));
+                        }
+                      }
+                      return r.getSeq();
+                    };
+                  }),
+                  (e = (e = F = F || {}).Core || (e.Core = {})),
+                  (t = e.Structure || (e.Structure = {})),
+                  (Mo = t.Query || (t.Query = {})),
+                  ((Do = Mo.Algebraic || (Mo.Algebraic = {})).not =
+                    ((So = function (t) {
+                      return !t;
+                    }),
+                    function (n) {
+                      return function (t, e) {
+                        return So(n(t, e));
+                      };
+                    })),
+                  (Do.and = rl(function (t, e) {
+                    return t && e;
+                  })),
+                  (Do.or = rl(function (t, e) {
+                    return t || e;
+                  })),
+                  (ko = e.Utils.FastSet.ofArray([
+                    'N',
+                    'CA',
+                    'C',
+                    'O',
+                    'P',
+                    'OP1',
+                    'OP2',
+                    "O3'",
+                    "O5'",
+                    "C3'",
+                    "C5'",
+                    'C4',
+                  ])),
+                  (Do.backbone = function (t, e) {
+                    return 'polymer' === Do.entityType(t, e) && ko.has(Do.atomName(t, e));
+                  }),
+                  (Do.sidechain = function (t, e) {
+                    return 'polymer' === Do.entityType(t, e) && !ko.has(Do.atomName(t, e));
+                  }),
+                  (Do.equal = il(function (t, e) {
+                    return t === e;
+                  })),
+                  (Do.notEqual = il(function (t, e) {
+                    return t !== e;
+                  })),
+                  (Do.greater = il(function (t, e) {
+                    return e < t;
+                  })),
+                  (Do.lesser = il(function (t, e) {
+                    return t < e;
+                  })),
+                  (Do.greaterEqual = il(function (t, e) {
+                    return e <= t;
+                  })),
+                  (Do.lesserEqual = il(function (t, e) {
+                    return t <= e;
+                  })),
+                  (Do.inRange = function (n, r, i) {
+                    return function (t, e) {
+                      t = n(t, e);
+                      return r <= t && t <= i;
+                    };
+                  }),
+                  (Do.value = function (t) {
+                    return function () {
+                      return t;
+                    };
+                  }),
+                  (Do.residueSeqNumber = ol(
+                    function (t) {
+                      return t.residueIndex;
+                    },
+                    function (t) {
+                      return t.data.residues;
+                    },
+                    function (t) {
+                      return t.seqNumber;
+                    },
+                  )),
+                  (Do.residueName = ol(
+                    function (t) {
+                      return t.residueIndex;
+                    },
+                    function (t) {
+                      return t.data.residues;
+                    },
+                    function (t) {
+                      return t.name;
+                    },
+                  )),
+                  (Do.elementSymbol = ol(
+                    function (t) {
+                      return t.indices;
+                    },
+                    function (t) {
+                      return t.data.atoms;
+                    },
+                    function (t) {
+                      return t.elementSymbol;
+                    },
+                  )),
+                  (Do.atomName = ol(
+                    function (t) {
+                      return t.indices;
+                    },
+                    function (t) {
+                      return t.data.atoms;
+                    },
+                    function (t) {
+                      return t.name;
+                    },
+                  )),
+                  (Do.entityType = ol(
+                    function (t) {
+                      return t.entityIndex;
+                    },
+                    function (t) {
+                      return t.data.entities;
+                    },
+                    function (t) {
+                      return t.type;
+                    },
+                  )),
+                  (Do.query = function (i) {
+                    return Mo.Builder.build(function () {
+                      return function (t) {
+                        for (var e = [], n = 0, r = t.structure.data.atoms.count; n < r; n++)
+                          t.hasAtom(n) && i(t, n) && (e[e.length] = n);
+                        return e.length
+                          ? new Mo.FragmentSeq(t, [Mo.Fragment.ofArray(t, e[0], new Int32Array(e))])
+                          : Mo.FragmentSeq.empty(t);
+                      };
+                    });
+                  }),
+                  (((r = F = F || {}).Visualization || (r.Visualization = {})).VERSION = {
+                    number: '1.7.9',
+                    date: 'June 8 2019',
+                  }),
+                  (((t = F = F || {}).Visualization || (t.Visualization = {})).THREE = n),
+                  (function (t) {
+                    function r() {}
+                    (r.getRandomColor = function (t) {
+                      void 0 === t && (t = 0);
+                      for (var e = 0; ; ) {
+                        e++;
+                        var n = r.randomMix(
+                          { r: 166 / 255, g: 0, b: 100 / 255 },
+                          { r: 1, g: 1, b: 0 },
+                          { r: 0, g: 100 / 255, b: 1 },
+                          t,
+                        );
+                        if (
+                          100 <
+                            Math.abs(r.previous.r - n.r) +
+                              Math.abs(r.previous.g - n.g) +
+                              Math.abs(r.previous.b - n.b) ||
+                          10 === e
+                        )
+                          return (r.previous = n);
+                      }
+                    }),
+                      (r.randomMix = function (t, e, n, r) {
+                        var i = 0 | Math.floor(3 * Math.random()),
+                          o = 0 == i ? Math.random() * r : Math.random(),
+                          a = 1 == i ? Math.random() * r : Math.random(),
+                          i = 2 == i ? Math.random() * r : Math.random(),
+                          r = o + a + i;
+                        return {
+                          r: (o /= r) * t.r + (a /= r) * e.r + (i /= r) * n.r,
+                          g: o * t.g + a * e.g + i * n.g,
+                          b: o * t.b + a * e.b + i * n.b,
+                        };
+                      }),
+                      (r.interpolate = function (t, e, n, r, i, o) {
+                        (o = void 0 !== o ? o : { r: 0.1, g: 0.1, b: 0.1 }),
+                          (i = (i - t) / (n - t));
+                        return (
+                          (o.r = e.r + (r.r - e.r) * i),
+                          (o.g = e.g + (r.g - e.g) * i),
+                          (o.b = e.b + (r.b - e.b) * i),
+                          o
+                        );
+                      }),
+                      (r.previous = r.randomMix(
+                        { r: 0.75, g: 0, b: 0.25 },
+                        { r: 1, g: 0.5, b: 0 },
+                        { r: 0, g: 0.35, b: 1 },
+                        0.5,
+                      )),
+                      (t.Palette = r);
+                  })(
+                    (e = (e = F = F || {}).Visualization || (e.Visualization = {})).Utils ||
+                      (e.Utils = {}),
+                  ),
+                  (function (u) {
+                    function e() {}
+                    (u.checkWebGL = function () {
+                      var t = document.createElement('canvas');
+                      try {
+                        return !!(t.getContext('webgl') || t.getContext('experimental-webgl'));
+                      } catch (t) {
+                        return console.log(t), !1;
+                      }
+                    }),
+                      (e.setPickBase = function (t, e, n, r) {
+                        (t = (t << (24 - e)) | n), (e = (t >> 8) & 255), (n = 255 & t);
+                        (r.r = ((t >> 16) & 255) / 255), (r.g = e / 255), (r.b = n / 255);
+                      }),
+                      (e.setPickColor = function (t, e, n, r, i) {
+                        (t = (t << (24 - e)) | n), (e = (t >> 8) & 255), (n = 255 & t);
+                        (r[i] = ((t >> 16) & 255) / 255),
+                          (r[i + 1] = e / 255),
+                          (r[i + 2] = n / 255);
+                      }),
+                      (e.toSurface = function (t) {
+                        for (
+                          var e = 3 * t.vertices.length,
+                            n = new Float32Array(e),
+                            r = new Float32Array(e),
+                            i = new Uint32Array(3 * t.faces.length),
+                            o = Array(t.vertices.length),
+                            a = 0;
+                          a < t.faces.length;
+                          a++
+                        ) {
+                          var s = t.faces[a];
+                          (o[s.a] = s.vertexNormals[0]),
+                            (o[s.b] = s.vertexNormals[1]),
+                            (o[s.c] = s.vertexNormals[2]),
+                            (i[3 * a] = s.a),
+                            (i[3 * a + 1] = s.b),
+                            (i[3 * a + 2] = s.c);
+                        }
+                        for (a = 0; a < t.vertices.length; a++) {
+                          var l = t.vertices[a],
+                            l =
+                              ((n[3 * a] = l.x), (n[3 * a + 1] = l.y), (n[3 * a + 2] = l.z), o[a]);
+                          (r[3 * a] = l.x), (r[3 * a + 1] = l.y), (r[3 * a + 2] = l.z);
+                        }
+                        return {
+                          vertices: n,
+                          vertexCount: t.vertices.length,
+                          triangleIndices: i,
+                          triangleCount: t.faces.length,
+                          normals: r,
+                        };
+                      }),
+                      (e.toRawGeometry = function (t) {
+                        t = e.toSurface(t);
+                        return {
+                          vertices: t.vertices,
+                          vertexCount: t.vertexCount,
+                          indices: t.triangleIndices,
+                          indexCount: t.triangleCount,
+                          normals: t.normals,
+                          elementSize: 3,
+                        };
+                      }),
+                      (e.getIndexedBufferGeometry = function (t) {
+                        for (
+                          var e = 3 * t.vertices.length,
+                            n = new Float32Array(e),
+                            r = new Float32Array(e),
+                            i = new Uint32Array(3 * t.faces.length),
+                            o = Array(t.vertices.length),
+                            a = 0;
+                          a < t.faces.length;
+                          a++
+                        ) {
+                          var s = t.faces[a];
+                          (o[s.a] = s.vertexNormals[0]),
+                            (o[s.b] = s.vertexNormals[1]),
+                            (o[s.c] = s.vertexNormals[2]),
+                            (i[3 * a] = s.a),
+                            (i[3 * a + 1] = s.b),
+                            (i[3 * a + 2] = s.c);
+                        }
+                        for (a = 0; a < t.vertices.length; a++) {
+                          var l = t.vertices[a],
+                            l =
+                              ((n[3 * a] = l.x), (n[3 * a + 1] = l.y), (n[3 * a + 2] = l.z), o[a]);
+                          (r[3 * a] = l.x), (r[3 * a + 1] = l.y), (r[3 * a + 2] = l.z);
+                        }
+                        e = new u.THREE.BufferGeometry();
+                        return (
+                          e.addAttribute('position', new u.THREE.BufferAttribute(n, 3)),
+                          e.addAttribute('normal', new u.THREE.BufferAttribute(r, 3)),
+                          e.addAttribute('index', new u.THREE.BufferAttribute(i, 1)),
+                          e
+                        );
+                      }),
+                      (u.GeometryHelper = e);
+                  })((r = F = F || {}).Visualization || (r.Visualization = {})),
+                  (Fo = F = F || {}),
+                  (Qo = Fo.Visualization || (Fo.Visualization = {})),
+                  ((t = _o = Qo.Color || (Qo.Color = {})).copy = function (t, e) {
+                    (e.r = t.r), (e.g = t.g), (e.b = t.b);
+                  }),
+                  (t.clone = function (t) {
+                    return { r: t.r, g: t.g, b: t.b };
+                  }),
+                  (t.toVector = function (t) {
+                    return new Qo.THREE.Vector3(t.r, t.g, t.b);
+                  }),
+                  (t.fromVector = function (t) {
+                    return { r: t.x, g: t.y, b: t.z };
+                  }),
+                  (t.fromRgb = function (t, e, n) {
+                    return { r: t / 255, g: e / 255, b: n / 255 };
+                  }),
+                  (t.fromHsl = function (t, e, n) {
+                    var r, i, o;
+                    return (
+                      0 == e
+                        ? (r = i = o = n)
+                        : ((r = al(
+                            (e = 2 * n - (n = n < 0.5 ? n * (1 + e) : n + e - n * e)),
+                            n,
+                            t + 1 / 3,
+                          )),
+                          (i = al(e, n, t)),
+                          (o = al(e, n, t - 1 / 3))),
+                      { r: r, g: i, b: o }
+                    );
+                  }),
+                  (t.fromHsv = function (t, e, n) {
+                    var r, i, o;
+                    if (0 === e) r = [n, n, n];
+                    else
+                      switch (
+                        ((o = [
+                          n * (1 - e),
+                          n * (1 - e * ((t /= 60) - (i = Math.floor(t)))),
+                          n * (1 - e * (1 - (t - i))),
+                        ]),
+                        i)
+                      ) {
+                        case 0:
+                          r = [n, o[2], o[0]];
+                          break;
+                        case 1:
+                          r = [o[1], n, o[0]];
+                          break;
+                        case 2:
+                          r = [o[0], n, o[2]];
+                          break;
+                        case 3:
+                          r = [o[0], o[1], n];
+                          break;
+                        case 4:
+                          r = [o[2], o[0], n];
+                          break;
+                        default:
+                          r = [n, o[0], o[1]];
+                      }
+                    return { r: r[0], g: r[1], b: r[2] };
+                  }),
+                  (t.random = function () {
+                    return Qo.Utils.Palette.getRandomColor();
+                  }),
+                  (t.fromHex = sl),
+                  (t.fromHexString = function t(e) {
+                    return '#' !== e[0]
+                      ? sl(0)
+                      : 4 === e.length
+                        ? t('#' + e[1] + e[1] + e[2] + e[2] + e[3] + e[3])
+                        : 7 === e.length
+                          ? sl(parseInt(e.substr(1), 16))
+                          : sl(0);
+                  }),
+                  (t.interpolate = function (t, e, n, r) {
+                    (r.r = t.r + (e.r - t.r) * n),
+                      (r.g = t.g + (e.g - t.g) * n),
+                      (r.b = t.b + (e.b - t.b) * n);
+                  }),
+                  (t.isColor = function (t) {
+                    return void 0 !== t.r && void 0 !== t.g && void 0 !== t.b;
+                  }),
+                  (t = Qo.Theme || (Qo.Theme = {})),
+                  ((n = To = t.Default || (t.Default = {})).HighlightColor = { r: 1, g: 1, b: 0 }),
+                  (n.SelectionColor = { r: 171 / 255, g: 71 / 255, b: 183 / 255 }),
+                  (n.UniformColor = { r: 68 / 255, g: 130 / 255, b: 255 }),
+                  (n.Transparency = { alpha: 1, writeDepth: !1 }),
+                  (t.isTransparent = function (t) {
+                    return (t = +t.transparency.alpha), (t = isNaN(t) ? 1 : t) <= 0.999;
+                  }),
+                  (t.getColor = function (t, e, n) {
+                    return (t = t.colors.get(e)) || n;
+                  }),
+                  (t.createUniform = function (t) {
+                    var e = (t = void 0 === t ? {} : t).colors,
+                      n = void 0 === (n = t.variables) ? Fo.Core.Utils.FastMap.create() : n,
+                      r = void 0 === (r = t.transparency) ? To.Transparency : r,
+                      i = void 0 === (i = t.interactive) || i,
+                      o = void 0 !== (o = t.disableFog) && o,
+                      t = void 0 !== (t = t.isSticky) && t,
+                      a = Fo.Core.Utils.FastMap.create(),
+                      s =
+                        (e &&
+                          e.forEach(function (t, e) {
+                            return a.set(e, t);
+                          }),
+                        a.get('Uniform'));
+                    return (
+                      s || (a.set('Uniform', To.UniformColor), (s = To.UniformColor)),
+                      {
+                        colors: a,
+                        variables: n,
+                        transparency: r,
+                        interactive: i,
+                        disableFog: o,
+                        isSticky: t,
+                        setElementColor: function (t, e) {
+                          _o.copy(s, e);
+                        },
+                      }
+                    );
+                  }),
+                  (t.createMapping = function (n, t) {
+                    var e =
+                        void 0 === (e = (t = void 0 === t ? {} : t).colors)
+                          ? Fo.Core.Utils.FastMap.create()
+                          : e,
+                      r = void 0 === (r = t.variables) ? Fo.Core.Utils.FastMap.create() : r,
+                      i = void 0 === (i = t.transparency) ? To.Transparency : i,
+                      o = t.interactive,
+                      a = t.disableFog,
+                      t = t.isSticky;
+                    return {
+                      colors: e,
+                      variables: r,
+                      transparency: i || To.Transparency,
+                      interactive: void 0 === o || o,
+                      disableFog: void 0 !== a && a,
+                      isSticky: void 0 !== t && t,
+                      setElementColor: function (t, e) {
+                        n.setColor(n.getProperty(t), e);
+                      },
+                    };
+                  }),
+                  (t.createColorMapMapping = function (t, e, n) {
+                    var r = new No(e, n);
+                    return {
+                      getProperty: t,
+                      setColor: function (t, e) {
+                        return r.setColor(t, e);
+                      },
+                    };
+                  }),
+                  (t.createPalleteMapping = function (t, e) {
+                    var n = new Uo(e);
+                    return {
+                      getProperty: t,
+                      setColor: function (t, e) {
+                        return n.setColor(t, e);
+                      },
+                    };
+                  }),
+                  (t.createPalleteIndexMapping = function (t, e) {
+                    var n = new Ro(e);
+                    return {
+                      getProperty: t,
+                      setColor: function (t, e) {
+                        return n.setColor(t, e);
+                      },
+                    };
+                  }),
+                  (ll.prototype.setColor = function (t, e) {
+                    t = this.pallete[t];
+                    _o.copy(t, e);
+                  }),
+                  (Ro = ll),
+                  (ul.prototype.setColor = function (t, e) {
+                    var n = this.colorMap.get(t);
+                    n ||
+                      ((this.colorIndex = (this.colorIndex + 1) % this.pallete.length | 0),
+                      (n = this.pallete[this.colorIndex]),
+                      this.colorMap.set(t, n)),
+                      _o.copy(n, e);
+                  }),
+                  (Uo = ul),
+                  (cl.prototype.setColor = function (t, e) {
+                    t = (t = this.map.get(t)) || this.fallbackColor;
+                    _o.copy(t, e);
+                  }),
+                  (No = cl),
+                  (function (t) {
+                    var a;
+                    function o() {}
+                    (a = t.Visualization || (t.Visualization = {})),
+                      (o.getPickMaterial = function () {
+                        return new a.THREE.ShaderMaterial({
+                          attributes: { pColor: { type: 'v4', value: [] } },
+                          vertexShader: o.pickVertexShader,
+                          fragmentShader: o.pickFragmentShader,
+                          blending: a.THREE.NoBlending,
+                          shading: a.THREE.FlatShading,
+                          side: a.THREE.DoubleSide,
+                        });
+                      }),
+                      (o.getPickExcludeMaterial = function () {
+                        return new a.THREE.MeshBasicMaterial({
+                          color: a.THREE.ColorKeywords.white,
+                          side: a.THREE.DoubleSide,
+                        });
+                      }),
+                      (o.compareVectorAndColor = function (t, e) {
+                        return t.x === e.r && t.y === e.g && t.z === e.b;
+                      }),
+                      (o.updateMaterial = function (t, e, n) {
+                        var r = !1;
+                        o.updateTransparencyAndFog(t, e, n) && (r = !0),
+                          (r =
+                            t instanceof a.THREE.ShaderMaterial && o.updateHighlightColor(t, e)
+                              ? !0
+                              : r) && (t.needsUpdate = !0);
+                      }),
+                      (o.updateHighlightColor = function (t, e) {
+                        var n = !1,
+                          r = t.uniforms.selectionColor.value,
+                          i = a.Theme.getColor(e, 'Selection', a.Theme.Default.SelectionColor),
+                          i =
+                            (o.compareVectorAndColor(r, i) ||
+                              ((t.uniforms.selectionColor.value = a.Color.toVector(i)), (n = !0)),
+                            (r = t.uniforms.highlightColor.value),
+                            a.Theme.getColor(e, 'Highlight', a.Theme.Default.HighlightColor));
+                        return (
+                          o.compareVectorAndColor(r, i) ||
+                            ((t.uniforms.highlightColor.value = a.Color.toVector(i)), (n = !0)),
+                          n
+                        );
+                      }),
+                      (o.updateTransparencyAndFog = function (t, e, n) {
+                        var r = e.transparency,
+                          i = +r.alpha,
+                          o = (i = isNaN(i) ? 1 : i) <= 0.999,
+                          r = !!r.writeDepth,
+                          n = (o || ((i = 1), (r = !0)), n && (n.renderOrder = o ? 1 : 0), !1);
+                        return (
+                          (t instanceof a.THREE.MeshPhongMaterial ||
+                            t instanceof a.THREE.MeshBasicMaterial ||
+                            t instanceof a.THREE.ShaderMaterial) &&
+                            (t.transparent !== o && ((t.transparent = o), (n = !0)),
+                            t.depthWrite !== r && ((t.depthWrite = r), (n = !0)),
+                            t.opacity !== i && ((t.opacity = i), (n = !0)),
+                            t.fog !== !e.disableFog && ((t.fog = !e.disableFog), (n = !0)),
+                            t instanceof a.THREE.ShaderMaterial &&
+                              t.uniforms.opacity &&
+                              (t.uniforms.opacity.value = i)),
+                          n
+                        );
+                      }),
+                      (o.getMeshMaterial = function (t, e) {
+                        void 0 === t && (t = a.THREE.SmoothShading), void 0 === e && (e = !1);
+                        var n = o.shader;
+                        return new a.THREE.ShaderMaterial({
+                          uniforms: a.THREE.UniformsUtils.clone(n.uniforms),
+                          attributes: { vState: { type: 'f', value: [] } },
+                          lights: !0,
+                          fog: !0,
+                          vertexShader: n.vertexShader,
+                          fragmentShader: n.fragmentShader,
+                          shading: t,
+                          side: a.THREE.DoubleSide,
+                          vertexColors: a.THREE.VertexColors,
+                          blending: a.THREE.NormalBlending,
+                          wireframe: e,
+                          linewidth: 1,
+                        });
+                      }),
+                      (o.getPhongVertexColorMaterial = function () {
+                        return new a.THREE.MeshPhongMaterial({
+                          specular: 11184810,
+                          shininess: 2,
+                          shading: a.THREE.SmoothShading,
+                          vertexColors: a.THREE.VertexColors,
+                          side: a.THREE.DoubleSide,
+                          metal: !0,
+                        });
+                      }),
+                      (o.getDefaultHighlightMaterial = function () {
+                        return new a.THREE.MeshPhongMaterial({
+                          color: 16777215,
+                          specular: 11184810,
+                          shininess: 2,
+                          shading: a.THREE.SmoothShading,
+                          side: a.THREE.DoubleSide,
+                          metal: !0,
+                        });
+                      }),
+                      (o.applyColorToBuffer = function (t, e) {
+                        for (var n = t.array, r = 0, i = n.length; r < i; r += 3)
+                          (n[r] = e.r), (n[r + 1] = e.g), (n[r + 2] = e.b);
+                        t.needsUpdate = !0;
+                      }),
+                      (o.applyColorToMap = function (t, e, n) {
+                        for (
+                          var r = e.array,
+                            i = { r: 0.45, g: 0.45, b: 0.45 },
+                            o = t.vertexRanges,
+                            a = 0,
+                            s = t.elementIndices;
+                          a < s.length;
+                          a++
+                        ) {
+                          var l = s[a],
+                            u = t.elementMap.get(l),
+                            c = t.elementRanges[2 * u],
+                            A = t.elementRanges[2 * u + 1];
+                          if (c !== A) {
+                            n(l, i);
+                            for (var h = c; h < A; h += 2)
+                              for (var p = o[h], d = o[h + 1], f = p; f < d; f++)
+                                (r[3 * f] = i.r), (r[3 * f + 1] = i.g), (r[3 * f + 2] = i.b);
+                          }
+                        }
+                        e.needsUpdate = !0;
+                      }),
+                      (o.pickVertexShader = [
+                        'attribute vec4 pColor;',
+                        'varying vec4 pC;',
+                        'void main() {',
+                        'pC = pColor;',
+                        'gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',
+                        '}',
+                      ].join('\n')),
+                      (o.pickFragmentShader = [
+                        'varying vec4 pC;',
+                        'void main() {',
+                        'gl_FragColor = pC;',
+                        '}',
+                      ].join('\n')),
+                      (o.shader = {
+                        uniforms: a.THREE.UniformsUtils.merge([
+                          a.THREE.UniformsLib.common,
+                          a.THREE.UniformsLib.bump,
+                          a.THREE.UniformsLib.normalmap,
+                          a.THREE.UniformsLib.fog,
+                          a.THREE.UniformsLib.lights,
+                          a.THREE.UniformsLib.shadowmap,
+                          {
+                            emissive: { type: 'c', value: new a.THREE.Color(0) },
+                            specular: { type: 'c', value: new a.THREE.Color(1118481) },
+                            shininess: { type: 'f', value: 2 },
+                            wrapRGB: { type: 'v3', value: new a.THREE.Vector3(1, 1, 1) },
+                            highlightColor: { type: 'v3', value: new a.THREE.Vector3(1, 1, 0) },
+                            selectionColor: { type: 'v3', value: new a.THREE.Vector3(1, 0, 0) },
+                          },
+                        ]),
+                        vertexShader: [
+                          '#define PHONG',
+                          'varying vec3 vViewPosition;',
+                          '#ifndef FLAT_SHADED',
+                          '\tvarying vec3 vNormal;',
+                          '#endif',
+                          a.THREE.ShaderChunk.common,
+                          a.THREE.ShaderChunk.map_pars_vertex,
+                          a.THREE.ShaderChunk.lightmap_pars_vertex,
+                          a.THREE.ShaderChunk.envmap_pars_vertex,
+                          a.THREE.ShaderChunk.lights_phong_pars_vertex,
+                          a.THREE.ShaderChunk.color_pars_vertex,
+                          a.THREE.ShaderChunk.morphtarget_pars_vertex,
+                          a.THREE.ShaderChunk.skinning_pars_vertex,
+                          a.THREE.ShaderChunk.shadowmap_pars_vertex,
+                          a.THREE.ShaderChunk.logdepthbuf_pars_vertex,
+                          'attribute float vState;',
+                          'varying float vS;',
+                          'void main() {',
+                          '   vS = vState;',
+                          a.THREE.ShaderChunk.map_vertex,
+                          a.THREE.ShaderChunk.lightmap_vertex,
+                          a.THREE.ShaderChunk.color_vertex,
+                          a.THREE.ShaderChunk.morphnormal_vertex,
+                          a.THREE.ShaderChunk.skinbase_vertex,
+                          a.THREE.ShaderChunk.skinnormal_vertex,
+                          a.THREE.ShaderChunk.defaultnormal_vertex,
+                          '#ifndef FLAT_SHADED',
+                          '\tvNormal = normalize( transformedNormal );',
+                          '#endif',
+                          a.THREE.ShaderChunk.morphtarget_vertex,
+                          a.THREE.ShaderChunk.skinning_vertex,
+                          a.THREE.ShaderChunk.default_vertex,
+                          a.THREE.ShaderChunk.logdepthbuf_vertex,
+                          '\tvViewPosition = -mvPosition.xyz;',
+                          a.THREE.ShaderChunk.worldpos_vertex,
+                          a.THREE.ShaderChunk.envmap_vertex,
+                          a.THREE.ShaderChunk.lights_phong_vertex,
+                          a.THREE.ShaderChunk.shadowmap_vertex,
+                          '}',
+                        ].join('\n'),
+                        fragmentShader: [
+                          '#define PHONG',
+                          'uniform vec3 diffuse;',
+                          'uniform vec3 emissive;',
+                          'uniform vec3 specular;',
+                          'uniform float shininess;',
+                          'uniform float opacity;',
+                          'uniform vec3 highlightColor;',
+                          'uniform vec3 selectionColor;',
+                          a.THREE.ShaderChunk.common,
+                          a.THREE.ShaderChunk.color_pars_fragment,
+                          a.THREE.ShaderChunk.map_pars_fragment,
+                          a.THREE.ShaderChunk.alphamap_pars_fragment,
+                          a.THREE.ShaderChunk.lightmap_pars_fragment,
+                          a.THREE.ShaderChunk.envmap_pars_fragment,
+                          a.THREE.ShaderChunk.fog_pars_fragment,
+                          a.THREE.ShaderChunk.lights_phong_pars_fragment,
+                          a.THREE.ShaderChunk.shadowmap_pars_fragment,
+                          a.THREE.ShaderChunk.bumpmap_pars_fragment,
+                          a.THREE.ShaderChunk.normalmap_pars_fragment,
+                          a.THREE.ShaderChunk.specularmap_pars_fragment,
+                          a.THREE.ShaderChunk.logdepthbuf_pars_fragment,
+                          'varying float vS;',
+                          'void main() {',
+                          '\tvec3 outgoingLight = vec3( 0.0 );',
+                          '\tvec4 diffuseColor;',
+                          '   if (vS < 0.33) { diffuseColor = vec4( vColor, opacity ); }',
+                          '   else if (vS - floor(vS + 0.1) > 0.33) { diffuseColor = vec4(highlightColor, opacity); }',
+                          '\telse { diffuseColor = vec4(selectionColor, opacity); }',
+                          a.THREE.ShaderChunk.logdepthbuf_fragment,
+                          a.THREE.ShaderChunk.map_fragment,
+                          a.THREE.ShaderChunk.alphamap_fragment,
+                          a.THREE.ShaderChunk.alphatest_fragment,
+                          a.THREE.ShaderChunk.specularmap_fragment,
+                          a.THREE.ShaderChunk.lights_phong_fragment,
+                          a.THREE.ShaderChunk.lightmap_fragment,
+                          a.THREE.ShaderChunk.envmap_fragment,
+                          a.THREE.ShaderChunk.shadowmap_fragment,
+                          a.THREE.ShaderChunk.linear_to_gamma_fragment,
+                          a.THREE.ShaderChunk.fog_fragment,
+                          '#ifdef USE_FOG',
+                          '   if (diffuseColor.a > 0.99) { gl_FragColor = vec4( outgoingLight, diffuseColor.a ); }',
+                          '   else { gl_FragColor = vec4( outgoingLight, (1.0 - fogFactor) * diffuseColor.a ); }',
+                          '#else',
+                          '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );',
+                          '#endif',
+                          '}',
+                        ].join('\n'),
+                      }),
+                      (a.MaterialsHelper = o);
+                  })((F = F || {})),
+                  (function (t) {
+                    var l;
+                    function e() {
+                      (this.id = -1),
+                        (this.entity = void 0),
+                        (this.centroid = new l.THREE.Vector3()),
+                        (this.radius = 0),
+                        (this.object = void 0),
+                        (this.theme = void 0),
+                        (this.disposeList = []),
+                        (this.pickObject = void 0),
+                        (this.pickBufferAttributes = []),
+                        (this.dirty = !1),
+                        (this.props = {}),
+                        (this.tag = void 0);
+                    }
+                    ((l = t.Visualization || (t.Visualization = {})).GeometryBase = function () {}),
+                      (e.prototype.updateVisibility = function (t) {
+                        (this.dirty = !0),
+                          (this.object.visible = t),
+                          this.pickObject &&
+                            (this.pickObject.visible = this.getPickObjectVisibility(t));
+                      }),
+                      (e.prototype.getVisibility = function () {
+                        return this.object.visible;
+                      }),
+                      (e.prototype.applyTheme = function (t) {
+                        (this.dirty = !0),
+                          (this.theme = t).interactive
+                            ? this.pickObject && (this.pickObject.visible = this.object.visible)
+                            : this.pickObject && (this.pickObject.visible = !1),
+                          this.applyThemeInternal(t);
+                      }),
+                      (e.prototype.updateId = function (t, e) {
+                        this.id = t;
+                        for (var n = 0, r = this.pickBufferAttributes; n < r.length; n++) {
+                          var i = r[n],
+                            o = i.array;
+                          if (e <= 8)
+                            for (var a = 0, s = o.length; a < s; a += 4)
+                              l.Selection.Picking.applySceneIdFast(this.id, a, o);
+                          else
+                            for (a = 0, s = o.length; a < s; a += 4)
+                              l.Selection.Picking.applySceneIdSlow(e - 8, this.id, a, o);
+                          i.needsUpdate = !0;
+                        }
+                      }),
+                      (e.prototype.dispose = function () {
+                        for (var t = 0, e = this.disposeList; t < e.length; t++) {
+                          var n = e[t];
+                          n && n.dispose();
+                        }
+                        this.disposeList = [];
+                      }),
+                      (e.prototype.highlight = function (t) {
+                        t = this.highlightInternal(t);
+                        return (this.dirty = this.dirty || t), t;
+                      }),
+                      (e.prototype.applySelection = function (t, e) {
+                        t = this.applySelectionInternal(t, e);
+                        return (this.dirty = this.dirty || t), t;
+                      }),
+                      (e.prototype.getBoundingSphereOfSelection = function (t) {}),
+                      (e.prototype.getPickObjectVisibility = function (t) {
+                        return t && this.theme.interactive;
+                      }),
+                      (l.Model = e);
+                  })((F = F || {})),
+                  (function (t) {
+                    function e(t) {
+                      (this.scene = t),
+                        (this.availableIds = []),
+                        (this.list = []),
+                        (this.map = Po.Core.Utils.FastMap.create()),
+                        (this.maxId = 1),
+                        (this._idWidth = 8);
+                    }
+                    Object.defineProperty(e.prototype, 'idWidth', {
+                      get: function () {
+                        return this._idWidth;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      Object.defineProperty(e.prototype, 'all', {
+                        get: function () {
+                          return this.list;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(e.prototype, 'count', {
+                        get: function () {
+                          return this.map.size;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (e.prototype.getBySceneId = function (t) {
+                        return this.map.get(t);
+                      }),
+                      (e.prototype.add = function (t, e) {
+                        void 0 === e && (e = !0);
+                        var n = -1,
+                          n = this.availableIds.length ? this.availableIds.pop() : this.maxId++;
+                        this.map.set(n, t),
+                          this.list.push(t),
+                          t.updateId(n, 8),
+                          t.object && this.scene.scene.add(t.object),
+                          t.pickObject && this.scene.pickScene.add(t.pickObject),
+                          e ? this.scene.camera.reset() : this.scene.forceRender();
+                      }),
+                      (e.prototype.dispose = function (t) {
+                        t.object && this.scene.scene.remove(t.object),
+                          t.pickObject && this.scene.pickScene.remove(t.pickObject),
+                          t.dispose();
+                      }),
+                      (e.prototype.removeAndDispose = function (t) {
+                        var e;
+                        this.map.get(t.id) &&
+                          (this.availableIds.push(t.id),
+                          this.dispose(t),
+                          this.map.delete(t.id),
+                          (e = this.list.indexOf(t)),
+                          (this.list[e] = this.list[this.list.length - 1]),
+                          this.list.pop(),
+                          t.id === this.maxId && this.maxId--,
+                          (t.id = -1),
+                          this.scene.forceRender());
+                      }),
+                      (e.prototype.clear = function () {
+                        for (var t = 0, e = this.list; t < e.length; t++) {
+                          var n = e[t];
+                          this.dispose(n);
+                        }
+                        (this.list = []),
+                          (this.maxId = 0),
+                          (this.availableIds = []),
+                          this.map.clear(),
+                          this.scene.forceRender();
+                      }),
+                      (t.ModelStore = e);
+                  })((Po = F = F || {}).Visualization || (Po.Visualization = {})),
+                  (function (m) {
+                    ((t = e = m.CameraType || (m.CameraType = {}))[(t.Perspective = 0)] =
+                      'Perspective'),
+                      (t[(t.Orthographic = 1)] = 'Orthographic');
+                    var e,
+                      t,
+                      n = Lo.Core.Geometry.LinearAlgebra,
+                      i =
+                        ((r.prototype.updateSize = function (t, e) {
+                          this.height = e;
+                        }),
+                        (r.prototype.updateRadius = function (t) {
+                          this.radius = t;
+                        }),
+                        (r.prototype.destroy = function () {
+                          for (var t = 0, e = this.subs; t < e.length; t++) (0, e[t])();
+                          (this.subs = []), this._planeDelta.onCompleted();
+                        }),
+                        (r.prototype.handleMouseWheel = function (t) {
+                          var e;
+                          this.enableWheel &&
+                            (t.stopPropagation && t.stopPropagation(),
+                            t.preventDefault && t.preventDefault(),
+                            (e = 0),
+                            t.wheelDelta ? (e = t.wheelDelta) : t.detail && (e = -t.detail),
+                            (e = this.radius * this.slabWheelRate * (e < 0 ? 1 : -1)),
+                            this._planeDelta.onNext(e));
+                        }),
+                        (r.prototype.touchstart = function (t) {
+                          if (3 === t.touches.length) {
+                            this.touchStartPosition.x = 0;
+                            for (var e = (this.touchStartPosition.y = 0); e < 3; e++)
+                              (this.touchStartPosition.x += t.touches[e].clientX / 3),
+                                (this.touchStartPosition.y += t.touches[e].clientY / 3);
+                            this.touchSlabOn = !0;
+                          } else this.touchSlabOn = !1;
+                        }),
+                        (r.prototype.touchend = function (t) {
+                          this.touchSlabOn = !1;
+                        }),
+                        (r.prototype.touchmove = function (t) {
+                          if (this.touchSlabOn) {
+                            this.touchPosition.x = 0;
+                            for (var e = (this.touchPosition.y = 0); e < 3; e++)
+                              (this.touchPosition.x += t.touches[e].clientX / 3),
+                                (this.touchPosition.y += t.touches[e].clientY / 3);
+                            var n =
+                              (-5 *
+                                this.radius *
+                                (this.touchPosition.y - this.touchStartPosition.y)) /
+                              this.height;
+                            (this.touchStartPosition.x = this.touchPosition.x),
+                              (this.touchStartPosition.y = this.touchPosition.y),
+                              this._planeDelta.onNext(n);
+                          }
+                        }),
+                        (r.prototype.mousemove = function (t) {
+                          var e;
+                          this.lastMousePosition
+                            ? ((e = [t.clientX, t.clientY, 0]),
+                              (this.mouseMoveDelta += n.Vector3.distance(
+                                e,
+                                this.lastMousePosition,
+                              )),
+                              (this.lastMousePosition = e),
+                              15 < this.mouseMoveDelta && (this.enableWheel = !0))
+                            : (this.lastMousePosition = [t.clientX, t.clientY, 0]);
+                        }),
+                        (r.prototype.mouseOut = function () {
+                          (this.mouseMoveDelta = 0),
+                            (this.lastMousePosition = void 0),
+                            (this.enableWheel = !1);
+                        }),
+                        r);
+                    function r(t) {
+                      var e = this;
+                      (this.touchSlabOn = !1),
+                        (this.touchStartPosition = { x: 0, y: 0 }),
+                        (this.touchPosition = { x: 0, y: 0 }),
+                        (this.radius = 0),
+                        (this.slabWheelRate = 1 / 15),
+                        (this._planeDelta = new Lo.Core.Rx.Subject()),
+                        (this.subs = []),
+                        (this.enableWheel = !1),
+                        (this.mouseMoveDelta = 0),
+                        (this.lastMousePosition = void 0),
+                        (this.planeDelta = this._planeDelta);
+                      var n = function (t) {
+                          return e.handleMouseWheel(t);
+                        },
+                        r = function (t) {
+                          return e.touchstart(t);
+                        },
+                        i = function (t) {
+                          return e.touchend(t);
+                        },
+                        o = function (t) {
+                          return e.touchmove(t);
+                        },
+                        a = function (t) {
+                          return e.mousemove(t);
+                        },
+                        s = function () {
+                          return e.mouseOut();
+                        };
+                      t.addEventListener('mousewheel', n),
+                        t.addEventListener('DOMMouseScroll', n),
+                        t.addEventListener('mousemove', a),
+                        t.addEventListener('mouseout', s),
+                        t.addEventListener('touchstart', r, !1),
+                        t.addEventListener('touchend', i, !1),
+                        t.addEventListener('touchmove', o, !1),
+                        this.subs.push(function () {
+                          return t.removeEventListener('mousewheel', n);
+                        }),
+                        this.subs.push(function () {
+                          return t.removeEventListener('mousemove', a);
+                        }),
+                        this.subs.push(function () {
+                          return t.removeEventListener('mouseout', s);
+                        }),
+                        this.subs.push(function () {
+                          return t.removeEventListener('DOMMouseScroll', n);
+                        }),
+                        this.subs.push(function () {
+                          return t.removeEventListener('touchstart', r, !1);
+                        }),
+                        this.subs.push(function () {
+                          return t.removeEventListener('touchend', i, !1);
+                        }),
+                        this.subs.push(function () {
+                          return t.removeEventListener('touchmove', o, !1);
+                        });
+                    }
+                    function v(t, e) {
+                      (this.scene = t),
+                        (this.domElement = e),
+                        (this.fog = new m.THREE.Fog(0, 0, 500)),
+                        (this.focusPoint = new m.THREE.Vector3(0, 0, 0)),
+                        (this.focusRadius = 0),
+                        (this.targetDistance = 0),
+                        (this.nearPlaneDistance = 0),
+                        (this.nearPlaneDelta = 0),
+                        (this.fogEnabled = !0),
+                        (this.fogDelta = 0),
+                        (this.fogFactor = 1),
+                        (this.observers = []),
+                        this.setup();
+                    }
+                    (m.SlabControls = i),
+                      (v.shouldInUpdateInclude = function (t) {
+                        return !isNaN(t.centroid.x) && t.getVisibility();
+                      }),
+                      (v.prototype.updateFocus = function (t) {
+                        if (t.length) {
+                          var e = t
+                            .filter(function (t) {
+                              return v.shouldInUpdateInclude(t);
+                            })
+                            .sort(function (t, e) {
+                              return e.radius - t.radius;
+                            });
+                          if (e.length) {
+                            for (
+                              var n = [e[0]], r = new m.THREE.Vector3(), i = 1;
+                              i < e.length;
+                              i++
+                            ) {
+                              for (var o = e[i], a = !0, s = 0, l = n; s < l.length; s++) {
+                                var u = l[s];
+                                if (r.subVectors(o.centroid, u.centroid).length() < u.radius) {
+                                  a = !1;
+                                  break;
+                                }
+                              }
+                              a && n.push(o);
+                            }
+                            var c = this.focusPoint;
+                            (c.x = 0), (c.y = 0);
+                            for (var A = (c.z = 0), h = n; A < h.length; A++) {
+                              u = h[A];
+                              c.add(u.centroid);
+                            }
+                            c.multiplyScalar(1 / n.length);
+                            for (var p = 0, d = 0, f = e; d < f.length; d++)
+                              var g = f[d], p = Math.max(p, c.distanceTo(g.centroid) + g.radius);
+                            (this.focusRadius = p),
+                              this.slabControls.updateRadius(this.focusRadius);
+                          }
+                        }
+                      }),
+                      (v.prototype.focus = function () {
+                        this.controls.reset();
+                        var t = this.focusPoint;
+                        this.camera.position.set(t.x, t.y, t.z + 4 * this.focusRadius),
+                          this.camera.lookAt(t),
+                          this.controls.target.set(t.x, t.y, t.z),
+                          this.cameraUpdated();
+                      }),
+                      (v.prototype.reset = function () {
+                        (this.nearPlaneDelta = 0),
+                          (this.fogDelta = 0),
+                          this.updateFocus(this.scene.models.all),
+                          this.focus();
+                      }),
+                      (v.prototype.snapshot = function () {
+                        return this.controls.getState();
+                      }),
+                      (v.prototype.restore = function (t) {
+                        this.controls.setState(t), this.scene.forceRender();
+                      }),
+                      (v.prototype.focusOnModel = function () {
+                        for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                        this.updateFocus(t),
+                          (this.nearPlaneDelta = 0),
+                          (this.fogDelta = 0),
+                          this.controls.panAndMoveToDistance(this.focusPoint, 4 * this.focusRadius);
+                      }),
+                      (v.prototype.focusOnPoint = function (t, e) {
+                        (this.focusPoint.x = t.x),
+                          (this.focusPoint.y = t.y),
+                          (this.focusPoint.z = t.z),
+                          (this.focusRadius = Math.max(e, 1)),
+                          this.slabControls.updateRadius(this.focusRadius),
+                          (this.nearPlaneDelta = 0),
+                          (this.fogDelta = 0),
+                          this.controls.panAndMoveToDistance(this.focusPoint, 4 * this.focusRadius);
+                      }),
+                      (v.prototype.move = function (t) {
+                        this.controls.panTo(t);
+                      }),
+                      (v.prototype.updateSize = function (t, e) {
+                        var n = this.camera;
+                        n instanceof m.THREE.PerspectiveCamera && (n.aspect = t / e),
+                          this.slabControls.updateSize(t, e),
+                          this.camera.updateProjectionMatrix();
+                      }),
+                      Object.defineProperty(v.prototype, 'position', {
+                        get: function () {
+                          return this.camera.position;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(v.prototype, 'object', {
+                        get: function () {
+                          return this.camera;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (v.prototype.dispose = function () {
+                        this.slabControls &&
+                          (this.slabControls.destroy(), (this.slabControls = void 0)),
+                          this.unbindCamera && (this.unbindCamera(), (this.unbindCamera = void 0)),
+                          this.controls && (this.controls.destroy(), (this.controls = void 0));
+                      }),
+                      (v.prototype.planeDeltaUpdate = function (t) {
+                        var e = this.computeNearDistance() + this.nearPlaneDelta + t;
+                        0 < t && e > this.targetDistance && (t = 0),
+                          (this.nearPlaneDelta += t = t < 0 && e < 0.01 ? 0 : t),
+                          (this.fogDelta += t),
+                          this.cameraUpdated();
+                      }),
+                      (v.prototype.computeNearDistance = function () {
+                        var t = this.controls.target.distanceTo(this.camera.position);
+                        return t > this.focusRadius ? t - this.focusRadius : 0;
+                      }),
+                      (v.prototype.cameraUpdated = function () {
+                        var t = this.scene.options,
+                          e = ((this.fogEnabled = !!t.enableFog), this.camera),
+                          e =
+                            (e instanceof m.THREE.PerspectiveCamera && (e.fov = t.cameraFOV),
+                            (this.targetDistance = this.controls.target.distanceTo(
+                              this.camera.position,
+                            )),
+                            this.computeNearDistance() + this.nearPlaneDelta);
+                        (this.camera.near = Math.max(0.01, Math.min(e, this.targetDistance - 0.5))),
+                          t.enableFog
+                            ? ((e =
+                                this.targetDistance -
+                                this.camera.near +
+                                +this.fogFactor * this.focusRadius -
+                                this.nearPlaneDelta),
+                              (t =
+                                this.targetDistance -
+                                this.camera.near +
+                                2 * this.fogFactor * this.focusRadius -
+                                this.nearPlaneDelta),
+                              (this.fog.near = Math.max(e, 0.1)),
+                              (this.fog.far = Math.max(t, 0.2)))
+                            : ((this.fog.far = 1000001), (this.fog.near = 1e6)),
+                          this.camera.updateProjectionMatrix(),
+                          this.scene.forceRender();
+                        for (var n = 0, r = this.observers; n < r.length; n++)
+                          r[n].call(null, this);
+                      }),
+                      (v.prototype.createCamera = function () {
+                        var t;
+                        this.scene.options.cameraType === e.Perspective
+                          ? (this.camera = new m.THREE.PerspectiveCamera(
+                              this.scene.options.cameraFOV,
+                              this.scene.parentElement.clientWidth /
+                                this.scene.parentElement.clientHeight,
+                              0.1,
+                              1e6,
+                            ))
+                          : ((t = this.scene.parentElement.clientWidth),
+                            (t = (this.scene.parentElement.clientHeight / t) * 100),
+                            (this.camera = new m.THREE.OrthographicCamera(
+                              -25,
+                              25,
+                              t / 2,
+                              t / -2,
+                              0.1,
+                              1e6,
+                            ))),
+                          this.controls && ((this.controls.camera = this.camera), this.reset());
+                      }),
+                      (v.prototype.setup = function () {
+                        function t() {
+                          return e.cameraUpdated();
+                        }
+                        var e = this,
+                          n =
+                            (this.dispose(),
+                            this.createCamera(),
+                            (this.controls = new m.CameraControls(
+                              this.camera,
+                              this.domElement,
+                              this.scene,
+                            )),
+                            this.scene.options.clearColor),
+                          r =
+                            (this.fog.color.setRGB(n.r, n.g, n.b),
+                            (this.scene.scene.fog = this.fog),
+                            (this.slabControls = new i(this.domElement)),
+                            this.slabControls.planeDelta.subscribe(function (t) {
+                              return e.planeDeltaUpdate(t);
+                            }));
+                        this.controls.events.addEventListener('change', t),
+                          (this.unbindCamera = function () {
+                            e.controls.events.removeEventListener('change', t),
+                              r.dispose(),
+                              (e.observers = []);
+                          }),
+                          this.reset();
+                      }),
+                      (v.prototype.observe = function (t) {
+                        this.observers.push(t);
+                      }),
+                      (v.prototype.stopObserving = function (e) {
+                        this.observers = this.observers.filter(function (t) {
+                          return t !== e;
+                        });
+                      }),
+                      (m.Camera = v);
+                  })((Lo = F = F || {}).Visualization || (Lo.Visualization = {})),
+                  (Yo = F = F || {}),
+                  ((Oo = Yo.Visualization || (Yo.Visualization = {})).DefaultSceneOptions = {
+                    alpha: !1,
+                    clearColor: { r: 0, g: 0, b: 0 },
+                    cameraSpeed: 6,
+                    cameraFOV: 30,
+                    cameraType: Oo.CameraType.Perspective,
+                    enableFog: !0,
+                    fogFactor: 1,
+                  }),
+                  (Al.prototype.updateRect = function () {
+                    var t = this.domElement.getBoundingClientRect();
+                    (this.rect.bottom = t.bottom),
+                      (this.rect.top = t.top),
+                      (this.rect.left = t.left),
+                      (this.rect.right = t.right);
+                  }),
+                  (Al.prototype.updatePosition = function (t, e) {
+                    (this.position.x === t && this.position.y === e) ||
+                      ((this.isDirty = !0), (this.position.x = t), (this.position.y = e));
+                  }),
+                  (Al.prototype.update = function () {
+                    return (
+                      (this.lastPosition.x !== this.position.x ||
+                        this.lastPosition.y !== this.position.y) &&
+                      ((this.lastPosition.x = this.position.x),
+                      (this.lastPosition.y = this.position.y),
+                      !0)
+                    );
+                  }),
+                  (Al.prototype.setExactPosition = function () {
+                    var t, e;
+                    this.isDirty &&
+                      ((t =
+                        0 |
+                        Math.round(
+                          ((this.position.x - this.rect.left) /
+                            (this.rect.right - this.rect.left)) *
+                            this.renderState.width,
+                        )),
+                      (e =
+                        0 |
+                        Math.round(
+                          ((this.position.y - this.rect.top) / (this.rect.bottom - this.rect.top)) *
+                            this.renderState.height,
+                        )),
+                      (this.exactPosition.x = t),
+                      (this.exactPosition.y = e),
+                      (this.isDirty = !1));
+                  }),
+                  (Go = Al),
+                  (Oo.MouseInfo = Go),
+                  (hl.prototype.setup = function (t) {
+                    var e = new Oo.THREE.PointLight(11184810, 0.75),
+                      e = (t.add(e), (this.lights = [e]), new Oo.THREE.AmbientLight(10066329));
+                    t.add(e);
+                  }),
+                  (hl.prototype.update = function (t) {
+                    for (var e = 0, n = this.lights; e < n.length; e++) n[e].position.copy(t);
+                  }),
+                  (zo = hl),
+                  (Oo.DefaultLighting = zo),
+                  (Ho = function () {
+                    (this.width = 0),
+                      (this.height = 0),
+                      (this.resizing = !1),
+                      (this.rendered = !1),
+                      (this.lastRenderTime = 0),
+                      (this.pickDelta = 0),
+                      (this.animationFrame = 0);
+                  }),
+                  (Oo.RenderState = Ho),
+                  (pl.prototype.updateOptions = function (t) {
+                    (t = Yo.Core.Utils.extend({}, t, this.options)).fogFactor < 0.1
+                      ? (t.fogFactor = 0.1)
+                      : 1 < t.fogFactor && (t.fogFactor = 1);
+                    var e = t.cameraType !== this.options.cameraType,
+                      n = t.clearColor;
+                    this.renderer.setClearColor(new Oo.THREE.Color(n.r, n.g, n.b)),
+                      this.renderer.setClearAlpha(t.alpha ? 0 : 1),
+                      this.camera.fog.color.setRGB(n.r, n.g, n.b),
+                      (this.camera.fogFactor = t.fogFactor),
+                      this.camera.controls &&
+                        ((this.camera.controls.rotateSpeed = t.cameraSpeed),
+                        (this.camera.controls.zoomSpeed = t.cameraSpeed)),
+                      (this.options = t),
+                      e && this.camera.createCamera(),
+                      this.camera.cameraUpdated(),
+                      this.forceRender();
+                  }),
+                  (pl.prototype.setupMouse = function () {
+                    function t(t) {
+                      a.mouseInfo.isInside || a.mouseInfo.updateRect(),
+                        a.mouseInfo.updatePosition(t.clientX, t.clientY),
+                        (a.mouseInfo.isInside = !0);
+                    }
+                    function e(t) {
+                      (a.mouseInfo.isInside = !1), a.clearHighlights();
+                    }
+                    function n(t) {
+                      a.mouseInfo.isInside &&
+                        (a.mouseInfo.updateRect(), a.handleSelectStart(t.clientX, t.clientY)),
+                        (a.mouseInfo.isButtonDown = !0),
+                        a.clearHighlights();
+                    }
+                    function r(t) {
+                      (a.mouseInfo.isButtonDown = !1),
+                        a.needsRender(),
+                        a.handleSelectEnd(t.clientX, t.clientY),
+                        a.clearHighlights(!0);
+                    }
+                    function i(t) {
+                      a.mouseInfo.updateRect();
+                    }
+                    function o(t) {
+                      var e = t.touches;
+                      1 === (e = e.length ? e : t.changedTouches).length &&
+                        a.handleSelectEnd(e[0].clientX, e[0].clientY),
+                        setTimeout(a.clearHighlightsCall, 1e3 / 15);
+                    }
+                    var a = this,
+                      s = this.renderer.domElement;
+                    s.addEventListener('mousemove', t),
+                      this.unbindEvents.push(function () {
+                        return s.removeEventListener('mousemove', t);
+                      }),
+                      s.addEventListener('mouseleave', e),
+                      this.unbindEvents.push(function () {
+                        return s.removeEventListener('mouseleave', e);
+                      }),
+                      s.addEventListener('mousedown', n),
+                      this.unbindEvents.push(function () {
+                        return s.removeEventListener('mousedown', n);
+                      }),
+                      window.addEventListener('mouseup', r),
+                      this.unbindEvents.push(function () {
+                        return window.removeEventListener('mouseup', r);
+                      }),
+                      window.addEventListener('mousewheel', i),
+                      window.addEventListener('DOMMouseScroll', i),
+                      this.unbindEvents.push(function () {
+                        return window.removeEventListener('mousewheel', i);
+                      }),
+                      this.unbindEvents.push(function () {
+                        return window.removeEventListener('DOMMouseScroll', i);
+                      }),
+                      s.addEventListener('touchstart', i, !1),
+                      this.unbindEvents.push(function () {
+                        return s.removeEventListener('touchstart', i, !1);
+                      });
+                    s.addEventListener('touchend', o, !1),
+                      this.unbindEvents.push(function () {
+                        return s.removeEventListener('touchend', o, !1);
+                      });
+                    try {
+                      s.addEventListener('touchcancel', o, !1),
+                        this.unbindEvents.push(function () {
+                          return s.removeEventListener('touchcancel', o, !1);
+                        });
+                    } catch (t) {}
+                  }),
+                  (pl.prototype.handleSelectStart = function (t, e) {
+                    this.pickInfo.selectStart(t, e);
+                  }),
+                  (pl.prototype.handleSelectEnd = function (t, e) {
+                    this.pickInfo.selectEnd(t, e) &&
+                      ((t = this.handlePick(!0)), this.dispatchSelectEvent(t));
+                  }),
+                  (pl.prototype.handleResize = function () {
+                    var t = this.parentElement.clientWidth,
+                      e = this.parentElement.clientHeight;
+                    this.camera.updateSize(t, e),
+                      this.renderState.height === e && this.renderState.width === t
+                        ? (this.renderState.resizing = !1)
+                        : ((this.renderState.width = t),
+                          (this.renderState.height = e),
+                          this.renderer.setSize(t, e),
+                          (this.pickTarget = new Oo.THREE.WebGLRenderTarget(t, e, {
+                            format: Oo.THREE.RGBAFormat,
+                            minFilter: Oo.THREE.LinearFilter,
+                          })),
+                          (this.pickTarget.generateMipmaps = !1),
+                          (this.renderState.resizing = !1),
+                          this.mouseInfo.updateRect(),
+                          this.needsRender());
+                  }),
+                  (pl.prototype.needsRender = function () {
+                    this.renderState.rendered = !1;
+                  }),
+                  (pl.prototype.checkDirty = function () {
+                    for (var t = !1, e = 0, n = this.models.all; e < n.length; e++) {
+                      var r = n[e],
+                        t = t || r.dirty;
+                      r.dirty = !1;
+                    }
+                    return t;
+                  }),
+                  (pl.prototype.render = function (t) {
+                    var e;
+                    this.renderState.resizing ||
+                      ((e = t - this.renderState.lastRenderTime),
+                      (this.renderState.pickDelta += e),
+                      (this.renderState.lastRenderTime = t),
+                      33.3333333 < this.renderState.pickDelta &&
+                        ((this.renderState.pickDelta = this.renderState.pickDelta % 33.3333333),
+                        this.handlePick(!1)),
+                      this.checkDirty() && (this.renderState.rendered = !1),
+                      this.renderState.rendered ||
+                        (this.lighting.update(this.camera.position),
+                        (this.renderer.sortObjects = !0),
+                        this.renderer.render(this.scene, this.camera.object),
+                        (this.renderer.sortObjects = !1),
+                        (this.renderState.rendered = !0),
+                        this.mouseInfo.isButtonDown ||
+                          (this.renderer.setClearAlpha(1),
+                          this.renderer.render(this.pickScene, this.camera.object, this.pickTarget),
+                          this.renderer.setClearAlpha(this.options.alpha ? 0 : 1)))),
+                      (this.renderState.animationFrame = requestAnimationFrame(this.renderFunc));
+                  }),
+                  (pl.prototype.dispatchHoverEvent = function () {
+                    this.events.dispatchEvent({
+                      type: pl.hoverEvent,
+                      target: null,
+                      data: this.pickInfo.getPickInfo(),
+                    });
+                  }),
+                  (pl.prototype.dispatchSelectEvent = function (t) {
+                    t && this.events.dispatchEvent({ type: pl.selectEvent, target: null, data: t });
+                  }),
+                  (pl.prototype.clearHighlights = function (t) {
+                    void 0 === t && (t = !0);
+                    var e = this.pickInfo,
+                      n = this.models.getBySceneId(e.currentPickId),
+                      r = !1;
+                    return (
+                      (r = n ? n.highlightElement(e.currentPickElementId, !1) : r) &&
+                        t &&
+                        this.needsRender(),
+                      this.pickInfo.reset() && this.dispatchHoverEvent(),
+                      r
+                    );
+                  }),
+                  (pl.prototype.handlePick = function (t) {
+                    if (
+                      (t || (this.mouseInfo.update() && !this.mouseInfo.isButtonDown)) &&
+                      !this.renderState.resizing &&
+                      this.mouseInfo.isInside
+                    ) {
+                      this.mouseInfo.setExactPosition();
+                      var e = this.mouseInfo.exactPosition,
+                        n = this.pickTarget.height - e.y;
+                      if (
+                        !(
+                          this.pickTarget.width < e.x - 1 ||
+                          e.x < 0.01 ||
+                          this.pickTarget.height < n - 1 ||
+                          n < 0.01
+                        )
+                      ) {
+                        this.renderer.readRenderTargetPixels(
+                          this.pickTarget,
+                          0 | e.x,
+                          0 | n,
+                          1,
+                          1,
+                          this.pickBuffer,
+                        );
+                        var r,
+                          e = Oo.Selection.Picking.getSceneId(this.models.idWidth, this.pickBuffer),
+                          n = Oo.Selection.Picking.getElementId(
+                            this.models.idWidth,
+                            this.pickBuffer,
+                          ),
+                          i = this.pickInfo;
+                        if (t) {
+                          if (255 !== e)
+                            if ((r = this.models.getBySceneId(e)))
+                              return { model: r, elements: r.getPickElements(n) };
+                        } else
+                          (e === i.currentPickId && n === i.currentPickElementId) ||
+                            ((t = this.clearHighlights(!1)),
+                            (r = this.models.getBySceneId(e)),
+                            255 !== e && r
+                              ? ((i.currentPickId = e),
+                                (i.currentPickElementId = n),
+                                (r.highlightElement(n, !0) || t) &&
+                                  (this.needsRender(),
+                                  (i.current = { model: r, elements: r.getPickElements(n) }),
+                                  this.dispatchHoverEvent()))
+                              : t && this.needsRender());
+                      }
+                    }
+                  }),
+                  (pl.prototype.resized = function () {
+                    this.handleResize();
+                  }),
+                  (pl.prototype.forceRender = function () {
+                    this.needsRender();
+                  }),
+                  (pl.prototype.clear = function () {
+                    this.models.clear();
+                  }),
+                  (pl.prototype.downloadScreenshot = function () {
+                    var t = this.renderer.domElement.toDataURL('image/png'),
+                      e = document.createElement('a');
+                    'download' in e
+                      ? ((e.style.visibility = 'hidden'),
+                        (e.href = t),
+                        (e.target = '_blank'),
+                        (e.download = 'litemol_screenshot.png'),
+                        document.body.appendChild(e),
+                        e.click(),
+                        e.remove())
+                      : window.open(t, '_blank');
+                  }),
+                  (pl.prototype.destroy = function () {
+                    this.clear();
+                    for (var t = 0, e = this.unbindEvents; t < e.length; t++) {
+                      var n = e[t];
+                      try {
+                        n();
+                      } catch (t) {}
+                    }
+                    for (
+                      void 0 !== this.initialResizeTimeout &&
+                        (clearTimeout(this.initialResizeTimeout),
+                        (this.initialResizeTimeout = void 0)),
+                        this.unbindEvents = [],
+                        cancelAnimationFrame(this.renderState.animationFrame),
+                        this.scene = null,
+                        this.pickScene = null,
+                        this.camera.dispose(),
+                        this.camera = null,
+                        this.renderer && this.renderer.dispose && this.renderer.dispose(),
+                        this.renderer = null,
+                        this.pickTarget.dispose(),
+                        this.pickTarget = null;
+                      this.parentElement.lastChild;
+
+                    )
+                      this.parentElement.removeChild(this.parentElement.lastChild);
+                  }),
+                  (pl.hoverEvent = 'hover'),
+                  (pl.selectEvent = 'select'),
+                  (Oo.Scene = pl),
+                  (function (i) {
+                    function t(t, e, n) {
+                      var r = this;
+                      (this.camera = t),
+                        (this.domElement = e),
+                        (this.scene = n),
+                        (this.enabled = !0),
+                        (this.rotateSpeed = 6),
+                        (this.zoomSpeed = 6),
+                        (this.panSpeed = 1),
+                        (this.noRotate = !1),
+                        (this.noZoom = !1),
+                        (this.noPan = !1),
+                        (this.noRoll = !0),
+                        (this.staticMoving = !0),
+                        (this.dynamicDampingFactor = 0.2),
+                        (this.minDistance = 1.5),
+                        (this.maxDistance = 1e5),
+                        (this.keys = [65, 16, 17]),
+                        (this.target = new i.THREE.Vector3()),
+                        (this.EPS = 1e-6),
+                        (this.lastPosition = new i.THREE.Vector3()),
+                        (this._state = -1),
+                        (this._keyDownState = -1),
+                        (this._prevState = -1),
+                        (this._eye = new i.THREE.Vector3()),
+                        (this._rotateStart = new i.THREE.Vector3()),
+                        (this._rotateEnd = new i.THREE.Vector3()),
+                        (this._zoomStart = new i.THREE.Vector2()),
+                        (this._zoomEnd = new i.THREE.Vector2()),
+                        (this._touchZoomDistanceStart = 0),
+                        (this._touchZoomDistanceEnd = 0),
+                        (this._panStart = new i.THREE.Vector2()),
+                        (this._panEnd = new i.THREE.Vector2()),
+                        (this.target0 = this.target.clone()),
+                        (this.position0 = this.camera.position.clone()),
+                        (this.up0 = this.camera.up.clone()),
+                        (this.changeEvent = { type: 'change', target: void 0 }),
+                        (this.startEvent = { type: 'start', target: void 0 }),
+                        (this.endEvent = { type: 'end', target: void 0 }),
+                        (this.events = new i.THREE.EventDispatcher()),
+                        (this._mouseOnScreen = new i.THREE.Vector2()),
+                        (this._mouseOnBallProjection = new i.THREE.Vector3()),
+                        (this._objectUp = new i.THREE.Vector3()),
+                        (this._mouseOnBall = new i.THREE.Vector3()),
+                        (this._rotationAxis = new i.THREE.Vector3()),
+                        (this._rotationQuaternion = new i.THREE.Quaternion()),
+                        (this._panMouseChange = new i.THREE.Vector2()),
+                        (this._panObjectUp = new i.THREE.Vector3()),
+                        (this._panPan = new i.THREE.Vector3()),
+                        (this._panToDelta = new i.THREE.Vector3()),
+                        (this._panToVector = new i.THREE.Vector3()),
+                        (this.eventHandlers = {
+                          keydown: function (t) {
+                            return r.keydown(t);
+                          },
+                          keyup: function (t) {
+                            return r.keyup(t);
+                          },
+                          mousedown: function (t) {
+                            return r.mousedown(t);
+                          },
+                          mouseup: function (t) {
+                            return r.mouseup(t);
+                          },
+                          mousemove: function (t) {
+                            return r.mousemove(t);
+                          },
+                          touchstart: function (t) {
+                            return r.touchstart(t);
+                          },
+                          touchmove: function (t) {
+                            return r.touchmove(t);
+                          },
+                          touchend: function (t) {
+                            return r.touchend(t);
+                          },
+                        }),
+                        this.init();
+                    }
+                    (t.prototype.getMouseOnScreen = function () {
+                      this.scene.mouseInfo.setExactPosition();
+                      var t = this.scene.renderState,
+                        e = this.scene.mouseInfo.exactPosition;
+                      return (
+                        this._mouseOnScreen.set(e.x / t.width, e.y / t.height), this._mouseOnScreen
+                      );
+                    }),
+                      (t.prototype.getMouseProjectionOnBall = function () {
+                        this.scene.mouseInfo.setExactPosition();
+                        var t = this.scene.renderState,
+                          e = this.scene.mouseInfo.exactPosition,
+                          n = 0.5 * t.width,
+                          r = 0.5 * t.height,
+                          n = (e.x - n) / (0.5 * t.width),
+                          e = -(e.y - r) / (0.5 * t.height),
+                          r = (this._mouseOnBall.set(n, e, 0), this._mouseOnBall.length());
+                        return (
+                          this.noRoll
+                            ? r < Math.SQRT1_2
+                              ? (this._mouseOnBall.z = Math.sqrt(1 - r * r))
+                              : (this._mouseOnBall.z = 0.5 / r)
+                            : 1 < r
+                              ? this._mouseOnBall.normalize()
+                              : (this._mouseOnBall.z = Math.sqrt(1 - r * r)),
+                          this._eye.copy(this.camera.position).sub(this.target),
+                          this._mouseOnBallProjection
+                            .copy(this.camera.up)
+                            .setLength(this._mouseOnBall.y),
+                          this._mouseOnBallProjection.add(
+                            this._objectUp
+                              .copy(this.camera.up)
+                              .cross(this._eye)
+                              .setLength(this._mouseOnBall.x),
+                          ),
+                          this._mouseOnBallProjection.add(this._eye.setLength(this._mouseOnBall.z)),
+                          this._mouseOnBallProjection
+                        );
+                      }),
+                      (t.prototype.rotateCamera = function () {
+                        var t = Math.acos(
+                          this._rotateStart.dot(this._rotateEnd) /
+                            this._rotateStart.length() /
+                            this._rotateEnd.length(),
+                        );
+                        t &&
+                          (this._rotationAxis
+                            .crossVectors(this._rotateStart, this._rotateEnd)
+                            .normalize(),
+                          (t *= this.rotateSpeed),
+                          this._rotationQuaternion.setFromAxisAngle(this._rotationAxis, -t),
+                          this._eye.applyQuaternion(this._rotationQuaternion),
+                          this.camera.up.applyQuaternion(this._rotationQuaternion),
+                          this._rotateEnd.applyQuaternion(this._rotationQuaternion),
+                          this.staticMoving
+                            ? this._rotateStart.copy(this._rotateEnd)
+                            : (this._rotationQuaternion.setFromAxisAngle(
+                                this._rotationAxis,
+                                t * (this.dynamicDampingFactor - 1),
+                              ),
+                              this._rotateStart.applyQuaternion(this._rotationQuaternion)));
+                      }),
+                      (t.prototype.zoomCamera = function () {
+                        var t;
+                        4 === this._state
+                          ? ((t = this._touchZoomDistanceStart / this._touchZoomDistanceEnd),
+                            (this._touchZoomDistanceStart = this._touchZoomDistanceEnd),
+                            this._eye.multiplyScalar(t))
+                          : 1 !==
+                              (t = 1 - (this._zoomEnd.y - this._zoomStart.y) * this.zoomSpeed) &&
+                            0 < t &&
+                            (this._eye.multiplyScalar(t),
+                            this.staticMoving
+                              ? this._zoomStart.copy(this._zoomEnd)
+                              : (this._zoomStart.y +=
+                                  (this._zoomEnd.y - this._zoomStart.y) *
+                                  this.dynamicDampingFactor));
+                      }),
+                      (t.prototype.panCamera = function () {
+                        this._panMouseChange.copy(this._panEnd).sub(this._panStart),
+                          this._panMouseChange.lengthSq() &&
+                            (this._panMouseChange.multiplyScalar(
+                              this._eye.length() * this.panSpeed,
+                            ),
+                            this._panPan
+                              .copy(this._eye)
+                              .cross(this.camera.up)
+                              .setLength(this._panMouseChange.x),
+                            this._panPan.add(
+                              this._panObjectUp
+                                .copy(this.camera.up)
+                                .setLength(this._panMouseChange.y),
+                            ),
+                            this.camera.position.add(this._panPan),
+                            this.target.add(this._panPan),
+                            this.staticMoving
+                              ? this._panStart.copy(this._panEnd)
+                              : this._panStart.add(
+                                  this._panMouseChange
+                                    .subVectors(this._panEnd, this._panStart)
+                                    .multiplyScalar(this.dynamicDampingFactor),
+                                ));
+                      }),
+                      (t.prototype.panTo = function (t) {
+                        var e = t.x,
+                          n = t.y,
+                          t = t.z;
+                        this._panToVector.set(e, n, t),
+                          this._panToDelta.subVectors(this._panToVector, this.target),
+                          this.camera.position.add(this._panToDelta),
+                          this.camera.lookAt(this._panToVector),
+                          this.target.copy(this._panToVector),
+                          this._eye.subVectors(this.camera.position, this.target),
+                          this.lastPosition.copy(this.camera.position),
+                          this._panToDelta.lengthSq() > this.EPS &&
+                            this.events.dispatchEvent(this.changeEvent);
+                      }),
+                      (t.prototype.panAndMoveToDistance = function (t, e) {
+                        var n = t.x,
+                          r = t.y,
+                          t = t.z;
+                        this._panToVector.set(n, r, t),
+                          this._panToDelta.subVectors(this._panToVector, this.target),
+                          this.camera.position.add(this._panToDelta),
+                          this.camera.lookAt(this._panToVector),
+                          this.target.copy(this._panToVector),
+                          this._eye.subVectors(this.camera.position, this.target),
+                          this._eye.setLength(e),
+                          this.camera.position.addVectors(this.target, this._eye),
+                          this.checkDistances(),
+                          this.lastPosition.copy(this.camera.position),
+                          this.events.dispatchEvent(this.changeEvent);
+                      }),
+                      (t.prototype.checkDistances = function () {
+                        (this.noZoom && this.noPan) ||
+                          (this._eye.lengthSq() > this.maxDistance * this.maxDistance &&
+                            this.camera.position.addVectors(
+                              this.target,
+                              this._eye.setLength(this.maxDistance),
+                            ),
+                          this._eye.lengthSq() < this.minDistance * this.minDistance &&
+                            this.camera.position.addVectors(
+                              this.target,
+                              this._eye.setLength(this.minDistance),
+                            ));
+                      }),
+                      (t.prototype.update = function () {
+                        this._eye.subVectors(this.camera.position, this.target),
+                          this.noRotate || this.rotateCamera(),
+                          this.noZoom || this.zoomCamera(),
+                          this.noPan || this.panCamera(),
+                          this.camera.position.addVectors(this.target, this._eye),
+                          this.checkDistances(),
+                          this.camera.lookAt(this.target),
+                          this.lastPosition.distanceToSquared(this.camera.position) > this.EPS &&
+                            (this.events.dispatchEvent(this.changeEvent),
+                            this.lastPosition.copy(this.camera.position));
+                      }),
+                      (t.prototype.reset = function () {
+                        (this._state = -1),
+                          (this._prevState = -1),
+                          this.target.copy(this.target0),
+                          this.camera.position.copy(this.position0),
+                          this.camera.up.copy(this.up0),
+                          this._eye.subVectors(this.camera.position, this.target),
+                          this.camera.lookAt(this.target),
+                          this.events.dispatchEvent(this.changeEvent),
+                          this.lastPosition.copy(this.camera.position);
+                      }),
+                      (t.prototype.getState = function () {
+                        return {
+                          state: this._state,
+                          prevState: this._prevState,
+                          target: this.target.clone(),
+                          objPos: this.camera.position.clone(),
+                          objUp: this.camera.up.clone(),
+                          eye: this._eye.clone(),
+                          lastPosition: this.lastPosition.clone(),
+                        };
+                      }),
+                      (t.prototype.setState = function (t) {
+                        (this._state = t.state),
+                          (this._prevState = t.prevState),
+                          this.target.copy(t.target),
+                          this.camera.position.copy(t.objPos),
+                          this.camera.up.copy(t.objUp),
+                          this._eye.copy(t.eye),
+                          this.camera.lookAt(this.target),
+                          this.events.dispatchEvent(this.changeEvent),
+                          this.lastPosition.copy(t.lastPosition);
+                      }),
+                      (t.prototype.keydown = function (t) {
+                        !1 !== this.enabled &&
+                          (window.removeEventListener('keydown', this.eventHandlers.keydown, !1),
+                          window.addEventListener('keyup', this.eventHandlers.keyup, !1),
+                          (this._prevState = this._state),
+                          -1 === this._state &&
+                            (t.keyCode !== this.keys[0] || this.noRotate
+                              ? t.keyCode !== this.keys[2] || this.noZoom
+                                ? t.keyCode !== this.keys[1] || this.noPan || (this._state = 1)
+                                : (this._state = 2)
+                              : (this._state = 0),
+                            (this._keyDownState = this._state)));
+                      }),
+                      (t.prototype.keyup = function (t) {
+                        !1 !== this.enabled &&
+                          ((this._state = this._prevState),
+                          (this._keyDownState = -1),
+                          window.removeEventListener('keyup', this.eventHandlers.keyup, !1),
+                          window.addEventListener('keydown', this.eventHandlers.keydown, !1));
+                      }),
+                      (t.prototype.mousedown = function (t) {
+                        !1 !== this.enabled &&
+                          (t.preventDefault(),
+                          this.scene.mouseInfo.updatePosition(t.clientX, t.clientY),
+                          -1 !== this._keyDownState && (this._state = this._keyDownState),
+                          -1 === this._state && (this._state = t.button),
+                          0 !== this._state || this.noRotate
+                            ? 2 !== this._state || this.noZoom
+                              ? 1 !== this._state ||
+                                this.noPan ||
+                                (this._panStart.copy(this.getMouseOnScreen()),
+                                this._panEnd.copy(this._panStart))
+                              : (this._zoomStart.copy(this.getMouseOnScreen()),
+                                this._zoomEnd.copy(this._zoomStart))
+                            : (this._rotateStart.copy(this.getMouseProjectionOnBall()),
+                              this._rotateEnd.copy(this._rotateStart)),
+                          window.addEventListener('mousemove', this.eventHandlers.mousemove, !1),
+                          window.addEventListener('mouseup', this.eventHandlers.mouseup, !1),
+                          this.events.dispatchEvent(this.startEvent));
+                      }),
+                      (t.prototype.mousemove = function (t) {
+                        !1 !== this.enabled &&
+                          (t.preventDefault(),
+                          this.scene.mouseInfo.updatePosition(t.clientX, t.clientY),
+                          0 !== this._state || this.noRotate
+                            ? 2 !== this._state || this.noZoom
+                              ? 1 !== this._state ||
+                                this.noPan ||
+                                this._panEnd.copy(this.getMouseOnScreen())
+                              : this._zoomEnd.copy(this.getMouseOnScreen())
+                            : this._rotateEnd.copy(this.getMouseProjectionOnBall()),
+                          this.update());
+                      }),
+                      (t.prototype.mouseup = function (t) {
+                        !1 !== this.enabled &&
+                          (t.preventDefault(),
+                          (this._state = -1),
+                          window.removeEventListener('mousemove', this.eventHandlers.mousemove, !1),
+                          window.removeEventListener('mouseup', this.eventHandlers.mouseup, !1),
+                          this.events.dispatchEvent(this.endEvent));
+                      }),
+                      (t.prototype.touchstart = function (t) {
+                        if (!1 !== this.enabled) {
+                          switch (t.touches.length) {
+                            case 1:
+                              (this._state = 3),
+                                this.scene.mouseInfo.updatePosition(
+                                  t.touches[0].clientX,
+                                  t.touches[0].clientY,
+                                ),
+                                this._rotateStart.copy(this.getMouseProjectionOnBall()),
+                                this._rotateEnd.copy(this._rotateStart);
+                              break;
+                            case 2:
+                              this._state = 4;
+                              var e = t.touches[0].clientX - t.touches[1].clientX,
+                                n = t.touches[0].clientY - t.touches[1].clientY,
+                                e =
+                                  ((this._touchZoomDistanceEnd = this._touchZoomDistanceStart =
+                                    Math.sqrt(e * e + n * n)),
+                                  (t.touches[0].clientX + t.touches[1].clientX) / 2),
+                                n = (t.touches[0].clientY + t.touches[1].clientY) / 2;
+                              this.scene.mouseInfo.updatePosition(e, n),
+                                this._panStart.copy(this.getMouseOnScreen()),
+                                this._panEnd.copy(this._panStart);
+                              break;
+                            default:
+                              this._state = -1;
+                          }
+                          this.events.dispatchEvent(this.startEvent);
+                        }
+                      }),
+                      (t.prototype.touchmove = function (t) {
+                        if (!1 !== this.enabled)
+                          switch ((t.preventDefault(), t.stopPropagation(), t.touches.length)) {
+                            case 1:
+                              this.scene.mouseInfo.updatePosition(
+                                t.touches[0].clientX,
+                                t.touches[0].clientY,
+                              ),
+                                this._rotateEnd.copy(this.getMouseProjectionOnBall()),
+                                this.update();
+                              break;
+                            case 2:
+                              var e = t.touches[0].clientX - t.touches[1].clientX,
+                                n = t.touches[0].clientY - t.touches[1].clientY,
+                                e =
+                                  ((this._touchZoomDistanceEnd = Math.sqrt(e * e + n * n)),
+                                  (t.touches[0].clientX + t.touches[1].clientX) / 2),
+                                n = (t.touches[0].clientY + t.touches[1].clientY) / 2;
+                              this.scene.mouseInfo.updatePosition(e, n),
+                                this._panEnd.copy(this.getMouseOnScreen()),
+                                this.update();
+                              break;
+                            default:
+                              this._state = -1;
+                          }
+                      }),
+                      (t.prototype.touchend = function (t) {
+                        if (!1 !== this.enabled) {
+                          var e = t.touches;
+                          switch ((e = e.length ? e : t.changedTouches).length) {
+                            case 1:
+                              this.scene.mouseInfo.updatePosition(e[0].clientX, e[0].clientY),
+                                this._rotateEnd.copy(this.getMouseProjectionOnBall()),
+                                this._rotateStart.copy(this._rotateEnd);
+                              break;
+                            case 2:
+                              var n =
+                                  (e[
+                                    (this._touchZoomDistanceStart = this._touchZoomDistanceEnd = 0)
+                                  ].clientX +
+                                    e[1].clientX) /
+                                  2,
+                                r = (e[0].clientY + e[1].clientY) / 2;
+                              this.scene.mouseInfo.updatePosition(n, r),
+                                this._panEnd.copy(this.getMouseOnScreen()),
+                                this._panStart.copy(this._panEnd);
+                          }
+                          (this._state = -1), this.events.dispatchEvent(this.endEvent);
+                        }
+                      }),
+                      (t.prototype.preventContextMenu = function (t) {
+                        t.preventDefault();
+                      }),
+                      (t.prototype.init = function () {
+                        this.domElement.addEventListener(
+                          'contextmenu',
+                          this.preventContextMenu,
+                          !1,
+                        ),
+                          this.domElement.addEventListener(
+                            'mousedown',
+                            this.eventHandlers.mousedown,
+                            !1,
+                          ),
+                          this.domElement.addEventListener(
+                            'touchstart',
+                            this.eventHandlers.touchstart,
+                            !1,
+                          ),
+                          this.domElement.addEventListener(
+                            'touchend',
+                            this.eventHandlers.touchend,
+                            !1,
+                          ),
+                          this.domElement.addEventListener(
+                            'touchmove',
+                            this.eventHandlers.touchmove,
+                            !1,
+                          ),
+                          window.addEventListener('keydown', this.eventHandlers.keydown, !1),
+                          this.update();
+                      }),
+                      (t.prototype.destroy = function () {
+                        this.domElement.removeEventListener(
+                          'contextmenu',
+                          this.preventContextMenu,
+                          !1,
+                        ),
+                          this.domElement.removeEventListener(
+                            'mousedown',
+                            this.eventHandlers.mousedown,
+                            !1,
+                          ),
+                          window.removeEventListener('keydown', this.eventHandlers.keydown, !1),
+                          this.domElement.removeEventListener(
+                            'touchstart',
+                            this.eventHandlers.touchstart,
+                            !1,
+                          ),
+                          this.domElement.removeEventListener(
+                            'touchend',
+                            this.eventHandlers.touchend,
+                            !1,
+                          ),
+                          this.domElement.removeEventListener(
+                            'touchmove',
+                            this.eventHandlers.touchmove,
+                            !1,
+                          ),
+                          (this.camera = void 0),
+                          (this.domElement = void 0);
+                      }),
+                      (i.CameraControls = t);
+                  })((e = F = F || {}).Visualization || (e.Visualization = {})),
+                  (jo = F = F || {}),
+                  (function (t) {
+                    var e;
+                    function n() {
+                      (this.current = null),
+                        (this.currentPickId = -1),
+                        (this.currentPickElementId = -1),
+                        (this.selectPos = { x: 0, y: 0 });
+                    }
+                    (n.prototype.getPickInfo = function () {
+                      return (
+                        this.current &&
+                        (this.current.elements && !this.current.elements.length
+                          ? null
+                          : { model: this.current.model, elements: this.current.elements })
+                      );
+                    }),
+                      (n.prototype.reset = function () {
+                        var t = null !== this.current;
+                        return (
+                          (this.currentPickId = -1),
+                          (this.currentPickElementId = -1),
+                          (this.current = null),
+                          t
+                        );
+                      }),
+                      (n.prototype.selectStart = function (t, e) {
+                        (this.selectPos.x = t), (this.selectPos.y = e);
+                      }),
+                      (n.prototype.selectEnd = function (t, e) {
+                        (t -= this.selectPos.x), (e -= this.selectPos.y);
+                        return t * t + e * e < 4.5;
+                      }),
+                      (t.Pick = n),
+                      ((e = t.Picking || (t.Picking = {})).assignPickColor = function (t, e) {
+                        var n = (t >> 16) & 255,
+                          r = (t >> 8) & 255;
+                        (e.r = (255 & t) / 255), (e.g = r / 255), (e.b = n / 255);
+                      }),
+                      (e.applySceneIdFast = function (t, e, n) {
+                        n[e + 3] = t / 255;
+                      }),
+                      (e.applySceneIdSlow = function (t, e, n, r) {
+                        var i = (e & ((1 << t) - 1)) << (8 - t),
+                          e = ((r[n + 3] = (e >> t) / 255), (255 * r[n + 2]) | 0);
+                        r[n + 2] = (e | i) / 255;
+                      }),
+                      (e.getElementId = function (t, e) {
+                        return e[0] | (e[1] << 8) | ((e[2] & ((1 << (16 - t)) - 1)) << 16);
+                      }),
+                      (e.getSceneId = function (t, e) {
+                        return (
+                          (t -= 8), (e[2] & ((((1 << t) - 1) << (8 - t)) >> (8 - t))) | (e[3] << t)
+                        );
+                      });
+                    var r = jo.Core.Utils.ChunkedArray;
+                    function i(t) {
+                      (this.elementMap = jo.Core.Utils.FastMap.create()),
+                        (this.elementIndex = 0),
+                        (this.elementRangeIndex = 0),
+                        (this.rangeIndex = 0),
+                        (this.added = 0),
+                        (this.elementIndices = r.create(
+                          function (t) {
+                            return new Int32Array(t);
+                          },
+                          t,
+                          1,
+                        )),
+                        (this.elementRanges = new Int32Array(2 * t)),
+                        (this.vertexRanges = r.create(
+                          function (t) {
+                            return new Int32Array(t);
+                          },
+                          t,
+                          2,
+                        ));
+                    }
+                    (i.prototype.startElement = function (t) {
+                      (this.elementIndex = t),
+                        (this.elementRangeIndex = this.elementMap.size),
+                        (this.rangeIndex = this.vertexRanges.elementCount),
+                        (this.added = 0);
+                    }),
+                      (i.prototype.addVertexRange = function (t, e) {
+                        this.added++, r.add2(this.vertexRanges, t, e);
+                      }),
+                      (i.prototype.endElement = function () {
+                        r.add(this.elementIndices, this.elementIndex),
+                          this.elementMap.set(this.elementIndex, this.elementRangeIndex),
+                          (this.elementRanges[2 * this.elementRangeIndex] = 2 * this.rangeIndex),
+                          (this.elementRanges[2 * this.elementRangeIndex + 1] =
+                            2 * (this.rangeIndex + this.added));
+                      }),
+                      (i.prototype.getMap = function () {
+                        return new o(
+                          r.compact(this.elementIndices),
+                          this.elementMap,
+                          this.elementRanges,
+                          r.compact(this.vertexRanges),
+                        );
+                      }),
+                      (t.VertexMapBuilder = i);
+                    var o = function (t, e, n, r) {
+                      (this.elementIndices = t),
+                        (this.elementMap = e),
+                        (this.elementRanges = n),
+                        (this.vertexRanges = r);
+                    };
+                    function a(t, e, n, r) {
+                      var i = !1;
+                      if (3 === r)
+                        for (var o = e; o < n; o++)
+                          (s = t[o]) - (a = 0 | s) < 0.33 && ((t[o] = a + 0.55), (i = !0));
+                      else if (4 === r)
+                        for (var a, o = e; o < n; o++)
+                          0.33 < (s = t[o]) - (a = 0 | s) && ((t[o] = a), (i = !0));
+                      else if (1 === r) for (o = e; o < n; o++) (t[o] = t[o] + 1), (i = !0);
+                      else if (2 === r)
+                        for (o = e; o < n; o++)
+                          0.75 < t[o] && ((s = t[o] - 1) < 0 && (s = 0), (t[o] = s), (i = !0));
+                      else
+                        for (o = e; o < n; o++) {
+                          var s = t[o];
+                          (t[o] = 0), (i = i || 0 !== s);
+                        }
+                      return i;
+                    }
+                    (t.VertexMap = o),
+                      (t.applyActionToRange = a),
+                      (t.applyActionToBuffer = function (t, e) {
+                        var n = t.array;
+                        return (n = a(n, 0, n.length, e)) && (t.needsUpdate = !0), n;
+                      });
+                  })(
+                    (r = jo.Visualization || (jo.Visualization = {})).Selection ||
+                      (r.Selection = {}),
+                  ),
+                  (n = F = F || {}),
+                  (Vo = n.Visualization || (n.Visualization = {})),
+                  ((qo = Vo.Geometry || (Vo.Geometry = {})).toBufferGeometry = function (t) {
+                    var e = new Vo.THREE.BufferGeometry();
+                    return (
+                      e.addAttribute('position', new Vo.THREE.BufferAttribute(t.vertices, 3)),
+                      t.normals &&
+                        e.addAttribute('normal', new Vo.THREE.BufferAttribute(t.normals, 3)),
+                      e.addAttribute('index', new Vo.THREE.BufferAttribute(t.indices, 1)),
+                      e
+                    );
+                  }),
+                  (qo.addAttribute = function (t, e, n, r) {
+                    t.addAttribute(e, new Vo.THREE.BufferAttribute(n, r));
+                  }),
+                  (t = n.Core.Utils),
+                  (da = t.ChunkedArray),
+                  (fa = t.ArrayBuilder),
+                  ((t = qo.Builder || (qo.Builder = {})).createStatic = function (t, e, n) {
+                    return (
+                      void 0 === n && (n = 3),
+                      {
+                        type: 'Static',
+                        vertices: fa.create(
+                          function (t) {
+                            return new Float32Array(t);
+                          },
+                          t,
+                          3,
+                        ),
+                        indices: fa.create(
+                          function (t) {
+                            return new Uint32Array(t);
+                          },
+                          e,
+                          n,
+                        ),
+                        normals:
+                          3 === n
+                            ? fa.create(
+                                function (t) {
+                                  return new Float32Array(t);
+                                },
+                                t,
+                                3,
+                              )
+                            : void 0,
+                        elementSize: n,
+                      }
+                    );
+                  }),
+                  (t.createDynamic = function (t, e, n) {
+                    return (
+                      void 0 === n && (n = 3),
+                      {
+                        type: 'Dynamic',
+                        vertices: da.create(
+                          function (t) {
+                            return new Float32Array(t);
+                          },
+                          t,
+                          3,
+                        ),
+                        indices: da.create(
+                          function (t) {
+                            return new Uint32Array(t);
+                          },
+                          e,
+                          n,
+                        ),
+                        normals:
+                          3 === n
+                            ? da.create(
+                                function (t) {
+                                  return new Float32Array(t);
+                                },
+                                t,
+                                3,
+                              )
+                            : void 0,
+                        elementSize: n,
+                      }
+                    );
+                  }),
+                  (Wo = da.add2),
+                  (Jo = da.add3),
+                  (Ko = fa.add2),
+                  (Zo = fa.add3),
+                  (n = n.Core.Geometry),
+                  (Xo = n.LinearAlgebra.Vector3),
+                  ($o = n.LinearAlgebra.Matrix4),
+                  (ta = Xo.zero()),
+                  (ea = $o.zero()),
+                  (na = $o.zero()),
+                  (ra = $o.zero()),
+                  (ia = $o.zero()),
+                  (oa = $o.zero()),
+                  (aa = Xo.fromValues(1, 1, 1)),
+                  (sa = Xo.zero()),
+                  (t.addRawTransformed = fl),
+                  (t.addVertex3s = function (t, e, n, r) {
+                    Zo(t.vertices, e, n, r);
+                  }),
+                  (t.addNormal3s = function (t, e, n, r) {
+                    Zo(t.normals, e, n, r);
+                  }),
+                  (t.addIndex3s = function (t, e, n, r) {
+                    Zo(t.indices, e, n, r);
+                  }),
+                  (t.addVertex3d = function (t, e, n, r) {
+                    Jo(t.vertices, e, n, r);
+                  }),
+                  (t.addNormal3d = function (t, e, n, r) {
+                    Jo(t.normals, e, n, r);
+                  }),
+                  (la = void (t.addIndex3d = function (t, e, n, r) {
+                    Jo(t.indices, e, n, r);
+                  })),
+                  (t.getDashTemplate = gl),
+                  (ua = Xo.zero()),
+                  (ca = Xo.zero()),
+                  (Aa = Xo.zero()),
+                  (ha = Xo.fromValues(1, 0, 0)),
+                  (pa = $o.zero()),
+                  (t.addDashedLine = function (t, e, n, r, i, o) {
+                    var a = Xo.sub(Aa, n, e),
+                      s = Xo.magnitude(a),
+                      l = Xo.set(ua, r, o, o),
+                      u = Xo.makeRotation(pa, ha, a),
+                      c = gl(),
+                      A = ca,
+                      h = (Xo.copy(A, e), Xo.normalize(a, a), r + i);
+                    Xo.scale(a, a, h);
+                    for (var p = 0; p < s; p += h)
+                      s < p + r && (l[0] = s - p), fl(t, c, l, A, u), Xo.add(A, A, a);
+                  }),
+                  (t.toBufferGeometry = function (t) {
+                    var e = 'Static' === t.type ? ml : vl;
+                    return qo.toBufferGeometry({
+                      vertices: e(t.vertices),
+                      vertexCount: t.vertices.elementCount,
+                      normals: t.normals && e(t.normals),
+                      indices: e(t.indices),
+                      indexCount: t.indices.elementCount,
+                      elementSize: t.elementSize,
+                    });
+                  });
+                var bl,
+                  yl,
+                  wl,
+                  El,
+                  Bl,
+                  Cl,
+                  xl,
+                  Il,
+                  Ml,
+                  Dl,
+                  Sl,
+                  kl,
+                  Fl,
+                  Ql,
+                  _l,
+                  Tl,
+                  Rl,
+                  Ul,
+                  Nl,
+                  Pl,
+                  Ll,
+                  Yl,
+                  a,
+                  Ol,
+                  Gl,
+                  zl,
+                  Hl,
+                  jl,
+                  Vl,
+                  ql,
+                  Wl,
+                  Jl,
+                  Kl,
+                  Zl,
+                  Xl,
+                  $l,
+                  tu,
+                  eu,
+                  nu,
+                  ru,
+                  iu,
+                  B,
+                  ou,
+                  I,
+                  au,
+                  su,
+                  lu,
+                  uu,
+                  cu,
+                  Au,
+                  hu,
+                  pu,
+                  du,
+                  fu,
+                  gu,
+                  mu,
+                  vu,
+                  bu,
+                  yu,
+                  wu,
+                  Eu,
+                  Bu,
+                  Cu,
+                  xu,
+                  Iu,
+                  Mu,
+                  Du,
+                  Su,
+                  ku,
+                  Fu,
+                  Qu,
+                  _u,
+                  Tu,
+                  Ru,
+                  Uu,
+                  Nu,
+                  Pu,
+                  Lu,
+                  Yu,
+                  Ou,
+                  Gu,
+                  zu,
+                  Hu,
+                  ju,
+                  Vu,
+                  qu,
+                  Wu,
+                  Ju,
+                  Ku,
+                  Zu,
+                  Xu,
+                  $u,
+                  tc,
+                  ec,
+                  nc,
+                  rc,
+                  ic,
+                  oc,
+                  l,
+                  ac,
+                  sc,
+                  lc,
+                  uc,
+                  C,
+                  cc,
+                  Ac,
+                  hc,
+                  pc,
+                  dc,
+                  fc,
+                  gc,
+                  mc,
+                  vc,
+                  bc,
+                  yc,
+                  wc,
+                  Ec,
+                  Bc,
+                  Cc,
+                  xc,
+                  Ic,
+                  Mc,
+                  Dc,
+                  Sc,
+                  kc,
+                  Fc,
+                  Qc,
+                  _c,
+                  s,
+                  Tc,
+                  Rc,
+                  Uc,
+                  Nc,
+                  Pc,
+                  Lc,
+                  Yc,
+                  u,
+                  c,
+                  Oc,
+                  Gc,
+                  zc,
+                  Hc,
+                  jc,
+                  Vc,
+                  qc,
+                  A,
+                  Wc,
+                  Jc,
+                  Kc,
+                  Zc,
+                  Xc,
+                  $c,
+                  tA,
+                  eA,
+                  nA,
+                  rA,
+                  h,
+                  iA,
+                  oA,
+                  aA,
+                  p,
+                  sA,
+                  lA,
+                  uA,
+                  cA,
+                  AA,
+                  hA,
+                  pA,
+                  dA,
+                  fA,
+                  gA,
+                  mA,
+                  vA,
+                  bA,
+                  yA,
+                  wA,
+                  EA,
+                  BA,
+                  CA,
+                  xA,
+                  IA,
+                  MA,
+                  DA,
+                  SA,
+                  kA,
+                  FA,
+                  QA,
+                  f,
+                  _A,
+                  TA,
+                  M =
+                    (this && this.__extends) ||
+                    ((bl =
+                      Object.setPrototypeOf ||
+                      ({ __proto__: [] } instanceof Array &&
+                        function (t, e) {
+                          t.__proto__ = e;
+                        }) ||
+                      function (t, e) {
+                        for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
+                      }),
+                    function (t, e) {
+                      function n() {
+                        this.constructor = t;
+                      }
+                      bl(t, e),
+                        (t.prototype =
+                          null === e ? Object.create(e) : ((n.prototype = e.prototype), new n()));
+                    });
+                function RA(t) {
+                  for (
+                    var e = (function (t) {
+                        for (
+                          var e = new Int32Array(t.data.annotation.length),
+                            r = t.data.annotation,
+                            n = 0,
+                            i = e.length;
+                          n < i;
+                          n++
+                        )
+                          e[n] = n;
+                        return (
+                          Array.prototype.sort.call(e, function (t, e) {
+                            var n = r[t] - r[e];
+                            return n || t - e;
+                          }),
+                          e
+                        );
+                      })(t),
+                      n = t.data.annotation,
+                      r = 1,
+                      i = 0,
+                      o = e.length - 1;
+                    i < o;
+                    i++
+                  )
+                    n[e[i]] !== n[e[i + 1]] && r++;
+                  for (
+                    var a = new wl.Selection.VertexMapBuilder(r),
+                      s = new Int32Array(e.length),
+                      i = 0,
+                      o = e.length;
+                    i < o;
+                    i++
+                  )
+                    s[i] = n[e[i]];
+                  var l = n[e[0]];
+                  a.startElement(l);
+                  for (i = 0, o = e.length; i < o; i++) {
+                    var u = n[e[i]],
+                      c = (u !== l && (a.endElement(), a.startElement(u), (l = u)), i);
+                    for (i++; u === n[e[i]]; ) i++;
+                    for (
+                      var A = i,
+                        h = (i--, (m = g = f = d = p = h = void 0), c),
+                        p = A,
+                        d = e,
+                        f = a,
+                        g = h,
+                        m = h + 1;
+                      g < p;
+
+                    ) {
+                      for (; m < p && d[m] - d[m - 1] < 1.1; ) m++;
+                      f.addVertexRange(d[g], d[m - 1] + 1), (g = m), (m += 1);
+                    }
+                  }
+                  return a.endElement(), a.getMap();
+                }
+                function UA(r) {
+                  return D(this, void 0, void 0, function () {
+                    return P(this, function (t) {
+                      switch (t.label) {
+                        case 0:
+                          return [4, r.computation.updateProgress('Computing selection map...')];
+                        case 1:
+                          return (
+                            t.sent(),
+                            r.data.annotation
+                              ? (r.geom.elementToVertexMap = RA(r))
+                              : (r.geom.elementToVertexMap =
+                                  ((e = r),
+                                  (n = new wl.Selection.VertexMapBuilder(1)).startElement(0),
+                                  n.addVertexRange(0, e.vertexCount),
+                                  n.endElement(),
+                                  n.getMap())),
+                            [2]
+                          );
+                      }
+                      var e, n;
+                    });
+                  });
+                }
+                function NA(i) {
+                  return D(this, void 0, void 0, function () {
+                    var e, n, r;
+                    return P(this, function (t) {
+                      switch (t.label) {
+                        case 0:
+                          (e = yl.Core.Utils.PerformanceMonitor.currentTime()),
+                            (n = 0),
+                            (t.label = 1);
+                        case 1:
+                          return n < i.triCount
+                            ? (r = yl.Core.Utils.PerformanceMonitor.currentTime()) - e >
+                              yl.Core.Computation.UpdateProgressDelta
+                              ? ((e = r),
+                                [
+                                  4,
+                                  i.computation.updateProgress(
+                                    'Creating selection geometry...',
+                                    !0,
+                                    n,
+                                    i.triCount,
+                                  ),
+                                ])
+                              : [3, 3]
+                            : [3, 5];
+                        case 2:
+                          t.sent(), (t.label = 3);
+                        case 3:
+                          !(function (b, y) {
+                            D(this, void 0, void 0, function () {
+                              var e, n, r, i, o, a, s, l, u, c, A, h, p, d, f, g, m, v;
+                              return P(this, function (t) {
+                                for (
+                                  e = y.data.triangleIndices,
+                                    n = y.data.annotation,
+                                    r = y.pickPlatesVertices,
+                                    i = y.pickPlatesTris,
+                                    o = y.pickPlatesColors,
+                                    a = y.data.vertices,
+                                    s = { r: 0.45, g: 0.45, b: 0.45 },
+                                    l = y.pickTris,
+                                    u = 0,
+                                    c = b,
+                                    A = Math.min(b + 1e5, y.triCount);
+                                  c < A;
+                                  c++
+                                )
+                                  (h = e[3 * c]),
+                                    (p = e[3 * c + 1]),
+                                    (d = e[3 * c + 2]),
+                                    (f = n[h]),
+                                    (g = n[p]),
+                                    (m = n[d]),
+                                    f === g && g === m
+                                      ? El.add3(l, h, p, d)
+                                      : ((v = -1),
+                                        f === g || f === m ? (v = f) : g === m && (v = g),
+                                        El.add3(r, a[3 * h], a[3 * h + 1], a[3 * h + 2]),
+                                        El.add3(r, a[3 * p], a[3 * p + 1], a[3 * p + 2]),
+                                        El.add3(r, a[3 * d], a[3 * d + 1], a[3 * d + 2]),
+                                        El.add3(i, u++, u++, u++),
+                                        v < 0
+                                          ? ((s.r = 0), (s.g = 0), (s.b = 0))
+                                          : wl.Selection.Picking.assignPickColor(v, s),
+                                        El.add4(o, s.r, s.g, s.b, 0),
+                                        El.add4(o, s.r, s.g, s.b, 0),
+                                        El.add4(o, s.r, s.g, s.b, 0));
+                                return (y.platesVertexCount = y.platesVertexCount + u), [2];
+                              });
+                            });
+                          })(n, i),
+                            (t.label = 4);
+                        case 4:
+                          return (n += 1e5), [3, 1];
+                        case 5:
+                          return [2];
+                      }
+                    });
+                  });
+                }
+                function PA(t, e, n, r) {
+                  var i;
+                  r < n && ((i = n), (n = r), (r = i)),
+                    e.add(((n + r) * (n + r + 1)) / 2 + r) && El.add2(t, n, r);
+                }
+                function LA(t, e, n) {
+                  var r = new wl.THREE.BufferGeometry();
+                  r.addAttribute('position', t.position),
+                    r.addAttribute('normal', new wl.THREE.BufferAttribute(n.data.normals, 3)),
+                    r.addAttribute(
+                      'color',
+                      new wl.THREE.BufferAttribute(new Float32Array(n.data.vertices.length), 3),
+                    ),
+                    e
+                      ? r.addAttribute(
+                          'index',
+                          (function (t) {
+                            for (
+                              var e = t.data.triangleIndices,
+                                n = El.create(
+                                  function (t) {
+                                    return new Uint32Array(t);
+                                  },
+                                  (1.5 * t.triCount) | 0,
+                                  2,
+                                ),
+                                r = yl.Core.Utils.FastSet.create(),
+                                i = 0,
+                                o = e.length;
+                              i < o;
+                              i += 3
+                            ) {
+                              var a = e[i],
+                                s = e[i + 1],
+                                l = e[i + 2];
+                              PA(n, r, a, s), PA(n, r, a, l), PA(n, r, s, l);
+                            }
+                            return new wl.THREE.BufferAttribute(El.compact(n), 1);
+                          })(n),
+                        )
+                      : r.addAttribute('index', t.index),
+                    (n.geom.geometry = r),
+                    (n.geom.vertexStateBuffer = new wl.THREE.BufferAttribute(
+                      new Float32Array(n.data.vertices.length),
+                      1,
+                    )),
+                    r.addAttribute('vState', n.geom.vertexStateBuffer);
+                }
+                function YA(A, h) {
+                  return D(this, void 0, void 0, function () {
+                    return P(this, function (t) {
+                      switch (t.label) {
+                        case 0:
+                          return [
+                            4,
+                            h.computation.updateProgress('Creating selection geometry...'),
+                          ];
+                        case 1:
+                          return (t.sent(),
+                          (h.pickColorBuffer = new Float32Array(4 * h.vertexCount)),
+                          h.data.annotation)
+                            ? [3, 2]
+                            : ((e = A),
+                              (u = h),
+                              (c = new wl.THREE.BufferGeometry()).addAttribute(
+                                'position',
+                                e.position,
+                              ),
+                              c.addAttribute('index', e.index),
+                              c.addAttribute(
+                                'pColor',
+                                new wl.THREE.BufferAttribute(u.pickColorBuffer, 4),
+                              ),
+                              (u.geom.pickGeometry = c),
+                              (c = new wl.THREE.BufferGeometry()).addAttribute(
+                                'position',
+                                new wl.THREE.BufferAttribute(new Float32Array(0), 3),
+                              ),
+                              c.addAttribute(
+                                'index',
+                                new wl.THREE.BufferAttribute(new Uint32Array(0), 1),
+                              ),
+                              c.addAttribute(
+                                'pColor',
+                                new wl.THREE.BufferAttribute(new Float32Array(0), 4),
+                              ),
+                              (u.geom.pickPlatesGeometry = c),
+                              [2]);
+                        case 2:
+                          for (
+                            var e = h,
+                              n = { r: 0.45, g: 0.45, b: 0.45 },
+                              r = e.data.annotation,
+                              i = ((e.pickTris = El.forIndexBuffer(e.triCount)), e.pickColorBuffer),
+                              o = 0,
+                              a = e.vertexCount;
+                            o < a;
+                            o++
+                          ) {
+                            var s = r[o];
+                            0 <= s &&
+                              (wl.Selection.Picking.assignPickColor(s + 1, n),
+                              (i[4 * o] = n.r),
+                              (i[4 * o + 1] = n.g),
+                              (i[4 * o + 2] = n.b));
+                          }
+                          return (
+                            (h.pickPlatesVertices = El.forVertex3D(
+                              Math.max(h.vertexCount / 10, 10),
+                            )),
+                            (h.pickPlatesTris = El.forIndexBuffer(Math.max(h.triCount / 10, 10))),
+                            (h.pickPlatesColors = El.create(
+                              function (t) {
+                                return new Float32Array(t);
+                              },
+                              Math.max(h.vertexCount / 10, 10),
+                              4,
+                            )),
+                            (h.platesVertexCount = 0),
+                            [4, NA(h)]
+                          );
+                        case 3:
+                          t.sent(),
+                            (u = A),
+                            (c = h),
+                            (l = new wl.THREE.BufferGeometry()).addAttribute(
+                              'position',
+                              u.position,
+                            ),
+                            l.addAttribute('index', u.index),
+                            l.addAttribute(
+                              'pColor',
+                              new wl.THREE.BufferAttribute(c.pickColorBuffer, 4),
+                            ),
+                            (c.geom.pickGeometry = l),
+                            (l = new wl.THREE.BufferGeometry()).addAttribute(
+                              'position',
+                              new wl.THREE.BufferAttribute(El.compact(c.pickPlatesVertices), 3),
+                            ),
+                            l.addAttribute(
+                              'index',
+                              new wl.THREE.BufferAttribute(El.compact(c.pickPlatesTris), 1),
+                            ),
+                            l.addAttribute(
+                              'pColor',
+                              new wl.THREE.BufferAttribute(El.compact(c.pickPlatesColors), 4),
+                            ),
+                            (c.geom.pickPlatesGeometry = l),
+                            (t.label = 4);
+                        case 4:
+                          return [2];
+                      }
+                      var l, e, u, c;
+                    });
+                  });
+                }
+                function OA() {
+                  var t = Bl.call(this) || this;
+                  return (
+                    (t.geometry = void 0),
+                    (t.vertexToElementMap = void 0),
+                    (t.elementToVertexMap = void 0),
+                    (t.pickGeometry = void 0),
+                    (t.pickPlatesGeometry = void 0),
+                    (t.vertexStateBuffer = void 0),
+                    t
+                  );
+                }
+                function GA(t) {
+                  (this.gamma = 1),
+                    (this.mapped = Ml.Core.Utils.FastMap.create()),
+                    (this.state = { scratchW: 0, scratchH: 0, currentX: 0, currentY: 0 }),
+                    (this.lineHeight = 0),
+                    (this.params = Ml.Core.Utils.extend({}, t, Sl.DefaultTextAtlasParams)),
+                    'undefined' != typeof navigator &&
+                      (t = navigator.userAgent).match(/Chrome/) &&
+                      t.match(/OS X/) &&
+                      (this.gamma = 0.5),
+                    this.build(),
+                    this.populate(),
+                    (this.texture = new Dl.THREE.Texture(this.canvas.canvas2)),
+                    (this.texture.flipY = !1),
+                    (this.texture.needsUpdate = !0),
+                    (this.canvas = void 0);
+                }
+                function zA(t) {
+                  return 'H' === t || 'D' === t || 'T' === t;
+                }
+                function g() {}
+                function HA() {
+                  var t = (null !== Xl && Xl.apply(this, arguments)) || this;
+                  return (
+                    (t.atomsGeometry = void 0),
+                    (t.bondsGeometry = void 0),
+                    (t.pickGeometry = void 0),
+                    (t.atomVertexMap = void 0),
+                    (t.vertexStateBuffer = void 0),
+                    t
+                  );
+                }
+                function jA() {
+                  var t = (null !== nu && nu.apply(this, arguments)) || this;
+                  return (
+                    (t.geometry = void 0),
+                    (t.pickGeometry = void 0),
+                    (t.gapsGeometry = void 0),
+                    (t.directionConesGeometry = void 0),
+                    (t.vertexMap = void 0),
+                    (t.vertexStateBuffer = void 0),
+                    t
+                  );
+                }
+                function VA() {
+                  return (null !== cu && cu.apply(this, arguments)) || this;
+                }
+                (yl = F = F || {}),
+                  (wl = yl.Visualization || (yl.Visualization = {})),
+                  (e = wl.Surface || (wl.Surface = {})),
+                  (El = yl.Core.Utils.ChunkedArray),
+                  (e.buildGeometry = function (i, o, a) {
+                    return D(this, void 0, void 0, function () {
+                      var n, r;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return (
+                              (n = {
+                                data: i,
+                                computation: o,
+                                geom: new Cl(),
+                                vertexCount: (i.vertices.length / 3) | 0,
+                                triCount: (i.triangleIndices.length / 3) | 0,
+                              }),
+                              [4, o.updateProgress('Creating geometry...')]
+                            );
+                          case 1:
+                            return t.sent(), [4, yl.Core.Geometry.Surface.computeNormals(i).run(o)];
+                          case 2:
+                            return (
+                              t.sent(),
+                              [4, yl.Core.Geometry.Surface.computeBoundingSphere(i).run(o)]
+                            );
+                          case 3:
+                            return (
+                              t.sent(),
+                              (e = n),
+                              (r = {
+                                position: new wl.THREE.BufferAttribute(e.data.vertices, 3),
+                                index: new wl.THREE.BufferAttribute(e.data.triangleIndices, 1),
+                              }),
+                              [4, UA(n)]
+                            );
+                          case 4:
+                            return t.sent(), [4, YA(r, n)];
+                          case 5:
+                            return (
+                              t.sent(),
+                              LA(r, a, n),
+                              (n.geom.vertexToElementMap = n.data.annotation),
+                              [2, n.geom]
+                            );
+                        }
+                        var e;
+                      });
+                    });
+                  }),
+                  (Bl = wl.GeometryBase),
+                  M(OA, Bl),
+                  (OA.prototype.dispose = function () {
+                    this.geometry.dispose(),
+                      this.pickGeometry &&
+                        (this.pickGeometry.dispose(), this.pickPlatesGeometry.dispose());
+                  }),
+                  (Cl = OA),
+                  (e.Geometry = Cl),
+                  (function (y) {
+                    var e,
+                      u = y.Surface || (y.Surface = {});
+                    function c() {
+                      var t = (null !== e && e.apply(this, arguments)) || this;
+                      return (t._mapPickElements = void 0), t;
+                    }
+                    (u.DefaultSurfaceModelParameters = {
+                      isWireframe: !1,
+                      mapPickElements: void 0,
+                    }),
+                      (e = y.Model),
+                      M(c, e),
+                      (c.prototype.applySelectionInternal = function (t, e) {
+                        for (
+                          var n = this.geometry.vertexStateBuffer,
+                            r = n.array,
+                            i = this.geometry.elementToVertexMap,
+                            o = i.vertexRanges,
+                            a = !1,
+                            s = 0,
+                            l = t;
+                          s < l.length;
+                          s++
+                        ) {
+                          var u = l[s];
+                          if (i.elementMap.has(u)) {
+                            var u = i.elementMap.get(u),
+                              c = i.elementRanges[2 * u],
+                              A = i.elementRanges[2 * u + 1];
+                            if (c !== A)
+                              for (var h = c; h < A; h += 2)
+                                var p = o[h],
+                                  d = o[h + 1],
+                                  a = y.Selection.applyActionToRange(r, p, d, e) || a;
+                          }
+                        }
+                        return !!a && (n.needsUpdate = !0);
+                      }),
+                      (c.prototype.highlightElement = function (t, e) {
+                        return this.surface.annotation
+                          ? this.applySelection([t - 1], e ? 3 : 4)
+                          : this.highlightInternal(e);
+                      }),
+                      (c.prototype.highlightInternal = function (t) {
+                        return y.Selection.applyActionToBuffer(
+                          this.geometry.vertexStateBuffer,
+                          t ? 3 : 4,
+                        );
+                      }),
+                      (c.prototype.getPickElements = function (t) {
+                        return t
+                          ? this._mapPickElements
+                            ? this._mapPickElements(t - 1) || []
+                            : [t - 1]
+                          : [0];
+                      }),
+                      (c.prototype.getBoundingSphereOfSelection = function (t) {
+                        if (!this.geometry.vertexToElementMap)
+                          return {
+                            radius: this.radius,
+                            center: xl.Core.Geometry.LinearAlgebra.Vector3.fromObj(this.centroid),
+                          };
+                        for (
+                          var e = this.geometry.geometry.attributes.position.array,
+                            n = new y.THREE.Vector3(),
+                            r = 0,
+                            i = this.geometry.elementToVertexMap,
+                            o = i.vertexRanges,
+                            a = 0,
+                            s = t;
+                          a < s.length;
+                          a++
+                        ) {
+                          var l = s[a];
+                          if (i.elementMap.has(l)) {
+                            var u = i.elementMap.get(l),
+                              c = i.elementRanges[2 * u],
+                              A = i.elementRanges[2 * u + 1];
+                            if (c !== A)
+                              for (var h = c; h < A; h += 2)
+                                for (var p = o[h], d = o[h + 1], f = p; f < d; f++)
+                                  (n.x += e[3 * f]),
+                                    (n.y += e[3 * f + 1]),
+                                    (n.z += e[3 * f + 2]),
+                                    r++;
+                          }
+                        }
+                        if (r) {
+                          (n.x = n.x / r), (n.y = n.y / r), (n.z = n.z / r);
+                          for (
+                            var g = new y.THREE.Vector3(), m = 0, v = 0, b = t;
+                            v < b.length;
+                            v++
+                          ) {
+                            l = b[v];
+                            if (i.elementMap.has(l)) {
+                              (u = i.elementMap.get(l)),
+                                (c = i.elementRanges[2 * u]),
+                                (A = i.elementRanges[2 * u + 1]);
+                              if (c !== A)
+                                for (h = c; h < A; h += 2)
+                                  for (p = o[h], d = o[h + 1], f = p; f < d; f++)
+                                    (g.x = e[3 * f]),
+                                      (g.y = e[3 * f + 1]),
+                                      (g.z = e[3 * f + 2]),
+                                      (m = Math.max(m, g.distanceToSquared(n)));
+                            }
+                          }
+                          return {
+                            radius: (m = Math.sqrt(m)),
+                            center: xl.Core.Geometry.LinearAlgebra.Vector3.fromObj(n),
+                          };
+                        }
+                      }),
+                      (c.prototype.applyThemeInternal = function (t) {
+                        var e = { r: 0, g: 0, b: 0 },
+                          n =
+                            (y.MaterialsHelper.updateMaterial(this.material, t, this.object),
+                            this.geometry.geometry.attributes.color.array),
+                          r = this.geometry.vertexToElementMap;
+                        if (r)
+                          for (var i = 0, o = (n.length / 3) | 0; i < o; i++) {
+                            var a = r[i];
+                            a < 0 ? ((e.r = 0), (e.g = 0), (e.b = 0)) : t.setElementColor(a, e),
+                              (n[3 * i] = e.r),
+                              (n[3 * i + 1] = e.g),
+                              (n[3 * i + 2] = e.b);
+                          }
+                        else {
+                          t.setElementColor(0, e);
+                          for (i = 0, o = (n.length / 3) | 0; i < o; i++)
+                            (n[3 * i] = e.r), (n[3 * i + 1] = e.g), (n[3 * i + 2] = e.b);
+                        }
+                        this.pickObject &&
+                          (this.pickObject.visible = this.getPickObjectVisibility(
+                            this.object.visible,
+                          )),
+                          (this.geometry.geometry.getAttribute('color').needsUpdate = !0);
+                      }),
+                      (c.prototype.getPickObjectVisibility = function (t) {
+                        return !(y.Theme.isTransparent(this.theme) || !this.theme.interactive) && t;
+                      }),
+                      (c.prototype.createObjects = function () {
+                        var t,
+                          e = new y.THREE.Mesh(this.geometry.geometry, this.material),
+                          n = void 0;
+                        return (
+                          this.geometry.pickGeometry &&
+                            ((n = new y.THREE.Object3D()),
+                            (t = new y.THREE.Mesh(this.geometry.pickGeometry, this.pickMaterial)),
+                            n.add(t),
+                            (t = new y.THREE.Mesh(
+                              this.geometry.pickPlatesGeometry,
+                              this.pickMaterial,
+                            )),
+                            n.add(t)),
+                          { main: e, pick: n }
+                        );
+                      }),
+                      (c.create = function (i, t) {
+                        var e = this,
+                          o = t.surface,
+                          a = t.theme,
+                          n = t.parameters,
+                          s = void 0 === n ? u.DefaultSurfaceModelParameters : n,
+                          l = t.props;
+                        return xl.Core.computation(function (r) {
+                          return D(e, void 0, void 0, function () {
+                            var e, n;
+                            return P(this, function (t) {
+                              switch (t.label) {
+                                case 0:
+                                  return [4, u.buildGeometry(o, r, !!s.isWireframe)];
+                                case 1:
+                                  return (
+                                    (n = t.sent()),
+                                    ((e = new c())._mapPickElements = s.mapPickElements),
+                                    (e.surface = o),
+                                    (e.material = y.MaterialsHelper.getMeshMaterial(
+                                      y.THREE.FlatShading,
+                                      !!s.isWireframe,
+                                    )),
+                                    (e.geometry = n),
+                                    (e.pickMaterial = y.MaterialsHelper.getPickMaterial()),
+                                    (e.entity = i),
+                                    (n = o.boundingSphere.center),
+                                    (e.centroid = new y.THREE.Vector3(n[0], n[1], n[2])),
+                                    (e.radius = o.boundingSphere.radius),
+                                    l && (e.props = l),
+                                    e.disposeList.push(e.geometry, e.material, e.pickMaterial),
+                                    (n = e.createObjects()),
+                                    (e.object = n.main),
+                                    (e.pickObject = n.pick),
+                                    e.applyTheme(a),
+                                    (e.pickBufferAttributes = [
+                                      e.geometry.pickGeometry.attributes.pColor,
+                                      e.geometry.pickPlatesGeometry.attributes.pColor,
+                                    ]),
+                                    [2, e]
+                                  );
+                              }
+                            });
+                          });
+                        });
+                      }),
+                      (u.Model = c);
+                  })((xl = F = F || {}).Visualization || (xl.Visualization = {})),
+                  (function (A) {
+                    var t, e;
+                    function h() {
+                      var t = e.call(this) || this;
+                      return (
+                        (t.geometry = void 0),
+                        (t.center = new A.THREE.Vector3(0, 0, 0)),
+                        (t.radius = 0),
+                        t
+                      );
+                    }
+                    (t = A.Lines || (A.Lines = {})),
+                      (e = A.GeometryBase),
+                      M(h, e),
+                      (h.prototype.dispose = function () {
+                        this.geometry.dispose();
+                      }),
+                      (h.create = function (t, e) {
+                        for (
+                          var n = new h(), r = new A.THREE.Vector3(0, 0, 0), i = 0, o = t.length;
+                          i < o;
+                          i += 3
+                        )
+                          (r.x += t[i]), (r.y += t[i + 1]), (r.z += t[i + 2]);
+                        r.multiplyScalar(1 / (t.length / 3));
+                        for (var a = 0, i = 0, o = t.length; i < o; i += 3) {
+                          var s = r.x - t[i],
+                            l = r.y - t[i + 1],
+                            u = r.z - t[i + 2],
+                            s = s * s + l * l + u * u;
+                          a < s && (a = s);
+                        }
+                        var a = Math.sqrt(a),
+                          c = new A.THREE.BufferGeometry();
+                        return (
+                          c.addAttribute('position', new A.THREE.BufferAttribute(t, 3)),
+                          c.addAttribute('index', new A.THREE.BufferAttribute(e, 1)),
+                          (n.geometry = c),
+                          (n.center = r),
+                          (n.radius = a),
+                          n
+                        );
+                      }),
+                      (t.Geometry = h);
+                  })((r = F = F || {}).Visualization || (r.Visualization = {})),
+                  (function (s) {
+                    var t, e;
+                    function l() {
+                      return (null !== e && e.apply(this, arguments)) || this;
+                    }
+                    (t = s.Lines || (s.Lines = {})),
+                      (e = s.Model),
+                      M(l, e),
+                      (l.prototype.applySelectionInternal = function (t, e) {
+                        return !1;
+                      }),
+                      (l.prototype.highlightElement = function (t, e) {
+                        return this.applySelection([t], e ? 3 : 4);
+                      }),
+                      (l.prototype.highlightInternal = function (t) {
+                        return !1;
+                      }),
+                      (l.prototype.getPickElements = function (t) {
+                        return [t];
+                      }),
+                      (l.prototype.applyThemeInternal = function (t) {
+                        t = t.colors.get('Uniform');
+                        (this.material.color = new s.THREE.Color(t.r, t.g, t.b)),
+                          (this.material.needsUpdate = !0);
+                      }),
+                      (l.prototype.getPickObjectVisibility = function (t) {
+                        return !1;
+                      }),
+                      (l.prototype.createObjects = function () {
+                        return {
+                          main: new s.THREE.Mesh(this.geometry.geometry, this.material),
+                          pick: void 0,
+                        };
+                      }),
+                      (l.create = function (r, t) {
+                        var e = this,
+                          i = t.geometry,
+                          o = t.theme,
+                          a = t.props;
+                        return Il.Core.computation(function (t) {
+                          return D(e, void 0, void 0, function () {
+                            var e, n;
+                            return P(this, function (t) {
+                              return (
+                                ((e = new l()).material = new s.THREE.MeshBasicMaterial({
+                                  wireframe: !0,
+                                })),
+                                (e.geometry = i),
+                                (e.entity = r),
+                                (e.centroid = i.center),
+                                (e.radius = i.radius),
+                                a && (e.props = a),
+                                e.disposeList.push(e.geometry, e.material),
+                                (n = e.createObjects()),
+                                (e.object = n.main),
+                                (e.pickObject = void 0),
+                                e.applyTheme(o),
+                                (e.pickBufferAttributes = []),
+                                [2, e]
+                              );
+                            });
+                          });
+                        });
+                      }),
+                      (t.Model = l);
+                  })((Il = F = F || {}).Visualization || (Il.Visualization = {})),
+                  (Ml = F = F || {}),
+                  (Dl = Ml.Visualization || (Ml.Visualization = {})),
+                  ((Sl = Dl.Labels || (Dl.Labels = {})).DefaultTextAtlasParams = {
+                    font: ['sans-serif'],
+                    size: 36,
+                    style: 'normal',
+                    variant: 'normal',
+                    weight: 'normal',
+                    outline: 0,
+                    width: 2048,
+                    height: 2048,
+                  }),
+                  (kl = Ml.Core.Utils.FastMap.create()),
+                  (Sl.getTextAtlas = function (t) {
+                    var e = JSON.stringify(t);
+                    return kl.has(e) ? kl.get(e) : ((t = new Fl(t)), kl.set(e, t), t);
+                  }),
+                  (GA.prototype.build = function () {
+                    for (
+                      var t = this.params,
+                        e = t.size + 2 * t.outline + Math.round(t.size / 4),
+                        n = t.width / 4,
+                        r = document.createElement('canvas'),
+                        i = ((r.width = n), (r.height = e), r.getContext('2d')),
+                        o =
+                          ((i.font =
+                            t.style +
+                            ' ' +
+                            t.variant +
+                            ' ' +
+                            t.weight +
+                            ' ' +
+                            t.size +
+                            'px ' +
+                            t.font),
+                          (i.fillStyle = '#FF0000'),
+                          (i.textAlign = 'left'),
+                          (i.textBaseline = 'bottom'),
+                          (i.lineJoin = 'round'),
+                          []),
+                        a = 3 * t.outline,
+                        s = 0;
+                      s < a;
+                      ++s
+                    ) {
+                      var l = ('00' + Math.max(0, 8 * -s + 128 - 8 * !s).toString(16)).slice(-2);
+                      o.push('#' + l + l + l);
+                    }
+                    var u = new Uint8Array(n * e * 2),
+                      c = new Uint8Array(t.width * t.height * 4),
+                      A = document.createElement('canvas'),
+                      t = ((A.width = t.width), (A.height = t.height), A.getContext('2d'));
+                    (this.canvas = {
+                      canvas: r,
+                      ctx: i,
+                      canvas2: A,
+                      ctx2: t,
+                      maxWidth: n,
+                      colors: o,
+                      scratch: u,
+                      data: c,
+                    }),
+                      (this.lineHeight = e);
+                  }),
+                  (GA.prototype.map = function (t) {
+                    if (this.mapped.has(t)) return this.mapped.get(t);
+                    this.draw(t);
+                    var e = this.state,
+                      n =
+                        (e.currentX + e.scratchW > this.params.width &&
+                          ((e.currentX = 0), (e.currentY += e.scratchH)),
+                        e.currentY + e.scratchH > this.params.height &&
+                          console.warn('TextAtlas canvas to small'),
+                        { x: e.currentX, y: e.currentY, w: e.scratchW, h: e.scratchH });
+                    return (
+                      this.mapped.set(t, n),
+                      this.canvas.ctx2.drawImage(
+                        this.canvas.canvas,
+                        0,
+                        0,
+                        e.scratchW,
+                        e.scratchH,
+                        e.currentX,
+                        e.currentY,
+                        e.scratchW,
+                        e.scratchH,
+                      ),
+                      (e.currentX += e.scratchW),
+                      n
+                    );
+                  }),
+                  (GA.prototype.getTextMetrics = function (t) {
+                    return this.mapped.has(t) ? this.mapped.get(t) : this.placeholder;
+                  }),
+                  (GA.prototype.draw = function (t) {
+                    var e = this.params,
+                      n = this.canvas,
+                      r = this.lineHeight,
+                      i = e.outline,
+                      o = n.ctx,
+                      a = n.scratch,
+                      s = n.maxWidth,
+                      l = n.colors,
+                      u = i,
+                      c = r - e.outline,
+                      n = o.measureText(t),
+                      s = Math.min(s, Math.ceil(n.width + 2 * u + 1));
+                    if ((o.clearRect(0, 0, s, r), 0 === e.outline))
+                      for (
+                        o.fillText(t, u, c),
+                          p = 3,
+                          g = (h = (A = o.getImageData((f = 0), 0, s, r)).data).length / 4;
+                        f < g;
+                        ++f
+                      )
+                        (a[f] = h[p]), (p += 4);
+                    else {
+                      for (o.globalCompositeOperation = 'source-over', f = i + 1; 0 < f; --f)
+                        (o.strokeStyle = l[(p = 1 < f ? 2 * f - 2 : f) - 1]),
+                          (o.lineWidth = p),
+                          o.strokeText(t, u, c);
+                      (o.globalCompositeOperation = 'multiply'),
+                        (o.fillStyle = '#FF00FF'),
+                        o.fillText(t, u, c);
+                      for (
+                        var A,
+                          h = (A = o.getImageData(0, 0, s, r)).data,
+                          p = 0,
+                          d = this.gamma,
+                          f = 0,
+                          g = h.length / 4;
+                        f < g;
+                        ++f
+                      ) {
+                        var m = h[p],
+                          v = m ? h[p + 1] / m : 1,
+                          b =
+                            (0.5 === d && (v = Math.sqrt(v)),
+                            (v = Math.min(1, Math.max(0, v))),
+                            256 - m);
+                        (a[f] = Math.max(0, Math.min(255, 2 + (b + (m - b) * v)))),
+                          (h[p + 3] = a[f]),
+                          (p += 4);
+                      }
+                    }
+                    o.putImageData(A, 0, 0), (this.state.scratchW = s), (this.state.scratchH = r);
+                  }),
+                  (GA.prototype.populate = function () {
+                    this.placeholder = this.map(String.fromCharCode(65533));
+                    for (var t = 0; t < 127; ++t) this.map(String.fromCharCode(t));
+                    for (t = 128; t < 255; ++t) this.map(String.fromCharCode(t));
+                    for (t = 880; t < 1023; ++t) this.map(String.fromCharCode(t));
+                    for (t = 1024; t < 1279; ++t) this.map(String.fromCharCode(t));
+                    this.map(String.fromCharCode(8491));
+                  }),
+                  (Fl = GA),
+                  (Sl.TextAtlas = Fl),
+                  (Ql = F = F || {}),
+                  (_l = Ql.Visualization || (Ql.Visualization = {})),
+                  (((Tl = _l.Labels || (_l.Labels = {})).Geometry || (Tl.Geometry = {})).create =
+                    function (t) {
+                      for (
+                        var e = (t = (function (t) {
+                            for (
+                              var e = Ql.Core.Utils.extend({}, t.options, Tl.DefaultLabelsOptions),
+                                n = 0,
+                                r = 0,
+                                i = t.labels;
+                              r < i.length;
+                              r++
+                            ) {
+                              var o = i[r];
+                              n += o.length;
+                            }
+                            var a = Tl.getTextAtlas({
+                                font: [e.fontFamily],
+                                style: e.fontStyle,
+                                weight: e.fontWeight,
+                                size: e.fontSize,
+                                outline: e.useSDF ? 5 : 0,
+                              }),
+                              s = n + t.labels.length;
+                            return {
+                              positions: t.positions,
+                              inputSizes: t.sizes,
+                              labels: t.labels,
+                              options: e,
+                              textAtlas: a,
+                              charCount: n,
+                              quadCount: s,
+                              vertices: new Float32Array(4 * s * 3),
+                              size: new Float32Array(4 * s),
+                              texCoords: new Float32Array(4 * s * 2),
+                              mapping: new Float32Array(4 * s * 2),
+                            };
+                          })(t)),
+                          n = e.labels,
+                          r = e.positions,
+                          i = r.x,
+                          o = r.y,
+                          a = r.z,
+                          s = e.vertices,
+                          l = e.size,
+                          u = e.inputSizes,
+                          c = 0,
+                          A = 0;
+                        A < n.length;
+                        ++A
+                      )
+                        for (var h = n[A].length + 1, p = 0; p < h; ++p, ++c)
+                          for (var d = 0; d < 4; d++) {
+                            var f = 4 * c * 3 + 3 * d;
+                            (s[f] = i[A]),
+                              (s[1 + f] = o[A]),
+                              (s[2 + f] = a[A]),
+                              (l[4 * c + d] = u[A]);
+                          }
+                      for (
+                        var g,
+                          m,
+                          v,
+                          b,
+                          y,
+                          w,
+                          E,
+                          B,
+                          C = (r = t).textAtlas,
+                          x = r.labels,
+                          I = r.options.attachment,
+                          M = C.params.outline,
+                          D = C.lineHeight,
+                          S = C.lineHeight * r.options.backgroundMargin * 0.1 - 10,
+                          k = r.texCoords,
+                          F = r.mapping,
+                          Q = 0,
+                          _ = 0;
+                        _ < x.length;
+                        ++_
+                      ) {
+                        for (v = x[_], b = 0, w = v.length, y = 0; y < w; ++y)
+                          (g = C.getTextMetrics(v[y])), (b += g.w - 2 * M);
+                        for (
+                          B =
+                            0 === I.indexOf('top')
+                              ? C.lineHeight / 1.25
+                              : 0 === I.indexOf('middle')
+                                ? C.lineHeight / 2.5
+                                : 0,
+                            E = 0 < I.indexOf('right') ? b : 0 < I.indexOf('center') ? b / 2 : 0,
+                            E += M,
+                            B += M,
+                            F[0 + (m = 2 * Q * 4)] = -D / 6 - E - S,
+                            F[1 + m] = D - B + S,
+                            F[2 + m] = -D / 6 - E - S,
+                            F[3 + m] = 0 - 1.2 * B - S,
+                            F[4 + m] = b + D / 6 - E + 2 * M + S,
+                            F[5 + m] = D - B + S,
+                            F[6 + m] = b + D / 6 - E + 2 * M + S,
+                            F[7 + m] = 0 - 1.2 * B - S,
+                            k[0 + m] = 10,
+                            k[2 + m] = 10,
+                            k[4 + m] = 10,
+                            k[6 + m] = 10,
+                            Q += 1,
+                            y = b = 0;
+                          y < w;
+                          ++y, ++Q
+                        ) {
+                          (g = C.getTextMetrics(v[y])),
+                            (F[0 + (m = 2 * Q * 4)] = b - E),
+                            (F[1 + m] = g.h - B),
+                            (F[2 + m] = b - E),
+                            (F[3 + m] = 0 - B),
+                            (F[4 + m] = b + g.w - E),
+                            (F[5 + m] = g.h - B),
+                            (F[6 + m] = b + g.w - E),
+                            (F[7 + m] = 0 - B);
+                          var T = C.params.width,
+                            R = C.params.height;
+                          (k[0 + m] = g.x / T),
+                            (k[1 + m] = g.y / R),
+                            (k[2 + m] = g.x / T),
+                            (k[3 + m] = (g.y + g.h) / R),
+                            (k[4 + m] = (g.x + g.w) / T),
+                            (k[5 + m] = g.y / R),
+                            (k[6 + m] = (g.x + g.w) / T),
+                            (k[7 + m] = (g.y + g.h) / R),
+                            (b += g.w - 2 * M);
+                        }
+                      }
+                      return (
+                        (e = (function (t) {
+                          for (
+                            var e = new Uint32Array(2 * t.quadCount * 3), n = 0, r = 0;
+                            r < t.quadCount;
+                            r++
+                          )
+                            (e[n++] = 4 * r),
+                              (e[n++] = 4 * r + 1),
+                              (e[n++] = 4 * r + 2),
+                              (e[n++] = 4 * r + 1),
+                              (e[n++] = 4 * r + 3),
+                              (e[n++] = 4 * r + 2);
+                          return e;
+                        })(t)),
+                        (r = new _l.THREE.BufferGeometry()).addAttribute(
+                          'position',
+                          new _l.THREE.BufferAttribute(t.vertices, 3),
+                        ),
+                        r.addAttribute('index', new _l.THREE.BufferAttribute(e, 1)),
+                        r.addAttribute(
+                          'color',
+                          new _l.THREE.BufferAttribute(new Float32Array(4 * t.quadCount * 3), 3),
+                        ),
+                        r.addAttribute('mapping', new _l.THREE.BufferAttribute(t.mapping, 2)),
+                        r.addAttribute(
+                          'inputTexCoord',
+                          new _l.THREE.BufferAttribute(t.texCoords, 2),
+                        ),
+                        r.addAttribute('inputSize', new _l.THREE.BufferAttribute(t.size, 1)),
+                        { geometry: r, texture: t.textAtlas.texture, options: t.options }
+                      );
+                    }),
+                  (n = (n = F = F || {}).Visualization || (n.Visualization = {})),
+                  ((t =
+                    (t = n.Labels || (n.Labels = {})).Material || (t.Material = {})).VERTEX_SHADER =
+                    '\nuniform float xOffset;\nuniform float yOffset;\nuniform float zOffset;\nuniform float sizeFactor;\n\nvarying vec2 texCoord;\n\nattribute vec2 mapping;\nattribute vec2 inputTexCoord;\nattribute float inputSize;\n\n' +
+                    n.THREE.ShaderChunk.color_pars_vertex +
+                    '\n' +
+                    n.THREE.ShaderChunk.common +
+                    '\n\nfloat matrixScale( in mat4 m ){\n    vec4 r = m[ 0 ];\n    return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );\n}\n\nvoid main(void){\n\n    ' +
+                    n.THREE.ShaderChunk.color_vertex +
+                    '\n\n    texCoord = inputTexCoord;\n\n    float scale = matrixScale( modelViewMatrix );\n\n    float _zOffset = zOffset * scale;\n    if( texCoord.x == 10.0 ){\n         _zOffset -= 0.001;\n    }\n\n    vec3 pos = position;\n    vec4 cameraPos = modelViewMatrix * vec4( pos, 1.0 );\n    vec4 cameraCornerPos = vec4( cameraPos.xyz, 1.0 );\n    cameraCornerPos.xy += mapping * inputSize * sizeFactor * 0.01 * scale;\n    cameraCornerPos.x += xOffset * scale;\n    cameraCornerPos.y += yOffset * scale;\n    cameraCornerPos.xyz += normalize( -cameraCornerPos.xyz ) * _zOffset;\n\n    gl_Position = projectionMatrix * cameraCornerPos;\n    //gl_Position.xyz = position.xyz;\n}\n'),
+                  (t.FRAGMENT_SHADER =
+                    '\n#extension GL_OES_standard_derivatives : enable\n\nuniform sampler2D fontTexture;\nuniform vec3 outlineColor;\nuniform float outlineWidth;\nuniform vec3 backgroundColor;\nuniform float backgroundOpacity;\n\nvarying vec2 texCoord;\n\n' +
+                    n.THREE.ShaderChunk.common +
+                    '\n' +
+                    n.THREE.ShaderChunk.color_pars_fragment +
+                    '\n' +
+                    n.THREE.ShaderChunk.fog_pars_fragment +
+                    '\n\nconst float smoothness = 16.0;\nconst float gamma = 2.2;\n\nvoid main(){\n    vec4 finalColor;\n\n    if( texCoord.x > 1.0 ){\n        if (backgroundOpacity < 0.05) discard;\n        finalColor = vec4( backgroundColor, backgroundOpacity );\n    }else{\n        // retrieve signed distance\n        float sdf = texture2D( fontTexture, texCoord ).a + outlineWidth;\n\n        // perform adaptive anti-aliasing of the edges\n        float w = clamp(\n            smoothness * ( abs( dFdx( texCoord.x ) ) + abs( dFdy( texCoord.y ) ) ),\n            0.0,\n            0.5\n        );\n        float a = smoothstep( 0.5 - w, 0.5 + w, sdf );\n\n        // gamma correction for linear attenuation\n        a = pow( a, 1.0 / gamma );\n        if( a < 0.2 ) discard;\n        //a *= opacity;\n\n        vec3 outgoingLight = vColor;\n        if( outlineWidth > 0.0 && sdf < ( 0.5 + outlineWidth ) ){\n            outgoingLight = outlineColor;\n        }\n\n        finalColor = vec4( outgoingLight, a );    \n    }\n\n    //gl_FragColor = finalColor;\n    vec3 outgoingLight = finalColor.rgb;\n\n    ' +
+                    n.THREE.ShaderChunk.fog_fragment +
+                    '\n    \n    #ifdef USE_FOG\n       float alpha = (1.0 - fogFactor) * finalColor.a;\n       if (alpha < 0.05) discard;\n       gl_FragColor = vec4( outgoingLight.rgb, alpha );\n    #else\n      gl_FragColor = finalColor;\n    #endif\n}\n'),
+                  (e = F = F || {}),
+                  (e = (Rl = e.Visualization || (e.Visualization = {})).Labels || (Rl.Labels = {})),
+                  ((Ul = e.Material || (e.Material = {})).create = function (t) {
+                    var e = Rl.THREE.UniformsUtils.merge([
+                      Rl.THREE.UniformsLib.common,
+                      Rl.THREE.UniformsLib.fog,
+                      {
+                        fontTexture: { type: 't', value: t },
+                        xOffset: { type: 'f', value: 0 },
+                        yOffset: { type: 'f', value: 0 },
+                        zOffset: { type: 'f', value: 0 },
+                        sizeFactor: { type: 'f', value: 1 },
+                        outlineWidth: { type: 'f', value: 0 },
+                        outlineColor: { type: 'v3', value: new Rl.THREE.Vector3(0, 0, 0) },
+                        backgroundColor: { type: 'v3', value: new Rl.THREE.Vector3(0, 0, 0) },
+                        backgroundOpacity: { type: 'f', value: 0.5 },
+                      },
+                    ]);
+                    return (
+                      (e.fontTexture.value = t),
+                      new Rl.THREE.ShaderMaterial({
+                        uniforms: e,
+                        attributes: {
+                          mapping: { type: 'v2', value: null },
+                          inputTexCoord: { type: 'v2', value: null },
+                          inputSize: { type: 'f', value: null },
+                        },
+                        lights: !1,
+                        fog: !0,
+                        vertexShader: Ul.VERTEX_SHADER,
+                        fragmentShader: Ul.FRAGMENT_SHADER,
+                        shading: Rl.THREE.NoShading,
+                        side: Rl.THREE.DoubleSide,
+                        vertexColors: Rl.THREE.VertexColors,
+                        blending: Rl.THREE.NormalBlending,
+                        transparent: !1,
+                        wireframe: !1,
+                        linewidth: 1,
+                      })
+                    );
+                  }),
+                  (function (s) {
+                    var t,
+                      l = s.Labels || (s.Labels = {});
+                    function u() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    (l.DefaultLabelsOptions = {
+                      fontFamily: 'sans-serif',
+                      fontSize: 32,
+                      fontStyle: 'normal',
+                      fontWeight: 'normal',
+                      useSDF: !0,
+                      attachment: 'middle-center',
+                      backgroundMargin: 1,
+                    }),
+                      (t = s.Model),
+                      M(u, t),
+                      (u.prototype.applySelectionInternal = function (t, e) {
+                        return !1;
+                      }),
+                      (u.prototype.getPickElements = function (t) {
+                        return [];
+                      }),
+                      (u.prototype.highlightElement = function (t, e) {
+                        return !1;
+                      }),
+                      (u.prototype.highlightInternal = function (t) {
+                        return !1;
+                      }),
+                      (u.prototype.applyColoring = function (t) {
+                        for (
+                          var e = this.geometry.attributes.color.array,
+                            n = 0,
+                            r = { r: 0.1, g: 0.1, b: 0.1 },
+                            i = 0,
+                            o = 0,
+                            a = this.labels;
+                          o < a.length;
+                          o++
+                        ) {
+                          var s = 4 * a[o].length + 4;
+                          t.setElementColor(i, r);
+                          for (var l = 0; l < s; l++)
+                            (e[n++] = r.r), (e[n++] = r.g), (e[n++] = r.b);
+                          i++;
+                        }
+                        this.geometry.attributes.color.needsUpdate = !0;
+                      }),
+                      (u.prototype.applyThemeInternal = function (t) {
+                        this.applyColoring(t);
+                        var e = t.colors.get('Background') || s.Color.fromHexString('#333333'),
+                          n =
+                            void 0 !== t.variables.get('backgroundOpacity')
+                              ? t.variables.get('backgroundOpacity')
+                              : 0.5,
+                          r = t.colors.get('Outline') || s.Color.fromHexString('#222222'),
+                          i = t.variables.get('outlineWidth')
+                            ? +t.variables.get('outlineWidth')
+                            : 0,
+                          o = t.variables.get('sizeFactor') ? +t.variables.get('sizeFactor') : 1,
+                          a = this.material.uniforms;
+                        (a.xOffset.value = t.variables.get('xOffset') || 0),
+                          (a.yOffset.value = t.variables.get('yOffset') || 0),
+                          (a.zOffset.value = t.variables.get('zOffset') || 0),
+                          (a.backgroundColor.value = new s.THREE.Vector3(e.r, e.g, e.b)),
+                          (a.backgroundOpacity.value = n),
+                          (a.outlineColor.value = new s.THREE.Vector3(r.r, r.g, r.b)),
+                          (a.outlineWidth.value = i),
+                          (a.sizeFactor.value = o),
+                          (this.material.transparent = n < 1),
+                          (this.material.fog = !t.disableFog),
+                          (this.material.needsUpdate = !0);
+                      }),
+                      (u.create = function (o, a) {
+                        var t = this;
+                        return Nl.Core.computation(function (i) {
+                          return D(t, void 0, void 0, function () {
+                            var e, n, r;
+                            return P(this, function (t) {
+                              switch (t.label) {
+                                case 0:
+                                  return [4, i.updateProgress('Creating labels geometry...')];
+                                case 1:
+                                  return (
+                                    t.sent(),
+                                    (n = l.Geometry.create(a)),
+                                    (e = n.geometry),
+                                    (n = n.texture),
+                                    [4, i.updateProgress('Creating labels model...')]
+                                  );
+                                case 2:
+                                  return (
+                                    t.sent(),
+                                    ((r = new u()).labels = a.labels),
+                                    (r.geometry = e),
+                                    (r.material = l.Material.create(n)),
+                                    (r.entity = o),
+                                    (r.object = new s.THREE.Mesh(e, r.material)),
+                                    (r.object.renderOrder = 1),
+                                    e.computeBoundingSphere(),
+                                    (r.centroid = e.boundingSphere.center),
+                                    (r.radius = e.boundingSphere.radius + 4),
+                                    r.applyTheme(a.theme),
+                                    (r.disposeList = [e, r.material]),
+                                    [2, r]
+                                  );
+                              }
+                            });
+                          });
+                        });
+                      }),
+                      (l.Model = u);
+                  })((Nl = F = F || {}).Visualization || (Nl.Visualization = {})),
+                  (Pl = F = F || {}),
+                  (function (r) {
+                    var t,
+                      c = r.BallsAndSticks || (r.BallsAndSticks = {});
+                    function A() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    (c.DefaultBallsAndSticksModelParameters = {
+                      tessalation: 3,
+                      atomRadius: function () {
+                        return 0.4;
+                      },
+                      hideBonds: !1,
+                      hideHydrogens: !1,
+                      bondRadius: 0.15,
+                      customMaxBondLengths: void 0,
+                    }),
+                      (t = Ll.Model),
+                      M(A, t),
+                      (A.prototype.applySelectionInternal = function (t, e) {
+                        for (
+                          var n = this.ballsAndSticks.vertexStateBuffer,
+                            r = n.array,
+                            i = this.ballsAndSticks.atomVertexMap,
+                            o = i.vertexRanges,
+                            a = !1,
+                            s = 0,
+                            l = t;
+                          s < l.length;
+                          s++
+                        ) {
+                          var u = l[s];
+                          if (i.elementMap.has(u)) {
+                            var u = i.elementMap.get(u),
+                              c = i.elementRanges[2 * u],
+                              A = i.elementRanges[2 * u + 1];
+                            if (c !== A)
+                              for (var h = c; h < A; h += 2)
+                                var p = o[h],
+                                  d = o[h + 1],
+                                  a = Ll.Selection.applyActionToRange(r, p, d, e) || a;
+                          }
+                        }
+                        return !!a && (n.needsUpdate = !0);
+                      }),
+                      (A.prototype.getPickElements = function (t) {
+                        return [t];
+                      }),
+                      (A.prototype.highlightElement = function (t, e) {
+                        return this.applySelection([t], e ? 3 : 4);
+                      }),
+                      (A.prototype.highlightInternal = function (t) {
+                        return Ll.Selection.applyActionToBuffer(
+                          this.ballsAndSticks.vertexStateBuffer,
+                          t ? 3 : 4,
+                        );
+                      }),
+                      (A.prototype.applyThemeInternal = function (t) {
+                        var n = this,
+                          e = this.ballsAndSticks.atomVertexMap,
+                          e =
+                            (Ll.MaterialsHelper.applyColorToMap(
+                              e,
+                              this.ballsAndSticks.atomsGeometry.attributes.color,
+                              function (t, e) {
+                                return n.theme.setElementColor(t, e);
+                              },
+                            ),
+                            Ll.Theme.getColor(t, 'Bond', r.Colors.DefaultBondColor));
+                        Ll.MaterialsHelper.applyColorToBuffer(
+                          this.ballsAndSticks.bondsGeometry.attributes.color,
+                          e,
+                        ),
+                          Ll.MaterialsHelper.updateMaterial(this.material, t, this.object),
+                          Ll.MaterialsHelper.updateMaterial(this.bondsMaterial, t, this.object);
+                      }),
+                      (A.prototype.createObjects = function () {
+                        var t = new Ll.THREE.Object3D(),
+                          e =
+                            (t.add(
+                              new Ll.THREE.Mesh(this.ballsAndSticks.atomsGeometry, this.material),
+                            ),
+                            t.add(
+                              new Ll.THREE.Mesh(
+                                this.ballsAndSticks.bondsGeometry,
+                                this.bondsMaterial,
+                              ),
+                            ),
+                            new Ll.THREE.Mesh(this.ballsAndSticks.pickGeometry, this.pickMaterial));
+                        return { main: t, pick: e };
+                      }),
+                      (A.create = function (i, t) {
+                        var e = this,
+                          o = t.model,
+                          a = t.atomIndices,
+                          s = t.theme,
+                          l = t.params,
+                          u = t.props;
+                        return Pl.Core.computation(function (r) {
+                          return D(e, void 0, void 0, function () {
+                            var e, n;
+                            return P(this, function (t) {
+                              switch (t.label) {
+                                case 0:
+                                  return [4, c.buildGeometry(o, l, a, r)];
+                                case 1:
+                                  return (
+                                    (n = t.sent()),
+                                    ((e = new A()).ballsAndSticks = n),
+                                    (e.material = Ll.MaterialsHelper.getMeshMaterial()),
+                                    (e.bondsMaterial = new Ll.THREE.MeshPhongMaterial({
+                                      specular: 11184810,
+                                      shininess: 1,
+                                      shading: Ll.THREE.SmoothShading,
+                                      side: Ll.THREE.FrontSide,
+                                      vertexColors: Ll.THREE.VertexColors,
+                                    })),
+                                    (e.pickMaterial = Ll.MaterialsHelper.getPickMaterial()),
+                                    (e.entity = i),
+                                    e.ballsAndSticks.atomsGeometry.computeBoundingSphere(),
+                                    (e.centroid =
+                                      e.ballsAndSticks.atomsGeometry.boundingSphere.center),
+                                    (e.radius =
+                                      e.ballsAndSticks.atomsGeometry.boundingSphere.radius),
+                                    u && (e.props = u),
+                                    (n = e.createObjects()),
+                                    (e.object = n.main),
+                                    e.applyTheme(s),
+                                    e.disposeList.push(
+                                      e.ballsAndSticks,
+                                      e.material,
+                                      e.bondsMaterial,
+                                      e.pickMaterial,
+                                    ),
+                                    (e.pickObject = n.pick),
+                                    (e.pickBufferAttributes = [
+                                      e.ballsAndSticks.pickGeometry.attributes.pColor,
+                                    ]),
+                                    [2, e]
+                                  );
+                              }
+                            });
+                          });
+                        });
+                      }),
+                      (c.Model = A);
+                  })(
+                    (Ll = Pl.Visualization || (Pl.Visualization = {})).Molecule ||
+                      (Ll.Molecule = {}),
+                  ),
+                  (Yl = F = F || {}),
+                  (a = Yl.Visualization || (Yl.Visualization = {})),
+                  (r = a.Molecule || (a.Molecule = {})),
+                  (Ol = r.BallsAndSticks || (r.BallsAndSticks = {})),
+                  (r = Yl.Core.Geometry),
+                  (Gl = r.LinearAlgebra.Vector3),
+                  (zl = r.LinearAlgebra.Matrix4),
+                  (Hl = a.Geometry.Builder),
+                  (Wl = function (t, e) {
+                    (this.bondTemplate = t),
+                      (this.builder = e),
+                      (this.bondUpVector = Gl.fromValues(1, 0, 0)),
+                      (this.dir = Gl.zero()),
+                      (this.scale = Gl.zero()),
+                      (this.rotation = zl.zero()),
+                      (this.offset = Gl.zero()),
+                      (this.a = Gl.zero()),
+                      (this.b = Gl.zero());
+                  }),
+                  (r = jl = jl || {}),
+                  (Vl = {}),
+                  (r.getBond = function (t) {
+                    if (Vl[t]) return Vl[t];
+                    var e;
+                    switch (t) {
+                      case 0:
+                        e = 2;
+                        break;
+                      case 1:
+                        e = 4;
+                        break;
+                      case 2:
+                        e = 6;
+                        break;
+                      case 3:
+                        e = 8;
+                        break;
+                      case 4:
+                        e = 10;
+                        break;
+                      case 5:
+                        e = 12;
+                        break;
+                      default:
+                        e = 14;
+                    }
+                    var n = new a.THREE.TubeGeometry(
+                        new a.THREE.LineCurve3(
+                          new a.THREE.Vector3(0, 0, 0),
+                          new a.THREE.Vector3(1, 0, 0),
+                        ),
+                        2,
+                        1,
+                        e,
+                      ),
+                      n = a.GeometryHelper.toRawGeometry(n);
+                    return (Vl[t] = n);
+                  }),
+                  (ql = {}),
+                  (r.getAtom = function (t) {
+                    if (ql[t]) return ql[t];
+                    var e;
+                    switch (t) {
+                      case 0:
+                        e = new a.THREE.OctahedronGeometry(1, 0);
+                        break;
+                      case 1:
+                        e = new a.THREE.OctahedronGeometry(1, 1);
+                        break;
+                      case 2:
+                        e = new a.THREE.IcosahedronGeometry(1, 0);
+                        break;
+                      case 3:
+                        e = new a.THREE.IcosahedronGeometry(1, 1);
+                        break;
+                      case 4:
+                        e = new a.THREE.IcosahedronGeometry(1, 2);
+                        break;
+                      case 5:
+                        e = new a.THREE.OctahedronGeometry(1, 3);
+                        break;
+                      default:
+                        e = new a.THREE.IcosahedronGeometry(1, 3);
+                    }
+                    var n = a.GeometryHelper.toRawGeometry(e);
+                    return (ql[t] = n);
+                  }),
+                  (Jl = function (t, e, n) {
+                    (this.model = t),
+                      (this.atomIndices = e),
+                      (this.params = n),
+                      (this.tessalation = this.params.tessalation),
+                      (this.atomRadius = this.params.atomRadius),
+                      (this.bondRadius = this.params.bondRadius),
+                      (this.hideBonds = this.params.hideBonds),
+                      (this.bondTemplate = jl.getBond(this.tessalation)),
+                      (this.atomTemplate = jl.getAtom(this.tessalation)),
+                      (this.dashTemplate = Hl.getDashTemplate()),
+                      (this.atomCount = (function (t, e, n) {
+                        var r = t.data.atoms.elementSymbol,
+                          i = 0;
+                        if (n.hideHydrogens)
+                          for (var o = 0, a = e; o < a.length; o++) zA(r[a[o]]) || i++;
+                        else i = e.length;
+                        return i;
+                      })(this.model, this.atomIndices, this.params)),
+                      (this.atomVertexCount = this.atomTemplate.vertexCount * this.atomCount),
+                      (this.atomBuilder = Hl.createStatic(
+                        this.atomVertexCount,
+                        this.atomTemplate.indexCount * this.atomCount,
+                      )),
+                      (this.atomColors = new Float32Array(3 * this.atomVertexCount)),
+                      (this.atomPickColors = new Float32Array(4 * this.atomVertexCount)),
+                      (this.atoms = this.model.data.atoms),
+                      (this.positions = this.model.positions),
+                      (this.cX = this.positions.x),
+                      (this.cY = this.positions.y),
+                      (this.cZ = this.positions.z),
+                      (this.atomSymbols = this.atoms.elementSymbol),
+                      (this.residueIndex = this.atoms.residueIndex),
+                      (this.scale = Gl.zero()),
+                      (this.translation = Gl.zero()),
+                      (this.pickColor = { r: 0.1, g: 0.1, b: 0.1 }),
+                      (this.pickOffset = 0),
+                      (this.atomMapBuilder = new a.Selection.VertexMapBuilder(
+                        this.atomIndices.length,
+                      )),
+                      (this.bs = void 0);
+                  }),
+                  (Kl = function (t) {
+                    (this.state = t),
+                      (this.info = (function (t, e, n) {
+                        for (
+                          var e = Yl.Core.Structure.computeBonds(t, e, {
+                              maxHbondLength:
+                                n.customMaxBondLengths && n.customMaxBondLengths.has('H')
+                                  ? n.customMaxBondLengths.get('H')
+                                  : 1.15,
+                            }),
+                            r = t.data.atoms.elementSymbol,
+                            i = n.hideHydrogens,
+                            o = 0,
+                            a = 0,
+                            s = e.type,
+                            l = e.count,
+                            u = e.atomAIndex,
+                            c = e.atomBIndex,
+                            A = (n = t.positions).x,
+                            h = n.y,
+                            p = n.z,
+                            d = 0;
+                          d < l;
+                          d++
+                        ) {
+                          var f,
+                            g = s[d],
+                            m = u[d],
+                            v = c[d];
+                          (i && (zA(r[m]) || zA(r[v]))) ||
+                            (0 === g || 5 === g
+                              ? (o += 1)
+                              : 1 <= g && g <= 4
+                                ? (o += g)
+                                : (6 !== g && 7 !== g && 8 !== g) ||
+                                  ((g = A[m] - A[v]),
+                                  (f = h[m] - h[v]),
+                                  (m = p[m] - p[v]),
+                                  (v = Math.sqrt(g * g + f * f + m * m)),
+                                  (a += Math.ceil((1 / 0.3) * v))));
+                        }
+                        return { bonds: e, covalentStickCount: o, dashPartCount: a };
+                      })(this.state.model, this.state.atomIndices, this.state.params)),
+                      (this.bondVertexCount =
+                        this.state.bondTemplate.vertexCount * this.info.covalentStickCount +
+                        this.state.dashTemplate.vertexCount * this.info.dashPartCount),
+                      (this.bondBuilder = Hl.createStatic(
+                        this.bondVertexCount,
+                        this.state.bondTemplate.indexCount * this.info.covalentStickCount +
+                          this.state.dashTemplate.indexCount * this.info.dashPartCount,
+                      )),
+                      (this.bondColors = new Float32Array(3 * this.bondVertexCount)),
+                      (this.bondRadius = this.state.params.bondRadius),
+                      (this.bondState = new Wl(this.state.bondTemplate, this.bondBuilder)),
+                      (this.bondCount = this.info.bonds.count);
+                  }),
+                  (g.prototype.dispose = function () {
+                    this.atomsGeometry.dispose(),
+                      this.bondsGeometry.dispose(),
+                      this.pickGeometry.dispose();
+                  }),
+                  (g.addAtom = function (t, e) {
+                    e.atomMapBuilder.startElement(t);
+                    var n = e.atomRadius(t),
+                      n =
+                        (Gl.set(e.scale, n, n, n),
+                        Gl.set(e.translation, e.cX[t], e.cY[t], e.cZ[t]),
+                        e.atomBuilder.vertices.elementCount);
+                    Hl.addRawTransformed(
+                      e.atomBuilder,
+                      e.atomTemplate,
+                      e.scale,
+                      e.translation,
+                      void 0,
+                    ),
+                      a.Selection.Picking.assignPickColor(t, e.pickColor);
+                    for (var r = 0, i = e.atomTemplate.vertexCount; r < i; r++)
+                      (e.atomPickColors[e.pickOffset++] = e.pickColor.r),
+                        (e.atomPickColors[e.pickOffset++] = e.pickColor.g),
+                        (e.atomPickColors[e.pickOffset++] = e.pickColor.b),
+                        e.pickOffset++;
+                    e.atomMapBuilder.addVertexRange(n, e.atomBuilder.vertices.elementCount),
+                      e.atomMapBuilder.endElement();
+                  }),
+                  (g.addBond = function (t, e, n) {
+                    var r = n.info.bonds.atomAIndex[t],
+                      i = n.info.bonds.atomBIndex[t],
+                      t = n.info.bonds.type[t];
+                    if (e.params.hideHydrogens) {
+                      var o = e.model.data.atoms.elementSymbol;
+                      if (zA(o[r]) || zA(o[i])) return;
+                    }
+                    Gl.set(n.bondState.a, e.cX[r], e.cY[r], e.cZ[r]),
+                      Gl.set(n.bondState.b, e.cX[i], e.cY[i], e.cZ[i]);
+                    var a = +n.bondRadius,
+                      s = (2 * a) / 3,
+                      l = a / 2,
+                      u = n.bondState;
+                    switch (t) {
+                      case 0:
+                      case 1:
+                      case 5:
+                        g.addBondPart(a, 0, 0, u);
+                        break;
+                      case 2:
+                        g.addBondPart(l, s, s, u), g.addBondPart(l, -s, -s, u);
+                        break;
+                      case 3:
+                        g.addBondPart(l, 0, s, u);
+                        var c = Math.cos(Math.PI / 6) * s,
+                          A = Math.sin(Math.PI / 6) * s;
+                        g.addBondPart(l, -c, -A, u), g.addBondPart(l, c, -A, u);
+                        break;
+                      case 4:
+                        g.addBondPart(l / 2, s, s, u),
+                          g.addBondPart(l / 2, -s, -s, u),
+                          g.addBondPart(l / 2, -s, s, u),
+                          g.addBondPart(l / 2, s, -s, u);
+                        break;
+                      case 6:
+                      case 7:
+                      case 8:
+                        g.addDashedBond(l, u);
+                    }
+                  }),
+                  (g.addBondPart = function (t, e, n, r) {
+                    var i = Gl.sub(r.dir, r.b, r.a),
+                      o = Gl.magnitude(r.dir);
+                    Gl.set(r.scale, o, t, t),
+                      Gl.makeRotation(r.rotation, r.bondUpVector, i),
+                      (r.offset[0] = 0),
+                      (r.offset[1] = e),
+                      (r.offset[2] = n),
+                      Gl.transformMat4(r.offset, r.offset, r.rotation),
+                      Gl.add(r.offset, r.offset, r.a),
+                      Hl.addRawTransformed(
+                        r.builder,
+                        r.bondTemplate,
+                        r.scale,
+                        r.offset,
+                        r.rotation,
+                      );
+                  }),
+                  (g.addDashedBond = function (t, e) {
+                    Hl.addDashedLine(e.builder, e.a, e.b, 0.15, 0.15, t);
+                  }),
+                  (g.getEmptyBondsGeometry = function () {
+                    var t = new a.THREE.BufferGeometry();
+                    return (
+                      t.addAttribute(
+                        'position',
+                        new a.THREE.BufferAttribute(new Float32Array(0), 3),
+                      ),
+                      t.addAttribute('normal', new a.THREE.BufferAttribute(new Float32Array(0), 3)),
+                      t.addAttribute('index', new a.THREE.BufferAttribute(new Uint32Array(0), 1)),
+                      t.addAttribute('color', new a.THREE.BufferAttribute(new Float32Array(0), 3)),
+                      t
+                    );
+                  }),
+                  (g.getBondsGeometry = function (t) {
+                    var e = Hl.toBufferGeometry(t.bondBuilder);
+                    return a.Geometry.addAttribute(e, 'color', t.bondColors, 3), e;
+                  }),
+                  (g.getAtomsGeometry = function (t) {
+                    var e = Hl.toBufferGeometry(t.atomBuilder),
+                      n =
+                        (a.Geometry.addAttribute(e, 'color', t.atomColors, 3),
+                        new Float32Array(t.atomVertexCount)),
+                      n = new a.THREE.BufferAttribute(n, 1),
+                      r = (e.addAttribute('vState', n), new a.THREE.BufferGeometry());
+                    return (
+                      r.addAttribute('position', e.getAttribute('position')),
+                      r.addAttribute('index', e.getAttribute('index')),
+                      r.addAttribute('pColor', new a.THREE.BufferAttribute(t.atomPickColors, 4)),
+                      {
+                        vertexStateBuffer: n,
+                        atomsGeometry: e,
+                        atomsPickGeometry: r,
+                        atomVertexMap: t.atomMapBuilder.getMap(),
+                      }
+                    );
+                  }),
+                  (g.addAtoms = function (A, h) {
+                    return D(this, void 0, void 0, function () {
+                      var e, n, r, i, o, a, s, l, u, c;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            (e = 2500),
+                              (n = Yl.Core.Utils.PerformanceMonitor.currentTime()),
+                              (r = A.model.data.atoms.elementSymbol),
+                              (i = A.params.hideHydrogens),
+                              (o = 0),
+                              (a = A.atomIndices.length),
+                              (t.label = 1);
+                          case 1:
+                            if (!(o < a)) return [3, 4];
+                            for (s = o, l = Math.min(o + e, A.atomIndices.length); s < l; s++)
+                              (u = A.atomIndices[s]), (i && zA(r[u])) || g.addAtom(u, A);
+                            return (c = Yl.Core.Utils.PerformanceMonitor.currentTime()) - n >
+                              Yl.Core.Computation.UpdateProgressDelta
+                              ? ((n = c), [4, h.updateProgress('Adding atoms...', !0, o, a)])
+                              : [3, 3];
+                          case 2:
+                            t.sent(), (t.label = 3);
+                          case 3:
+                            return (o += e), [3, 1];
+                          case 4:
+                            return [2];
+                        }
+                      });
+                    });
+                  }),
+                  (g.addBondsChunks = function (s, l, u) {
+                    return D(this, void 0, void 0, function () {
+                      var e, n, r, i, o, a;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            (e = 2500),
+                              (n = Yl.Core.Utils.PerformanceMonitor.currentTime()),
+                              (r = 0),
+                              (t.label = 1);
+                          case 1:
+                            if (!(r < l.bondCount)) return [3, 4];
+                            for (i = r, o = Math.min(r + e, l.bondCount); i < o; i++)
+                              g.addBond(i, s, l);
+                            return (a = Yl.Core.Utils.PerformanceMonitor.currentTime()) - n >
+                              Yl.Core.Computation.UpdateProgressDelta
+                              ? ((n = a),
+                                [4, u.updateProgress('Adding bonds...', !0, r, l.bondCount)])
+                              : [3, 3];
+                          case 2:
+                            t.sent(), (t.label = 3);
+                          case 3:
+                            return (r += e), [3, 1];
+                          case 4:
+                            return [2];
+                        }
+                      });
+                    });
+                  }),
+                  (g.addBonds = function (n, r) {
+                    return D(this, void 0, void 0, function () {
+                      var e;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return n.params.hideBonds
+                              ? [2]
+                              : [4, r.updateProgress('Computing bonds...', !0)];
+                          case 1:
+                            return (
+                              t.sent(), (e = new Kl(n)), (n.bs = e), [4, g.addBondsChunks(n, e, r)]
+                            );
+                          case 2:
+                            return t.sent(), [2];
+                        }
+                      });
+                    });
+                  }),
+                  (g.build = function (i, o, a, s) {
+                    return D(this, void 0, void 0, function () {
+                      var e, n, r;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return [4, s.updateProgress('Creating atoms...')];
+                          case 1:
+                            return (
+                              t.sent(),
+                              (e = new Jl(
+                                i,
+                                a,
+                                Yl.Core.Utils.extend(
+                                  {},
+                                  o,
+                                  Ol.DefaultBallsAndSticksModelParameters,
+                                ),
+                              )),
+                              [4, g.addAtoms(e, s)]
+                            );
+                          case 2:
+                            return t.sent(), [4, g.addBonds(e, s)];
+                          case 3:
+                            return t.sent(), [4, s.updateProgress('Finalizing...')];
+                          case 4:
+                            return (
+                              t.sent(),
+                              (n = new $l()),
+                              e.bs
+                                ? (n.bondsGeometry = g.getBondsGeometry(e.bs))
+                                : (n.bondsGeometry = g.getEmptyBondsGeometry()),
+                              (r = g.getAtomsGeometry(e)),
+                              (n.vertexStateBuffer = r.vertexStateBuffer),
+                              (n.atomsGeometry = r.atomsGeometry),
+                              (n.pickGeometry = r.atomsPickGeometry),
+                              (n.atomVertexMap = r.atomVertexMap),
+                              [2, n]
+                            );
+                        }
+                      });
+                    });
+                  }),
+                  (Zl = g),
+                  (Ol.buildGeometry = function (t, e, n, r) {
+                    return Zl.build(t, e, n, r);
+                  }),
+                  (Xl = a.GeometryBase),
+                  M(HA, Xl),
+                  (HA.prototype.dispose = function () {
+                    this.atomsGeometry.dispose(),
+                      this.bondsGeometry.dispose(),
+                      this.pickGeometry.dispose();
+                  }),
+                  ($l = HA),
+                  (Ol.BallsAndSticksGeometry = $l),
+                  (tu = F = F || {}),
+                  (t = tu.Visualization || (tu.Visualization = {})),
+                  (n = (n = t.Molecule || (t.Molecule = {})).Cartoons || (n.Cartoons = {})),
+                  (eu = n.Geometry || (n.Geometry = {})),
+                  (nu = t.GeometryBase),
+                  M(jA, nu),
+                  (jA.prototype.dispose = function () {
+                    this.geometry.dispose(),
+                      this.pickGeometry.dispose(),
+                      this.gapsGeometry && this.gapsGeometry.dispose(),
+                      this.directionConesGeometry && this.directionConesGeometry.dispose();
+                  }),
+                  (ru = jA),
+                  (eu.Data = ru),
+                  (eu.create = function (a, s, l, u, c, A) {
+                    return D(this, void 0, void 0, function () {
+                      var e, n, r, i, o;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            return (
+                              (n = tu.Core.Utils.extend({}, u, eu.CartoonsGeometryParams.Default)),
+                              [
+                                4,
+                                (e = {
+                                  computation: A,
+                                  model: a,
+                                  atomIndices: s,
+                                  linearSegments: l,
+                                  parameters: u,
+                                  isTrace: c,
+                                  params: n,
+                                  state: new eu.CartoonsGeometryState(n, a.data.residues.count),
+                                  units: void 0,
+                                  strandArrays: {
+                                    startIndex: a.data.residues.atomStartIndex,
+                                    endIndex: a.data.residues.atomEndIndex,
+                                    x: a.positions.x,
+                                    y: a.positions.y,
+                                    z: a.positions.z,
+                                    name: a.data.atoms.name,
+                                  },
+                                  strandTemplate: void 0,
+                                  builder: new eu.Builder(),
+                                  geom: new ru(),
+                                }).computation.updateProgress('Building units...'),
+                              ]
+                            );
+                          case 1:
+                            return (
+                              t.sent(),
+                              (e.units = eu.CartoonAsymUnit.buildUnits(
+                                e.model,
+                                e.atomIndices,
+                                e.linearSegments,
+                              )),
+                              [4, eu.buildUnitsAsync(e)]
+                            );
+                          case 2:
+                            return (
+                              t.sent(),
+                              e.strandTemplate && e.strandTemplate.geometry.dispose(),
+                              (e.geom.vertexMap = e.state.vertexMap.getMap()),
+                              [4, e.computation.updateProgress('Creating geometry...')]
+                            );
+                          case 3:
+                            for (
+                              t.sent(), eu.createGeometry(e), n = e.geom, r = 0, i = Object.keys(e);
+                              r < i.length;
+                              r++
+                            )
+                              (o = i[r]),
+                                Object.prototype.hasOwnProperty.call(e, o) && (e[o] = void 0);
+                            return [2, n];
+                        }
+                      });
+                    });
+                  }),
+                  (iu = F = F || {}),
+                  (B = iu.Visualization || (iu.Visualization = {})),
+                  (function (t) {
+                    var b,
+                      S,
+                      k,
+                      F,
+                      Q,
+                      f,
+                      g,
+                      h = iu.Core.Utils.ArrayBuilder;
+                    (y.prototype.createControlPoints = function (t) {
+                      this.initPositions(t),
+                        this.initControlsPoints(t),
+                        this.computeSplines(t),
+                        (this.controlPoints = this.controlPointsBuilder.array),
+                        (this.torsionVectors = this.torsionVectorsBuilder.array),
+                        (this.normalVectors = this.normalVectorsBuilder.array),
+                        (this.controlPointsBuilder = null),
+                        (this.torsionVectorsBuilder = null),
+                        (this.normalVectorsBuilder = null);
+                    }),
+                      (y.prototype.initPositions = function (t) {
+                        for (
+                          var e = this.model.data.residues,
+                            n = this.model.data.atoms,
+                            r = this.model.positions,
+                            i = {
+                              atomStartIndex: e.atomStartIndex,
+                              atomEndIndex: e.atomEndIndex,
+                              name: n.name,
+                              x: r.x,
+                              y: r.y,
+                              z: r.z,
+                            },
+                            o = [],
+                            a = 0,
+                            s = 0,
+                            l = 0,
+                            u = 0,
+                            c = 0,
+                            A = this.elements;
+                          c < A.length;
+                          c++
+                        ) {
+                          var h = A[c];
+                          for (
+                            this.structureStarts.add(h.startResidueIndex),
+                              this.structureEnds.add(h.endResidueIndex - 1),
+                              s = h.startResidueIndex;
+                            s < h.endResidueIndex;
+                            s++
+                          )
+                            u++,
+                              !t.addResidue(s, i, h.type) ||
+                                (1 !== h.type && 3 !== h.type && 5 !== h.type) ||
+                                l++,
+                              (o[o.length] = h.type);
+                        }
+                        (this.backboneOnly = u / 4 - 1 < l),
+                          (this.residueIndex = new Int32Array(this.residueCount));
+                        for (var p = 0, d = this.elements; p < d.length; p++)
+                          for (s = (h = d[p]).startResidueIndex; s < h.endResidueIndex; s++)
+                            this.residueIndex[a++] = s;
+                        (this.residueType = o), t.finishResidues();
+                        var f = this.residueCount;
+                        if (
+                          ((t.residueType[0] = t.residueType[2]),
+                          (t.residueType[1] = t.residueType[3]),
+                          (t.residueType[t.residueType.length - 2] =
+                            t.residueType[t.residueType.length - 4]),
+                          (t.residueType[t.residueType.length - 1] =
+                            t.residueType[t.residueType.length - 3]),
+                          2 < f)
+                        ) {
+                          (e = 2), (n = 3), (r = 4);
+                          5 !== t.residueType[0]
+                            ? (this.reflectPositions(t.uPositions, 0, 1, e, n, n, r, 0.4, 0.6),
+                              this.reflectPositions(t.vPositions, 0, 1, e, n, n, r, 0.4, 0.6))
+                            : (this.reflectPositions(t.uPositions, 1, 0, e, n, n, r, 0.5, 0.5),
+                              this.reflectPositions(t.vPositions, 1, 0, e, n, n, r, 0.5, 0.5)),
+                            (e = f + 1),
+                            5 !== t.residueType[(r = (n = f) - 1)]
+                              ? (this.reflectPositions(
+                                  t.uPositions,
+                                  f + 2,
+                                  f + 3,
+                                  e,
+                                  n,
+                                  n,
+                                  r,
+                                  0.4,
+                                  0.6,
+                                ),
+                                this.reflectPositions(
+                                  t.vPositions,
+                                  f + 2,
+                                  f + 3,
+                                  e,
+                                  n,
+                                  n,
+                                  r,
+                                  0.4,
+                                  0.6,
+                                ))
+                              : (this.reflectPositions(
+                                  t.uPositions,
+                                  f + 2,
+                                  f + 3,
+                                  e,
+                                  n,
+                                  n,
+                                  r,
+                                  0.5,
+                                  0.5,
+                                ),
+                                this.reflectPositions(
+                                  t.vPositions,
+                                  f + 2,
+                                  f + 3,
+                                  e,
+                                  n,
+                                  n,
+                                  r,
+                                  0.5,
+                                  0.5,
+                                ));
+                        } else if (2 === f)
+                          for (s = 0; s < 2; s++)
+                            (t.uPositions[3 * s] = t.uPositions[6]),
+                              (t.uPositions[3 * s + 1] = t.uPositions[7]),
+                              (t.uPositions[3 * s + 2] = t.uPositions[8]),
+                              (t.vPositions[3 * s] = t.vPositions[6]),
+                              (t.vPositions[3 * s + 1] = t.vPositions[7]),
+                              (t.vPositions[3 * s + 2] = t.vPositions[8]),
+                              (t.uPositions[3 * (f + 2) + 3 * s] = t.uPositions[3 * (f + 1)]),
+                              (t.uPositions[3 * (f + 2) + 3 * s + 1] =
+                                t.uPositions[3 * (f + 1) + 1]),
+                              (t.uPositions[3 * (f + 2) + 3 * s + 2] =
+                                t.uPositions[3 * (f + 1) + 2]),
+                              (t.vPositions[3 * (f + 2) + 3 * s] = t.vPositions[3 * (f + 1)]),
+                              (t.vPositions[3 * (f + 2) + 3 * s + 1] =
+                                t.vPositions[3 * (f + 1) + 1]),
+                              (t.vPositions[3 * (f + 2) + 3 * s + 2] =
+                                t.vPositions[3 * (f + 1) + 2]);
+                        else
+                          for (
+                            var g = [
+                                t.uPositions[6] - t.vPositions[6],
+                                t.uPositions[7] - t.vPositions[7],
+                                t.uPositions[8] - t.vPositions[8],
+                              ],
+                              m = 0;
+                            m < 2;
+                            m++
+                          )
+                            for (var v = 0; v < 3; v++)
+                              (t.uPositions[3 * m + v] =
+                                t.uPositions[6 + v] - 0.5 * (m + 1) * g[v]),
+                                (t.uPositions[9 + 3 * m + v] =
+                                  t.uPositions[6 + v] + 0.5 * (m + 1) * g[v]),
+                                (t.vPositions[3 * m + v] =
+                                  t.vPositions[6 + v] + 0.5 * (m + 1) * g[v]),
+                                (t.vPositions[9 + 3 * m + v] =
+                                  t.vPositions[6 + v] - 0.5 * (m + 1) * g[v]);
+                      }),
+                      (y.prototype.initControlsPoints = function (t) {
+                        for (
+                          var e = new B.THREE.Vector3(),
+                            n = t.uvLength - 1,
+                            r = new B.THREE.Vector3(),
+                            i = new B.THREE.Vector3(),
+                            o = new B.THREE.Vector3(),
+                            a = new B.THREE.Vector3(),
+                            s = new B.THREE.Vector3(),
+                            l = new B.THREE.Vector3(),
+                            u = new B.THREE.Vector3(),
+                            c = new B.THREE.Vector3(),
+                            A = 0;
+                          A < n;
+                          A++
+                        )
+                          s.set(
+                            t.uPositions[3 * A],
+                            t.uPositions[3 * A + 1],
+                            t.uPositions[3 * A + 2],
+                          ),
+                            l.set(
+                              t.vPositions[3 * A],
+                              t.vPositions[3 * A + 1],
+                              t.vPositions[3 * A + 2],
+                            ),
+                            u.set(
+                              t.uPositions[3 * ++A],
+                              t.uPositions[3 * A + 1],
+                              t.uPositions[3 * A + 2],
+                            ),
+                            A--,
+                            c.set((s.x + u.x) / 2, (s.y + u.y) / 2, (s.z + u.z) / 2),
+                            r.subVectors(u, s),
+                            i.subVectors(l, s),
+                            o.crossVectors(r, i),
+                            a.crossVectors(o, r),
+                            o.normalize(),
+                            a.normalize(),
+                            1 === t.residueType[A] &&
+                              1 === t.residueType[A + 1] &&
+                              c.set(c.x + 1.5 * o.x, c.y + 1.5 * o.y, c.z + 1.5 * o.z),
+                            0 < A && a.angleTo(e) > Math.PI / 2 && a.negate(),
+                            e.copy(a),
+                            r.addVectors(c, a),
+                            t.addControlPoint(c, r);
+                        t.finishContols();
+                      }),
+                      (y.prototype.computeSplines = function (t) {
+                        for (
+                          var e = new B.THREE.Vector3(),
+                            n = new B.THREE.Vector3(),
+                            r = new B.THREE.Vector3(),
+                            i = t.residueCount,
+                            o = t.pPositions,
+                            a = t.dPositions,
+                            s = new B.THREE.Vector3(),
+                            l = new B.THREE.Vector3(),
+                            u = new B.THREE.Vector3(),
+                            c = new B.THREE.Vector3(),
+                            A = new B.THREE.Vector3(),
+                            h = new B.THREE.Vector3(),
+                            p = new B.THREE.Vector3(),
+                            d = new B.THREE.Vector3(),
+                            f = new B.THREE.Vector3(),
+                            g = new B.THREE.Vector3(),
+                            m = 0;
+                          m < i;
+                          m++
+                        ) {
+                          s.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]),
+                            m++,
+                            l.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]),
+                            m++,
+                            u.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]),
+                            m++,
+                            c.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]),
+                            (m -= 3),
+                            A.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]),
+                            m++,
+                            h.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]),
+                            m++,
+                            p.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]),
+                            m++,
+                            d.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]),
+                            (m -= 3);
+                          for (var v = 1; v <= this.linearSegmentCount; v++) {
+                            var b = +v / this.linearSegmentCount;
+                            b < 0.5
+                              ? (y.spline(n, s, l, u, 0.5 + b), y.spline(r, A, h, p, 0.5 + b))
+                              : (y.spline(n, l, u, c, b - 0.5), y.spline(r, h, p, d, b - 0.5)),
+                              0 === m &&
+                                1 === v &&
+                                (y.spline(e, s, l, u, 0.5),
+                                y.spline(f, A, h, p, 0.5),
+                                y.reflect(g, e, n, 1),
+                                this.addSplineNode(g, e, f)),
+                              this.addSplineNode(e, n, r),
+                              e.copy(n);
+                          }
+                        }
+                      }),
+                      (y.prototype.addSplineNode = function (t, e, n) {
+                        h.add3(this.controlPointsBuilder, e.x, e.y, e.z);
+                        (n = this.tempA.subVectors(n, e)),
+                          n.normalize(),
+                          h.add3(this.torsionVectorsBuilder, n.x, n.y, n.z),
+                          (e = this.tempB.subVectors(e, t)),
+                          (t = this.tempC.crossVectors(n, e));
+                        t.normalize(), h.add3(this.normalVectorsBuilder, t.x, t.y, t.z);
+                      }),
+                      (y.prototype.reflectPositions = function (t, e, n, r, i, o, a, s, l) {
+                        this.tempA.set(t[3 * r], t[3 * r + 1], t[3 * r + 2]),
+                          this.tempB.set(t[3 * i], t[3 * i + 1], t[3 * i + 2]),
+                          y.reflect(this.tempC, this.tempA, this.tempB, s),
+                          (t[3 * e] = this.tempC.x),
+                          (t[3 * e + 1] = this.tempC.y),
+                          (t[3 * e + 2] = this.tempC.z),
+                          this.tempA.set(t[3 * o], t[3 * o + 1], t[3 * o + 2]),
+                          this.tempB.set(t[3 * a], t[3 * a + 1], t[3 * a + 2]),
+                          y.reflect(this.tempC, this.tempA, this.tempB, l),
+                          (t[3 * n] = this.tempC.x),
+                          (t[3 * n + 1] = this.tempC.y),
+                          (t[3 * n + 2] = this.tempC.z);
+                      });
+                    function y(t, e, n) {
+                      (this.model = t),
+                        (this.elements = e),
+                        (this.linearSegmentCount = n),
+                        (this.tempA = new B.THREE.Vector3()),
+                        (this.tempB = new B.THREE.Vector3()),
+                        (this.tempC = new B.THREE.Vector3()),
+                        (this.controlPoints = new Float32Array(0)),
+                        (this.torsionVectors = new Float32Array(0)),
+                        (this.normalVectors = new Float32Array(0)),
+                        (this.residueCount = 0),
+                        (this.structureStarts = iu.Core.Utils.FastSet.create()),
+                        (this.structureEnds = iu.Core.Utils.FastSet.create()),
+                        (this.residueType = []),
+                        (this.residueIndex = new Int32Array(0)),
+                        (this.backboneOnly = !1),
+                        (this.startResidueIndex = -1),
+                        (this.endResidueIndex = -1);
+                      for (var r = 0, i = this.elements; r < i.length; r++) {
+                        var o = i[r];
+                        this.residueCount += o.endResidueIndex - o.startResidueIndex;
+                      }
+                      (this.startResidueIndex = this.elements[0].startResidueIndex),
+                        (this.endResidueIndex =
+                          this.elements[this.elements.length - 1].endResidueIndex - 1);
+                      t = new a(this.residueCount);
+                      (this.controlPointsBuilder = h.forVertex3D(
+                        this.residueCount * this.linearSegmentCount + 1,
+                      )),
+                        (this.torsionVectorsBuilder = h.forVertex3D(
+                          this.residueCount * this.linearSegmentCount + 1,
+                        )),
+                        (this.normalVectorsBuilder = h.forVertex3D(
+                          this.residueCount * this.linearSegmentCount + 1,
+                        )),
+                        this.createControlPoints(t);
+                    }
+                    function w(t, e) {
+                      for (
+                        var n = new Uint8Array(t.data.residues.count),
+                          r = t.data.atoms,
+                          i = r.residueIndex,
+                          o = r.name,
+                          a = t.data.residues.secondaryStructureIndex,
+                          s = t.data.secondaryStructure,
+                          l = 0,
+                          u = e.length - 1;
+                        l < u;
+                        l++
+                      ) {
+                        var c = l,
+                          A = i[e[l]];
+                        for (l++; A === i[e[l]]; ) l++;
+                        var h = s[a[A]].type;
+                        0 !== h &&
+                          ((n[A] =
+                            5 === h
+                              ? +b.isCartoonLike(e, c, l, o, "O5'", "C3'", !1)
+                              : +b.isCartoonLike(e, c, l, o, 'CA', 'O', !0)),
+                          l--);
+                      }
+                      return n;
+                    }
+                    function E(t, e) {
+                      if (4 !== e.type) return [e];
+                      for (
+                        var n = [],
+                          r = t.data.atoms.name,
+                          i = t.data.residues,
+                          o = i.atomStartIndex,
+                          a = i.atomEndIndex,
+                          s = new Int32Array(e.endResidueIndex - e.startResidueIndex),
+                          l = 0,
+                          u = !0,
+                          c = e.startResidueIndex,
+                          A = e.endResidueIndex;
+                        c < A;
+                        c++
+                      ) {
+                        for (
+                          var h = !1, p = !1, d = o[c], f = a[c];
+                          d < f &&
+                          ('CA' === r[d] ? (h || (s[l++] = d), (h = !0)) : 'O' === r[d] && (p = !0),
+                          !p || !h);
+                          d++
+                        );
+                        if (!h || !p) {
+                          u = !1;
+                          break;
+                        }
+                      }
+                      if (!u) return [e];
+                      for (
+                        var g = t,
+                          m = s,
+                          v = e,
+                          b = n,
+                          y = new Int32Array(m.length),
+                          w = !1,
+                          E = g.data.atoms.residueIndex,
+                          B = 0,
+                          C = m.length;
+                        B < C;
+                        B++
+                      )
+                        _(g, m, B, S, k)
+                          ? ((y[B] = 1), (w = !0))
+                          : _(g, m, B, F, Q)
+                            ? ((y[B] = 3), (w = !0))
+                            : (y[B] = v.type);
+                      if (w) {
+                        for (B = 0, C = y.length; B < C; B++) {
+                          var x = y[B];
+                          if (x !== v.type) {
+                            for (var I = B + 1; I < C && x === y[I]; ) I++;
+                            if (1 < I - B) B = I - 1;
+                            else {
+                              for (var M = B; M < I; M++) y[M] = v.type;
+                              B = I - 1;
+                            }
+                          }
+                        }
+                        for (B = 0, C = y.length; B < C; B++) {
+                          for (x = y[B], I = B + 1; I < C && x === y[I]; ) I++;
+                          var D = new iu.Core.Structure.SecondaryStructureElement(
+                            x,
+                            new iu.Core.Structure.PolyResidueIdentifier('', B, null),
+                            new iu.Core.Structure.PolyResidueIdentifier('', I, null),
+                          );
+                          (D.startResidueIndex = E[m[B]]),
+                            (D.endResidueIndex = E[m[I - 1]] + 1),
+                            b.push(D),
+                            (B = I - 1);
+                        }
+                      } else b.push(v);
+                      return n;
+                    }
+                    function _(t, e, n, r, i) {
+                      for (
+                        var o = e.length,
+                          t = t.positions,
+                          a = t.x,
+                          s = t.y,
+                          l = t.z,
+                          u = f,
+                          c = g,
+                          A = Math.max(0, n - 2);
+                        A <= n;
+                        A++
+                      )
+                        for (var h = 2; h < 5; h++)
+                          if (!(o <= A + h)) {
+                            var p = e[A],
+                              d = e[A + h];
+                            if (
+                              (u.set(a[p], s[p], l[p]),
+                              c.set(a[d], s[d], l[d]),
+                              Math.abs(u.distanceTo(c) - r[h - 2]) > i)
+                            )
+                              return;
+                          }
+                      return 1;
+                    }
+                    (t.CartoonAsymUnit = y),
+                      ((b = t.CartoonAsymUnit || (t.CartoonAsymUnit = {})).reflect = function (
+                        t,
+                        e,
+                        n,
+                        r,
+                      ) {
+                        t.set(e.x - r * (n.x - e.x), e.y - r * (n.y - e.y), e.z - r * (n.z - e.z));
+                      }),
+                      (b.spline = function (t, e, n, r, i) {
+                        var o = Math.pow(1 - i, 2) / 2,
+                          i = Math.pow(i, 2) / 2,
+                          a = 1 - o - i,
+                          s = o * e.x + a * n.x + i * r.x,
+                          l = o * e.y + a * n.y + i * r.y,
+                          o = o * e.z + a * n.z + i * r.z;
+                        t.set(s, l, o);
+                      }),
+                      (b.maskSplit = function (t, e, n) {
+                        for (
+                          var r = new iu.Core.Structure.SecondaryStructureElement(
+                              t.type,
+                              t.startResidueId,
+                              t.endResidueId,
+                            ),
+                            i = t.startResidueIndex,
+                            o = t.endResidueIndex,
+                            a = i;
+                          a < o;
+                          a++
+                        )
+                          if (e[a]) {
+                            for (
+                              r.startResidueIndex !== a &&
+                              ((r = new iu.Core.Structure.SecondaryStructureElement(
+                                t.type,
+                                t.startResidueId,
+                                t.endResidueId,
+                              )).startResidueIndex = a);
+                              a < o && e[a];
+
+                            )
+                              a++;
+                            (r.endResidueIndex = a), (n[n.length] = r);
+                          }
+                      }),
+                      (b.isCartoonLike = function (t, e, n, r, i, o, a) {
+                        for (var s = !1, l = !1, u = !1, c = e; c < n; c++) {
+                          var A = r[t[c]];
+                          if ((s || A !== i ? l || A !== o || (l = !0) : (s = !0), s && l))
+                            return !0;
+                          'P' === A && (u = !0);
+                        }
+                        return a ? s : u;
+                      }),
+                      (b.createMask = w),
+                      (S = [5.45, 5.18, 6.37]),
+                      (k = 2.1),
+                      (F = [6.1, 10.4, 13]),
+                      (Q = 1.42),
+                      (f = new B.THREE.Vector3(0, 0, 0)),
+                      (g = new B.THREE.Vector3(0, 0, 0)),
+                      (b.buildUnits = function (t, e, n) {
+                        for (
+                          var r = w(t, e),
+                            i = [],
+                            o = (function (t) {
+                              for (
+                                var e = !1, n = 0, r = t.data.secondaryStructure;
+                                n < r.length;
+                                n++
+                              ) {
+                                var i = r[n];
+                                if (1 === i.type || 3 === i.type || 2 === i.type) return !1;
+                                4 === i.type && (e = !0);
+                              }
+                              return e;
+                            })(t),
+                            a = 0,
+                            s = t.data.secondaryStructure;
+                          a < s.length;
+                          a++
+                        ) {
+                          var l = s[a];
+                          if (o)
+                            for (var u = 0, c = E(t, l); u < c.length; u++) {
+                              var A = c[u];
+                              b.maskSplit(A, r, i);
+                            }
+                          else b.maskSplit(l, r, i);
+                        }
+                        if (0 === i.length)
+                          throw 'Cartoons cannot be constructred from this model/selection.';
+                        var h = i[0],
+                          p = t.data.residues.asymId,
+                          d = t.data.residues.authSeqNumber,
+                          f = [],
+                          g = [];
+                        0 === h.type && (h = null);
+                        for (var m = 0, v = i; m < v.length; m++)
+                          0 === (l = v[m]).type
+                            ? (0 < f.length && g.push(new b(t, f, n)), (h = null), (f = []))
+                            : p[(h = null === h ? l : h).endResidueIndex - 1] !==
+                                  p[l.startResidueIndex] ||
+                                (h !== l &&
+                                  1 < d[l.startResidueIndex] - d[h.endResidueIndex - 1]) ||
+                                (h.startResidueIndex !== l.startResidueIndex &&
+                                  0 < l.startResidueIndex - h.endResidueIndex)
+                              ? (0 < f.length
+                                  ? g.push(new b(t, f, n))
+                                  : null !== h && g.push(new b(t, [h], n)),
+                                (h = null),
+                                (f = [l]))
+                              : (f[f.length] = l),
+                            (h = l);
+                        return 0 < f.length && g.push(new b(t, f, n)), g;
+                      });
+                    (e.prototype.addResidue = function (t, e, n) {
+                      var r = e.atomStartIndex[t],
+                        i = e.atomEndIndex[t],
+                        o = !1,
+                        a = !1,
+                        s = e.name;
+                      if (5 !== n)
+                        for (
+                          var l = r;
+                          l < i &&
+                          (o || 'CA' !== s[l]
+                            ? a ||
+                              'O' !== s[l] ||
+                              (h.add3(this.vPositionsBuilder, e.x[l], e.y[l], e.z[l]), (a = !0))
+                            : (h.add3(this.uPositionsBuilder, e.x[l], e.y[l], e.z[l]), (o = !0)),
+                          !o || !a);
+                          l++
+                        );
+                      else if (i - r == 1)
+                        h.add3(this.uPositionsBuilder, e.x[r], e.y[r], e.z[r]), (o = !0);
+                      else {
+                        for (
+                          var u = -1, l = r;
+                          l < i &&
+                          (o || "O5'" !== s[l]
+                            ? a ||
+                              "C3'" !== s[l] ||
+                              (h.add3(this.vPositionsBuilder, e.x[l], e.y[l], e.z[l]), (a = !0))
+                            : (h.add3(this.uPositionsBuilder, e.x[l], e.y[l], e.z[l]), (o = !0)),
+                          'P' === s[l] && (u = l),
+                          !o || !a);
+                          l++
+                        );
+                        !o &&
+                          !a &&
+                          0 <= u &&
+                          (h.add3(this.uPositionsBuilder, e.x[u], e.y[u], e.z[u]), (o = !0));
+                      }
+                      var c,
+                        A,
+                        t = !1;
+                      return (
+                        a
+                          ? o ||
+                            ((A = (c = this.vPositionsBuilder.array).length),
+                            h.add3(this.uPositionsBuilder, c[A - 3], c[A - 2], c[A - 1]),
+                            (t = !0))
+                          : ((A = (c = this.uPositionsBuilder.array).length),
+                            h.add3(this.vPositionsBuilder, c[A - 3], c[A - 2], c[A - 1]),
+                            (t = !0)),
+                        h.add(this.typeBuilder, n),
+                        t
+                      );
+                    }),
+                      (e.prototype.finishResidues = function () {
+                        h.add(this.typeBuilder, 0),
+                          h.add(this.typeBuilder, 0),
+                          h.add3(this.uPositionsBuilder, 0, 0, 0),
+                          h.add3(this.uPositionsBuilder, 0, 0, 0),
+                          h.add3(this.vPositionsBuilder, 0, 0, 0),
+                          h.add3(this.vPositionsBuilder, 0, 0, 0),
+                          (this.residueType = this.typeBuilder.array),
+                          (this.uPositions = this.uPositionsBuilder.array),
+                          (this.vPositions = this.vPositionsBuilder.array),
+                          (this.typeBuilder = null),
+                          (this.uPositionsBuilder = null),
+                          (this.vPositionsBuilder = null),
+                          (this.uvLength = this.residueType.length),
+                          (this.residueCount = this.uvLength - 4);
+                      }),
+                      (e.prototype.addControlPoint = function (t, e) {
+                        h.add3(this.pPositionsBuilder, t.x, t.y, t.z),
+                          h.add3(this.dPositionsBuilder, e.x, e.y, e.z);
+                      }),
+                      (e.prototype.finishContols = function () {
+                        (this.pPositions = this.pPositionsBuilder.array),
+                          (this.dPositions = this.dPositionsBuilder.array),
+                          (this.pPositionsBuilder = null),
+                          (this.dPositionsBuilder = null);
+                      });
+                    var a = e;
+                    function e(t) {
+                      (this.typeBuilder = h.forArray(1e4)),
+                        (this.residueType = []),
+                        (this.uPositions = new Float32Array(0)),
+                        (this.vPositions = new Float32Array(0)),
+                        (this.pPositions = new Float32Array(0)),
+                        (this.dPositions = new Float32Array(0)),
+                        (this.uvLength = 0),
+                        (this.residueCount = 0),
+                        (this.typeBuilder = h.forArray(t + 4)),
+                        (this.uPositionsBuilder = h.forVertex3D(t + 4)),
+                        (this.vPositionsBuilder = h.forVertex3D(t + 4)),
+                        (this.pPositionsBuilder = h.forVertex3D(t + 4)),
+                        (this.dPositionsBuilder = h.forVertex3D(t + 4)),
+                        h.add(this.typeBuilder, 0),
+                        h.add(this.typeBuilder, 0),
+                        h.add3(this.uPositionsBuilder, 0, 0, 0),
+                        h.add3(this.uPositionsBuilder, 0, 0, 0),
+                        h.add3(this.vPositionsBuilder, 0, 0, 0),
+                        h.add3(this.vPositionsBuilder, 0, 0, 0);
+                    }
+                  })(
+                    (e = (e = B.Molecule || (B.Molecule = {})).Cartoons || (e.Cartoons = {}))
+                      .Geometry || (e.Geometry = {}),
+                  ),
+                  (ou = F = F || {}),
+                  (I = ou.Visualization || (ou.Visualization = {})),
+                  (function (t) {
+                    function e() {
+                      (this.radialSegmentCount = 10),
+                        (this.turnWidth = 0.1),
+                        (this.strandWidth = 0.15),
+                        (this.nucleotideStrandLineWidth = 0.15),
+                        (this.nucleotideStrandFactor = 3),
+                        (this.helixWidth = 1.1),
+                        (this.helixHeight = 0.1),
+                        (this.sheetWidth = 1.1),
+                        (this.sheetHeight = 0.1),
+                        (this.arrowWidth = 1.7),
+                        (this.tessalation = 2);
+                    }
+                    (e.Default = new e()), (t.CartoonsGeometryParams = e);
+                    var b = I.Geometry.Builder;
+                    function n(t, e) {
+                      (this.params = t),
+                        (this.residueCount = e),
+                        (this.residueIndex = 0),
+                        (this.builder = b.createDynamic(
+                          8 * this.residueCount,
+                          16 * this.residueCount,
+                        )),
+                        (this.vs = this.builder.vertices),
+                        (this.is = this.builder.indices),
+                        (this.gapsBuilder = b.createDynamic(256, 512)),
+                        (this.dCones = b.createDynamic(1, 1)),
+                        (this.dConesInit = !1),
+                        (this.translationMatrix = new I.THREE.Matrix4()),
+                        (this.scaleMatrix = new I.THREE.Matrix4()),
+                        (this.rotationMatrix = new I.THREE.Matrix4()),
+                        (this.invMatrix = new I.THREE.Matrix4()),
+                        (this.vertexMap = new I.Selection.VertexMapBuilder(e));
+                    }
+                    function g(t) {
+                      var e = t.params.nucleotideStrandLineWidth,
+                        n = 0,
+                        r = 0;
+                      switch (t.params.tessalation) {
+                        case 0:
+                          (r = 2), (n = 1);
+                          break;
+                        case 1:
+                          (r = 3), (n = 2);
+                          break;
+                        case 2:
+                          (r = 4), (n = 2);
+                          break;
+                        case 3:
+                          (r = 8), (n = 4);
+                          break;
+                        case 4:
+                          (r = 10), (n = 6);
+                          break;
+                        case 5:
+                          (r = 14), (n = 6);
+                          break;
+                        default:
+                          (r = 16), (n = 8);
+                      }
+                      for (var i = [], o = Math.PI / 2 / n, a = 0; a <= n; a++)
+                        (i[a] = new I.THREE.Vector3(0, e * Math.cos(a * o), 0.1 * Math.sin(a * o))),
+                          (i[a].z += 0.9);
+                      var s = new I.THREE.LatheGeometry(
+                          [new I.THREE.Vector3(0, e, 0)].concat(i),
+                          r,
+                          Math.PI,
+                        ),
+                        s = I.GeometryHelper.getIndexedBufferGeometry(s);
+                      t.strandTemplate = {
+                        vertex: s.attributes.position.array,
+                        normal: s.attributes.normal.array,
+                        index: s.attributes.index.array,
+                        geometry: s,
+                      };
+                    }
+                    function h(t, e) {
+                      for (
+                        var n,
+                          r,
+                          i,
+                          o,
+                          a,
+                          s,
+                          l = e.state,
+                          u = e.params,
+                          c = e.builder,
+                          A = 0,
+                          h = t.residueCount;
+                        A < h;
+                        A++
+                      ) {
+                        l.vertexMap.startElement(t.residueIndex[A]);
+                        var p = l.verticesDone,
+                          d = ((l.residueIndex = A), t.structureStarts.has(t.residueIndex[A])),
+                          f = t.structureEnds.has(t.residueIndex[A]);
+                        if (e.isTrace || t.backboneOnly)
+                          5 === t.residueType[A]
+                            ? (c.addTube(
+                                t,
+                                l,
+                                u.strandWidth,
+                                u.strandWidth,
+                                c.hasP(t.residueIndex[A], e.strandArrays)
+                                  ? u.nucleotideStrandFactor
+                                  : 1,
+                              ),
+                              (d || f) && c.addTubeCap(t, l, u.strandWidth, u.strandWidth, d, f),
+                              e.strandTemplate || g(e),
+                              c.addStrandLine(
+                                t,
+                                l,
+                                e.strandTemplate,
+                                e.strandArrays,
+                                t.residueIndex[A],
+                              ))
+                            : (c.addTube(t, l, u.turnWidth, u.turnWidth, 1),
+                              (d || f) && c.addTubeCap(t, l, u.turnWidth, u.turnWidth, d, f));
+                        else
+                          switch (t.residueType[A]) {
+                            case 1:
+                              c.addTube(t, l, u.helixWidth, u.helixHeight, 1),
+                                d
+                                  ? c.addTubeCap(t, l, u.helixWidth, u.helixHeight, !0, !1)
+                                  : f && c.addTubeCap(t, l, u.helixWidth, u.helixHeight, !1, !0);
+                              break;
+                            case 3:
+                              c.addSheet(t, l, d, f), (d || f) && c.addSheetCap(t, l, d, f);
+                              break;
+                            case 5:
+                              c.addTube(
+                                t,
+                                l,
+                                u.strandWidth,
+                                u.strandWidth,
+                                c.hasP(t.residueIndex[A], e.strandArrays)
+                                  ? u.nucleotideStrandFactor
+                                  : 1,
+                              ),
+                                (d || f) && c.addTubeCap(t, l, u.strandWidth, u.strandWidth, d, f),
+                                e.strandTemplate || g(e),
+                                c.addStrandLine(
+                                  t,
+                                  l,
+                                  e.strandTemplate,
+                                  e.strandArrays,
+                                  t.residueIndex[A],
+                                );
+                              break;
+                            default:
+                              c.addTube(t, l, u.turnWidth, u.turnWidth, 1),
+                                (d || f) && c.addTubeCap(t, l, u.turnWidth, u.turnWidth, d, f);
+                          }
+                        e.parameters.showDirectionCones &&
+                          5 !== t.residueType[A] &&
+                          ((n = e),
+                          (r = t),
+                          (i = 2 * u.sheetHeight),
+                          (o = A),
+                          (s = a = void 0),
+                          r.residueCount <= 2 ||
+                            ((a = r.controlPoints),
+                            (s =
+                              o * r.linearSegmentCount + ((0.35 * r.linearSegmentCount + 1) | 0)),
+                            (o =
+                              o * r.linearSegmentCount + ((0.85 * r.linearSegmentCount + 1) | 0)),
+                            s == o ||
+                              3 * o > a.length ||
+                              (m.set(B, a[3 * s], a[3 * s + 1], a[3 * s + 2]),
+                              m.set(w, a[3 * s], a[3 * s + 1], a[3 * s + 2]),
+                              m.set(E, a[3 * o], a[3 * o + 1], a[3 * o + 2]),
+                              m.sub(w, E, w),
+                              (r = m.magnitude(w)) <= 0.1 ||
+                                (m.set(C, 2 * i, r, 2 * i),
+                                m.normalize(w, w),
+                                m.makeRotation(x, y, w),
+                                b.addRawTransformed(n.state.directionConesBuilder, v, C, B, x))))),
+                          l.vertexMap.addVertexRange(p, l.verticesDone),
+                          l.vertexMap.endElement();
+                      }
+                    }
+                    Object.defineProperty(n.prototype, 'verticesDone', {
+                      get: function () {
+                        return this.vs.elementCount;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      Object.defineProperty(n.prototype, 'trianglesDone', {
+                        get: function () {
+                          return this.is.elementCount;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(n.prototype, 'directionConesBuilder', {
+                        get: function () {
+                          return (
+                            this.dConesInit ||
+                              ((this.dConesInit = !0),
+                              (this.dCones = b.createDynamic(
+                                this.residueCount,
+                                this.residueCount,
+                              ))),
+                            this.dCones
+                          );
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (n.prototype.addVertex = function (t, e) {
+                        b.addVertex3d(this.builder, t.x, t.y, t.z),
+                          b.addNormal3d(this.builder, e.x, e.y, e.z);
+                      }),
+                      (n.prototype.addTriangle = function (t, e, n) {
+                        b.addIndex3d(this.builder, t, e, n);
+                      }),
+                      (n.prototype.addTriangles = function (t, e, n, r, i, o) {
+                        b.addIndex3d(this.builder, t, e, n), b.addIndex3d(this.builder, r, i, o);
+                      }),
+                      (t.CartoonsGeometryState = n),
+                      (t.buildUnit = h);
+                    var m = ou.Core.Geometry.LinearAlgebra.Vector3,
+                      r = ou.Core.Geometry.LinearAlgebra.Matrix4;
+                    (i = new I.THREE.CylinderGeometry(0, 1, 1, 6, 1)),
+                      (o = I.GeometryHelper.toRawGeometry(i)),
+                      i.dispose();
+                    var i,
+                      o,
+                      v = o,
+                      y = (m.zero(), m.fromValues(0, 1, 0)),
+                      w = m.zero(),
+                      E = m.zero(),
+                      B = m.zero(),
+                      C = m.zero(),
+                      x = r.identity();
+                    function a() {
+                      this.tempVectors = [
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                        new I.THREE.Vector3(),
+                      ];
+                    }
+                    (t.buildUnitsAsync = function (A) {
+                      return D(this, void 0, void 0, function () {
+                        var o, a, s, l, u, c;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              (o = 1e4),
+                                (a = ou.Core.Utils.PerformanceMonitor.currentTime()),
+                                (s = 0),
+                                (t.label = 1);
+                            case 1:
+                              if (!(s < A.units.length)) return [3, 4];
+                              for (l = 0; l < o && s < A.units.length; )
+                                h(A.units[s], A), (l += A.units[s].residueCount), s++;
+                              return (u = ou.Core.Utils.PerformanceMonitor.currentTime()) - a >
+                                ou.Core.Computation.UpdateProgressDelta
+                                ? ((a = u),
+                                  [
+                                    4,
+                                    A.computation.updateProgress(
+                                      'Building units...',
+                                      !0,
+                                      s,
+                                      A.units.length,
+                                    ),
+                                  ])
+                                : [3, 3];
+                            case 2:
+                              t.sent(), (t.label = 3);
+                            case 3:
+                              return [3, 1];
+                            case 4:
+                              for (c = 0; c < A.units.length - 1; c++)
+                                (r = (n = A).units[c]),
+                                  (i = A.units[c + 1]),
+                                  (n = n.model.data.residues.chainIndex)[r.endResidueIndex] ===
+                                    n[i.endResidueIndex] &&
+                                    ((n = (r = A).units[c]),
+                                    (i = A.units[c + 1]),
+                                    (e = void 0),
+                                    (e = n.controlPoints.length),
+                                    (n = n.controlPoints),
+                                    (i = i.controlPoints),
+                                    (n = m.fromValues(n[e - 3], n[e - 2], n[e - 1])),
+                                    (e = m.fromValues(i[0], i[1], i[2])),
+                                    (i = r.state.params.turnWidth / 2),
+                                    b.addDashedLine(r.state.gapsBuilder, n, e, 0.5, 0.5, i));
+                              return [2];
+                          }
+                          var e, n, r, i;
+                        });
+                      });
+                    }),
+                      (t.createGeometry = function (t) {
+                        for (
+                          var e = t.state,
+                            n = new Float32Array(3 * e.verticesDone),
+                            r = new Float32Array(4 * e.verticesDone),
+                            i = new Float32Array(e.verticesDone),
+                            o = b.toBufferGeometry(e.builder),
+                            a =
+                              (o.addAttribute('color', new I.THREE.BufferAttribute(n, 3)),
+                              (t.geom.vertexStateBuffer = new I.THREE.BufferAttribute(i, 1)),
+                              o.addAttribute('vState', t.geom.vertexStateBuffer),
+                              (t.geom.geometry = o),
+                              e.gapsBuilder.vertices.elementCount &&
+                                (t.geom.gapsGeometry = b.toBufferGeometry(e.gapsBuilder)),
+                              e.directionConesBuilder.vertices.elementCount &&
+                                (t.geom.directionConesGeometry = b.toBufferGeometry(
+                                  e.directionConesBuilder,
+                                )),
+                              t.geom.vertexMap),
+                            s = { r: 0.45, g: 0.45, b: 0.45 },
+                            l = a.vertexRanges,
+                            u = 0,
+                            c = a.elementIndices;
+                          u < c.length;
+                          u++
+                        ) {
+                          var A = c[u],
+                            h = a.elementMap.get(A),
+                            p = a.elementRanges[2 * h],
+                            d = a.elementRanges[2 * h + 1];
+                          if (p !== d) {
+                            I.Selection.Picking.assignPickColor(A, s);
+                            for (var f = p; f < d; f += 2)
+                              for (var g = l[f], m = l[f + 1], v = g; v < m; v++)
+                                (r[4 * v] = s.r), (r[4 * v + 1] = s.g), (r[4 * v + 2] = s.b);
+                          }
+                        }
+                        (n = new I.THREE.BufferGeometry()).addAttribute(
+                          'position',
+                          o.getAttribute('position'),
+                        ),
+                          n.addAttribute('index', o.getAttribute('index')),
+                          n.addAttribute('pColor', new I.THREE.BufferAttribute(r, 4)),
+                          (t.geom.pickGeometry = n);
+                      }),
+                      (a.prototype.setVector = function (t, e, n) {
+                        return n.set(t[3 * e], t[3 * e + 1], t[3 * e + 2]), n;
+                      }),
+                      (a.prototype.addTube = function (t, e, n, r, i) {
+                        for (
+                          var o = e.verticesDone,
+                            a = 0,
+                            s = 0,
+                            l = this.tempVectors[0],
+                            u = this.tempVectors[1],
+                            c = this.tempVectors[2],
+                            A = this.tempVectors[3],
+                            h = this.tempVectors[4],
+                            p = this.tempVectors[5],
+                            d = this.tempVectors[6],
+                            f = e.residueIndex * t.linearSegmentCount,
+                            g = f + t.linearSegmentCount,
+                            m = t.controlPoints,
+                            v = t.linearSegmentCount + 1,
+                            b = t.torsionVectors,
+                            y = t.normalVectors,
+                            w = e.params.radialSegmentCount,
+                            E = 1 / (g - f),
+                            a = f;
+                          a <= g;
+                          a++
+                        ) {
+                          this.setVector(b, a, p), this.setVector(y, a, d);
+                          for (
+                            var B = 1 + (i - 1) * (Math.cos(2 * Math.PI * (E * (a - f) - 0.5)) + 1),
+                              C = B * n,
+                              x = B * r,
+                              s = 0;
+                            s < w;
+                            s++
+                          ) {
+                            var I = (2 * Math.PI * s) / w;
+                            A.copy(p),
+                              h.copy(d),
+                              l.addVectors(
+                                A.multiplyScalar(C * Math.cos(I)),
+                                h.multiplyScalar(x * Math.sin(I)),
+                              ),
+                              A.copy(p),
+                              h.copy(d),
+                              u.addVectors(
+                                A.multiplyScalar(x * Math.cos(I)),
+                                h.multiplyScalar(C * Math.sin(I)),
+                              ),
+                              u.normalize(),
+                              this.setVector(m, a, c),
+                              c.add(l),
+                              e.addVertex(c, u);
+                          }
+                        }
+                        for (a = 0; a < v - 1; a++)
+                          for (s = 0; s < w; s++)
+                            e.addTriangles(
+                              o + a * w + s,
+                              o + (a + 1) * w + ((s + 1) % w),
+                              o + a * w + ((s + 1) % w),
+                              o + a * w + s,
+                              o + (a + 1) * w + s,
+                              o + (a + 1) * w + ((s + 1) % w),
+                            );
+                      }),
+                      (a.prototype.addTubeCap = function (t, e, n, r, i, o) {
+                        var a,
+                          s = e.verticesDone,
+                          l = this.tempVectors[0],
+                          u = this.tempVectors[1],
+                          c = this.tempVectors[2],
+                          A = this.tempVectors[3],
+                          h = this.tempVectors[4],
+                          p = this.tempVectors[5],
+                          d = this.tempVectors[6],
+                          f = this.tempVectors[7],
+                          g = e.residueIndex * t.linearSegmentCount,
+                          m = t.controlPoints,
+                          v = t.linearSegmentCount + 1,
+                          b = t.torsionVectors,
+                          t = t.normalVectors,
+                          y = e.params.radialSegmentCount,
+                          w =
+                            (this.setVector(b, g, d),
+                            this.setVector(t, g, f),
+                            u.crossVectors(d, f),
+                            o && u.negate(),
+                            g + (i ? 0 : v - 1));
+                        this.setVector(m, w, l),
+                          e.addVertex(l, u),
+                          this.setVector(b, w, h),
+                          this.setVector(t, w, p);
+                        for (var E = 0; E < y; E++)
+                          (a = (2 * Math.PI * E) / y),
+                            c.copy(h),
+                            A.copy(p),
+                            l.addVectors(
+                              c.multiplyScalar(Math.cos(a) * n),
+                              A.multiplyScalar(Math.sin(a) * r),
+                            ),
+                            this.setVector(m, w, d),
+                            l.add(d),
+                            e.addVertex(l, u),
+                            i
+                              ? e.addTriangle(s, s + E + 1, s + ((E + 1) % y) + 1)
+                              : e.addTriangle(s, s + ((E + 1) % y) + 1, s + E + 1);
+                      }),
+                      (a.prototype.addSheet = function (t, e, n, r) {
+                        var i,
+                          o = e.verticesDone,
+                          a = e.params,
+                          s = 0,
+                          l = 0,
+                          u = this.tempVectors[0],
+                          c = this.tempVectors[1],
+                          A = this.tempVectors[2],
+                          h = this.tempVectors[3],
+                          p = this.tempVectors[4],
+                          d = this.tempVectors[5],
+                          f = this.tempVectors[7],
+                          g = this.tempVectors[8],
+                          m = this.tempVectors[9],
+                          v = e.residueIndex * t.linearSegmentCount,
+                          b = v + t.linearSegmentCount,
+                          y = t.controlPoints,
+                          w = t.torsionVectors,
+                          E = t.normalVectors,
+                          B = 0;
+                        for (
+                          h.set(0, 0, 0),
+                            r &&
+                              (this.setVector(y, b, f),
+                              this.setVector(y, v, g),
+                              (B = a.arrowWidth / d.subVectors(f, g).length())),
+                            s = v;
+                          s <= b;
+                          s++
+                        )
+                          (i = r
+                            ? a.arrowWidth * (1 - (s - v) / t.linearSegmentCount)
+                            : a.sheetWidth),
+                            this.setVector(w, s, u),
+                            u.multiplyScalar(i),
+                            this.setVector(E, s, c),
+                            c.multiplyScalar(a.sheetHeight),
+                            r &&
+                              (this.setVector(E, s, f),
+                              this.setVector(w, s, g),
+                              h.crossVectors(f, g).multiplyScalar(B)),
+                            this.setVector(y, s, A),
+                            this.setVector(E, s, p),
+                            this.setVector(w, s, m),
+                            f.copy(A).add(u).add(c),
+                            g.copy(p),
+                            e.addVertex(f, g),
+                            f.copy(A).sub(u).add(c),
+                            e.addVertex(f, g),
+                            f.copy(A).sub(u).add(c),
+                            g.copy(m).negate().add(h),
+                            e.addVertex(f, g),
+                            f.copy(A).sub(u).sub(c),
+                            e.addVertex(f, g),
+                            f.copy(A).sub(u).sub(c),
+                            g.copy(p).negate(),
+                            e.addVertex(f, g),
+                            f.copy(A).add(u).sub(c),
+                            e.addVertex(f, g),
+                            f.copy(A).add(u).sub(c),
+                            g.copy(m).add(h),
+                            e.addVertex(f, g),
+                            f.copy(A).add(u).add(c),
+                            e.addVertex(f, g);
+                        for (s = 0; s < t.linearSegmentCount; s++)
+                          for (l = 0; l < 4; l++)
+                            e.addTriangles(
+                              o + 8 * s + 2 * l,
+                              o + 8 * (s + 1) + 2 * l + 1,
+                              o + 8 * s + 2 * l + 1,
+                              o + 8 * s + 2 * l,
+                              o + 8 * (s + 1) + 2 * l,
+                              o + 8 * (s + 1) + 2 * l + 1,
+                            );
+                      }),
+                      (a.prototype.addSheetCap = function (t, e, n, r) {
+                        var i = e.params,
+                          o = e.residueIndex * t.linearSegmentCount,
+                          a = this.setVector(t.controlPoints, o, this.tempVectors[0]),
+                          s = this.setVector(
+                            t.torsionVectors,
+                            o,
+                            this.tempVectors[1],
+                          ).multiplyScalar(i.sheetWidth),
+                          l = this.setVector(
+                            t.normalVectors,
+                            o,
+                            this.tempVectors[2],
+                          ).multiplyScalar(i.sheetHeight),
+                          u = this.tempVectors[3].addVectors(a, s).add(l),
+                          c = this.tempVectors[4].subVectors(a, s).add(l),
+                          A = this.tempVectors[5].subVectors(a, s).sub(l),
+                          s = this.tempVectors[6].addVectors(a, s).sub(l);
+                        n
+                          ? this.addSheepCapSection(e, u, c, A, s)
+                          : ((n = this.setVector(
+                              t.torsionVectors,
+                              o,
+                              this.tempVectors[7],
+                            ).multiplyScalar(i.arrowWidth)),
+                            (t = this.tempVectors[8].addVectors(a, n).add(l)),
+                            (o = this.tempVectors[9].subVectors(a, n).add(l)),
+                            (i = this.tempVectors[10].subVectors(a, n).sub(l)),
+                            (a = this.tempVectors[11].addVectors(a, n).sub(l)),
+                            this.addSheepCapSection(e, t, u, s, a),
+                            this.addSheepCapSection(e, c, o, i, A));
+                      }),
+                      (a.prototype.addSheepCapSection = function (t, e, n, r, i) {
+                        var o = t.verticesDone,
+                          a = this.tempVectors[12]
+                            .crossVectors(
+                              this.tempVectors[13].subVectors(n, e),
+                              this.tempVectors[14].subVectors(i, e),
+                            )
+                            .normalize();
+                        t.addVertex(e, a),
+                          t.addVertex(n, a),
+                          t.addVertex(r, a),
+                          t.addVertex(i, a),
+                          t.addTriangles(o, o + 1, o + 2, o + 2, o + 3, o);
+                      }),
+                      (a.prototype.findN3 = function (t, e, n) {
+                        for (var r = e.startIndex[t], i = e.endIndex[t], o = !1, a = r; a < i; a++)
+                          if ('N3' === e.name[a]) {
+                            n.set(e.x[a], e.y[a], e.z[a]), (o = !0);
+                            break;
+                          }
+                        return o;
+                      }),
+                      (a.prototype.hasP = function (t, e) {
+                        for (var n = e.startIndex[t], r = e.endIndex[t], i = n; i < r; i++)
+                          if ('P' === e.name[i]) return !0;
+                        return !1;
+                      }),
+                      (a.prototype.addStrandLine = function (t, e, n, r, i) {
+                        if (this.findN3(i, r, this.tempVectors[3])) {
+                          var o,
+                            a = this.tempVectors[0],
+                            s = this.tempVectors[1],
+                            l = n.vertex,
+                            u = n.normal,
+                            c = n.index,
+                            A = e.verticesDone,
+                            h = l.length,
+                            p = c.length,
+                            i =
+                              e.residueIndex * t.linearSegmentCount +
+                              ((0.5 * t.linearSegmentCount + 1) | 0),
+                            r = this.setVector(t.controlPoints, i, this.tempVectors[2]),
+                            t = this.tempVectors[3].sub(r),
+                            i = t.length();
+                          for (
+                            t.normalize(),
+                              e.translationMatrix.makeTranslation(r.x, r.y, r.z),
+                              e.scaleMatrix.makeScale(1, 1, i),
+                              e.rotationMatrix.makeRotationAxis(
+                                new I.THREE.Vector3(-t.y, t.x, 0),
+                                Math.acos(t.z),
+                              ),
+                              e.translationMatrix
+                                .multiply(e.rotationMatrix)
+                                .multiply(e.scaleMatrix),
+                              n.geometry.applyMatrix(e.translationMatrix),
+                              o = 0;
+                            o < h;
+                            o += 3
+                          )
+                            a.set(l[o], l[o + 1], l[o + 2]),
+                              s.set(u[o], u[o + 1], u[o + 2]),
+                              e.addVertex(a, s);
+                          for (o = 0; o < p; o += 3)
+                            e.addTriangle(A + c[o], A + c[o + 1], A + c[o + 2]);
+                          e.invMatrix.getInverse(e.translationMatrix),
+                            n.geometry.applyMatrix(e.invMatrix);
+                        }
+                      }),
+                      (t.Builder = a);
+                  })(
+                    (r = (r = I.Molecule || (I.Molecule = {})).Cartoons || (r.Cartoons = {}))
+                      .Geometry || (r.Geometry = {}),
+                  ),
+                  (au = F = F || {}),
+                  (su = au.Visualization || (au.Visualization = {})),
+                  (n = su.Molecule || (su.Molecule = {})),
+                  (lu = n.Cartoons || (n.Cartoons = {})),
+                  ((n = uu = lu.CartoonsModelType || (lu.CartoonsModelType = {}))[(n.Default = 0)] =
+                    'Default'),
+                  (n[(n.AlphaTrace = 1)] = 'AlphaTrace'),
+                  (lu.DefaultCartoonsModelParameters = {
+                    tessalation: 3,
+                    drawingType: uu.Default,
+                    showDirectionCones: !0,
+                  }),
+                  (cu = su.Model),
+                  M(VA, cu),
+                  (VA.prototype.applySelectionInternal = function (t, e) {
+                    for (
+                      var n = this.cartoons.vertexStateBuffer,
+                        r = n.array,
+                        i = this.cartoons.vertexMap,
+                        o = i.vertexRanges,
+                        a = !1,
+                        s = this.model.data.atoms.residueIndex,
+                        l = 0,
+                        u = t.length;
+                      l < u;
+                      l++
+                    ) {
+                      var c = s[t[l]];
+                      for (l++; s[t[l]] === c; ) l++;
+                      if ((l--, i.elementMap.has(c))) {
+                        var A = i.elementMap.get(c),
+                          h = i.elementRanges[2 * A],
+                          p = i.elementRanges[2 * A + 1];
+                        if (h !== p)
+                          for (var d = h; d < p; d += 2)
+                            var f = o[d],
+                              g = o[d + 1],
+                              a = su.Selection.applyActionToRange(r, f, g, e) || a;
+                      }
+                    }
+                    return !!a && (n.needsUpdate = !0);
+                  }),
+                  (VA.prototype.getPickElements = function (t) {
+                    for (
+                      var e = this.model.data.residues,
+                        n = e.atomStartIndex,
+                        e = e.atomEndIndex,
+                        r = [],
+                        i = n[t],
+                        o = e[t];
+                      i < o;
+                      i++
+                    )
+                      this.queryContext.hasAtom(i) && r.push(i);
+                    return r;
+                  }),
+                  (VA.prototype.highlightElement = function (t, e) {
+                    return this.applySelection(
+                      [this.model.data.residues.atomStartIndex[t]],
+                      e ? 3 : 4,
+                    );
+                  }),
+                  (VA.prototype.highlightInternal = function (t) {
+                    return su.Selection.applyActionToBuffer(
+                      this.cartoons.vertexStateBuffer,
+                      t ? 3 : 4,
+                    );
+                  }),
+                  (VA.prototype.applyColoring = function (t) {
+                    for (
+                      var e = this.model.data.residues,
+                        n = e.atomStartIndex,
+                        r = e.atomEndIndex,
+                        i = { r: 0.1, g: 0.1, b: 0.1 },
+                        o = { r: 0.1, g: 0.1, b: 0.1 },
+                        a = this.cartoons.vertexMap,
+                        e = this.cartoons.geometry.attributes.color,
+                        s = e.array,
+                        l = a.vertexRanges,
+                        u = 0,
+                        c = this.model.data.residues.count;
+                      u < c;
+                      u++
+                    ) {
+                      (o.r = 0), (o.g = 0);
+                      for (var A = (o.b = 0), h = n[u], p = r[u]; h < p; h++)
+                        this.queryContext.hasAtom(h) &&
+                          (t.setElementColor(h, i), (o.r += i.r), (o.g += i.g), (o.b += i.b), A++);
+                      if (A) {
+                        (i.r = o.r / A), (i.g = o.g / A), (i.b = o.b / A);
+                        var d = a.elementMap.get(u),
+                          f = a.elementRanges[2 * d],
+                          g = a.elementRanges[2 * d + 1];
+                        if (f !== g)
+                          for (var m = f; m < g; m += 2)
+                            for (var v = l[m], b = l[m + 1], y = v; y < b; y++)
+                              (s[3 * y] = i.r), (s[3 * y + 1] = i.g), (s[3 * y + 2] = i.b);
+                      }
+                    }
+                    e.needsUpdate = !0;
+                  }),
+                  (VA.prototype.applyThemeInternal = function (t) {
+                    this.applyColoring(t),
+                      su.MaterialsHelper.updateMaterial(this.material, t, this.object),
+                      su.MaterialsHelper.updateMaterial(this.gapMaterial, t, this.object),
+                      su.MaterialsHelper.updateMaterial(this.directionConeMaterial, t, this.object);
+                  }),
+                  (VA.prototype.createObjects = function () {
+                    var t = new su.THREE.Object3D();
+                    return (
+                      t.add(new su.THREE.Mesh(this.cartoons.geometry, this.material)),
+                      this.cartoons.gapsGeometry &&
+                        t.add(new su.THREE.Mesh(this.cartoons.gapsGeometry, this.gapMaterial)),
+                      this.cartoons.directionConesGeometry &&
+                        t.add(
+                          new su.THREE.Mesh(
+                            this.cartoons.directionConesGeometry,
+                            this.directionConeMaterial,
+                          ),
+                        ),
+                      {
+                        main: 1 < t.children.length ? t : t.children[0],
+                        pick: new su.THREE.Mesh(this.cartoons.pickGeometry, this.pickMaterial),
+                      }
+                    );
+                  }),
+                  (VA.create = function (a, t) {
+                    var e = this,
+                      s = t.model,
+                      l = t.queryContext,
+                      u = t.atomIndices,
+                      c = t.theme,
+                      A = t.params,
+                      h = t.props;
+                    return au.Core.computation(function (o) {
+                      return D(e, void 0, void 0, function () {
+                        var e, n, r, i;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return (n = e = 0), [4, o.updateProgress('Computing cartoons...')];
+                            case 1:
+                              switch (
+                                (t.sent(),
+                                (A = au.Core.Utils.extend({}, A, lu.DefaultCartoonsModelParameters))
+                                  .tessalation)
+                              ) {
+                                case 0:
+                                  n = e = 2;
+                                  break;
+                                case 1:
+                                  (e = 4), (n = 3);
+                                  break;
+                                case 2:
+                                  (e = 6), (n = 5);
+                                  break;
+                                case 3:
+                                  (e = 10), (n = 8);
+                                  break;
+                                case 4:
+                                  (e = 12), (n = 10);
+                                  break;
+                                case 5:
+                                  (e = 16), (n = 14);
+                                  break;
+                                default:
+                                  (e = 18), (n = 16);
+                              }
+                              return [
+                                4,
+                                lu.Geometry.create(
+                                  s,
+                                  u,
+                                  e,
+                                  {
+                                    radialSegmentCount: n,
+                                    tessalation: +A.tessalation,
+                                    showDirectionCones: !!A.showDirectionCones,
+                                  },
+                                  A.drawingType === uu.AlphaTrace,
+                                  o,
+                                ),
+                              ];
+                            case 2:
+                              return (
+                                (i = t.sent()),
+                                ((r = new VA()).cartoons = i),
+                                (r.queryContext = l),
+                                (r.material = su.MaterialsHelper.getMeshMaterial()),
+                                (r.gapMaterial = new su.THREE.MeshPhongMaterial({
+                                  color: 7829367,
+                                  shading: su.THREE.FlatShading,
+                                })),
+                                (r.directionConeMaterial = new su.THREE.MeshPhongMaterial({
+                                  color: 10066329,
+                                  shading: su.THREE.FlatShading,
+                                })),
+                                (r.pickMaterial = su.MaterialsHelper.getPickMaterial()),
+                                h && (r.props = h),
+                                (r.entity = a),
+                                r.cartoons.geometry.computeBoundingSphere(),
+                                (r.centroid = r.cartoons.geometry.boundingSphere.center),
+                                (r.radius = r.cartoons.geometry.boundingSphere.radius),
+                                (i = r.createObjects()),
+                                (r.object = i.main),
+                                (r.pickObject = i.pick),
+                                (r.pickBufferAttributes = [
+                                  r.cartoons.pickGeometry.attributes.pColor,
+                                ]),
+                                (r.model = s),
+                                r.applyTheme(c),
+                                r.disposeList.push(
+                                  r.cartoons,
+                                  r.material,
+                                  r.pickMaterial,
+                                  r.gapMaterial,
+                                  r.directionConeMaterial,
+                                ),
+                                [2, r]
+                              );
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (n = VA),
+                  (lu.Model = n);
+                var t = (F = F || {}),
+                  qA =
+                    (e =
+                      (e = t.Visualization || (t.Visualization = {})).Molecule || (e.Molecule = {}))
+                      .Colors || (e.Colors = {});
+                (qA.DefaultBondColor = { r: 0.6, g: 0.6, b: 0.6 }),
+                  (qA.DefaultCartoonDirectionConeColor = { r: 0.85, g: 0.85, b: 0.85 }),
+                  (qA.DefaultElementColor = { r: 0.6, g: 0.6, b: 0.6 }),
+                  (qA.DefaultElementColorMap = t.Core.Utils.FastMap.create()),
+                  (qA.DefaultPallete = []);
+                for (
+                  var WA = 0,
+                    JA = [
+                      ['Ac', 0.43921, 0.67058, 0.98039],
+                      ['Al', 0.74901, 0.65098, 0.65098],
+                      ['Am', 0.32941, 0.36078, 0.94901],
+                      ['Sb', 0.6196, 0.38823, 0.7098],
+                      ['Ar', 0.50196, 0.8196, 0.89019],
+                      ['As', 0.74117, 0.50196, 0.89019],
+                      ['At', 0.45882, 0.3098, 0.27058],
+                      ['Ba', 0, 0.78823, 0],
+                      ['Bk', 0.54117, 0.3098, 0.89019],
+                      ['Be', 0.76078, 1, 0],
+                      ['Bi', 0.6196, 0.3098, 0.7098],
+                      ['Bh', 0.87843, 0, 0.2196],
+                      ['B', 1, 0.7098, 0.7098],
+                      ['Br', 0.65098, 0.16078, 0.16078],
+                      ['Cd', 1, 0.85098, 0.56078],
+                      ['Ca', 0.23921, 1, 0],
+                      ['Cf', 0.63137, 0.21176, 0.83137],
+                      ['C', 0.45, 0.45, 0.45],
+                      ['Ce', 1, 1, 0.78039],
+                      ['Cs', 0.34117, 0.09019, 0.56078],
+                      ['Cl', 0.12156, 0.94117, 0.12156],
+                      ['Cr', 0.54117, 0.6, 0.78039],
+                      ['Co', 0.94117, 0.5647, 0.62745],
+                      ['Cu', 0.78431, 0.50196, 0.2],
+                      ['Cm', 0.47058, 0.36078, 0.89019],
+                      ['D', 0.9, 0.9, 0.9],
+                      ['Db', 0.8196, 0, 0.3098],
+                      ['Dy', 0.12156, 1, 0.78039],
+                      ['Es', 0.70196, 0.12156, 0.83137],
+                      ['Er', 0, 0.90196, 0.45882],
+                      ['Eu', 0.38039, 1, 0.78039],
+                      ['Fm', 0.70196, 0.12156, 0.72941],
+                      ['F', 0.70196, 1, 1],
+                      ['Fr', 0.25882, 0, 0.4],
+                      ['Gd', 0.27058, 1, 0.78039],
+                      ['Ga', 0.76078, 0.56078, 0.56078],
+                      ['Ge', 0.4, 0.56078, 0.56078],
+                      ['Au', 1, 0.8196, 0.13725],
+                      ['Hf', 0.30196, 0.76078, 1],
+                      ['Hs', 0.90196, 0, 0.18039],
+                      ['He', 0.85098, 1, 1],
+                      ['Ho', 0, 1, 0.61176],
+                      ['H', 0.9, 0.9, 0.9],
+                      ['In', 0.65098, 0.45882, 0.45098],
+                      ['I', 0.58039, 0, 0.58039],
+                      ['Ir', 0.09019, 0.32941, 0.52941],
+                      ['Fe', 0.698, 0.13, 0.13],
+                      ['Kr', 0.36078, 0.72156, 0.8196],
+                      ['La', 0.43921, 0.83137, 1],
+                      ['Lr', 0.78039, 0, 0.4],
+                      ['Pb', 0.34117, 0.34901, 0.38039],
+                      ['Li', 0.8, 0.50196, 1],
+                      ['Lu', 0, 0.67058, 0.14117],
+                      ['Mg', 0.54117, 1, 0],
+                      ['Mn', 0.61176, 0.47843, 0.78039],
+                      ['Mt', 0.92156, 0, 0.14901],
+                      ['Md', 0.70196, 0.05098, 0.65098],
+                      ['Hg', 0.72156, 0.72156, 0.81568],
+                      ['Mo', 0.32941, 0.7098, 0.7098],
+                      ['Nd', 0.78039, 1, 0.78039],
+                      ['Ne', 0.70196, 0.89019, 0.96078],
+                      ['Np', 0, 0.50196, 1],
+                      ['Ni', 0.31372, 0.81568, 0.31372],
+                      ['Nb', 0.45098, 0.76078, 0.78823],
+                      ['N', 0, 0.5, 1],
+                      ['No', 0.74117, 0.05098, 0.52941],
+                      ['Os', 0.14901, 0.4, 0.58823],
+                      ['O', 1, 0.3, 0.3],
+                      ['Pd', 0, 0.41176, 0.52156],
+                      ['P', 1, 0.50196, 0],
+                      ['Pt', 0.81568, 0.81568, 0.87843],
+                      ['Pu', 0, 0.4196, 1],
+                      ['Po', 0.67058, 0.36078, 0],
+                      ['K', 0.56078, 0.25098, 0.83137],
+                      ['Pr', 0.85098, 1, 0.78039],
+                      ['Pm', 0.63921, 1, 0.78039],
+                      ['Pa', 0, 0.63137, 1],
+                      ['Ra', 0, 0.49019, 0],
+                      ['Rn', 0.25882, 0.5098, 0.58823],
+                      ['Re', 0.14901, 0.49019, 0.67058],
+                      ['Rh', 0.03921, 0.49019, 0.54901],
+                      ['Rb', 0.43921, 0.18039, 0.69019],
+                      ['Ru', 0.14117, 0.56078, 0.56078],
+                      ['Rf', 0.8, 0, 0.34901],
+                      ['Sm', 0.56078, 1, 0.78039],
+                      ['Sc', 0.90196, 0.90196, 0.90196],
+                      ['Sg', 0.85098, 0, 0.27058],
+                      ['Se', 1, 0.63137, 0],
+                      ['Si', 0.94117, 0.78431, 0.62745],
+                      ['Ag', 0.75294, 0.75294, 0.75294],
+                      ['Na', 0.67058, 0.36078, 0.94901],
+                      ['Sr', 0, 1, 0],
+                      ['S', 0.9, 0.775, 0.25],
+                      ['Ta', 0.30196, 0.65098, 1],
+                      ['Tc', 0.23137, 0.6196, 0.6196],
+                      ['Te', 0.83137, 0.47843, 0],
+                      ['Tb', 0.18823, 1, 0.78039],
+                      ['Tl', 0.65098, 0.32941, 0.30196],
+                      ['Th', 0, 0.72941, 1],
+                      ['Tm', 0, 0.83137, 0.32156],
+                      ['Sn', 0.4, 0.50196, 0.50196],
+                      ['Ti', 0.74901, 0.76078, 0.78039],
+                      ['W', 0.12941, 0.58039, 0.83921],
+                      ['U', 0, 0.56078, 1],
+                      ['V', 0.65098, 0.65098, 0.67058],
+                      ['Xe', 0.25882, 0.6196, 0.69019],
+                      ['Yb', 0, 0.74901, 0.2196],
+                      ['Y', 0.58039, 1, 1],
+                      ['Zn', 0.49019, 0.50196, 0.69019],
+                      ['Zr', 0.58039, 0.87843, 0.87843],
+                    ];
+                  WA < JA.length;
+                  WA++
+                ) {
+                  var KA = JA[WA],
+                    ZA = KA[0],
+                    KA = { r: KA[1], g: KA[2], b: KA[3] };
+                  qA.DefaultElementColorMap.set(ZA, KA),
+                    qA.DefaultElementColorMap.set(ZA.toUpperCase(), KA),
+                    qA.DefaultElementColorMap.set(ZA.toLowerCase(), KA),
+                    qA.DefaultPallete.push(KA);
+                }
+                function XA(t, e) {
+                  return { previous: null, next: null, inList: !1, key: t, data: e };
+                }
+                function $A(i, o, a, s) {
+                  return D(this, void 0, void 0, function () {
+                    var n, r;
+                    return P(this, function (t) {
+                      switch (t.label) {
+                        case 0:
+                          return ((n = s.target.result), a)
+                            ? [4, i.updateProgress('Decompressing...')]
+                            : [3, 2];
+                        case 1:
+                          return (
+                            t.sent(),
+                            (e = n),
+                            (r = new Ir.Gunzip(new Uint8Array(e)).decompress()),
+                            o
+                              ? [2, r.buffer]
+                              : [2, wu.Core.Formats.CIF.Binary.MessagePack.utf8Read(r, 0, r.length)]
+                          );
+                        case 2:
+                          return [2, n];
+                        case 3:
+                          return [2];
+                      }
+                      var e;
+                    });
+                  });
+                }
+                function th(r, i, t) {
+                  return new wu.Promise(function (e, n) {
+                    (t.onerror = function (t) {
+                      t = t.target.error;
+                      n(t || 'Failed.');
+                    }),
+                      (t.onabort = function () {
+                        return n(wu.Core.Computation.Aborted);
+                      }),
+                      (t.onprogress = function (t) {
+                        t.lengthComputable
+                          ? r.updateProgress(i, !0, t.loaded, t.total)
+                          : r.updateProgress(
+                              i + ' ' + (t.loaded / 1024 / 1024).toFixed(2) + ' MB',
+                              !0,
+                            );
+                      }),
+                      (t.onload = function (t) {
+                        return e(t);
+                      });
+                  });
+                }
+                function eh(o, a) {
+                  var t = this;
+                  return Eu.Task.fromComputation(
+                    'Open File',
+                    'Background',
+                    wu.Core.computation(function (i) {
+                      return D(t, void 0, void 0, function () {
+                        var e, n, r;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return (
+                                (e = new FileReader()),
+                                (n = /\.gz$/i.test(o.name)) || a
+                                  ? e.readAsArrayBuffer(o)
+                                  : e.readAsBinaryString(o),
+                                i.updateProgress('Opening file...', function () {
+                                  return e.abort();
+                                }),
+                                [4, th(i, 'Reading...', e)]
+                              );
+                            case 1:
+                              return (r = t.sent()), [2, $A(i, a, n, r)];
+                          }
+                        });
+                      });
+                    }),
+                  );
+                }
+                function nh() {}
+                function rh(t, i, o, a) {
+                  var e = this;
+                  return Eu.Task.fromComputation(
+                    t || 'Download',
+                    'Background',
+                    wu.Core.computation(function (r) {
+                      return D(e, void 0, void 0, function () {
+                        var e, n;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              if (!o && a)
+                                throw 'Decompress is only available when downloading binary data.';
+                              return (
+                                (e = Cu.get()).open('get', i, !0),
+                                (e.responseType = o ? 'arraybuffer' : 'text'),
+                                e.send(),
+                                r.updateProgress('Waiting for server...', function () {
+                                  return e.abort();
+                                }),
+                                [4, th(r, 'Downloading...', e)]
+                              );
+                            case 1:
+                              return (
+                                (n = t.sent()),
+                                [
+                                  4,
+                                  (function (o, a, s, l) {
+                                    return D(this, void 0, void 0, function () {
+                                      var e, n, r, i;
+                                      return P(this, function (t) {
+                                        switch (t.label) {
+                                          case 0:
+                                            return 200 <= (e = l.target).status && e.status < 400
+                                              ? a
+                                                ? ((n = l.target.response),
+                                                  Cu.deposit(l.target),
+                                                  s
+                                                    ? [4, o.updateProgress('Decompressing...')]
+                                                    : [3, 2])
+                                                : [3, 4]
+                                              : [3, 6];
+                                          case 1:
+                                            return (
+                                              t.sent(),
+                                              (r = new Ir.Gunzip(new Uint8Array(n))),
+                                              [2, r.decompress().buffer]
+                                            );
+                                          case 2:
+                                            return [2, n];
+                                          case 3:
+                                            return [3, 5];
+                                          case 4:
+                                            return (
+                                              (r = l.target.responseText),
+                                              Cu.deposit(l.target),
+                                              [2, r]
+                                            );
+                                          case 5:
+                                            return [3, 7];
+                                          case 6:
+                                            throw ((i = e.statusText), Cu.deposit(l.target), i);
+                                          case 7:
+                                            return [2];
+                                        }
+                                      });
+                                    });
+                                  })(r, o, a, n),
+                                ]
+                              );
+                            case 2:
+                              return [2, t.sent()];
+                          }
+                        });
+                      });
+                    }),
+                  );
+                }
+                function ih(t) {
+                  return t && '.' !== t && '?' !== t ? t : null;
+                }
+                function oh(t) {
+                  return (t < 10 ? '0' : '') + t;
+                }
+                function ah(t) {
+                  return Su.Core.Utils.extend({}, t);
+                }
+                function sh(t) {
+                  Pu.Node.forEach(t, function (t) {
+                    var e;
+                    (t = t).tree &&
+                      ((e = t.tree.refs.get(t.ref)) ? e.push(t) : t.tree.refs.set(t.ref, [t]));
+                  });
+                }
+                function lh(t) {
+                  var e = t.tree.context;
+                  Pu.Node.forEachPreorder(t, function (t) {
+                    Nu.Event.Tree.NodeAdded.dispatch(e, t);
+                  });
+                }
+                function uh(o, t) {
+                  var a = o.currentEntity,
+                    s = !1;
+                  return (
+                    Pu.Node.forEach(t, function (t) {
+                      var e, n, r, i;
+                      (e = o.tree),
+                        (n = t),
+                        !(i = e.refs.get(n.ref)) ||
+                          (r = i.indexOf(n)) < 0 ||
+                          ((i[r] = i[i.length - 1]), i.pop(), i.length || e.refs.delete(n.ref)),
+                        Nu.Event.Tree.NodeRemoved.dispatch(o, t),
+                        (t.tree = void 0),
+                        t === a && (s = !0);
+                    }),
+                    s
+                  );
+                }
+                function ch(t, e) {
+                  return t && t.type === e;
+                }
+                function Ah(t) {
+                  return t.version++, t;
+                }
+                function hh(t, e) {
+                  for (var n = t.children, r = e.index, i = n.length - 1; r < i; r++) {
+                    var o = n[r + 1];
+                    o.index--, (n[r] = o);
+                  }
+                  return n.pop(), Ah(t);
+                }
+                function ph(t, e) {
+                  for (var n = 0, r = t.children; n < r.length; n++) ph(r[n], e);
+                  e(t);
+                }
+                function dh(t) {
+                  (t = t || zu.root()),
+                    (t =
+                      void 0 !== t.compile
+                        ? t.compile()
+                        : void 0 !== t.ref
+                          ? zu.byValue(t).compile()
+                          : 'function' == typeof t
+                            ? t
+                            : zu.byRef(t).compile());
+                  return t;
+                }
+                function fh(t) {
+                  return Object.create(Hu.BuilderPrototype, {
+                    compile: { writable: !1, configurable: !1, value: t },
+                  });
+                }
+                function gh(t, l) {
+                  var u = dh(t);
+                  return fh(function () {
+                    return function (t) {
+                      for (var e = [], n = 0, r = u(t); n < r.length; n++)
+                        for (var i = r[n], o = 0, a = l(i); o < a.length; o++) {
+                          var s = a[o];
+                          e.push(s);
+                        }
+                      return e;
+                    };
+                  });
+                }
+                function mh(t, o) {
+                  var a = dh(t);
+                  return fh(function () {
+                    return function (t) {
+                      for (var e = [], n = 0, r = a(t); n < r.length; n++) {
+                        var i = r[n],
+                          i = o(i);
+                        i && e.push(i);
+                      }
+                      return e;
+                    };
+                  });
+                }
+                function vh(t) {
+                  var a = dh(t);
+                  return fh(function () {
+                    return function (t) {
+                      for (
+                        var e = Ou.Core.Utils.FastSet.create(), n = [], r = 0, i = a(t);
+                        r < i.length;
+                        r++
+                      ) {
+                        var o = i[r];
+                        e.has(o.id) || (e.add(o.id), n.push(o));
+                      }
+                      return n;
+                    };
+                  });
+                }
+                function bh(t) {
+                  var e = dh(t);
+                  return fh(function () {
+                    return function (t) {
+                      return [e(t)[0]];
+                    };
+                  });
+                }
+                function yh(t, e) {
+                  return gh(t, function (t) {
+                    return e(t) ? [t] : [];
+                  });
+                }
+                function wh(t) {
+                  return gh(t, function (t) {
+                    return Gu.Node.collect(t);
+                  });
+                }
+                function Eh(t) {
+                  return gh(t, function (t) {
+                    return t.children;
+                  });
+                }
+                function Bh(t, e) {
+                  return yh(t, function (t) {
+                    return t.type === e;
+                  });
+                }
+                function Ch(t, e) {
+                  return vh(
+                    mh(t, function (t) {
+                      return Gu.Node.findAncestor(t, e);
+                    }),
+                  );
+                }
+                function xh(t) {
+                  return vh(
+                    mh(t, function (t) {
+                      return t.parent;
+                    }),
+                  );
+                }
+                function Ih(t, e, n) {
+                  (this.info = t), (this.transform = e), (this.updater = n);
+                }
+                function Mh(t, e, n) {
+                  return new Ju(t, e, n);
+                }
+                function Dh(r, i, o, a, s, l) {
+                  return D(this, void 0, void 0, function () {
+                    var e, n;
+                    return P(this, function (t) {
+                      switch (t.label) {
+                        case 0:
+                          (e = !1), (t.label = 1);
+                        case 1:
+                          return (
+                            t.trys.push([1, 3, , 4]), [4, Wu.Transform.apply(i, r.action).run()]
+                          );
+                        case 2:
+                          t.sent();
+                          try {
+                            o(Wu.Node.Null);
+                          } finally {
+                            s &&
+                              ('string' == typeof s
+                                ? e || i.logger.message(s)
+                                : setTimeout(function () {
+                                    return s.call(null, i, r.context);
+                                  }, 0));
+                          }
+                          return [3, 4];
+                        case 3:
+                          (n = t.sent()), (e = !0);
+                          try {
+                            a(n);
+                          } finally {
+                            l &&
+                              ('string' == typeof l
+                                ? i.logger.error(l)
+                                : setTimeout(function () {
+                                    return l.call(null, i, r.context, n);
+                                  }, 0));
+                          }
+                          return [3, 4];
+                        case 4:
+                          return [2];
+                      }
+                    });
+                  });
+                }
+                function Sh(t, e, n) {
+                  (this.params = t), (this.props = e), (this.transformer = n), (this.isUpdate = !1);
+                }
+                function kh(s, t, l) {
+                  var u,
+                    e = this;
+                  try {
+                    u = t.selector ? [t] : t.compile ? t.compile() : t;
+                  } catch (t) {
+                    return Ku.Core.Computation.reject(t);
+                  }
+                  return Ku.Core.computation(function () {
+                    return D(e, void 0, void 0, function () {
+                      var e, n, r, i, o, a;
+                      return P(this, function (t) {
+                        switch (t.label) {
+                          case 0:
+                            (e = 0), (n = u), (t.label = 1);
+                          case 1:
+                            if (!(e < n.length)) return [3, 8];
+                            (r = n[e]), (o = s.select(r.selector)), (i = 0), (o = o), (t.label = 2);
+                          case 2:
+                            if (!(i < o.length)) return [3, 7];
+                            (a = o[i]), (t.label = 3);
+                          case 3:
+                            return (
+                              t.trys.push([3, 5, , 6]),
+                              [4, (l ? r.transform.update(s, a) : r.transform.apply(s, a)).run()]
+                            );
+                          case 4:
+                            return t.sent(), [3, 6];
+                          case 5:
+                            return t.sent(), [3, 6];
+                          case 6:
+                            return i++, [3, 2];
+                          case 7:
+                            return e++, [3, 1];
+                          case 8:
+                            return [2];
+                        }
+                      });
+                    });
+                  });
+                }
+                function Fh(t, e, n) {
+                  for (
+                    var r,
+                      i,
+                      o,
+                      a,
+                      s = e.structure,
+                      l = s.data.atoms,
+                      u = l.residueIndex,
+                      c = l.chainIndex,
+                      A = l.entityIndex,
+                      h = l.name,
+                      p = l.authName,
+                      d = l.id,
+                      f = l.occupancy,
+                      g = l.tempFactor,
+                      m = l.elementSymbol,
+                      v = l.altLoc,
+                      l = s.positions,
+                      b = l.x,
+                      y = l.y,
+                      w = l.z,
+                      l = s.data.residues,
+                      E = l.name,
+                      B = l.authName,
+                      C = l.seqNumber,
+                      x = l.authSeqNumber,
+                      I = l.insCode,
+                      M = l.isHet,
+                      l = s.data.chains,
+                      U = l.asymId,
+                      N = l.authAsymId,
+                      P = s.data.entities.entityId,
+                      D = -1,
+                      S = -1,
+                      k = -1,
+                      F = [],
+                      Q = [],
+                      _ = [],
+                      T = [],
+                      R = 0;
+                    R < n.length;
+                    R++
+                  )
+                    (r = n[R]),
+                      e.hasAtom(r) &&
+                        (D !== A[r] && ((D = A[r]), F.push((i = { index: D, entityId: P[D] }))),
+                        S !== c[r] &&
+                          ((S = c[r]),
+                          Q.push((o = { index: S, asymId: U[S], authAsymId: N[S], entity: i }))),
+                        k !== u[r] &&
+                          ((k = u[r]),
+                          _.push(
+                            (a = {
+                              index: k,
+                              name: E[k],
+                              authName: B[k],
+                              seqNumber: C[k],
+                              authSeqNumber: x[k],
+                              insCode: I[k],
+                              isHet: M[k],
+                              chain: o,
+                            }),
+                          )),
+                        T.push({
+                          index: r,
+                          id: d[r],
+                          name: h[r],
+                          authName: p[r],
+                          elementSymbol: m[r],
+                          occupancy: f[r],
+                          tempFactor: g[r],
+                          x: b[r],
+                          y: y[r],
+                          z: w[r],
+                          altLoc: v[r],
+                          residue: a,
+                        }));
+                  return {
+                    modelRef: t.ref,
+                    moleculeId: s.id,
+                    modelId: s.modelId,
+                    atoms: T,
+                    residues: _,
+                    chains: Q,
+                    entities: F,
+                  };
+                }
+                function Qh(t) {
+                  var e = [];
+                  return (
+                    1 !== t.occupancy && e.push('occupancy ' + rc.Utils.round(t.occupancy, 2)),
+                    t.altLoc && e.push('alt. loc ' + t.altLoc),
+                    e.length ? ' <small>[' + e.join(', ') + ']</small>' : ''
+                  );
+                }
+                function _h(t) {
+                  return (
+                    '<span>' +
+                    t.authName +
+                    ' ' +
+                    t.chain.authAsymId +
+                    ' ' +
+                    t.authSeqNumber +
+                    (null !== t.insCode ? ' i: ' + t.insCode : '') +
+                    '</span>'
+                  );
+                }
+                function Th(t) {
+                  return '1' === t.modelId
+                    ? '<span><small>[' + t.moleculeId + ']</small></span>'
+                    : '<span><small>[' + t.moleculeId + ':' + t.modelId + ']</small></span>';
+                }
+                function Rh(e, n) {
+                  return function (t) {
+                    return n[e[t]];
+                  };
+                }
+                function Uh(n, r) {
+                  return function (t, e) {
+                    (t = lc.Utils.Molecule.findModel(t).props.model),
+                      (t = n(t)),
+                      (t = C.Theme.createPalleteMapping(Rh(t.index, t.property), r));
+                    return C.Theme.createMapping(t, e);
+                  };
+                }
+                function Nh(o, a, s) {
+                  return function (t, e) {
+                    var n = lc.Utils.Molecule.findModel(t),
+                      r = n.tree && n.tree.context;
+                    if (r) {
+                      var i = r.entityCache.get(n, 'theme-mapping-' + o);
+                      if (i) return C.Theme.createMapping(i, e);
+                    }
+                    (i = n.props.model),
+                      (n = a(i)),
+                      (i = C.Theme.createPalleteMapping(Rh(n.index, n.property), s));
+                    return (
+                      r && r.entityCache.set(t, 'theme-mapping-' + o, i),
+                      C.Theme.createMapping(i, e)
+                    );
+                  };
+                }
+                function Ph(t, e) {
+                  var n, r;
+                  return (
+                    e &&
+                      e.colors &&
+                      !e.colors.get('Bond') &&
+                      e.colors.get('Uniform') &&
+                      ((n = e.colors),
+                      (e = lc.Utils.assign({}, e)),
+                      (r = sc.Core.Utils.FastMap.create()),
+                      (e.colors = r),
+                      n.forEach(function (t, e) {
+                        return r.set(e, t);
+                      }),
+                      r.set('Bond', e.colors.get('Uniform'))),
+                    C.Theme.createUniform(e)
+                  );
+                }
+                function Lh(n, r, i) {
+                  return function (t, e) {
+                    (t = lc.Utils.Molecule.findModel(t).props.model),
+                      (t = n(t)),
+                      (t = C.Theme.createColorMapMapping(Rh(t.index, t.property), r, i));
+                    return C.Theme.createMapping(t, e);
+                  };
+                }
+                function Yh(t, e) {
+                  var n = e.r,
+                    r = e.g,
+                    e = e.b;
+                  (this.residueIndex = t.data.atoms.residueIndex),
+                    (this.r = n),
+                    (this.g = r),
+                    (this.b = e);
+                }
+                function Oh(r, i) {
+                  return function (t, e) {
+                    var t = lc.Utils.Molecule.findModel(t).props.model,
+                      n = (function (t, e, n) {
+                        for (
+                          var r = t.data.residues.count,
+                            i = (r = {
+                              r: new Float32Array(r),
+                              g: new Float32Array(r),
+                              b: new Float32Array(r),
+                            }).r,
+                            o = r.g,
+                            a = r.b,
+                            s = e(t),
+                            l = s.count,
+                            u = s.residueStartIndex,
+                            c = s.residueEndIndex,
+                            A = uc.RainbowPalette.length - 1,
+                            h = C.Color.fromHex(0),
+                            p = sc.Core.Utils.FastMap.create(),
+                            d = 0;
+                          d < l;
+                          d++
+                        ) {
+                          var f = n(s, d),
+                            g = c[d] - u[d];
+                          p.has(f) ? (p.get(f).count += g) : p.set(f, { index: 0, count: g });
+                        }
+                        for (
+                          p.forEach(function (t) {
+                            return (t.count = Math.max(t.count - 1, 1));
+                          }),
+                            d = 0;
+                          d < l;
+                          d++
+                        )
+                          for (
+                            var m = u[d], g = c[d] - m, v = p.get(n(s, d)), b = v.count, y = 0;
+                            y < g;
+                            y++
+                          ) {
+                            var w = (A * v.index) / b,
+                              E = Math.floor(w),
+                              B = Math.ceil(w);
+                            C.Color.interpolate(
+                              uc.RainbowPalette[E],
+                              uc.RainbowPalette[B],
+                              w - E,
+                              h,
+                            ),
+                              (i[m + y] = h.r),
+                              (o[m + y] = h.g),
+                              (a[m + y] = h.b),
+                              v.index++;
+                          }
+                        return { r: i, g: o, b: a };
+                      })(t, r, i),
+                      t = new cc(t, n);
+                    return C.Theme.createMapping(t, e);
+                  };
+                }
+                function Gh(t, e, n) {
+                  return {
+                    tessalation: t,
+                    drawingType: e
+                      ? mc.Cartoons.CartoonsModelType.AlphaTrace
+                      : mc.Cartoons.CartoonsModelType.Default,
+                    showDirectionCones: n,
+                  };
+                }
+                function zh(t, e, n) {
+                  var r = void 0;
+                  if (n.customMaxBondLengths) {
+                    var i = Object.getOwnPropertyNames(n.customMaxBondLengths);
+                    0 < i.length && (r = hc.Core.Utils.FastMap.create());
+                    for (var o = 0, a = i; o < a.length; o++) {
+                      var s = a[o];
+                      r.set(s, n.customMaxBondLengths[s]);
+                    }
+                  }
+                  return {
+                    tessalation: t,
+                    bondRadius: n.bondRadius,
+                    hideBonds: !1,
+                    hideHydrogens: !!n.hideHydrogens,
+                    atomRadius: (function (t, e) {
+                      if (
+                        (void 0 === e.vdwScaling &&
+                          (e.vdwScaling = fc.Default.BallsAndSticksParams.vdwScaling),
+                        void 0 === e.atomRadius &&
+                          (e.atomRadius = fc.Default.BallsAndSticksParams.atomRadius),
+                        !e.useVDW)
+                      )
+                        return (
+                          (n = e.atomRadius),
+                          function () {
+                            return n;
+                          }
+                        );
+                      var n,
+                        r,
+                        i,
+                        t = pc.Utils.vdwRadiusFromElementSymbol(t);
+                      return (
+                        (r = e.vdwScaling),
+                        (i = t),
+                        function (t) {
+                          return r * i(t);
+                        }
+                      );
+                    })(e, n),
+                    customMaxBondLengths: r,
+                  };
+                }
+                function Hh(t, e, n) {
+                  var r = pc.Utils.Molecule.findModel(t).props.model,
+                    i = (pc.Entity.isMoleculeModel(t) ? t.props.model.data.atoms : t.props).indices;
+                  if (i.length) {
+                    (o = e.params.detail), (a = i.length);
+                    var o,
+                      a,
+                      s =
+                        'Automatic' === o
+                          ? a < 250
+                            ? 5
+                            : a < 1e3
+                              ? 4
+                              : a < 75e3
+                                ? 3
+                                : a < 25e4
+                                  ? 2
+                                  : a < 6e5
+                                    ? 1
+                                    : 0
+                          : ((a = fc.DetailTypes.indexOf(o) - 1), Math.max(a, 0));
+                    switch (e.type) {
+                      case 'Cartoons':
+                        return mc.Cartoons.Model.create(t, {
+                          model: r,
+                          atomIndices: i,
+                          theme: n,
+                          queryContext: pc.Utils.Molecule.findQueryContext(t),
+                          params: Gh(s, !1, e.params.showDirectionCone),
+                        });
+                      case 'Calpha':
+                        return mc.Cartoons.Model.create(t, {
+                          model: r,
+                          atomIndices: i,
+                          theme: n,
+                          queryContext: pc.Utils.Molecule.findQueryContext(t),
+                          params: Gh(s, !0, e.params.showDirectionCone),
+                        });
+                      case 'BallsAndSticks':
+                        return gc.Molecule.BallsAndSticks.Model.create(t, {
+                          model: r,
+                          atomIndices: i,
+                          theme: n,
+                          params: zh(s, r, e.params),
+                        });
+                      case 'VDWBalls':
+                        return gc.Molecule.BallsAndSticks.Model.create(t, {
+                          model: r,
+                          atomIndices: i,
+                          theme: n,
+                          params: {
+                            tessalation: s,
+                            bondRadius: 0,
+                            hideBonds: !0,
+                            atomRadius: pc.Utils.vdwRadiusFromElementSymbol(r),
+                          },
+                        });
+                      default:
+                        return;
+                    }
+                  }
+                }
+                function jh(c, A, h) {
+                  var t = this;
+                  return pc.Task.create(
+                    'Molecular Surface (' + c.props.label + ')',
+                    dc.Style.getTaskType(h),
+                    function (u) {
+                      return D(t, void 0, void 0, function () {
+                        var i, o, a, s, l;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return (
+                                (s = pc.Utils.Molecule.findModel(c).props.model),
+                                (l = (
+                                  pc.Entity.isMoleculeModel(c) ? c.props.model.data.atoms : c.props
+                                ).indices),
+                                (i = h.params),
+                                [
+                                  4,
+                                  hc.Core.Geometry.MolecularSurface.computeMolecularSurfaceAsync({
+                                    positions: s.positions,
+                                    atomIndices: l,
+                                    parameters: {
+                                      atomRadius: pc.Utils.vdwRadiusFromElementSymbol(s),
+                                      density:
+                                        ((n = s),
+                                        (r = l),
+                                        (e = i).automaticDensity
+                                          ? ((r = (n = pc.Utils.Molecule.getBox(n, r, 0))
+                                              .bottomLeft),
+                                            (n = n.topRight),
+                                            (n = hc.Core.Geometry.LinearAlgebra.Vector3.sub(
+                                              n,
+                                              n,
+                                              r,
+                                            )),
+                                            1.2 <
+                                            (r = Math.pow(
+                                              Math.pow(99, 3) / (n[0] * n[1] * n[2]),
+                                              1 / 3,
+                                            ))
+                                              ? 1.2
+                                              : r < 0.1
+                                                ? 0.1
+                                                : r)
+                                          : void 0 !== e.density
+                                            ? +e.density
+                                            : 1),
+                                      probeRadius: i.probeRadius,
+                                      smoothingIterations: i.smoothing,
+                                      interactive: !0,
+                                    },
+                                  }).run(u),
+                                ]
+                              );
+                            case 1:
+                              return (
+                                (o = t.sent()),
+                                (a = h.theme.template.provider(
+                                  pc.Utils.Molecule.findModel(c),
+                                  dc.Theme.getProps(h.theme),
+                                )),
+                                [4, u.updateProgress('Creating visual...')]
+                              );
+                            case 2:
+                              return (
+                                t.sent(),
+                                [
+                                  4,
+                                  hc.Visualization.Surface.Model.create(c, {
+                                    surface: o.surface,
+                                    theme: a,
+                                    parameters: { isWireframe: h.params.isWireframe },
+                                  }).run(u),
+                                ]
+                              );
+                            case 3:
+                              return (
+                                (s = t.sent()),
+                                (l = 'Surface, ' + pc.Utils.round(i.probeRadius, 2) + ' â„« probe'),
+                                [
+                                  2,
+                                  pc.Entity.Molecule.Visual.create(A, {
+                                    label: l,
+                                    model: s,
+                                    style: h,
+                                    isSelectable: !h.isNotSelectable,
+                                  }),
+                                ]
+                              );
+                          }
+                          var e, n, r;
+                        });
+                      });
+                    },
+                  );
+                }
+                function Vh(t, e, n) {
+                  (this.id = t), (this.info = Fc.Utils.assign({}, e, { traits: n }));
+                }
+                function qh(t) {
+                  t.tree &&
+                    (_c.Event.Tree.NodeUpdated.dispatch(t.tree.context, t),
+                    t.tree.context.currentEntity === t &&
+                      _c.Event.Entity.CurrentChanged.dispatch(t.tree.context, t));
+                }
+                function Wh(t) {
+                  if (t) {
+                    for (var e, n, r = 0, i = 0, o = 0, a = t.children; o < a.length; o++)
+                      0 === (n = a[o].state.visibility) ? r++ : 2 === n && i++;
+                    (e = r === t.children.length ? 0 : i === t.children.length ? 2 : 1) !==
+                      t.state.visibility &&
+                      (_c.Tree.Node.withState(t, (n = { visibility: e })), qh(t)),
+                      t.parent !== t && Wh(t.parent);
+                  }
+                }
+                function Jh(t) {
+                  var e = void 0,
+                    n = void 0;
+                  t.subscribe(function (t) {
+                    n && (n.applySelection(e, 2), (e = n = void 0)),
+                      !h.Interactivity.isEmpty(t) &&
+                        h.Entity.isVisual(t.source) &&
+                        ((n = t.source.props.model), (e = t.elements), n.applySelection(e, 1));
+                  });
+                }
+                function Kh(t, o) {
+                  t.subscribe(function (t) {
+                    var e, n, r, i;
+                    h.Interactivity.Molecule.isMoleculeModelInteractivity(t)
+                      ? ((e = o),
+                        (n = t),
+                        (i = h.Utils.Molecule.findModel(n.source).props.model) &&
+                          ((r = n.elements),
+                          1 === n.elements.length &&
+                            (r = h.Utils.Molecule.getResidueIndices(i, n.elements[0])),
+                          (r = h.Utils.Molecule.getCentroidAndRadius(i, r, oA)),
+                          1 === n.elements.length &&
+                            ((n = n.elements[0]),
+                            (oA[0] = i.positions.x[n]),
+                            (oA[1] = i.positions.y[n]),
+                            (oA[2] = i.positions.z[n])),
+                          e.scene.camera.focusOnPoint(
+                            rA.Core.Geometry.LinearAlgebra.Vector3.toObj(oA),
+                            Math.max(r, 7),
+                          )))
+                      : ((i = o),
+                        (n = t),
+                        h.Interactivity.isEmpty(n) ||
+                          'Visual' !== n.source.type.info.typeClass ||
+                          ((e = n.source.props.model) &&
+                            ((n = e.getBoundingSphereOfSelection(n.elements))
+                              ? i.scene.camera.focusOnPoint(
+                                  rA.Core.Geometry.LinearAlgebra.Vector3.toObj(n.center),
+                                  Math.max(n.radius, 7),
+                                )
+                              : i.scene.camera.focusOnModel(e))));
+                  });
+                }
+                function Zh(t, e, n, r, i, o, a) {
+                  if (i.transformer === n)
+                    try {
+                      var s = window[a],
+                        l = o(i.params, r);
+                      s && void 0 !== l && s('send', 'event', e, l, t.id);
+                    } catch (t) {}
+                }
+                function Xh(t, e) {
+                  return t.format.name;
+                }
+                function $h(t) {
+                  return t.url;
+                }
+                function tp(t) {
+                  return t.queryString;
+                }
+                function ep(t, e) {
+                  if (!pA.Tree.Node.isHidden(e)) {
+                    e = pA.Utils.Molecule.findModel(e);
+                    if (e) return e.props.model.id + ' $(name)$ ' + t.name;
+                  }
+                }
+                function np(t, e) {
+                  if (!pA.Tree.Node.isHidden(e)) {
+                    e = pA.Utils.Molecule.findModel(e);
+                    if (e)
+                      return e.props.model.id + ' $(type)$ ' + t.type + ' $(radius)$ ' + t.radius;
+                  }
+                }
+                function rp(t, e) {
+                  e = pA.Utils.Molecule.findModel(e);
+                  if (e) return e.props.model.id + ' $(server)$ ' + t.server;
+                }
+                function ip(t, e) {
+                  if (!pA.Tree.Node.isHidden(e)) return t.style.type;
+                }
+                function op(t) {
+                  return '$(format)$ ' + t.format;
+                }
+                function ap(t, e) {
+                  return t.queryString;
+                }
+                function sp(t, e, n) {
+                  var r =
+                    bA.call(this, t, {
+                      isExpanded: !1,
+                      hideControls: !1,
+                      collapsedControlsLayout: mA.Outside,
+                      regionStates: {},
+                    }) || this;
+                  return (
+                    (r.targets = e),
+                    (r.root = n),
+                    (r.rootState = void 0),
+                    fA.Command.Layout.SetState.getStream(r.context).subscribe(function (t) {
+                      return r.update(t.data);
+                    }),
+                    (r.expandedViewport = document.createElement('meta')),
+                    (r.expandedViewport.name = 'viewport'),
+                    (r.expandedViewport.content =
+                      'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'),
+                    r
+                  );
+                }
+                (Au = F = F || {}),
+                  (hu = Au.Visualization || (Au.Visualization = {})),
+                  (r = hu.Primitive || (hu.Primitive = {})),
+                  (pu = Au.Core.Geometry.LinearAlgebra),
+                  (r.createSphereSurface = function (t) {
+                    var t = t.tessalation,
+                      t = new hu.THREE.IcosahedronGeometry(1, void 0 === t ? 0 : t),
+                      e = hu.GeometryHelper.toSurface(t);
+                    return t.dispose(), e;
+                  }),
+                  (r.createTubeSurface = function (t) {
+                    var e = t.a,
+                      n = t.b,
+                      r = void 0 === (r = t.slices) ? 12 : r,
+                      e = new hu.THREE.TubeGeometry(
+                        new hu.THREE.LineCurve3(
+                          new hu.THREE.Vector3(e[0], e[1], e[2]),
+                          new hu.THREE.Vector3(n[0], n[1], n[2]),
+                        ),
+                        2,
+                        t.radius,
+                        r,
+                      ),
+                      n = hu.GeometryHelper.toSurface(e);
+                    return e.dispose(), n;
+                  }),
+                  (du = [0, 1, 0]),
+                  (fu = pu.Matrix4.zero()),
+                  (gu = pu.Matrix4.zero()),
+                  (mu = pu.Matrix4.zero()),
+                  (r.createCone = function (t) {
+                    var e = t.a,
+                      n = t.b,
+                      r = t.radius,
+                      t = void 0 === (t = t.slices) ? 12 : t,
+                      i = pu.Vector3.distance(e, n),
+                      r = new hu.THREE.CylinderGeometry(0, r, i, t, 1),
+                      t = hu.GeometryHelper.toSurface(r),
+                      r = (r.dispose(), pu.Vector3.sub(n, n, e));
+                    return (
+                      pu.Vector3.makeRotation(fu, du, r),
+                      pu.Matrix4.fromTranslation(mu, [0, i / 2, 0]),
+                      pu.Matrix4.fromTranslation(gu, e),
+                      Au.Core.Geometry.Surface.transformImmediate(
+                        t,
+                        pu.Matrix4.mul3(gu, gu, fu, mu),
+                      ),
+                      Au.Core.Geometry.Surface.computeNormalsImmediate(t),
+                      t
+                    );
+                  }),
+                  (r.createArrow = function (t) {
+                    var e = t.id,
+                      n = t.a,
+                      r = t.b,
+                      i = t.radius,
+                      o = void 0 === (o = t.slices) ? 12 : o,
+                      a = t.coneHeight,
+                      t = t.coneRadius,
+                      a = pu.Vector3.distance(n, r) - a,
+                      s = pu.Vector3.normalize(r, pu.Vector3.sub(r, r, n));
+                    return [
+                      {
+                        type: 'Cone',
+                        a: (a = [n[0] + a * s[0], n[1] + a * s[1], n[2] + a * s[2]]),
+                        b: r,
+                        id: e,
+                        radius: t,
+                        slices: o,
+                      },
+                      { type: 'Tube', a: n, b: a, id: e, radius: i, slices: o },
+                    ];
+                  }),
+                  (vu = (function () {
+                    for (
+                      var t = hu.GeometryHelper.toSurface(new hu.THREE.BoxGeometry(1, 1, 1)), e = 0;
+                      e < t.vertices.length;
+                      e += 3
+                    )
+                      t.vertices[e + 2] += 0.5;
+                    return t;
+                  })()),
+                  (r.createDashes = function (t) {
+                    var e = t.id,
+                      n = t.a,
+                      r = t.b,
+                      i = t.width,
+                      o = t.dashSize,
+                      t = t.spaceSize,
+                      a = pu.Vector3.distance(n, r);
+                    if (0 === a) return [];
+                    for (
+                      var s = o + (void 0 !== t ? t : o),
+                        l = pu.Vector3.sub(pu.Vector3(), r, n),
+                        u = (pu.Vector3.normalize(l, l), pu.Vector3.fromValues(i, i, o)),
+                        t = pu.Vector3.fromValues(0, 0, 1),
+                        c = pu.Vector3.makeRotation(pu.Matrix4(), t, l),
+                        A = [],
+                        h = (pu.Vector3.scale(l, l, s), pu.Vector3.copy(pu.Vector3(), n)),
+                        p = 0;
+                      p < a;
+                      p += s
+                    )
+                      a < p + o && (u = pu.Vector3.fromValues(i, i, a - p)),
+                        A.push({
+                          type: 'Surface',
+                          id: e,
+                          surface: vu,
+                          rotation: c,
+                          scale: u,
+                          translation: pu.Vector3.clone(h),
+                        }),
+                        pu.Vector3.add(h, h, l);
+                    return A;
+                  }),
+                  (bu = F = F || {}),
+                  (function (R) {
+                    var U = bu.Core.Geometry.LinearAlgebra,
+                      N = bu.Core.Geometry.Surface;
+                    function p(T) {
+                      var t = this;
+                      return bu.Core.computation(function (_) {
+                        return D(t, void 0, void 0, function () {
+                          var e,
+                            n,
+                            r,
+                            i,
+                            o,
+                            a,
+                            s,
+                            l,
+                            u,
+                            c,
+                            A,
+                            h,
+                            p,
+                            d,
+                            f,
+                            g,
+                            m,
+                            v,
+                            b,
+                            y,
+                            w,
+                            E,
+                            B,
+                            C,
+                            x,
+                            I,
+                            M,
+                            D,
+                            S,
+                            k,
+                            F,
+                            Q;
+                          return P(this, function (t) {
+                            switch (t.label) {
+                              case 0:
+                                return [4, _.updateProgress('Building surface...')];
+                              case 1:
+                                for (
+                                  t.sent(),
+                                    e = bu.Core.Utils.FastMap.create(),
+                                    n = [],
+                                    r = 0,
+                                    i = T;
+                                  r < i.length;
+                                  r++
+                                )
+                                  switch ((I = i[r]).type) {
+                                    case 'Sphere':
+                                      e.has(I.tessalation || 0)
+                                        ? n.push(e.get(I.tessalation || 0))
+                                        : ((o = R.createSphereSurface(I)),
+                                          e.set(I.tessalation || 0, o),
+                                          n.push(o));
+                                      break;
+                                    case 'Tube':
+                                      (o = R.createTubeSurface(I)), n.push(o);
+                                      break;
+                                    case 'Cone':
+                                      n.push(R.createCone(I));
+                                      break;
+                                    case 'Surface':
+                                      n.push(I.surface);
+                                  }
+                                for (
+                                  a = { vertexCount: 0, triangleCount: 0 }, s = 0, l = n;
+                                  s < l.length;
+                                  s++
+                                )
+                                  (I = l[s]),
+                                    (a.vertexCount += I.vertexCount),
+                                    (a.triangleCount += I.triangleCount);
+                                for (
+                                  u = new Float32Array(3 * a.vertexCount),
+                                    c = new Float32Array(3 * a.vertexCount),
+                                    A = new Uint32Array(3 * a.triangleCount),
+                                    h = new Int32Array(a.vertexCount),
+                                    g = f = d = p = 0,
+                                    m = U.Vector3.zero(),
+                                    v = U.Matrix4.zero(),
+                                    b = U.Matrix4.zero(),
+                                    y = U.Matrix4.zero(),
+                                    w = U.Matrix4.zero(),
+                                    C = B = 0,
+                                    x = T;
+                                  C < x.length;
+                                  C++
+                                ) {
+                                  switch (((I = x[C]), (M = n[B++]), (D = (p / 3) | 0), I.type)) {
+                                    case 'Sphere':
+                                      for (
+                                        E = M.vertices,
+                                          U.Matrix4.fromScaling(v, [I.radius, I.radius, I.radius]),
+                                          U.Matrix4.fromTranslation(b, I.center),
+                                          U.Matrix4.mul(w, b, v),
+                                          F = 0,
+                                          Q = 3 * M.vertexCount;
+                                        F < Q;
+                                        F += 3
+                                      )
+                                        (m[0] = E[F]),
+                                          (m[1] = E[F + 1]),
+                                          (m[2] = E[F + 2]),
+                                          U.Vector3.transformMat4(m, m, w),
+                                          (u[p++] = m[0]),
+                                          (u[p++] = m[1]),
+                                          (u[p++] = m[2]);
+                                      for (S = M.normals, F = 0, Q = S.length; F < Q; F++)
+                                        c[d++] = S[F];
+                                      break;
+                                    case 'Tube':
+                                    case 'Cone':
+                                      for (E = M.vertices, F = 0, Q = E.length; F < Q; F++)
+                                        u[p++] = E[F];
+                                      for (S = M.normals, F = 0, Q = S.length; F < Q; F++)
+                                        c[d++] = S[F];
+                                      break;
+                                    case 'Surface':
+                                      if (
+                                        (M.normals || N.computeNormalsImmediate(M),
+                                        (E = M.vertices),
+                                        I.rotation || I.scale || I.translation)
+                                      ) {
+                                        for (
+                                          U.Matrix4.fromScaling(v, I.scale || [1, 1, 1]),
+                                            U.Matrix4.fromTranslation(
+                                              b,
+                                              I.translation || [0, 0, 0],
+                                            ),
+                                            I.rotation
+                                              ? U.Matrix4.copy(y, I.rotation)
+                                              : U.Matrix4.fromIdentity(y),
+                                            U.Matrix4.mul3(w, b, y, v),
+                                            F = 0,
+                                            Q = E.length;
+                                          F < Q;
+                                          F += 3
+                                        )
+                                          (m[0] = E[F]),
+                                            (m[1] = E[F + 1]),
+                                            (m[2] = E[F + 2]),
+                                            U.Vector3.transformMat4(m, m, w),
+                                            (u[p++] = m[0]),
+                                            (u[p++] = m[1]),
+                                            (u[p++] = m[2]);
+                                        for (
+                                          U.Matrix4.mul(w, y, v),
+                                            S = M.normals,
+                                            F = 0,
+                                            Q = S.length;
+                                          F < Q;
+                                          F += 3
+                                        )
+                                          (m[0] = S[F]),
+                                            (m[1] = S[F + 1]),
+                                            (m[2] = S[F + 2]),
+                                            U.Vector3.transformMat4(m, m, w),
+                                            U.Vector3.normalize(m, m),
+                                            (c[d++] = m[0]),
+                                            (c[d++] = m[1]),
+                                            (c[d++] = m[2]);
+                                      } else {
+                                        for (F = 0, Q = E.length; F < Q; F++) u[p++] = E[F];
+                                        for (S = M.normals, F = 0, Q = S.length; F < Q; F++)
+                                          c[d++] = S[F];
+                                      }
+                                  }
+                                  for (k = M.triangleIndices, F = 0, Q = k.length; F < Q; F++)
+                                    A[f++] = D + k[F];
+                                  for (F = 0, Q = M.vertexCount; F < Q; F++) h[g++] = I.id;
+                                }
+                                return [
+                                  2,
+                                  {
+                                    vertices: u,
+                                    vertexCount: a.vertexCount,
+                                    triangleIndices: A,
+                                    triangleCount: a.triangleCount,
+                                    normals: c,
+                                    annotation: h,
+                                  },
+                                ];
+                            }
+                          });
+                        });
+                      });
+                    }
+                    function t() {
+                      this.shapes = [];
+                    }
+                    (t.prototype.add = function (t) {
+                      return this.shapes.push(t), this;
+                    }),
+                      (t.prototype.buildSurface = function () {
+                        for (var t = !1, e = 0, n = this.shapes; e < n.length; e++)
+                          if ('DashedLine' === (r = n[e]).type || 'Arrow' === r.type) {
+                            t = !0;
+                            break;
+                          }
+                        if (t) {
+                          for (var r, i = [], o = 0, a = this.shapes; o < a.length; o++)
+                            if ('DashedLine' === (r = a[o]).type)
+                              for (var s = 0, l = R.createDashes(r); s < l.length; s++) {
+                                var u = l[s];
+                                i[i.length] = u;
+                              }
+                            else if ('Arrow' === r.type)
+                              for (var c = 0, A = R.createArrow(r); c < A.length; c++) {
+                                var h = A[c];
+                                i[i.length] = h;
+                              }
+                            else i[i.length] = r;
+                          return p(i);
+                        }
+                        return p(this.shapes);
+                      }),
+                      (t.create = function () {
+                        return new t();
+                      }),
+                      (R.Builder = t);
+                  })(
+                    (n = bu.Visualization || (bu.Visualization = {})).Primitive ||
+                      (n.Primitive = {}),
+                  ),
+                  (((e = F = F || {}).Bootstrap || (e.Bootstrap = {})).VERSION = {
+                    number: '1.4.4',
+                    date: 'May 31 2018',
+                  }),
+                  (t = F = F || {}),
+                  ((r = t.Bootstrap || (t.Bootstrap = {})).Immutable = E),
+                  (r.Rx = t.Core.Rx),
+                  (r.Zlib = Ir),
+                  (n = (n = F = F || {}).Bootstrap || (n.Bootstrap = {})),
+                  ((n = (yu = n.Utils || (n.Utils = {})).LRUCache || (yu.LRUCache = {})).entry =
+                    XA),
+                  (n.create = function (t) {
+                    return { entries: new yu.LinkedList(), capacity: Math.max(1, t) };
+                  }),
+                  (n.get = function (t, e) {
+                    for (var n = t.entries.first; n; n = n.next)
+                      if (n.key === e) return t.entries.remove(n), t.entries.addLast(n), n.data;
+                  }),
+                  (n.set = function (t, e, n) {
+                    return (
+                      t.entries.count >= t.capacity && t.entries.remove(t.entries.first),
+                      t.entries.addLast(XA(e, n)),
+                      n
+                    );
+                  }),
+                  (wu = F = F || {}),
+                  (Eu = wu.Bootstrap || (wu.Bootstrap = {})),
+                  (e = Eu.Utils || (Eu.Utils = {})),
+                  ((E = Bu = e.DataCompressionMethod || (e.DataCompressionMethod = {}))[
+                    (E.None = 0)
+                  ] = 'None'),
+                  (E[(E.Gzip = 1)] = 'Gzip'),
+                  (e.readStringFromFile = function (t) {
+                    return eh(t, !1);
+                  }),
+                  (e.readArrayBufferFromFile = function (t) {
+                    return eh(t, !0);
+                  }),
+                  (e.readFromFile = function (t, e) {
+                    return eh(t, 'Binary' === e);
+                  }),
+                  (e.ajaxGetString = function (t, e) {
+                    return rh(e, t, !1, !1);
+                  }),
+                  (e.ajaxGetArrayBuffer = function (t, e) {
+                    return rh(e, t, !0, !1);
+                  }),
+                  (e.ajaxGet = function (t) {
+                    return rh(t.title, t.url, 'Binary' === t.type, t.compression === Bu.Gzip);
+                  }),
+                  (nh.get = function () {
+                    return this.pool.length ? this.pool.pop() : new XMLHttpRequest();
+                  }),
+                  (nh.emptyFunc = function () {}),
+                  (nh.deposit = function (t) {
+                    this.pool.length < this.poolSize &&
+                      ((t.onabort = nh.emptyFunc),
+                      (t.onerror = nh.emptyFunc),
+                      (t.onload = nh.emptyFunc),
+                      (t.onprogress = nh.emptyFunc),
+                      this.pool.push(t));
+                  }),
+                  (nh.pool = []),
+                  (nh.poolSize = 15),
+                  (Cu = nh),
+                  (xu = F = F || {}),
+                  (t =
+                    (t = (t = xu.Bootstrap || (xu.Bootstrap = {})).Utils || (t.Utils = {})).Query ||
+                    (t.Query = {})),
+                  (Iu =
+                    /^\s*([1-9][0-9]*)\s+([_.;:""&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]+)(?:\s+i[:]([.]|[a-zA-Z0-9]))?(?:\s+e[:]([.]|[a-zA-Z0-9]+))?/),
+                  (t.parseAuthResidueId = function (t, e) {
+                    return (
+                      (t = t
+                        .split((e = void 0 === e ? ',' : e))
+                        .map(function (t) {
+                          var e, n, r;
+                          if ((t = t.match(Iu)))
+                            return (
+                              (e = 0 | +t[1]),
+                              (n = ih(t[2])),
+                              (r = ih(t[3])),
+                              { entityId: ih(t[4]), authSeqNumber: e, authAsymId: n, insCode: r }
+                            );
+                        })
+                        .filter(function (t) {
+                          return !!t;
+                        })),
+                      xu.Core.Structure.Query.Builder.toQuery(
+                        (e = xu.Core.Structure.Query).residues.apply(e, t),
+                      )
+                    );
+                  }),
+                  (function (t) {
+                    var e;
+                    n.prototype.bind = function (t) {
+                      return this.isError ? this : t(this.value);
+                    };
+                    function n(t, e, n) {
+                      (this.isError = t), (this.value = e), (this.error = n);
+                    }
+                    (t.ValueOrError = n),
+                      ((e = t.ValueOrError || (t.ValueOrError = {})).error = function (t) {
+                        return new e(!0, void 0, t);
+                      }),
+                      (e.value = function (t) {
+                        return new e(!0, t);
+                      });
+                  })(
+                    (r =
+                      (r = (r = F = F || {}).Bootstrap || (r.Bootstrap = {})).Utils ||
+                      (r.Utils = {})).Query || (r.Query = {}),
+                  ),
+                  (function (t) {
+                    function e() {
+                      (this.count = 0), (this.first = null), (this.last = null);
+                    }
+                    (e.prototype.addFirst = function (t) {
+                      (t.inList = !0),
+                        this.first && (this.first.previous = t),
+                        (t.next = this.first),
+                        (this.first = t),
+                        this.count++;
+                    }),
+                      (e.prototype.addLast = function (t) {
+                        null != this.last && (this.last.next = t),
+                          (t.previous = this.last),
+                          (this.last = t),
+                          null == this.first && (this.first = t),
+                          (t.inList = !0),
+                          this.count++;
+                      }),
+                      (e.prototype.remove = function (t) {
+                        t.inList &&
+                          ((t.inList = !1),
+                          null !== t.previous
+                            ? (t.previous.next = t.next)
+                            : null === t.previous && (this.first = t.next),
+                          null !== t.next
+                            ? (t.next.previous = t.previous)
+                            : null === t.next && (this.last = t.previous),
+                          (t.next = null),
+                          (t.previous = null),
+                          this.count--);
+                      }),
+                      (t.LinkedList = e);
+                  })(
+                    (n = (n = F = F || {}).Bootstrap || (n.Bootstrap = {})).Utils || (n.Utils = {}),
+                  ),
+                  ((E =
+                    (E = (E = F = F || {}).Bootstrap || (E.Bootstrap = {})).Utils ||
+                    (E.Utils = {})).formatTime = function (t) {
+                    var e = t.getHours(),
+                      n = t.getMinutes(),
+                      t = t.getSeconds();
+                    return e + ':' + oh(n) + ':' + oh(t);
+                  }),
+                  (E.round = function (t, e) {
+                    return (e = Math.pow(10, e)), Math.round(e * t) / e;
+                  }),
+                  (E.formatProgress = function (t) {
+                    if (t.isIndeterminate) return t.message;
+                    var e = ((100 * t.current) / t.max).toFixed(2);
+                    return t.message + ' ' + e + '%';
+                  }),
+                  (E.generateUUID = function () {
+                    var n = new Date().getTime();
+                    return (
+                      window.performance &&
+                        'function' == typeof window.performance.now &&
+                        (n += performance.now()),
+                      'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (t) {
+                        var e = (n + 16 * Math.random()) % 16 | 0;
+                        return (n = Math.floor(n / 16)), ('x' == t ? e : (3 & e) | 8).toString(16);
+                      })
+                    );
+                  }),
+                  (Mu = F = F || {}),
+                  (e = (e = Mu.Bootstrap || (Mu.Bootstrap = {})).Utils || (e.Utils = {})),
+                  (Du = void 0),
+                  (e.vdwRadiusFromElementSymbol = function (t) {
+                    return (
+                      (Du =
+                        Du ||
+                        (function () {
+                          var t,
+                            e = {
+                              H: 1.1,
+                              He: 1.4,
+                              Li: 1.81,
+                              Be: 1.53,
+                              B: 1.92,
+                              C: 1.7,
+                              N: 1.55,
+                              O: 1.52,
+                              F: 1.47,
+                              Ne: 1.54,
+                              Na: 2.27,
+                              Mg: 1.73,
+                              Al: 1.84,
+                              Si: 2.1,
+                              P: 1.8,
+                              S: 1.8,
+                              Cl: 1.75,
+                              Ar: 1.88,
+                              K: 2.75,
+                              Ca: 2.31,
+                              Sc: 2.16,
+                              Ti: 1.87,
+                              V: 1.79,
+                              Cr: 1.89,
+                              Mn: 1.97,
+                              Fe: 1.94,
+                              Co: 1.92,
+                              Ni: 1.84,
+                              Cu: 1.86,
+                              Zn: 2.1,
+                              Ga: 1.87,
+                              Ge: 2.11,
+                              As: 1.85,
+                              Se: 1.9,
+                              Br: 1.83,
+                              Kr: 2.02,
+                              Rb: 3.03,
+                              Sr: 2.49,
+                              Y: 2.19,
+                              Zr: 1.86,
+                              Nb: 2.07,
+                              Mo: 2.09,
+                              Tc: 2.09,
+                              Ru: 2.07,
+                              Rh: 1.95,
+                              Pd: 2.02,
+                              Ag: 2.03,
+                              Cd: 2.3,
+                              In: 1.93,
+                              Sn: 2.17,
+                              Sb: 2.06,
+                              Te: 2.06,
+                              I: 1.98,
+                              Xe: 2.16,
+                              Cs: 3.43,
+                              Ba: 2.68,
+                              La: 2.4,
+                              Ce: 2.35,
+                              Pr: 2.39,
+                              Nd: 2.29,
+                              Pm: 2.36,
+                              Sm: 2.29,
+                              Eu: 2.33,
+                              Gd: 2.37,
+                              Tb: 2.21,
+                              Dy: 2.29,
+                              Ho: 2.16,
+                              Er: 2.35,
+                              Tm: 2.27,
+                              Yb: 2.42,
+                              Lu: 2.21,
+                              Hf: 2.12,
+                              Ta: 2.17,
+                              W: 2.1,
+                              Re: 2.17,
+                              Os: 2.16,
+                              Ir: 2.02,
+                              Pt: 2.09,
+                              Au: 2.17,
+                              Hg: 2.09,
+                              Tl: 1.96,
+                              Pb: 2.02,
+                              Bi: 2.07,
+                              Po: 1.97,
+                              At: 2.02,
+                              Rn: 2.2,
+                              Fr: 3.48,
+                              Ra: 2.83,
+                              Ac: 2.6,
+                              Th: 2.37,
+                              Pa: 2.43,
+                              U: 2.4,
+                              Np: 2.21,
+                              Pu: 2.43,
+                              Am: 2.44,
+                              Cm: 2.45,
+                              Bk: 2.44,
+                              Cf: 2.45,
+                              Es: 2.45,
+                              Fm: 2.45,
+                              Md: 2.46,
+                              No: 2.46,
+                              Lr: 2.46,
+                            },
+                            n = Mu.Core.Utils.FastMap.create();
+                          for (t in e)
+                            n.set(t, e[t]),
+                              n.set(t.toUpperCase(), e[t]),
+                              n.set(t.toLowerCase(), e[t]);
+                          return n;
+                        })()),
+                      (e = t.data.atoms.elementSymbol),
+                      (n = Du),
+                      function (t) {
+                        t = n.get(e[t]);
+                        return void 0 !== t ? t : 1;
+                      }
+                    );
+                    var e, n;
+                  }),
+                  (Su = F = F || {}),
+                  (t = Su.Bootstrap || (Su.Bootstrap = {})),
+                  (ku = t.Utils || (t.Utils = {})),
+                  (Fu = Object.prototype.hasOwnProperty),
+                  (ku.shallowClone = ah),
+                  (ku.shallowEqual = function (t, e) {
+                    if (!t) return !e;
+                    if (!e) return !1;
+                    var n = Object.keys(t);
+                    if (Object.keys(e).length !== n.length) return !1;
+                    for (var r = 0, i = n; r < i.length; r++) {
+                      var o = i[r];
+                      if (!Fu.call(t, o) || t[o] !== e[o]) return !1;
+                    }
+                    return !0;
+                  }),
+                  (ku.deepEqual = function t(e, n) {
+                    if (!e) return !n;
+                    if (!n) return !1;
+                    var r = Object.keys(e);
+                    if (Object.keys(n).length !== r.length) return !1;
+                    for (var i = 0, o = r; i < o.length; i++) {
+                      var a = o[i];
+                      if (!Fu.call(e, a)) return !1;
+                      var s = e[a],
+                        a = n[a];
+                      if ('object' == typeof s && 'object' == typeof a) {
+                        if (!t(s, a)) return !1;
+                      } else if (s !== a) return !1;
+                    }
+                    return !0;
+                  }),
+                  (ku.assign =
+                    Object.assign ||
+                    function (t) {
+                      for (var e = 1; e < arguments.length; e++)
+                        for (var n = arguments[e], r = 0, i = Object.keys(n); r < i.length; r++) {
+                          var o = i[r];
+                          Fu.call(n, o) && (t[o] = n[o]);
+                        }
+                      return t;
+                    }),
+                  (ku.merge = function (t) {
+                    for (var e = t, n = 1; n < arguments.length; n++)
+                      if (
+                        arguments[n] &&
+                        (e = (function (t, e) {
+                          for (var n = !1, r = 0, i = Object.keys(e); r < i.length; r++) {
+                            var o = i[r];
+                            if (Fu.call(e, o) && e[o] !== t[o]) {
+                              n = !0;
+                              break;
+                            }
+                          }
+                          return n ? ku.assign(ah(t), e) : t;
+                        })(t, arguments[n])) !== t
+                      ) {
+                        for (var r = n + 1; r < arguments.length; r++)
+                          e = ku.assign(e, arguments[r]);
+                        break;
+                      }
+                    return e;
+                  }),
+                  (r = F = F || {}),
+                  (function (t) {
+                    (e.prototype.dispatch = function (t) {
+                      this.LOG_DISPATCH_STREAM &&
+                        console.log(t.type.name, e.Lane[t.type.lane], t.data),
+                        this.lanes[t.type.lane].onNext(t);
+                    }),
+                      (e.prototype.schedule = function (t, e, n) {
+                        return (
+                          void 0 === n && (n = 1e3 / 31),
+                          setTimeout(function () {
+                            if (e)
+                              try {
+                                t.call(null);
+                              } catch (t) {
+                                e.call(null, '' + t);
+                              }
+                            else t.call(null);
+                          }, n)
+                        );
+                      }),
+                      (e.prototype.getStream = function (e) {
+                        return this.lanes[e.lane].filter(function (t) {
+                          return t.type === e;
+                        });
+                      }),
+                      (e.prototype.finished = function () {
+                        this.lanes.forEach(function (t) {
+                          return t.onCompleted();
+                        });
+                      });
+                    function e() {
+                      (this.LOG_DISPATCH_STREAM = !1), (this.lanes = []);
+                      for (var t = 0; t <= e.Lane.Task; t++) this.lanes.push(new Qu.Rx.Subject());
+                    }
+                    (t.Dispatcher = e),
+                      ((t = (t = t.Dispatcher || (t.Dispatcher = {})).Lane || (t.Lane = {}))[
+                        (t.Slow = 0)
+                      ] = 'Slow'),
+                      (t[(t.Fast = 1)] = 'Fast'),
+                      (t[(t.Log = 2)] = 'Log'),
+                      (t[(t.Busy = 3)] = 'Busy'),
+                      (t[(t.Transformer = 4)] = 'Transformer'),
+                      (t[(t.Task = 5)] = 'Task');
+                  })((Qu = r.Bootstrap || (r.Bootstrap = {})).Service || (Qu.Service = {})),
+                  (n = F = F || {}),
+                  (function (t) {
+                    (e.prototype.log = function (t) {
+                      _u.Event.Log.dispatch(this.context, t);
+                    }),
+                      (e.prototype.message = function (t) {
+                        this.log({ type: e.EntryType.Message, timestamp: new Date(), message: t });
+                      }),
+                      (e.prototype.error = function (t) {
+                        this.log({ type: e.EntryType.Error, timestamp: new Date(), message: t });
+                      }),
+                      (e.prototype.warning = function (t) {
+                        this.log({ type: e.EntryType.Warning, timestamp: new Date(), message: t });
+                      }),
+                      (e.prototype.info = function (t) {
+                        this.log({ type: e.EntryType.Info, timestamp: new Date(), message: t });
+                      });
+                    function e(t) {
+                      this.context = t;
+                    }
+                    (t.Logger = e),
+                      ((t = (t = t.Logger || (t.Logger = {})).EntryType || (t.EntryType = {}))[
+                        (t.Message = 0)
+                      ] = 'Message'),
+                      (t[(t.Error = 1)] = 'Error'),
+                      (t[(t.Warning = 2)] = 'Warning'),
+                      (t[(t.Info = 3)] = 'Info');
+                  })((_u = n.Bootstrap || (n.Bootstrap = {})).Service || (_u.Service = {})),
+                  (E = (E = F = F || {}).Bootstrap || (E.Bootstrap = {})).Service ||
+                    (E.Service = {}),
+                  (function (n) {
+                    var i = Tu.Core.Computation;
+                    Object.defineProperty(e.prototype, 'id', {
+                      get: function () {
+                        return this.info.id;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      Object.defineProperty(e.prototype, 'reportTime', {
+                        get: function () {
+                          return this.info.reportTime;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (e.prototype.run = function (t) {
+                        return this.runWithContext(t).result;
+                      }),
+                      (e.prototype.runWithContext = function (t) {
+                        return new e.Running(t, this.computation, this.info);
+                      }),
+                      (e.prototype.setReportTime = function (t) {
+                        return (this.info.reportTime = t), this;
+                      });
+                    function e(t, e, n) {
+                      (this.name = t),
+                        (this.type = e),
+                        (this.computation = n),
+                        (this.info = { id: r++, name: t, type: e, reportTime: !1 });
+                    }
+                    n.Task = e;
+                    var r = 0;
+                    !(function (r) {
+                      function t(t, e, n) {
+                        (this.context = t), (this.computation = e), (this.info = n), this.run();
+                      }
+                      (r.__DEBUG_MODE__ = !1),
+                        (t.prototype.tryAbort = function () {
+                          this.computationCtx.requestAbort();
+                        }),
+                        (t.prototype.progressUpdated = function (t) {
+                          n.Event.Task.StateUpdated.dispatch(this.context, {
+                            taskId: this.info.id,
+                            type: this.info.type,
+                            name: this.info.name,
+                            message: n.Utils.formatProgress(t),
+                            abort: t.requestAbort,
+                          });
+                        }),
+                        (t.prototype.resolved = function () {
+                          try {
+                            var t;
+                            this.context.performance.end('task' + this.info.id),
+                              this.info.reportTime &&
+                                ((t = this.context.performance.time('task' + this.info.id)),
+                                'Silent' !== this.info.type &&
+                                  this.context.logger.info(
+                                    this.info.name +
+                                      ' finished in ' +
+                                      Tu.Core.Utils.PerformanceMonitor.format(t) +
+                                      '.',
+                                  ));
+                          } finally {
+                            n.Event.Task.Completed.dispatch(this.context, this.info.id);
+                          }
+                        }),
+                        (t.prototype.rejected = function (t) {
+                          this.context.performance.end('task' + this.info.id),
+                            this.context.performance.formatTime('task' + this.info.id),
+                            r.__DEBUG_MODE__ && console.error(t);
+                          try {
+                            'Silent' === this.info.type
+                              ? t.warn
+                                ? this.context.logger.warning(
+                                    'Warning (' + this.info.name + '): ' + t.message,
+                                  )
+                                : console.error('Error (' + this.info.name + ')', t)
+                              : t.warn
+                                ? this.context.logger.warning(
+                                    'Warning (' + this.info.name + '): ' + t.message,
+                                  )
+                                : 0 <= ('' + t).indexOf('Aborted')
+                                  ? this.context.logger.info(this.info.name + ': Aborted.')
+                                  : this.context.logger.error(
+                                      'Error (' + this.info.name + '): ' + t,
+                                    );
+                          } catch (t) {
+                            console.error(t);
+                          } finally {
+                            n.Event.Task.Completed.dispatch(this.context, this.info.id);
+                          }
+                        }),
+                        (t.prototype.run = function () {
+                          var e = this;
+                          (this.computationCtx = i.createContext()),
+                            this.computationCtx.progress.subscribe(function (t) {
+                              return e.progressUpdated(t);
+                            }),
+                            n.Event.Task.Started.dispatch(this.context, this.info),
+                            this.context.performance.start('task' + this.info.id),
+                            (this.result = this.computation.run(this.computationCtx)),
+                            this.result
+                              .then(function () {
+                                return e.resolved();
+                              })
+                              .catch(function (t) {
+                                return e.rejected(t);
+                              });
+                        }),
+                        (r.Running = t),
+                        (r.create = function (t, e, n) {
+                          return new r(t, e, Tu.Core.computation(n));
+                        }),
+                        (r.resolve = function (t, e, n) {
+                          return new r(t, e, i.resolve(n));
+                        }),
+                        (r.reject = function (t, e, n) {
+                          return new r(t, e, i.reject(n));
+                        }),
+                        (r.fromComputation = function (t, e, n) {
+                          return new r(t, e, n);
+                        }),
+                        (r.isPromise = function (t) {
+                          return t.then && t.catch;
+                        });
+                    })(n.Task || (n.Task = {}));
+                  })((Tu = F = F || {}).Bootstrap || (Tu.Bootstrap = {})),
+                  (e =
+                    (e = (e = F = F || {}).Bootstrap || (e.Bootstrap = {})).Event ||
+                    (e.Event = {})),
+                  (Ru = {
+                    dispatch: function (t, e) {
+                      t.dispatcher.dispatch({ type: this, data: e });
+                    },
+                    getStream: function (t) {
+                      return t.dispatcher.getStream(this);
+                    },
+                  }),
+                  (e.create = function (t, e) {
+                    return Object.create(Ru, {
+                      name: { writable: !1, configurable: !1, value: t },
+                      lane: { writable: !1, configurable: !1, value: e },
+                    });
+                  }),
+                  (t = (t = F = F || {}).Bootstrap || (t.Bootstrap = {})),
+                  (r = t.Event || (t.Event = {})),
+                  (t = t.Service.Dispatcher.Lane),
+                  (r.Log = r.create('bs.Log', t.Log)),
+                  ((n = r.Common || (r.Common = {})).LayoutChanged = r.create(
+                    'bs.Common.LayoutChanged',
+                    t.Slow,
+                  )),
+                  (n.ComponentsChanged = r.create('bs.Common.ComponentsChanged', t.Slow)),
+                  ((n = r.Task || (r.Task = {})).Started = r.create('bs.Tasks.Started', t.Task)),
+                  (n.Completed = r.create('bs.Tasks.Completed', t.Task)),
+                  (n.StateUpdated = r.create('bs.Tasks.StateUpdated', t.Busy)),
+                  ((n = r.Tree || (r.Tree = {})).NodeUpdated = r.create(
+                    'bs.Tree.NodeUpdated',
+                    t.Slow,
+                  )),
+                  (n.NodeAdded = r.create('bs.Tree.NodeAdded', t.Slow)),
+                  (n.NodeRemoved = r.create('bs.Tree.NodeRemoved', t.Slow)),
+                  (n.TransformStarted = r.create('bs.Tree.TransformStarted', t.Slow)),
+                  (n.TransformFinished = r.create('bs.Tree.TransformFinished', t.Slow)),
+                  (n.TransformerApply = r.create('bs.Tree.TransformerApplied', t.Transformer)),
+                  ((r.Entity || (r.Entity = {})).CurrentChanged = r.create(
+                    'bs.Entity.CurrentChanged',
+                    t.Slow,
+                  )),
+                  ((r.Interactivity || (r.Interactivity = {})).Highlight = r.create(
+                    'bs.Visuals.HoverElement',
+                    t.Fast,
+                  )),
+                  ((n = r.Visual || (r.Visual = {})).VisualHoverElement = r.create(
+                    'bs.Visual.HoverElement',
+                    t.Fast,
+                  )),
+                  (n.VisualSelectElement = r.create('bs.Visual.SelectElement', t.Fast)),
+                  (n.CameraChanged = r.create('bs.Visual.CameraChanged', t.Fast)),
+                  ((n = r.Molecule || (r.Molecule = {})).ModelHighlight = r.create(
+                    'bs.Molecule.ModelHighlight',
+                    t.Fast,
+                  )),
+                  (n.ModelSelect = r.create('bs.Molecule.ModelSelect', t.Fast)),
+                  (E = F = F || {}),
+                  (e = E.Bootstrap || (E.Bootstrap = {})),
+                  (n = e.Command || (e.Command = {})),
+                  (r = e.Service.Dispatcher.Lane),
+                  (e = e.Event.create),
+                  ((t = n.Tree || (n.Tree = {})).RemoveNode = e('bs.cmd.Tree.RemoveNode', r.Slow)),
+                  (t.ApplyTransform = e('bs.cmd.Tree.ApplyTransform', r.Slow)),
+                  ((t = n.Entity || (n.Entity = {})).SetCurrent = e(
+                    'bs.cmd.Entity.SetCurrentNode',
+                    r.Slow,
+                  )),
+                  (t.ToggleExpanded = e('bs.cmd.Entity.ToggleExpanded', r.Slow)),
+                  (t.SetVisibility = e('bs.cmd.Entity.SetVisibility', r.Slow)),
+                  (t.Focus = e('bs.cmd.Entity.Focus', r.Slow)),
+                  (t.Highlight = e('bs.cmd.Entity.Highlight', r.Slow)),
+                  ((t = n.Layout || (n.Layout = {})).SetState = E.Bootstrap.Event.create(
+                    'lm.cmd.Layout.SetState',
+                    r.Slow,
+                  )),
+                  (t.SetViewportOptions = e('bs.cmd.Layout.SetViewportOptions', r.Slow)),
+                  ((t = n.Molecule || (n.Molecule = {})).FocusQuery = e(
+                    'bs.cmd.Molecule.FocusQuery',
+                    r.Slow,
+                  )),
+                  (t.Highlight = e('bs.cmd.Molecule.Highlight', r.Slow)),
+                  (t.CreateSelectInteraction = e(
+                    'bs.cmd.Molecule.CreateSelectInteraction',
+                    r.Slow,
+                  )),
+                  ((t = n.Visual || (n.Visual = {})).ResetScene = e(
+                    'bs.cmd.Visual.ResetScene',
+                    r.Slow,
+                  )),
+                  (t.ResetTheme = e('bs.cmd.Visual.ResetTheme', r.Slow)),
+                  (t.UpdateBasicTheme = e('bs.cmd.Visual.UpdateBasicTheme', r.Slow)),
+                  ((t = n.Toast || (n.Toast = {})).Show = e('bs.cmd.Toast.Show', r.Slow)),
+                  (t.Hide = e('bs.cmd.Toast.Hide', r.Slow)),
+                  (Uu = F = F || {}),
+                  (Nu = Uu.Bootstrap || (Uu.Bootstrap = {})),
+                  ((Pu = Nu.Tree || (Nu.Tree = {})).create = function (t, e) {
+                    return (
+                      (t = {
+                        version: 0,
+                        refs: Uu.Core.Utils.FastMap.create(),
+                        nodes: Uu.Core.Utils.FastSet.create(),
+                        root: e,
+                        context: t,
+                      }),
+                      ((e.parent = e).tree = t)
+                    );
+                  }),
+                  (Pu.add = function (t) {
+                    if (!t.parent) throw 'Cannot add a node without a parent.';
+                    var e = t.parent.tree;
+                    Pu.Node.forEach(t, function (t) {
+                      return (t.tree = e);
+                    }),
+                      Pu.Node.addChild(t.parent, t),
+                      sh(t),
+                      Nu.Entity.nodeUpdated(t.parent),
+                      lh(t);
+                  }),
+                  (Pu.update = function (e, t, n) {
+                    Pu.Node.replaceChild(t.parent, t, n),
+                      uh(e.context, t),
+                      Pu.Node.forEach(n, function (t) {
+                        return (t.tree = e);
+                      }),
+                      sh(n);
+                    for (var r = 0, i = n.children; r < i.length; r++) lh(i[r]);
+                    Nu.Entity.nodeUpdated(n.parent),
+                      Nu.Event.Tree.NodeAdded.dispatch(e.context, n),
+                      e.context.currentEntity === t && Nu.Entity.setCurrent(n);
+                  }),
+                  (Pu.updatePath = function (t) {
+                    if (t) {
+                      for (var e = void 0; t !== t.parent; )
+                        (e = t), Pu.Node.update(t), (t = t.parent);
+                      e && Nu.Event.Tree.NodeUpdated.dispatch(t.tree.context, e);
+                    }
+                  }),
+                  (Pu.remove = function t(e) {
+                    if (e && e.tree)
+                      if (e.parent === e) {
+                        var n = e.tree,
+                          r = n.root.children;
+                        (n.root.children = []),
+                          Pu.Node.update(n.root),
+                          Nu.Entity.nodeUpdated(n.root),
+                          n.refs.clear();
+                        for (var i = 0, o = r; i < o.length; i++) {
+                          var a = o[i];
+                          uh(n.context, a);
+                        }
+                        Nu.Command.Entity.SetCurrent.dispatch(n.context, n.root);
+                      } else {
+                        var r = Pu.Node.isHidden(e),
+                          s = e.index,
+                          l = e.parent,
+                          u = e.tree.context;
+                        if ((Pu.Node.removeChild(l, e), Nu.Entity.nodeUpdated(l), uh(u, e) && !r)) {
+                          for (var c = !1, A = s; 0 <= A; A--)
+                            if (l.children[A] && !Pu.Node.isHidden(l.children[A])) {
+                              Nu.Command.Entity.SetCurrent.dispatch(u, l.children[A]), (c = !0);
+                              break;
+                            }
+                          c || Nu.Command.Entity.SetCurrent.dispatch(u, l);
+                        }
+                        e.transform.props.isBinding && !l.children.length && t(e.parent);
+                      }
+                  }),
+                  (E = F = F || {}),
+                  ((E =
+                    (E = (Lu = E.Bootstrap || (E.Bootstrap = {})).Tree || (Lu.Tree = {})).Node ||
+                    (E.Node = {})).Null = {}),
+                  (E.is = ch),
+                  (E.hasAncestor = function (t, e) {
+                    if (!e) return !1;
+                    for (;;) {
+                      if (t === e) return !0;
+                      if (!(t = t.parent) || t === t.parent) return !1;
+                    }
+                  }),
+                  (E.findAncestor = function (t, e) {
+                    if (t)
+                      for (var n = t.parent; ; ) {
+                        if (ch(n, e)) return n;
+                        if ((n = n.parent).parent === n) return;
+                      }
+                  }),
+                  (E.findClosestNodeOfType = function (t, e) {
+                    if (t)
+                      for (var n = t; ; ) {
+                        if (0 <= e.indexOf(n.type)) return n;
+                        if ((n = n.parent).parent === n) return 0 <= e.indexOf(n.type) ? n : void 0;
+                      }
+                  }),
+                  (Yu = 0),
+                  (E.createId = function () {
+                    return Yu++;
+                  }),
+                  (E.update = Ah),
+                  (E.withProps = function (t, e) {
+                    return Lu.Utils.merge(t.props, e) === t.props ? t : Ah(t);
+                  }),
+                  (E.withState = function (t, e) {
+                    return (e = Lu.Utils.merge(t.state, e)) === t.state
+                      ? t
+                      : ((t.state = e), Ah(t));
+                  }),
+                  (E.addChild = function (t, e) {
+                    return (e.index = t.children.length), t.children.push(e), Ah(t);
+                  }),
+                  (E.removeChild = hh),
+                  (E.replaceChild = function (t, e, n) {
+                    return n ? ((n.index = e.index), (t.children[n.index] = n), Ah(t)) : hh(t, e);
+                  }),
+                  (E.forEach = ph),
+                  (E.forEachPreorder = function (t, e) {
+                    e(t);
+                    for (var n = 0, r = t.children; n < r.length; n++) ph(r[n], e);
+                  }),
+                  (E.collect = function (t) {
+                    var e = [];
+                    return (
+                      ph(t, function (t) {
+                        return e.push(t);
+                      }),
+                      e
+                    );
+                  }),
+                  (E.isHidden = function (t) {
+                    if (t.isHidden) return !0;
+                    var e = t.parent;
+                    if (!e) return t.isHidden;
+                    for (; e.parent !== e; ) {
+                      if (e.isHidden) return !0;
+                      if (!(e = e.parent)) return !1;
+                    }
+                    return !1;
+                  }),
+                  (Ou = F = F || {}),
+                  (n = Ou.Bootstrap || (Ou.Bootstrap = {})),
+                  (Gu = n.Tree || (n.Tree = {})),
+                  ((zu = Gu.Selection || (Gu.Selection = {})).select = function (t, e) {
+                    return dh(t)(e);
+                  }),
+                  (zu.compile = dh),
+                  ((ju = Hu = zu.Helpers || (zu.Helpers = {})).BuilderPrototype = {}),
+                  (ju.registerModifier = function (t, n) {
+                    ju.BuilderPrototype[t] = function () {
+                      for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                      return n.call.apply(n, [void 0, this].concat(t));
+                    };
+                  }),
+                  (zu.root = function () {
+                    return fh(function () {
+                      return function (t) {
+                        return [t.root];
+                      };
+                    });
+                  }),
+                  (zu.byRef = function () {
+                    for (var l = [], t = 0; t < arguments.length; t++) l[t] = arguments[t];
+                    return fh(function () {
+                      return function (t) {
+                        for (var e = [], n = 0, r = l; n < r.length; n++) {
+                          var i = r[n],
+                            i = t.refs.get(i);
+                          if (i)
+                            for (var o = 0, a = i; o < a.length; o++) {
+                              var s = a[o];
+                              e.push(s);
+                            }
+                        }
+                        return e;
+                      };
+                    });
+                  }),
+                  (zu.byValue = function () {
+                    for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
+                    return fh(function () {
+                      return function (t) {
+                        return e;
+                      };
+                    });
+                  }),
+                  Hu.registerModifier('flatMap', gh),
+                  (zu.flatMap = gh),
+                  Hu.registerModifier('mapEntity', mh),
+                  (zu.mapEntity = mh),
+                  Hu.registerModifier('unique', vh),
+                  (zu.unique = vh),
+                  Hu.registerModifier('first', bh),
+                  (zu.first = bh),
+                  Hu.registerModifier('filter', yh),
+                  (zu.filter = yh),
+                  Hu.registerModifier('subtree', wh),
+                  (zu.subtree = wh),
+                  Hu.registerModifier('children', Eh),
+                  (zu.children = Eh),
+                  Hu.registerModifier('ofType', Bh),
+                  (zu.ofType = Bh),
+                  Hu.registerModifier('ancestorOfType', Ch),
+                  (zu.ancestorOfType = Ch),
+                  Hu.registerModifier('parent', xh),
+                  (zu.parent = xh),
+                  (Vu = F = F || {}),
+                  (qu = Vu.Bootstrap || (Vu.Bootstrap = {})),
+                  (Wu = qu.Tree || (qu.Tree = {})),
+                  (t = Wu.Transformer || (Wu.Transformer = {})),
+                  (Ih.prototype.getTarget = function (t) {
+                    var e = this.info;
+                    return e.from.length ? Wu.Node.findClosestNodeOfType(t, e.from) : t;
+                  }),
+                  (Ih.prototype.checkTypes = function (t, e) {
+                    if (e.transformer !== this)
+                      return (
+                        'The transform is calling an invalid transformer (got ' +
+                        e.transformer.info.name +
+                        ', expected ' +
+                        this.info.name +
+                        ')'
+                      );
+                    e = this.info;
+                    return e.from.length && e.from.indexOf(t.type) < 0
+                      ? 'Transform (' +
+                          e.name +
+                          "): type error, expected '" +
+                          e.from
+                            .map(function (t) {
+                              return t.info.name;
+                            })
+                            .join('/') +
+                          "', got '" +
+                          t.type.info.name +
+                          "'."
+                      : void 0;
+                  }),
+                  (Ih.prototype.validateParams = function (t) {
+                    var e = this.info;
+                    if (e.validateParams) {
+                      e = e.validateParams(t.params);
+                      if (e && 0 < e.length) return 'Invalid params: ' + e.join(', ') + '.';
+                    }
+                  }),
+                  (Ih.prototype.validate = function (t, e) {
+                    var n = this.info;
+                    if (!t)
+                      return qu.Task.reject(
+                        n.name,
+                        'Normal',
+                        'Could not find a suitable node to apply the transformer to.',
+                      );
+                    t = this.checkTypes(t, e);
+                    if (t) return qu.Task.reject(n.name, 'Normal', t);
+                    t = this.validateParams(e);
+                    return t ? qu.Task.reject(n.name, 'Normal', t) : void 0;
+                  }),
+                  (Ih.prototype.apply = function (t, e, n) {
+                    if (this.info.isComposed) return this.transform(t, e, n);
+                    var e = this.getTarget(e),
+                      r = this.validate(e, n);
+                    return (
+                      r ||
+                      (qu.Event.Tree.TransformerApply.dispatch(t, { a: e, t: n }),
+                      this.transform(t, e, n))
+                    );
+                  }),
+                  (Ih.prototype.update = function (t, e, n) {
+                    var r = e.parent;
+                    if (!this.info.isComposed || this.updater) {
+                      if (this.updater) {
+                        var i = this.validateParams(n);
+                        if (i) return qu.Task.reject(this.info.name, 'Normal', i);
+                        i = this.updater(t, e, n);
+                        if (i) return i;
+                      }
+                      qu.Event.Tree.TransformerApply.dispatch(t, { a: e.parent, t: n });
+                    }
+                    return this.transform(t, r, n);
+                  }),
+                  (Ih.prototype.create = function (t, e) {
+                    return Wu.Transform.create(t, e || {}, this);
+                  }),
+                  (Ju = Ih),
+                  (t.create = Mh),
+                  (t.internal = function (t, e, n, r) {
+                    return Mh(
+                      {
+                        id: t,
+                        name: t,
+                        description: '',
+                        from: e,
+                        to: n,
+                        validateParams: function () {},
+                        defaultParams: function () {
+                          return {};
+                        },
+                      },
+                      r,
+                    );
+                  }),
+                  (t.action = function (t, o, a, s) {
+                    return Mh(t, function (n, r, i) {
+                      return qu.Task.create(t.name, 'Background', function (t) {
+                        return new Vu.Promise(function (t, e) {
+                          try {
+                            Dh({ action: o(n, r, i), context: void 0 }, n, t, e, a, s);
+                          } catch (t) {
+                            e(t);
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (t.actionWithContext = function (t, i, s, l) {
+                    return Mh(t, function (a, n, r) {
+                      return qu.Task.create(t.name, 'Background', function (t) {
+                        return new Vu.Promise(function (e, o) {
+                          try {
+                            var t = i(a, n, r);
+                            qu.Task.isPromise(t)
+                              ? t
+                                  .then(function (t) {
+                                    return Dh(t, a, e, o, s, l);
+                                  })
+                                  .catch(function (t) {
+                                    var e = void 0,
+                                      n = t,
+                                      r = a,
+                                      t = o,
+                                      i = l;
+                                    try {
+                                      t(n);
+                                    } finally {
+                                      i &&
+                                        ('string' == typeof i
+                                          ? r.logger.error(i)
+                                          : setTimeout(function () {
+                                              return i.call(null, r, e, n);
+                                            }, 0));
+                                    }
+                                  })
+                              : Dh(t, a, e, o, s, l);
+                          } catch (t) {
+                            o(t);
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (Ku = F = F || {}),
+                  (Zu = Ku.Bootstrap || (Ku.Bootstrap = {})),
+                  (Xu = Zu.Tree || (Zu.Tree = {})),
+                  (e = Xu.Transform || (Xu.Transform = {})),
+                  (Sh.prototype.resolveAdd = function (t, e) {
+                    return (
+                      e !== Xu.Node.Null &&
+                        ((e.ref = this.props.ref),
+                        this.props.isHidden && (e.isHidden = !0),
+                        e.tree || ((e.parent = t), Xu.add(e))),
+                      e
+                    );
+                  }),
+                  (Sh.prototype.resolveUpdate = function (t, e, n) {
+                    var r;
+                    return (
+                      n !== Xu.Node.Null &&
+                        ((r = e.parent),
+                        (n.ref = this.props.ref),
+                        (n.parent = r),
+                        (n.tag = e.tag),
+                        (n.state = e.state),
+                        this.props.isHidden && (n.isHidden = !0),
+                        Xu.update(t.tree, e, n)),
+                      n
+                    );
+                  }),
+                  (Sh.prototype.apply = function (i, o) {
+                    var e = this;
+                    return Ku.Core.computation(function (t) {
+                      return new Ku.Promise(function (n, r) {
+                        return D(e, void 0, void 0, function () {
+                          var e = this;
+                          return P(this, function (t) {
+                            return (
+                              Zu.Event.Tree.TransformStarted.dispatch(i, this),
+                              this.transformer
+                                .apply(i, o, this)
+                                .run(i)
+                                .then(function (t) {
+                                  n(e.resolveAdd(o, t)),
+                                    Zu.Event.Tree.TransformFinished.dispatch(i, { transform: e });
+                                })
+                                .catch(function (t) {
+                                  r(t),
+                                    Zu.Event.Tree.TransformFinished.dispatch(i, {
+                                      transform: e,
+                                      error: t,
+                                    });
+                                }),
+                              [2]
+                            );
+                          });
+                        });
+                      });
+                    });
+                  }),
+                  (Sh.prototype.update = function (r, i) {
+                    var o = this;
+                    return Ku.Core.computation(function (t) {
+                      return new Ku.Promise(function (e, n) {
+                        (o.isUpdate = !0),
+                          (o.props.ref = i.transform.props.ref),
+                          Zu.Event.Tree.TransformStarted.dispatch(r, o),
+                          i.transform.props.isBinding && (o.props.isBinding = !0),
+                          o.transformer
+                            .update(r, i, o)
+                            .run(r)
+                            .then(function (t) {
+                              e(o.resolveUpdate(r, i, t)),
+                                Zu.Event.Tree.TransformFinished.dispatch(r, { transform: o });
+                            })
+                            .catch(function (t) {
+                              n(t),
+                                Zu.Event.Tree.TransformFinished.dispatch(r, {
+                                  transform: o,
+                                  error: t,
+                                });
+                            });
+                      });
+                    });
+                  }),
+                  ($u = Sh),
+                  (e.create = function (t, e, n) {
+                    return (
+                      (e = Zu.Utils.shallowClone(e)).ref || (e.ref = Zu.Utils.generateUUID()),
+                      new $u(t, e, n)
+                    );
+                  }),
+                  (e.execute = kh),
+                  (e.apply = function (t, e) {
+                    return kh(t, e, !1);
+                  }),
+                  (e.update = function (t, e) {
+                    return kh(t, e, !0);
+                  }),
+                  ((r =
+                    (r =
+                      (r = (r = F = F || {}).Bootstrap || (r.Bootstrap = {})).Tree || (r.Tree = {}))
+                      .Transform || (r.Transform = {})).build = function () {
+                    return new tc.Impl(void 0, []);
+                  }),
+                  (function (t) {
+                    function i(t, e) {
+                      (this.last = t), (this.transforms = e);
+                    }
+                    (i.prototype.add = function (t, e, n, r) {
+                      t = { selector: t, transform: e.create(n, r) };
+                      return this.transforms.push(t), (this.last = t), new i(t, this.transforms);
+                    }),
+                      (i.prototype.then = function (t, e, n) {
+                        if (!this.last) throw "Cannot 'then' on an empty builder";
+                        (t = t.create(e, n)),
+                          (e = { selector: this.last.transform.props.ref, transform: t });
+                        return this.transforms.push(e), new i(e, this.transforms);
+                      }),
+                      (i.prototype.compile = function () {
+                        return this.transforms;
+                      }),
+                      (t.Impl = i);
+                  })((tc = r.Builder || (r.Builder = {}))),
+                  (E = F = F || {}),
+                  (E =
+                    (ec = E.Bootstrap || (E.Bootstrap = {})).Interactivity ||
+                    (ec.Interactivity = {})),
+                  ((n = E.Info || (E.Info = {})).empty = { kind: 0 }),
+                  (n.selection = function (t, e) {
+                    return { kind: 1, source: t, elements: e };
+                  }),
+                  (E.isEmpty = function (t) {
+                    if (0 === t.kind || !t.source.tree) return !0;
+                    if (
+                      t.source.type.info.typeClass === ec.Entity.VisualClass &&
+                      t.source.type === ec.Entity.Molecule.Visual
+                    ) {
+                      var e = ec.Utils.Molecule.findModelOrSelection(t.source);
+                      if (e && (!t.elements || !t.elements.length)) return !0;
+                    }
+                    return !1;
+                  }),
+                  (E.isSelection = function (t) {
+                    return 1 === t.kind && !!t.source.tree;
+                  }),
+                  (E.interactivityInfoEqual = function (t, e) {
+                    if (t || e) {
+                      if (!t || !e) return !1;
+                      if (t.kind !== e.kind) return !1;
+                      if (0 !== t.kind) {
+                        if (t.source !== e.source) return !1;
+                        var n = t.elements,
+                          r = e.elements;
+                        if (n.length !== r.length) return !1;
+                        for (var i = 0, o = n.length; i < o; i++) if (n[i] !== r[i]) return !1;
+                      }
+                    }
+                    return !0;
+                  }),
+                  (E.interactivitySelectionElementsEqual = function (t, e) {
+                    var n = t.elements,
+                      r = e.elements;
+                    if (n.length !== r.length) return !1;
+                    for (var i = 0, o = n.length; i < o; i++) if (n[i] !== r[i]) return !1;
+                    return !0;
+                  }),
+                  (t = F = F || {}),
+                  (function (t) {
+                    function e(e) {
+                      var n = this;
+                      (this.context = e),
+                        (this.providers = []),
+                        (this.empty = []),
+                        nc.Event.Visual.VisualHoverElement.getStream(e).subscribe(function (t) {
+                          return nc.Event.Interactivity.Highlight.dispatch(e, n.getInfo(t.data));
+                        });
+                    }
+                    (e.prototype.addProvider = function (t) {
+                      this.providers.push(t);
+                    }),
+                      (e.prototype.removeProvider = function (e) {
+                        (this.providers = this.providers.filter(function (t) {
+                          return t !== e;
+                        })),
+                          nc.Event.Interactivity.Highlight.dispatch(this.context, []);
+                      }),
+                      (e.prototype.getInfo = function (t) {
+                        if (!t) return this.empty;
+                        for (var e = [], n = 0, r = this.providers; n < r.length; n++) {
+                          var i = r[n].call(null, t);
+                          i && e.push(i);
+                        }
+                        return e;
+                      }),
+                      (t.HighlightManager = e);
+                  })(
+                    (nc = t.Bootstrap || (t.Bootstrap = {})).Interactivity ||
+                      (nc.Interactivity = {}),
+                  ),
+                  (e = F = F || {}),
+                  (rc = e.Bootstrap || (e.Bootstrap = {})),
+                  (ic = rc.Interactivity || (rc.Interactivity = {})),
+                  ((e = ic.Molecule || (ic.Molecule = {})).transformMoleculeAtomIndices = Fh),
+                  (e.transformInteraction = function (t) {
+                    if (!ic.isEmpty(t)) {
+                      var e = rc.Utils.Molecule.findModelOrSelection(t.source);
+                      if (e) {
+                        var n = rc.Utils.Molecule.findQueryContext(e),
+                          e = rc.Utils.Molecule.findModel(e);
+                        if (n && e) return Fh(e, n, t.elements);
+                      }
+                    }
+                  }),
+                  (e.formatInfo = function (t) {
+                    return t && t.atoms.length
+                      ? 1 === t.atoms.length
+                        ? '<span>' +
+                          ('<span><b>' +
+                            (e = t.atoms[0]).name +
+                            ' ' +
+                            e.elementSymbol +
+                            ' ' +
+                            e.id +
+                            '</b>' +
+                            Qh(e) +
+                            ' at (' +
+                            rc.Utils.round(e.x, 1) +
+                            ', ' +
+                            rc.Utils.round(e.y, 1) +
+                            ', ' +
+                            rc.Utils.round(e.z, 1) +
+                            ')</span>') +
+                          ' on <b><small>' +
+                          _h(t.residues[0]) +
+                          '</small></b> ' +
+                          Th(t) +
+                          '</span>'
+                        : 1 === t.residues.length
+                          ? '<span><b>' + _h(t.residues[0]) + '</b> ' + Th(t) + '</span>'
+                          : '<span><small>' +
+                            t.atoms.length +
+                            ' atoms on</small> <b>' +
+                            t.residues.length +
+                            ' residues</b> ' +
+                            Th(t) +
+                            '</span>'
+                      : '';
+                    var e;
+                  }),
+                  (e.formatInfoShort = function (t) {
+                    return t && t.atoms.length
+                      ? 1 === t.atoms.length
+                        ? '<span><b>' +
+                          ('<span>' +
+                            (e = t.atoms[0]).name +
+                            ' ' +
+                            e.elementSymbol +
+                            ' ' +
+                            e.id +
+                            Qh(e) +
+                            '</span>') +
+                          '</b> ' +
+                          Th(t) +
+                          '</span>'
+                        : 1 === t.residues.length
+                          ? '<span><b>' + _h(t.residues[0]) + '</b> ' + Th(t) + '</span>'
+                          : '<span><b>' + t.residues.length + ' residues</b> ' + Th(t) + '</span>'
+                      : '';
+                    var e;
+                  }),
+                  (e.isMoleculeModelInteractivity = function (t) {
+                    return (
+                      !ic.isEmpty(t) &&
+                      (t.source.type.info.typeClass !== rc.Entity.VisualClass ||
+                        t.source.type === rc.Entity.Molecule.Visual) &&
+                      !!rc.Utils.Molecule.findModelOrSelection(t.source)
+                    );
+                  }),
+                  (oc = F = F || {}),
+                  (function (t) {
+                    (e.prototype.isEmpty = function () {
+                      return !this.entries.size;
+                    }),
+                      (e.prototype.add = function (t) {
+                        if (this.entries.has(t.id) || !t.props.model) return !1;
+                        var e = t.parent.id,
+                          e =
+                            (this.entries.set(t.id, { visual: t, parentId: e }),
+                            this.scene.scene.models.add(
+                              t.props.model,
+                              1 === this.entries.size && this.lastParent !== e,
+                            ),
+                            2 !== t.state.visibility);
+                        return (
+                          t.props.model.getVisibility() !== e && t.props.model.updateVisibility(e),
+                          (t.props.model.tag = t),
+                          !0
+                        );
+                      }),
+                      (e.prototype.remove = function (t) {
+                        return (
+                          !!this.entries.has(t.id) &&
+                          ((this.lastParent = this.entries.get(t.id).parentId),
+                          this.entries.delete(t.id),
+                          this.originalThemes.delete(t.id),
+                          this.scene.scene.models.removeAndDispose(t.props.model),
+                          (t.props.model.tag = void 0),
+                          !(t.props.model = void 0))
+                        );
+                      }),
+                      (e.prototype.get = function (t) {
+                        return this.entries.get(t);
+                      }),
+                      (e.prototype.resetThemesAndHighlight = function (t) {
+                        var r = this;
+                        if (!t)
+                          return (
+                            this.originalThemes.forEach(function (t, e) {
+                              var n = r.entries.get(e).visual.props.model;
+                              n.theme.isSticky
+                                ? r.originalThemes.set(e, n.theme)
+                                : (n.applyTheme(t), r.originalThemes.delete(e));
+                            }),
+                            this.entries.forEach(function (t) {
+                              return t.visual.props.model.highlight(!1);
+                            }),
+                            void this.scene.scene.forceRender()
+                          );
+                        for (var e = 0, n = this.context.select(t); e < n.length; e++) {
+                          var i,
+                            o,
+                            a = n[e];
+                          l.Entity.isVisual(a) &&
+                            this.originalThemes.has(a.id) &&
+                            ((i = this.originalThemes.get((a = a).id)),
+                            (o = a.props.model).theme.isSticky
+                              ? this.originalThemes.set(a.id, o.theme)
+                              : (o.applyTheme(i), this.originalThemes.delete(a.id)),
+                            o.highlight(!1));
+                        }
+                        this.scene.scene.forceRender();
+                      }),
+                      (e.prototype.highlightMoleculeModel = function (t) {
+                        var e = this,
+                          n = l.Utils.Molecule.findModel(t.model);
+                        if (n) {
+                          var r = [];
+                          if (
+                            (this.context
+                              .select(l.Tree.Selection.byValue(t.model).subtree())
+                              .forEach(function (t) {
+                                l.Entity.isVisual(t) && e.entries.get(t.id) && r.push(t);
+                              }),
+                            r.length)
+                          ) {
+                            var i = l.Utils.Molecule.getModelAndIndicesFromQuery(n, t.query);
+                            if (i && i.indices.length)
+                              for (var o = t.isOn ? 3 : 4, a = 0, s = r; a < s.length; a++)
+                                s[a].props.model.applySelection(i.indices, o);
+                          }
+                        } else
+                          console.warn(
+                            'Highlight: Trying to highlight a non-molecule model entity, ignoring...',
+                          );
+                      });
+                    var i = e;
+                    function e(t, e) {
+                      var n = this;
+                      (this.context = t),
+                        (this.scene = e),
+                        (this.entries = new Map()),
+                        (this.originalThemes = new Map()),
+                        (this.lastParent = NaN),
+                        l.Event.Tree.NodeAdded.getStream(t).subscribe(function (t) {
+                          l.Entity.isClass(t.data, l.Entity.VisualClass) && n.add(t.data);
+                        }),
+                        l.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) {
+                          l.Entity.isClass(t.data, l.Entity.VisualClass) && n.remove(t.data);
+                        }),
+                        l.Event.Tree.NodeUpdated.getStream(t).subscribe(function (t) {
+                          var e;
+                          !l.Entity.isVisual(t.data) ||
+                            ((t = n.entries.get(t.data.id)) &&
+                              ((e = 2 !== t.visual.state.visibility),
+                              t.visual.props.model.getVisibility() !== e &&
+                                t.visual.props.model.updateVisibility(e)));
+                        }),
+                        l.Command.Visual.UpdateBasicTheme.getStream(t).subscribe(function (t) {
+                          var e;
+                          n.entries.get(t.data.visual.id) &&
+                            l.Entity.isVisual(t.data.visual) &&
+                            ((e = t.data.visual),
+                            t.data.theme.isSticky
+                              ? n.originalThemes.set(e.id, t.data.theme)
+                              : n.originalThemes.get(e.id) ||
+                                n.originalThemes.set(e.id, e.props.model.theme),
+                            e.props.model.applyTheme(t.data.theme));
+                        }),
+                        l.Command.Molecule.Highlight.getStream(t).subscribe(function (t) {
+                          return n.highlightMoleculeModel(t.data);
+                        }),
+                        l.Command.Visual.ResetTheme.getStream(t).subscribe(function (t) {
+                          return n.resetThemesAndHighlight(t.data && t.data.selection);
+                        });
+                    }
+                    function n(t, e, n) {
+                      var r = this;
+                      (this.context = e),
+                        (this._destroyed = !1),
+                        (this.cameraChanged = new l.Rx.Subject()),
+                        (this.cameraObserver = function (t) {
+                          return r.cameraChanged.onNext(t);
+                        }),
+                        (this.models = new i(e, this)),
+                        (this.scene = new oc.Visualization.Scene(t, n)),
+                        this.scene.camera.observe(this.cameraObserver),
+                        this.scene.events.addEventListener('hover', function (t) {
+                          return r.handleEvent(t, l.Event.Visual.VisualHoverElement);
+                        }),
+                        this.scene.events.addEventListener('select', function (t) {
+                          return r.handleEvent(t, l.Event.Visual.VisualSelectElement);
+                        }),
+                        this.cameraChanged.throttle(1e3 / 30).subscribe(function (t) {
+                          l.Event.Visual.CameraChanged.dispatch(r.context, t);
+                        }),
+                        l.Command.Entity.Focus.getStream(e).subscribe(function (t) {
+                          var e;
+                          1 === t.data.length
+                            ? ((e = t.data[0]),
+                              l.Entity.isMoleculeSelection(e)
+                                ? r.focusMoleculeModelSelection(e)
+                                : l.Entity.isClass(e, l.Entity.VisualClass) &&
+                                  r.scene.camera.focusOnModel(e.props.model))
+                            : (e = r.scene.camera).focusOnModel.apply(
+                                e,
+                                t.data
+                                  .filter(function (t) {
+                                    return l.Entity.isClass(t, l.Entity.VisualClass);
+                                  })
+                                  .map(function (t) {
+                                    return t.props.model;
+                                  }),
+                              );
+                        }),
+                        l.Command.Entity.Highlight.getStream(e).subscribe(function (t) {
+                          for (var e = 0, n = t.data.entities; e < n.length; e++) {
+                            var r = n[e];
+                            l.Entity.isClass(r, l.Entity.VisualClass) &&
+                              r.props.model &&
+                              r.props.model.highlight(t.data.isOn);
+                          }
+                        }),
+                        l.Command.Visual.ResetScene.getStream(e).subscribe(function (t) {
+                          return r.resetScene();
+                        }),
+                        l.Command.Molecule.FocusQuery.getStream(e).subscribe(function (t) {
+                          return r.focusMoleculeModelOnQuery(t.data);
+                        });
+                    }
+                    (t.DisplayList = i),
+                      (n.prototype.resetScene = function () {
+                        this._destroyed ||
+                          (l.Event.Visual.VisualSelectElement.dispatch(
+                            this.context,
+                            l.Interactivity.Info.empty,
+                          ),
+                          this.models.resetThemesAndHighlight(),
+                          this.scene.camera.reset());
+                      }),
+                      Object.defineProperty(n.prototype, 'camera', {
+                        get: function () {
+                          return this.scene.camera;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (n.prototype.destroy = function () {
+                        this._destroyed ||
+                          (this.scene.camera.stopObserving(this.cameraObserver),
+                          this.scene.destroy(),
+                          (this.scene = void 0),
+                          (this._destroyed = !0));
+                      }),
+                      (n.prototype.handleEvent = function (t, e) {
+                        t = t.data;
+                        t && t.model && t.elements
+                          ? e.dispatch(
+                              this.context,
+                              l.Interactivity.Info.selection(t.model.tag, t.elements),
+                            )
+                          : e.dispatch(this.context, l.Interactivity.Info.empty);
+                      }),
+                      (n.prototype.focusMoleculeModelSelection = function (t) {
+                        var e, n;
+                        l.Tree.Node.is(t, l.Entity.Molecule.Selection)
+                          ? (n = l.Utils.Molecule.findModel(t))
+                            ? ((e = oc.Core.Geometry.LinearAlgebra.Vector3.zero()),
+                              (n = l.Utils.Molecule.getCentroidAndRadius(
+                                n.props.model,
+                                t.props.indices,
+                                e,
+                              )),
+                              this.scene.camera.focusOnPoint(
+                                oc.Core.Geometry.LinearAlgebra.Vector3.toObj(e),
+                                n,
+                              ))
+                            : console.warn(
+                                'Focus: Molecule model for selection not found, ignoring...',
+                              )
+                          : console.warn(
+                              'Focus: Trying to focus on non-molecule selection, ignoring...',
+                            );
+                      }),
+                      (n.prototype.focusMoleculeModelOnQuery = function (t) {
+                        var e,
+                          t = l.Utils.Molecule.getModelAndIndicesFromQuery(t.model, t.query);
+                        t &&
+                          t.indices.length &&
+                          ((e = oc.Core.Geometry.LinearAlgebra.Vector3.zero()),
+                          (t = l.Utils.Molecule.getCentroidAndRadius(
+                            t.model.props.model,
+                            t.indices,
+                            e,
+                          )),
+                          this.scene.camera.focusOnPoint(
+                            oc.Core.Geometry.LinearAlgebra.Vector3.toObj(e),
+                            t,
+                          ));
+                      }),
+                      (t.SceneWrapper = n);
+                  })(
+                    (l = oc.Bootstrap || (oc.Bootstrap = {})).Visualization ||
+                      (l.Visualization = {}),
+                  ),
+                  (ac = F = F || {}),
+                  (r =
+                    (r = ac.Bootstrap || (ac.Bootstrap = {})).Visualization ||
+                    (r.Visualization = {})),
+                  ((n = r.Style || (r.Style = {})).getTaskType = function (t) {
+                    return t.taskType || 'Normal';
+                  }),
+                  (n.create = function (t) {
+                    return t;
+                  }),
+                  ((r.Theme || (r.Theme = {})).getProps = function (t) {
+                    var n = ac.Core.Utils.FastMap.create(),
+                      r =
+                        (t.colors &&
+                          t.colors.forEach(function (t, e) {
+                            return n.set(e, t);
+                          }),
+                        ac.Core.Utils.FastMap.create());
+                    return (
+                      t.variables &&
+                        t.variables.forEach(function (t, e) {
+                          return r.set(e, t);
+                        }),
+                      {
+                        colors: n,
+                        variables: r,
+                        transparency: t.transparency,
+                        interactive: t.interactive,
+                        disableFog: t.disableFog,
+                        isSticky: !0,
+                      }
+                    );
+                  }),
+                  (sc = F = F || {}),
+                  (lc = sc.Bootstrap || (sc.Bootstrap = {})),
+                  (E = lc.Visualization || (lc.Visualization = {})),
+                  (uc = E.Molecule || (E.Molecule = {})),
+                  (C = sc.Visualization),
+                  (uc.UniformBaseColors = lc.Immutable.Map({
+                    Uniform: C.Theme.Default.UniformColor,
+                    Highlight: C.Theme.Default.HighlightColor,
+                    Selection: C.Theme.Default.SelectionColor,
+                  })),
+                  (uc.ModelVisualBaseColors = lc.Immutable.Map({
+                    Bond: C.Molecule.Colors.DefaultBondColor,
+                    Highlight: C.Theme.Default.HighlightColor,
+                    Selection: C.Theme.Default.SelectionColor,
+                  })),
+                  (uc.createPaletteThemeProvider = Uh),
+                  (uc.createCachedPaletteThemeProvider = Nh),
+                  (uc.uniformThemeProvider = Ph),
+                  (uc.createColorMapThemeProvider = Lh),
+                  (uc.createCachedColorMapThemeProvider = function (o, a, s, l) {
+                    return function (t, e) {
+                      var n = lc.Utils.Molecule.findModel(t),
+                        r = n.tree && n.tree.context;
+                      if (r) {
+                        var i = r.entityCache.get(n, 'theme-mapping-map-' + o);
+                        if (i) return C.Theme.createMapping(i, e);
+                      }
+                      (i = n.props.model),
+                        (n = a(i)),
+                        (i = C.Theme.createColorMapMapping(Rh(n.index, n.property), s, l));
+                      return (
+                        r && r.entityCache.set(t, 'theme-mapping-map-' + o, i),
+                        C.Theme.createMapping(i, e)
+                      );
+                    };
+                  }),
+                  (Yh.prototype.getProperty = function (t) {
+                    return this.residueIndex[t];
+                  }),
+                  (Yh.prototype.setColor = function (t, e) {
+                    (e.r = this.r[t]), (e.g = this.g[t]), (e.b = this.b[t]);
+                  }),
+                  (cc = Yh),
+                  (uc.RainbowPalette = [
+                    C.Color.fromHex(12025059),
+                    C.Color.fromHex(8989394),
+                    C.Color.fromHex(204),
+                    C.Color.fromHex(43724),
+                    C.Color.fromHex(52224),
+                    C.Color.fromHex(13412864),
+                    C.Color.fromHex(13399808),
+                    C.Color.fromHex(13378048),
+                  ]),
+                  (E = lc.Immutable.Map({
+                    Bond: C.Molecule.Colors.DefaultBondColor,
+                    Highlight: C.Color.fromHex(16777215),
+                    Selection: C.Color.fromHex(9863168),
+                  })),
+                  ((t = uc.Default || (uc.Default = {})).Themes = [
+                    {
+                      name: 'Chain ID',
+                      description: 'Color the surface by Chain ID.',
+                      colors: uc.ModelVisualBaseColors,
+                      provider: Nh(
+                        'chain-id',
+                        function (t) {
+                          return {
+                            index: t.data.atoms.residueIndex,
+                            property: t.data.residues.asymId,
+                          };
+                        },
+                        C.Molecule.Colors.DefaultPallete,
+                      ),
+                    },
+                    {
+                      name: 'Entity ID',
+                      description: 'Color the surface by Entity ID.',
+                      colors: uc.ModelVisualBaseColors,
+                      provider: Uh(function (t) {
+                        return {
+                          index: t.data.atoms.residueIndex,
+                          property: t.data.residues.entityId,
+                        };
+                      }, C.Molecule.Colors.DefaultPallete),
+                    },
+                    {
+                      name: 'Entity Type',
+                      description: 'Color the surface by Entity Type.',
+                      colors: uc.ModelVisualBaseColors,
+                      provider: Uh(function (t) {
+                        return { index: t.data.atoms.entityIndex, property: t.data.entities.type };
+                      }, C.Molecule.Colors.DefaultPallete),
+                    },
+                    {
+                      name: 'Residue Name',
+                      description: 'Color the surface by residue name.',
+                      colors: uc.ModelVisualBaseColors,
+                      provider: Uh(function (t) {
+                        return { index: t.data.atoms.residueIndex, property: t.data.residues.name };
+                      }, C.Molecule.Colors.DefaultPallete),
+                    },
+                    {
+                      name: 'Element Symbol',
+                      description: 'Color the surface by atom elemnt symbol.',
+                      colors: uc.ModelVisualBaseColors,
+                      provider: Lh(
+                        function (t) {
+                          return {
+                            index: t.data.atoms.indices,
+                            property: t.data.atoms.elementSymbol,
+                          };
+                        },
+                        C.Molecule.Colors.DefaultElementColorMap,
+                        C.Molecule.Colors.DefaultElementColor,
+                      ),
+                    },
+                    {
+                      name: 'Rainbow (Chain)',
+                      description: 'Color each chain using rainbow palette.',
+                      colors: E,
+                      provider: Oh(
+                        function (t) {
+                          return t.data.chains;
+                        },
+                        function (t, e) {
+                          return t.asymId[e] + ' ' + t.entityId[e];
+                        },
+                      ),
+                    },
+                    {
+                      name: 'Rainbow (Entity)',
+                      description: 'Color each entity using rainbow palette.',
+                      colors: E,
+                      provider: Oh(
+                        function (t) {
+                          return t.data.entities;
+                        },
+                        function (t, e) {
+                          return t.entityId[e];
+                        },
+                      ),
+                    },
+                    {
+                      name: 'Uniform Color',
+                      description: 'Same color everywhere.',
+                      colors: uc.UniformBaseColors,
+                      provider: Ph,
+                    },
+                  ]),
+                  (t.CartoonThemeTemplate = t.Themes.filter(function (t) {
+                    return 'Chain ID' === t.name;
+                  })[0]),
+                  (t.ElementSymbolThemeTemplate = t.Themes.filter(function (t) {
+                    return 'Element Symbol' === t.name;
+                  })[0]),
+                  (t.SurfaceThemeTemplate = t.Themes.filter(function (t) {
+                    return 'Uniform Color' === t.name;
+                  })[0]),
+                  (t.UniformThemeTemplate = t.Themes.filter(function (t) {
+                    return 'Uniform Color' === t.name;
+                  })[0]),
+                  (t.RainbowEntityThemeTemplate = t.Themes.filter(function (t) {
+                    return 'Rainbow (Entity)' === t.name;
+                  })[0]),
+                  ((e =
+                    (e =
+                      (e = (e = F = F || {}).Bootstrap || (e.Bootstrap = {})).Visualization ||
+                      (e.Visualization = {})).Molecule || (e.Molecule = {})).TypeDescriptions = {
+                    Cartoons: { label: 'Cartoon', shortLabel: 'Cartoon' },
+                    Calpha: { label: 'C-α Trace', shortLabel: 'C-α' },
+                    BallsAndSticks: { label: 'Balls and Sticks', shortLabel: "B'n'S" },
+                    VDWBalls: { label: 'VDW Balls', shortLabel: 'VDW' },
+                    Surface: { label: 'Surface', shortLabel: 'Surface' },
+                  }),
+                  (e.Types = ['Cartoons', 'Calpha', 'BallsAndSticks', 'VDWBalls', 'Surface']),
+                  (e.DetailTypes = ['Automatic', 'Very Low', 'Low', 'Medium', 'High', 'Very High']),
+                  ((Ac = e.Default || (e.Default = {})).DetailParams = { detail: 'Automatic' }),
+                  (Ac.CartoonParams = { showDirectionCone: !1, detail: 'Automatic' }),
+                  (Ac.BallsAndSticksParams = {
+                    useVDW: !0,
+                    vdwScaling: 0.22,
+                    atomRadius: 0.35,
+                    bondRadius: 0.09,
+                    hideHydrogens: !1,
+                    customMaxBondLengths: void 0,
+                    detail: 'Automatic',
+                  }),
+                  (Ac.SurfaceParams = {
+                    probeRadius: 0.4,
+                    automaticDensity: !0,
+                    density: 1.1,
+                    smoothing: 10,
+                    isWireframe: !1,
+                  }),
+                  (Ac.Transparency = { alpha: 1, writeDepth: !1 }),
+                  (Ac.ForType = (function () {
+                    for (
+                      var t = {
+                          Cartoons: {
+                            type: 'Cartoons',
+                            params: Ac.CartoonParams,
+                            theme: {
+                              template: Ac.CartoonThemeTemplate,
+                              colors: Ac.CartoonThemeTemplate.colors,
+                              transparency: Ac.Transparency,
+                              interactive: !0,
+                            },
+                          },
+                          Calpha: {
+                            type: 'Calpha',
+                            params: { detail: 'Automatic' },
+                            theme: {
+                              template: Ac.CartoonThemeTemplate,
+                              colors: Ac.CartoonThemeTemplate.colors,
+                              transparency: Ac.Transparency,
+                              interactive: !0,
+                            },
+                          },
+                          BallsAndSticks: {
+                            type: 'BallsAndSticks',
+                            params: Ac.BallsAndSticksParams,
+                            theme: {
+                              template: Ac.ElementSymbolThemeTemplate,
+                              colors: Ac.ElementSymbolThemeTemplate.colors,
+                              transparency: Ac.Transparency,
+                              interactive: !0,
+                            },
+                          },
+                          VDWBalls: {
+                            type: 'VDWBalls',
+                            params: { detail: 'Automatic' },
+                            theme: {
+                              template: Ac.ElementSymbolThemeTemplate,
+                              colors: Ac.ElementSymbolThemeTemplate.colors,
+                              transparency: Ac.Transparency,
+                              interactive: !0,
+                            },
+                          },
+                          Surface: {
+                            type: 'Surface',
+                            params: Ac.SurfaceParams,
+                            theme: {
+                              template: Ac.SurfaceThemeTemplate,
+                              colors: Ac.SurfaceThemeTemplate.colors,
+                              transparency: { alpha: 0.33, writeDepth: !1 },
+                              interactive: !0,
+                            },
+                          },
+                        },
+                        e = new Map(),
+                        n = 0,
+                        r = Object.keys(t);
+                      n < r.length;
+                      n++
+                    ) {
+                      var i = r[n];
+                      e.set(i, t[i]);
+                    }
+                    return e;
+                  })()),
+                  (hc = F = F || {}),
+                  (pc = hc.Bootstrap || (hc.Bootstrap = {})),
+                  (dc = pc.Visualization || (pc.Visualization = {})),
+                  (fc = dc.Molecule || (dc.Molecule = {})),
+                  (gc = hc.Visualization),
+                  (mc = hc.Visualization.Molecule),
+                  (fc.create = function (t, e, n) {
+                    return (
+                      'Surface' === n.type
+                        ? jh
+                        : function (i, o, a) {
+                            var t = this;
+                            return pc.Task.create(
+                              'Visual (' + i.props.label + ')',
+                              dc.Style.getTaskType(a),
+                              function (r) {
+                                return D(t, void 0, void 0, function () {
+                                  var e, n;
+                                  return P(this, function (t) {
+                                    switch (t.label) {
+                                      case 0:
+                                        return (
+                                          (e = fc.TypeDescriptions[a.type].label),
+                                          [4, r.updateProgress('Creating ' + e + '...')]
+                                        );
+                                      case 1:
+                                        if (
+                                          (t.sent(),
+                                          (n = a.theme.template.provider(
+                                            pc.Utils.Molecule.findModel(i),
+                                            dc.Theme.getProps(a.theme),
+                                          )),
+                                          (n = Hh(i, a, n)))
+                                        )
+                                          return [4, n.run(r)];
+                                        throw 'Invalid input parameters.';
+                                      case 2:
+                                        return (
+                                          (n = t.sent()),
+                                          [
+                                            2,
+                                            pc.Entity.Molecule.Visual.create(o, {
+                                              label: e,
+                                              model: n,
+                                              style: a,
+                                              isSelectable: !a.isNotSelectable,
+                                            }),
+                                          ]
+                                        );
+                                    }
+                                  });
+                                });
+                              },
+                            );
+                          }
+                    )(t, e, n);
+                  }),
+                  (vc = F = F || {}),
+                  (bc = vc.Bootstrap || (vc.Bootstrap = {})),
+                  (yc = bc.Visualization || (bc.Visualization = {})),
+                  ((n = yc.Labels || (yc.Labels = {})).createMoleculeLabels = function (i, o, a) {
+                    var t = this;
+                    return bc.Task.create('Labels', 'Background', function (r) {
+                      return D(t, void 0, void 0, function () {
+                        var e, n;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return (
+                                (e = a.params),
+                                (n = a.theme.template.provider(i, yc.Theme.getProps(a.theme))),
+                                (e = bc.Utils.Molecule.create3DLabelsParams(i, e, n)),
+                                [4, r.updateProgress('Creating labels...')]
+                              );
+                            case 1:
+                              return (
+                                t.sent(), [4, vc.Visualization.Labels.Model.create(i, e).run(r)]
+                              );
+                            case 2:
+                              return (
+                                (n = t.sent()),
+                                [
+                                  2,
+                                  bc.Entity.Visual.Labels.create(o, {
+                                    label: 'Labels',
+                                    model: n,
+                                    style: a,
+                                    isSelectable: !1,
+                                  }),
+                                ]
+                              );
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (n.createGenericLabels = function (r, i, o) {
+                    var t = this;
+                    return bc.Task.create('Labels', 'Background', function (n) {
+                      return D(t, void 0, void 0, function () {
+                        var e;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              return [4, n.updateProgress('Creating labels...')];
+                            case 1:
+                              return (
+                                t.sent(),
+                                (e = o.style.theme.template.provider(
+                                  r,
+                                  yc.Theme.getProps(o.style.theme),
+                                )),
+                                (e = {
+                                  positions: o.positions,
+                                  sizes: o.sizes,
+                                  labels: o.labels,
+                                  options: o.options,
+                                  theme: e,
+                                }),
+                                [4, vc.Visualization.Labels.Model.create(r, e).run(n)]
+                              );
+                            case 2:
+                              return (
+                                (e = t.sent()),
+                                [
+                                  2,
+                                  bc.Entity.Visual.Labels.create(i, {
+                                    label: 'Labels',
+                                    model: e,
+                                    style: o.style,
+                                    isSelectable: !1,
+                                  }),
+                                ]
+                              );
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (r = F = F || {}),
+                  (wc = r.Bootstrap || (r.Bootstrap = {})),
+                  (E = (E = wc.Visualization || (wc.Visualization = {})).Labels || (E.Labels = {})),
+                  ((t = E.Style || (E.Style = {})).moleculeHasOnlyThemeChanged = function (t, e) {
+                    return wc.Utils.deepEqual(t.params, e.params);
+                  }),
+                  (t.createMoleculeStyle = function (t) {
+                    return {
+                      type: 'Labels',
+                      params: {
+                        kind: t.kind,
+                        labelsOptions: t.labelsOptions || Ec.MoleculeLabels.params.labelsOptions,
+                      },
+                      theme: t.theme || Ec.MoleculeLabels.theme,
+                    };
+                  }),
+                  (t = Ec = E.Default || (E.Default = {})),
+                  (Bc = r.Visualization),
+                  (E = wc.Immutable.Map({
+                    Uniform: Bc.Color.fromHexString('#eaeaea'),
+                    Background: Bc.Color.fromHexString('#777777'),
+                    Outline: Bc.Color.fromHexString('#333333'),
+                  })),
+                  (r = wc.Immutable.Map({
+                    xOffset: 0,
+                    yOffset: 0,
+                    zOffset: 0.6,
+                    sizeFactor: 1.5,
+                    backgroundOpacity: 0,
+                    outlineWidth: 0.1,
+                  })),
+                  (e = { alpha: 1, writeDepth: !1 }),
+                  (t.Theme = [
+                    {
+                      name: 'Uniform Color',
+                      description: 'Same color everywhere.',
+                      colors: E,
+                      variables: r,
+                      provider: function (t, e) {
+                        return Bc.Theme.createUniform(e);
+                      },
+                    },
+                  ][0]),
+                  (t.MoleculeLabels = {
+                    type: 'Labels',
+                    params: {
+                      kind: 'Residue-Full-Id',
+                      labelsOptions: Bc.Labels.DefaultLabelsOptions,
+                    },
+                    theme: {
+                      template: t.Theme,
+                      colors: t.Theme.colors,
+                      variables: t.Theme.variables,
+                      transparency: e,
+                      interactive: !1,
+                      disableFog: !1,
+                    },
+                  }),
+                  (t.GenericLabels = {
+                    type: 'Labels',
+                    params: Bc.Labels.DefaultLabelsOptions,
+                    theme: {
+                      template: t.Theme,
+                      colors: t.Theme.colors,
+                      variables: t.Theme.variables,
+                      transparency: e,
+                      interactive: !1,
+                      disableFog: !1,
+                    },
+                  }),
+                  (Cc = F = F || {}),
+                  (xc = Cc.Bootstrap || (Cc.Bootstrap = {})),
+                  (Ic = xc.Visualization || (xc.Visualization = {})),
+                  (Mc = Ic.Density || (Ic.Density = {})),
+                  (Dc = Cc.Core.Geometry),
+                  (Mc.create = function (p, d, f) {
+                    var t = this,
+                      e =
+                        'Background' === f.taskType
+                          ? p.props.label
+                          : 'Density Surface (' + p.props.label + ')';
+                    return xc.Task.create(e, Ic.Style.getTaskType(f), function (h) {
+                      return D(t, void 0, void 0, function () {
+                        var e, n, r, i, o, a, s, l, u, c, A;
+                        return P(this, function (t) {
+                          switch (t.label) {
+                            case 0:
+                              if (
+                                ((e = f.params),
+                                !(n = xc.Tree.Node.findClosestNodeOfType(p, [
+                                  xc.Entity.Density.Data,
+                                ])))
+                              )
+                                throw 'Cannot create density visual on ' + p.props.label;
+                              if (
+                                ((r = n.props.data),
+                                (A = r.spacegroup.basis),
+                                (a = r.box),
+                                (c = a.sampleCount),
+                                (i = a.origin),
+                                (a = a.dimensions),
+                                (a = new Cc.Visualization.THREE.Matrix4().makeScale(
+                                  a[0] / c[0],
+                                  a[1] / c[1],
+                                  a[2] / c[2],
+                                )),
+                                (c = new Cc.Visualization.THREE.Matrix4().makeTranslation(
+                                  i[0],
+                                  i[1],
+                                  i[2],
+                                )),
+                                (i = new Cc.Visualization.THREE.Matrix4().set(
+                                  A.x[0],
+                                  A.y[0],
+                                  A.z[0],
+                                  0,
+                                  0,
+                                  A.y[1],
+                                  A.z[1],
+                                  0,
+                                  0,
+                                  0,
+                                  A.z[2],
+                                  0,
+                                  0,
+                                  0,
+                                  0,
+                                  1,
+                                )),
+                                (A = new Cc.Visualization.THREE.Matrix4().getInverse(i)),
+                                (i = i.multiply(c).multiply(a)),
+                                (a =
+                                  e.bottomLeft && e.topRight
+                                    ? ((c = (function (t, e, n, r) {
+                                        for (
+                                          var i = n[0] - e[0],
+                                            o = n[1] - e[1],
+                                            n = n[2] - e[2],
+                                            a = (i = [
+                                              e,
+                                              [e[0] + i, e[1], e[2]],
+                                              [e[0], e[1] + o, e[2]],
+                                              [e[0], e[1], e[2] + n],
+                                              [e[0] + i, e[1] + o, e[2]],
+                                              [e[0] + i, e[1], e[2] + n],
+                                              [e[0], e[1] + o, e[2] + n],
+                                              [e[0] + i, e[1] + o, e[2] + n],
+                                            ].map(function (t) {
+                                              t = new Cc.Visualization.THREE.Vector3()
+                                                .fromArray(t)
+                                                .applyMatrix4(r);
+                                              return [t.x, t.y, t.z];
+                                            }))[0].slice(),
+                                            s = i[0].slice(),
+                                            l = 0,
+                                            u = i;
+                                          l < u.length;
+                                          l++
+                                        )
+                                          for (var c = u[l], A = 0; A < 3; A++)
+                                            (a[A] = Math.min(a[A], c[A])),
+                                              (s[A] = Math.max(s[A], c[A]));
+                                        for (
+                                          var h = (o = t.box).origin,
+                                            p = o.dimensions,
+                                            d = o.sampleCount,
+                                            f = [0, 0, 0],
+                                            g = [0, 0, 0],
+                                            A = 0;
+                                          A < 3;
+                                          A++
+                                        ) {
+                                          c = Math.floor((d[A] * (a[A] - h[A])) / p[A]);
+                                          (f[A] = Math.min(Math.max(c, 0), d[A])),
+                                            (c = Math.ceil((d[A] * (s[A] - h[A])) / p[A])),
+                                            (g[A] = Math.min(Math.max(c, 0), d[A]));
+                                        }
+                                        return { bottomLeft: f, topRight: g };
+                                      })(r, e.bottomLeft, e.topRight, A)),
+                                      (o = c.bottomLeft),
+                                      c.topRight)
+                                    : ((o = [0, 0, 0]), r.box.sampleCount)),
+                                o[0] - a[0] && o[1] - a[1] && o[2] - a[2])
+                              )
+                                return (
+                                  (s =
+                                    void 0 === e.isoValueType ||
+                                    e.isoValueType === Mc.IsoValueType.Sigma),
+                                  (A = s
+                                    ? r.valuesInfo.mean + r.valuesInfo.sigma * e.isoValue
+                                    : e.isoValue),
+                                  [
+                                    4,
+                                    Dc.MarchingCubes.compute({
+                                      isoLevel: A,
+                                      scalarField: r.data,
+                                      bottomLeft: o,
+                                      topRight: a,
+                                    }).run(h),
+                                  ]
+                                );
+                              throw { warn: !0, message: 'Empty box.' };
+                            case 1:
+                              return (
+                                (l = t.sent()), [4, Dc.Surface.transform(l, i.elements).run(h)]
+                              );
+                            case 2:
+                              return (
+                                (l = t.sent()),
+                                [4, Dc.Surface.laplacianSmooth(l, e.smoothing, 8).run(h)]
+                              );
+                            case 3:
+                              return (
+                                (l = t.sent()),
+                                (u = f.theme.template.provider(n, Ic.Theme.getProps(f.theme))),
+                                [4, h.updateProgress('Creating visual...')]
+                              );
+                            case 4:
+                              return (
+                                t.sent(),
+                                [
+                                  4,
+                                  Cc.Visualization.Surface.Model.create(n, {
+                                    surface: l,
+                                    theme: u,
+                                    parameters: { isWireframe: f.params.isWireframe },
+                                  }).run(h),
+                                ]
+                              );
+                            case 5:
+                              return (
+                                (c = t.sent()),
+                                (A = 'Surface, ' + xc.Utils.round(e.isoValue, 2) + (s ? ' σ' : '')),
+                                [
+                                  2,
+                                  xc.Entity.Density.Visual.create(d, {
+                                    label: A,
+                                    model: c,
+                                    style: f,
+                                    isSelectable: !f.isNotSelectable,
+                                  }),
+                                ]
+                              );
+                          }
+                        });
+                      });
+                    });
+                  }),
+                  (n = F = F || {}),
+                  (E = n.Bootstrap || (n.Bootstrap = {})),
+                  (r = (r = E.Visualization || (E.Visualization = {})).Density || (r.Density = {})),
+                  ((e = t = r.IsoValueType || (r.IsoValueType = {}))[(e.Sigma = 0)] = 'Sigma'),
+                  (e[(e.Absolute = 1)] = 'Absolute'),
+                  (r.areNonIsoParamsSame = function (t, e) {
+                    return (
+                      t.bottomLeft === e.bottomLeft &&
+                      e.topRight == e.topRight &&
+                      t.smoothing === e.smoothing &&
+                      t.isWireframe === e.isWireframe
+                    );
+                  }),
+                  ((r.Style || (r.Style = {})).create = function (t) {
+                    var e = Sc.Theme.colors.set('Uniform', t.color);
+                    return {
+                      type: 'Density',
+                      taskType: t.taskType,
+                      params: {
+                        isoValue: t.isoValue,
+                        isoValueType: t.isoValueType,
+                        smoothing: 1,
+                        isWireframe: !!t.isWireframe,
+                      },
+                      theme: {
+                        template: Sc.Theme,
+                        colors: e,
+                        transparency: t.transparency || Sc.Transparency,
+                        interactive: !1,
+                        disableFog: !!t.disableFog,
+                      },
+                    };
+                  }),
+                  ((e = Sc = r.Default || (r.Default = {})).Params = {
+                    isoValue: 0,
+                    isoValueType: t.Sigma,
+                    smoothing: 1,
+                    isWireframe: !1,
+                  }),
+                  (kc = n.Visualization),
+                  (r = E.Immutable.Map({
+                    Uniform: kc.Theme.Default.UniformColor,
+                    Highlight: kc.Theme.Default.HighlightColor,
+                    Selection: kc.Theme.Default.SelectionColor,
+                  })),
+                  (e.Themes = [
+                    {
+                      name: 'Uniform Color',
+                      description: 'Same color everywhere.',
+                      colors: r,
+                      provider: function (t, e) {
+                        return kc.Theme.createUniform(e);
+                      },
+                    },
+                  ]),
+                  (e.Transparency = { alpha: 1, writeDepth: !1 }),
+                  (e.Theme = e.Themes[0]),
+                  (e.Style = {
+                    type: 'Density',
+                    params: e.Params,
+                    theme: {
+                      template: e.Theme,
+                      colors: e.Theme.colors,
+                      transparency: e.Transparency,
+                      interactive: !1,
+                      disableFog: !1,
+                    },
+                  }),
+                  (t = F = F || {}),
+                  ((t =
+                    (Fc = t.Bootstrap || (t.Bootstrap = {})).Entity || (Fc.Entity = {})).isClass =
+                    function (t, e) {
+                      return t.type.info.typeClass === e;
+                    }),
+                  (t.isTypeClass = function (t, e) {
+                    return t.info.typeClass === e;
+                  }),
+                  (t.RootClass = 'Root'),
+                  (t.GroupClass = 'Group'),
+                  (t.DataClass = 'Data'),
+                  (t.ObjectClass = 'Object'),
+                  (t.VisualClass = 'Visual'),
+                  (t.SelectionClass = 'Selection'),
+                  (t.ActionClass = 'Action'),
+                  (t.BehaviourClass = 'Behaviour'),
+                  (Vh.prototype.create = function (t, e) {
+                    e = {
+                      id: Fc.Tree.Node.createId(),
+                      version: 0,
+                      index: 0,
+                      ref: 'undefined',
+                      tag: void 0,
+                      tree: void 0,
+                      props: e,
+                      state: { isCollapsed: !1, visibility: 0 },
+                      isHidden: !1,
+                      transform: t,
+                      parent: void 0,
+                      children: [],
+                      type: this,
+                    };
+                    return Fc.Tree.Node.update(e);
+                  }),
+                  (Qc = Vh),
+                  (t.create = function (t, e) {
+                    return new Qc(Fc.Utils.generateUUID(), t, e || {});
+                  }),
+                  (n = F = F || {}),
+                  ((n =
+                    (_c = n.Bootstrap || (n.Bootstrap = {})).Entity ||
+                    (_c.Entity = {})).nodeUpdated = qh),
+                  (n.toggleExpanded = function (t) {
+                    var e = { isCollapsed: !t.state.isCollapsed };
+                    _c.Tree.Node.withState(t, e), qh(t);
+                  }),
+                  (n.setCurrent = function (t) {
+                    var e = t.tree.context.currentEntity;
+                    if (!(e === t || (t && t.isHidden))) {
+                      for (var n = t.parent; n.parent !== n; ) {
+                        if (n.isHidden) return;
+                        n = n.parent;
+                      }
+                      (t.tree.context.currentEntity = t),
+                        e && (_c.Tree.Node.update(e), qh(e)),
+                        t && (_c.Tree.Node.update(t), qh(t)),
+                        _c.Event.Entity.CurrentChanged.dispatch(t.tree.context, t),
+                        e && _c.Tree.updatePath(e),
+                        _c.Tree.updatePath(t.parent);
+                    }
+                  }),
+                  (n.updateVisibilityState = Wh),
+                  (n.setVisibility = function (t, e) {
+                    var n;
+                    t &&
+                      ((n = e ? 0 : 2),
+                      _c.Tree.Node.forEach(t, function (t) {
+                        t.state.visibility !== n &&
+                          (_c.Tree.Node.withState(t, { visibility: n }), qh(t));
+                      }),
+                      Wh(t.parent));
+                  }),
+                  (E = (E = F = F || {}).Bootstrap || (E.Bootstrap = {})),
+                  ((s = E.Entity || (E.Entity = {})).isMolecule = function (t) {
+                    return t && t.type === Tc.Molecule;
+                  }),
+                  (s.isMoleculeModel = function (t) {
+                    return t && t.type === Tc.Model;
+                  }),
+                  (s.isMoleculeSelection = function (t) {
+                    return t && t.type === Tc.Selection;
+                  }),
+                  (s.isVisual = function (t) {
+                    return t && t.type.info.typeClass === s.VisualClass;
+                  }),
+                  (s.RootTransform = E.Tree.Transform.create({}, {}, void 0)),
+                  (s.Root = s.create({
+                    name: 'Root',
+                    typeClass: 'Root',
+                    shortName: 'R',
+                    description: 'Where everything begins.',
+                  })),
+                  (s.Group = s.create({
+                    name: 'Group',
+                    typeClass: 'Group',
+                    shortName: 'G',
+                    description: 'A group on entities.',
+                  })),
+                  (s.Action = s.create({
+                    name: 'Action',
+                    typeClass: 'Action',
+                    shortName: 'A',
+                    description: 'Represents an action performed on the entity tree.',
+                  })),
+                  ((E = s.Data || (s.Data = {})).Types = ['String', 'Binary']),
+                  (E.String = s.create({
+                    name: 'String Data',
+                    typeClass: 'Data',
+                    shortName: 'S_D',
+                    description: 'A string.',
+                  })),
+                  (E.Binary = s.create({
+                    name: 'Binary Data',
+                    typeClass: 'Data',
+                    shortName: 'B_D',
+                    description: 'A binary blob.',
+                  })),
+                  (E.CifDictionary = s.create({
+                    name: 'Cif Dictionary',
+                    typeClass: 'Data',
+                    shortName: 'CD',
+                    description: 'Represents parsed CIF data.',
+                  })),
+                  (E.Json = s.create({
+                    name: 'JSON Data',
+                    typeClass: 'Data',
+                    shortName: 'JS_D',
+                    description: 'Represents JSON data.',
+                  })),
+                  ((E = s.Visual || (s.Visual = {})).Surface = s.create(
+                    {
+                      name: 'Surface Visual',
+                      typeClass: 'Visual',
+                      shortName: 'V_S',
+                      description: 'A surface visual.',
+                    },
+                    { isFocusable: !0 },
+                  )),
+                  (E.Labels = s.create(
+                    {
+                      name: 'Labels Visual',
+                      typeClass: 'Visual',
+                      shortName: 'V_L',
+                      description: '3D labels.',
+                    },
+                    { isFocusable: !1 },
+                  )),
+                  ((E = Tc = s.Molecule || (s.Molecule = {})).Molecule = s.create({
+                    name: 'Molecule',
+                    typeClass: 'Object',
+                    shortName: 'M',
+                    description: 'A molecule that might contain one or more models.',
+                  })),
+                  (E.Model = s.create({
+                    name: 'Molecule Model',
+                    typeClass: 'Object',
+                    shortName: 'M_M',
+                    description: 'A model of a molecule.',
+                  })),
+                  (E.Selection = s.create(
+                    {
+                      name: 'Molecule Model Selection',
+                      typeClass: 'Selection',
+                      shortName: 'S_M',
+                      description: 'A selection of atoms.',
+                    },
+                    { isFocusable: !0 },
+                  )),
+                  (E.Visual = s.create(
+                    {
+                      name: 'Molecule Visual',
+                      typeClass: 'Visual',
+                      shortName: 'V_M',
+                      description: 'A visual of a molecule.',
+                    },
+                    { isFocusable: !0 },
+                  )),
+                  ((E.CoordinateStreaming || (E.CoordinateStreaming = {})).Behaviour = s.create({
+                    name: 'Coordinate Streaming',
+                    typeClass: 'Behaviour',
+                    shortName: 'CS',
+                    description:
+                      'Behaviour that downloads surrounding residues when an atom or residue is selected.',
+                  })),
+                  ((E = s.Density || (s.Density = {})).Data = s.create({
+                    name: 'Density Data',
+                    typeClass: 'Object',
+                    shortName: 'DD',
+                    description: 'Density data.',
+                  })),
+                  (E.Visual = s.create(
+                    {
+                      name: 'Density Visual',
+                      typeClass: 'Visual',
+                      shortName: 'V_DD',
+                      description: 'A visual of density data.',
+                    },
+                    { isFocusable: !0 },
+                  )),
+                  (E.InteractiveSurface = s.create({
+                    name: 'Interactive Surface',
+                    typeClass: 'Behaviour',
+                    shortName: 'B_IS',
+                    description:
+                      'Behaviour that creates an interactive surface when an atom or residue is selected.',
+                  })),
+                  (Rc = F = F || {}),
+                  (function (t) {
+                    (e.prototype.get = function (t, e) {
+                      t = this.data.get(t.id);
+                      if (t) return t[e];
+                    }),
+                      (e.prototype.set = function (t, e, n) {
+                        var r = this.data.get(t.id);
+                        return r ? (r[e] = n) : this.data.set(t.id, (((r = {})[e] = n), r)), n;
+                      });
+                    function e(t) {
+                      var e = this;
+                      (this.data = Rc.Core.Utils.FastMap.create()),
+                        Uc.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) {
+                          return e.data.delete(t.data.id);
+                        });
+                    }
+                    (t.Cache = e),
+                      (((t = t.Cache || (t.Cache = {})).Keys || (t.Keys = {})).QueryContext =
+                        'queryContext');
+                  })((Uc = Rc.Bootstrap || (Rc.Bootstrap = {})).Entity || (Uc.Entity = {})),
+                  (Nc = F = F || {}),
+                  (Pc = Nc.Bootstrap || (Nc.Bootstrap = {})),
+                  (Lc = Pc.Entity || (Pc.Entity = {})),
+                  (function (t) {
+                    var e = this,
+                      n = Pc.Tree.Transformer;
+                    (t.Root = n.create(
+                      {
+                        id: 'root',
+                        name: 'Root',
+                        description: 'A transformer that always returns itself.',
+                        from: [Lc.Root],
+                        to: [Lc.Root],
+                        validateParams: function () {},
+                        defaultParams: function () {
+                          return {};
+                        },
+                      },
+                      function (t, e, n) {
+                        return Pc.Task.resolve('Root', 'Silent', e);
+                      },
+                    )),
+                      (t.Fail = n.create(
+                        {
+                          id: 'fail',
+                          name: 'Fail',
+                          description: 'A transform that always fails.',
+                          from: [],
+                          to: [],
+                          validateParams: function () {},
+                          defaultParams: function () {
+                            return { title: 'Error', message: 'Unknown error.' };
+                          },
+                        },
+                        function (t, e, n) {
+                          return Pc.Task.reject(n.params.title, 'Background', n.params.message);
+                        },
+                      )),
+                      (t.CreateGroup = n.create(
+                        {
+                          id: 'create-group',
+                          name: 'Create Group',
+                          description: 'A transformer that always returns itself.',
+                          from: [],
+                          to: [Lc.Group],
+                          validateParams: function () {},
+                          defaultParams: function () {
+                            return {};
+                          },
+                        },
+                        function (t, e, n) {
+                          var r = Lc.Group.create(n, {
+                            label: n.params.label || 'Group',
+                            description: n.params.description,
+                          });
+                          return (
+                            n.params.isCollapsed &&
+                              (r = Pc.Tree.Node.withState(r, { isCollapsed: !0 })),
+                            Pc.Task.resolve('Group', 'Silent', r)
+                          );
+                        },
+                      )),
+                      (t.Delay = n.create(
+                        {
+                          id: 'basic-delay',
+                          name: 'Delay',
+                          description:
+                            'A transformer that delays by the specified timeout and does nothing.',
+                          from: [],
+                          to: [Lc.Action],
+                          validateParams: function () {},
+                          defaultParams: function () {
+                            return { timeoutMs: 1e3 };
+                          },
+                        },
+                        function (t, e, n) {
+                          return Pc.Task.create('Delay', 'Silent', function (t) {
+                            return new Nc.Promise(function (t) {
+                              setTimeout(function () {
+                                return t(Pc.Tree.Node.Null);
+                              }, n.params.timeoutMs);
+                            });
+                          });
+                        },
+                      )),
+                      (t.CreateSurfaceVisual = Pc.Tree.Transformer.create(
+                        {
+                          id: 'basic-create-surface-visual',
+                          name: 'Create Surface Visual',
+                          description: 'Create generic surface visual.',
+                          from: [],
+                          to: [Pc.Entity.Visual.Surface],
+                          defaultParams: function () {},
+                          isUpdatable: !1,
+                        },
+                        function (t, r, i) {
+                          var o = i.params.theme,
+                            a = {
+                              type: 'Surface',
+                              taskType: i.params.taskType || 'Silent',
+                              isNotSelectable: !!i.params.isNotInteractive,
+                              params: {},
+                              theme: void 0,
+                            };
+                          return Pc.Task.create(
+                            'Create Surface Visual',
+                            i.params.taskType || 'Silent',
+                            function (n) {
+                              return D(e, void 0, void 0, function () {
+                                var e;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      return [
+                                        4,
+                                        Nc.Visualization.Surface.Model.create(r, {
+                                          surface: i.params.surface,
+                                          theme: o,
+                                          parameters: { isWireframe: i.params.isWireframe },
+                                        }).run(n),
+                                      ];
+                                    case 1:
+                                      return (
+                                        (e = t.sent()),
+                                        [
+                                          2,
+                                          Pc.Entity.Visual.Surface.create(i, {
+                                            label: i.params.label || 'Surface',
+                                            model: e,
+                                            style: a,
+                                            isSelectable: !i.params.isNotInteractive,
+                                            tag: i.params.tag,
+                                          }),
+                                        ]
+                                      );
+                                  }
+                                });
+                              });
+                            },
+                          );
+                        },
+                      ));
+                  })((r = Lc.Transformer || (Lc.Transformer = {})).Basic || (r.Basic = {})),
+                  (Yc = F = F || {}),
+                  (u = Yc.Bootstrap || (Yc.Bootstrap = {})),
+                  (c = u.Entity || (u.Entity = {})),
+                  (function (o) {
+                    var e = this;
+                    (o.downloadMoleculeSource = function (i) {
+                      return u.Tree.Transformer.action(
+                        {
+                          id: 'molecule-download-molecule-' + i.sourceId,
+                          name: 'Molecule from ' + i.name,
+                          description: i.description,
+                          from: [c.Root],
+                          to: [c.Action],
+                          defaultParams: function (t) {
+                            return {
+                              id: i.defaultId,
+                              format: Yc.Core.Formats.Molecule.SupportedFormats.mmCIF,
+                            };
+                          },
+                          validateParams: function (t) {
+                            return t.id && t.id.trim().length
+                              ? void 0
+                              : ['Enter ' + (i.isFullUrl ? 'URL' : 'Id')];
+                          },
+                        },
+                        function (t, e, n) {
+                          var r = i.specificFormat || n.params.format;
+                          return u.Tree.Transform.build()
+                            .add(e, Oc.Data.Download, {
+                              url: i.urlTemplate(n.params.id.trim()),
+                              type: r.isBinary ? 'Binary' : 'String',
+                              id: n.params.id,
+                              description: i.name,
+                              title: 'Molecule',
+                            })
+                            .then(
+                              o.CreateFromData,
+                              { format: i.specificFormat || n.params.format },
+                              { isBinding: !0 },
+                            )
+                            .then(o.CreateModel, { modelIndex: 0 }, { isBinding: !1 });
+                        },
+                      );
+                    }),
+                      (o.OpenMoleculeFromFile = u.Tree.Transformer.action(
+                        {
+                          id: 'molecule-open-from-file',
+                          name: 'Molecule from File',
+                          description:
+                            'Open a molecule from a file (' +
+                            Yc.Core.Formats.Molecule.SupportedFormats.All.map(function (t) {
+                              return t.name;
+                            }).join(', ') +
+                            ').',
+                          from: [c.Root],
+                          to: [c.Action],
+                          defaultParams: function (t) {
+                            return { file: void 0 };
+                          },
+                          validateParams: function (t) {
+                            return t.file
+                              ? Yc.Core.Formats.FormatInfo.getFormat(
+                                  t.file.name,
+                                  Yc.Core.Formats.Molecule.SupportedFormats.All,
+                                )
+                                ? void 0
+                                : [
+                                    'Select a supported file format (' +
+                                      []
+                                        .concat(
+                                          Yc.Core.Formats.Molecule.SupportedFormats.All.map(
+                                            function (t) {
+                                              return t.extensions;
+                                            },
+                                          ),
+                                        )
+                                        .join(', ') +
+                                      ').',
+                                  ]
+                              : ['Select a file'];
+                          },
+                        },
+                        function (t, e, n) {
+                          var r = Yc.Core.Formats.FormatInfo.getFormat(
+                            n.params.file.name,
+                            Yc.Core.Formats.Molecule.SupportedFormats.All,
+                          );
+                          return u.Tree.Transform.build()
+                            .add(e, Oc.Data.OpenFile, {
+                              file: n.params.file,
+                              type: r.isBinary ? 'Binary' : 'String',
+                            })
+                            .then(o.CreateFromData, { format: r }, { isBinding: !0 })
+                            .then(o.CreateModel, { modelIndex: 0 }, { isBinding: !1 });
+                        },
+                      )),
+                      (o.CreateFromData = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-from-data',
+                          name: 'Molecule',
+                          description: 'Create a molecule from string or binary data.',
+                          from: [c.Data.String, c.Data.Binary],
+                          to: [c.Molecule.Molecule],
+                          defaultParams: function (t) {
+                            return { format: Yc.Core.Formats.Molecule.SupportedFormats.mmCIF };
+                          },
+                        },
+                        function (o, a, s) {
+                          return u.Task.create(
+                            'Create Molecule (' + a.props.label + ')',
+                            'Silent',
+                            function () {
+                              return D(e, void 0, void 0, function () {
+                                var e, n, r, i;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      return [
+                                        4,
+                                        u.Task.fromComputation(
+                                          'Create Molecule (' + a.props.label + ')',
+                                          'Normal',
+                                          s.params.format.parse(a.props.data, {
+                                            id: s.params.customId,
+                                          }),
+                                        )
+                                          .setReportTime(!0)
+                                          .run(o),
+                                      ];
+                                    case 1:
+                                      if ((e = t.sent()).isError) throw e.toString();
+                                      if (e.warnings && 0 < e.warnings.length)
+                                        for (n = 0, r = e.warnings; n < r.length; n++)
+                                          (i = r[n]), o.logger.warning(i);
+                                      return [
+                                        2,
+                                        c.Molecule.Molecule.create(s, {
+                                          label: e.result.id,
+                                          molecule: e.result,
+                                        }),
+                                      ];
+                                  }
+                                });
+                              });
+                            },
+                          );
+                        },
+                      )),
+                      (o.CreateFromMmCif = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-from-mmcif',
+                          name: 'Molecule',
+                          description: 'Create a molecule from a mmCIF data block.',
+                          from: [c.Data.CifDictionary],
+                          to: [c.Molecule.Molecule],
+                          defaultParams: function (t) {
+                            return { blockIndex: 0 };
+                          },
+                        },
+                        function (t, i, o) {
+                          return u.Task.create(
+                            'Create Molecule (' + i.props.label + ')',
+                            'Normal',
+                            function (r) {
+                              return D(e, void 0, void 0, function () {
+                                var e, n;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      return [4, r.updateProgress('Creating...')];
+                                    case 1:
+                                      if (
+                                        (t.sent(),
+                                        (e = 0 | o.params.blockIndex),
+                                        (n = i.props.dictionary.dataBlocks[e]))
+                                      )
+                                        return (
+                                          (n = Yc.Core.Formats.Molecule.mmCIF.ofDataBlock(n)),
+                                          [
+                                            2,
+                                            c.Molecule.Molecule.create(o, {
+                                              label: n.id,
+                                              molecule: n,
+                                            }),
+                                          ]
+                                        );
+                                      throw (
+                                        'The source contains only ' +
+                                        i.props.dictionary.dataBlocks.length +
+                                        ' data block(s), tried to access the ' +
+                                        (1 + e) +
+                                        '-th.'
+                                      );
+                                  }
+                                });
+                              });
+                            },
+                          ).setReportTime(!0);
+                        },
+                      )),
+                      (o.CreateModel = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-model',
+                          name: 'Model',
+                          description: 'Create a model of a molecule.',
+                          from: [c.Molecule.Molecule],
+                          to: [c.Molecule.Model],
+                          isUpdatable: !0,
+                          defaultParams: function (t) {
+                            return { modelIndex: 0 };
+                          },
+                        },
+                        function (t, r, i) {
+                          return u.Task.create(
+                            'Create Model (' + r.props.label + ')',
+                            'Background',
+                            function (t) {
+                              return D(e, void 0, void 0, function () {
+                                var e, n;
+                                return P(this, function (t) {
+                                  if (
+                                    ((e = i.params),
+                                    (e = 0 | e.modelIndex),
+                                    (n = r.props.molecule.models[e]))
+                                  )
+                                    return [
+                                      2,
+                                      c.Molecule.Model.create(i, {
+                                        label: 'Model ' + n.modelId,
+                                        description:
+                                          n.data.atoms.count +
+                                          ' atom' +
+                                          (1 !== n.data.atoms.count ? 's' : ''),
+                                        model: n,
+                                      }),
+                                    ];
+                                  throw (
+                                    'The molecule contains only ' +
+                                    r.props.molecule.models.length +
+                                    ' model(s), tried to access the ' +
+                                    (1 + e) +
+                                    '-th.'
+                                  );
+                                });
+                              });
+                            },
+                          );
+                        },
+                      )),
+                      (o.CreateSelection = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-selection',
+                          name: 'Selection',
+                          description: 'Create an atom selection.',
+                          from: [c.Molecule.Model, c.Molecule.Visual],
+                          to: [c.Molecule.Selection],
+                          isUpdatable: !0,
+                          defaultParams: function (t) {
+                            return {
+                              queryString: t.settings.get('molecule.model.defaultQuery') || '',
+                            };
+                          },
+                          validateParams: function (t) {
+                            if (!(t.queryString || '').trim().length) return ['Enter query'];
+                            try {
+                              return void Yc.Core.Structure.Query.Builder.toQuery(t.queryString);
+                            } catch (t) {
+                              return ['' + t];
+                            }
+                          },
+                        },
+                        function (t, i, o) {
+                          return u.Task.create(
+                            'Create Selection (' + i.props.label + ')',
+                            'Background',
+                            function (t) {
+                              return D(e, void 0, void 0, function () {
+                                var e, n, r;
+                                return P(this, function (t) {
+                                  if (
+                                    ((e = o.params),
+                                    (r = Yc.Core.Structure.Query.Builder.toQuery(e.queryString)),
+                                    (n = o.params.inFullContext
+                                      ? u.Utils.Molecule.findModel(i).props.model.queryContext
+                                      : u.Utils.Molecule.findQueryContext(i)),
+                                    (r = r(n).unionAtomIndices()).length)
+                                  )
+                                    return [
+                                      2,
+                                      c.Molecule.Selection.create(o, {
+                                        label: e.name || 'Selection',
+                                        description:
+                                          r.length + ' atom' + (1 !== r.length ? 's' : ''),
+                                        indices: r,
+                                      }),
+                                    ];
+                                  throw {
+                                    warn: !0,
+                                    message:
+                                      'Empty selection' +
+                                      (o.params.name ? ' (' + o.params.name + ')' : '') +
+                                      '.',
+                                  };
+                                });
+                              });
+                            },
+                          ).setReportTime(!o.params.silent);
+                        },
+                      )),
+                      (o.CreateSelectionFromQuery = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-selection',
+                          name: 'Selection',
+                          description: 'Create an atom selection.',
+                          from: [c.Molecule.Selection, c.Molecule.Model, c.Molecule.Visual],
+                          to: [c.Molecule.Selection],
+                          defaultParams: function (t) {},
+                        },
+                        function (t, i, o) {
+                          return u.Task.create(
+                            'Create Selection (' + i.props.label + ')',
+                            'Background',
+                            function (t) {
+                              return D(e, void 0, void 0, function () {
+                                var e, n, r;
+                                return P(this, function (t) {
+                                  if (
+                                    ((e = o.params),
+                                    (r = Yc.Core.Structure.Query.Builder.toQuery(e.query)),
+                                    (n = o.params.inFullContext
+                                      ? u.Utils.Molecule.findModel(i).props.model.queryContext
+                                      : u.Utils.Molecule.findQueryContext(i)),
+                                    (r = r(n).unionAtomIndices()).length)
+                                  )
+                                    return [
+                                      2,
+                                      c.Molecule.Selection.create(o, {
+                                        label: e.name || 'Selection',
+                                        description:
+                                          r.length + ' atom' + (1 !== r.length ? 's' : ''),
+                                        indices: r,
+                                      }),
+                                    ];
+                                  throw {
+                                    warn: !0,
+                                    message:
+                                      'Empty selection' +
+                                      (o.params.name ? ' (' + o.params.name + ')' : '') +
+                                      '.',
+                                  };
+                                });
+                              });
+                            },
+                          ).setReportTime(!o.params.silent);
+                        },
+                      )),
+                      (o.CreateAssembly = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-assemly',
+                          name: 'Assembly',
+                          description: 'Create an assembly of a molecule.',
+                          from: [c.Molecule.Model],
+                          to: [c.Molecule.Model],
+                          defaultParams: function (t, e) {
+                            var e = u.Utils.Molecule.findModel(e),
+                              n = {
+                                name: t.settings.get('molecule.model.defaultAssemblyName') || '1',
+                              },
+                              t = e.props.model.data.assemblyInfo;
+                            return (
+                              t &&
+                                t.assemblies.length &&
+                                (t.assemblies.filter(function (t) {
+                                  return t.name === n.name;
+                                }) ||
+                                  (n.name = t.assemblies[0].name)),
+                              n
+                            );
+                          },
+                          isUpdatable: !0,
+                          isApplicable: function (t) {
+                            return !!(
+                              t &&
+                              t.props.model.data.assemblyInfo &&
+                              t.props.model.data.assemblyInfo.assemblies.length
+                            );
+                          },
+                        },
+                        function (t, i, o) {
+                          return u.Task.create(
+                            'Create Model (' + i.props.label + ')',
+                            'Background',
+                            function (r) {
+                              return D(e, void 0, void 0, function () {
+                                var e, n;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      if (
+                                        !(e = i.props.model.data.assemblyInfo) ||
+                                        !e.assemblies.length
+                                      )
+                                        throw 'Assembly info not available.';
+                                      if (
+                                        (e = e.assemblies.filter(function (t) {
+                                          return t.name === o.params.name;
+                                        })[0])
+                                      )
+                                        return [4, r.updateProgress('Creating...')];
+                                      throw "No assembly called '" + o.params.name + "' found.";
+                                    case 1:
+                                      return (
+                                        t.sent(),
+                                        (n = Yc.Core.Structure.buildAssembly(i.props.model, e)),
+                                        [
+                                          2,
+                                          c.Molecule.Model.create(o, {
+                                            label: 'Assembly ' + e.name,
+                                            description:
+                                              n.data.atoms.count +
+                                              ' atom' +
+                                              (1 !== n.data.atoms.count ? 's' : ''),
+                                            model: n,
+                                          }),
+                                        ]
+                                      );
+                                  }
+                                });
+                              });
+                            },
+                          );
+                        },
+                      )),
+                      (o.CreateSymmetryMates = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-symmetry-mates',
+                          name: 'Crystal Symmetry',
+                          description: 'Find crystal symmetry mates or interaction partners.',
+                          from: [c.Molecule.Model],
+                          to: [c.Molecule.Model],
+                          defaultParams: function (t) {
+                            return { type: 'Interaction', radius: 5 };
+                          },
+                          isUpdatable: !0,
+                          isApplicable: function (t) {
+                            if (!t || !t.props.model.data.symmetryInfo) return !1;
+                            t = t.props.model.data.symmetryInfo;
+                            return (
+                              1 !== t.cellSize[0] || 1 !== t.cellSize[1] || 1 !== t.cellSize[2]
+                            );
+                          },
+                        },
+                        function (t, i, o) {
+                          return u.Task.create(
+                            'Create Model (' + i.props.label + ')',
+                            'Background',
+                            function (r) {
+                              return D(e, void 0, void 0, function () {
+                                var e, n;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      if (i.props.model.data.symmetryInfo)
+                                        return (
+                                          (e = Math.max(o.params.radius, 0)),
+                                          [4, r.updateProgress('Creating...')]
+                                        );
+                                      throw 'Spacegroup info info not available.';
+                                    case 1:
+                                      return (
+                                        t.sent(),
+                                        (n =
+                                          'Mates' === o.params.type
+                                            ? Yc.Core.Structure.buildSymmetryMates(i.props.model, e)
+                                            : Yc.Core.Structure.buildPivotGroupSymmetry(
+                                                i.props.model,
+                                                e,
+                                              )),
+                                        [
+                                          2,
+                                          c.Molecule.Model.create(o, {
+                                            label: 'Symmetry',
+                                            model: n,
+                                            description:
+                                              n.data.atoms.count +
+                                              ' atom' +
+                                              (1 !== n.data.atoms.count ? 's' : '') +
+                                              ', ' +
+                                              o.params.type +
+                                              ' ' +
+                                              u.Utils.round(e, 1) +
+                                              ' â„«',
+                                          }),
+                                        ]
+                                      );
+                                  }
+                                });
+                              });
+                            },
+                          );
+                        },
+                      )),
+                      (o.ModelTransform3D = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-model-transform3d',
+                          name: 'Transform 3D',
+                          description: 'Transform 3D coordinates of a model using a 4x4 matrix.',
+                          from: [c.Molecule.Model],
+                          to: [c.Molecule.Model],
+                          validateParams: function (t) {
+                            return t && t.transform && 16 === t.transform.length
+                              ? void 0
+                              : ['Specify a 4x4 transform matrix.'];
+                          },
+                          defaultParams: function (t, e) {
+                            return { transform: Yc.Core.Geometry.LinearAlgebra.Matrix4.identity() };
+                          },
+                          isUpdatable: !1,
+                        },
+                        function (t, i, o) {
+                          return u.Task.create(
+                            'Transform 3D (' + i.props.label + ')',
+                            'Normal',
+                            function (r) {
+                              return D(e, void 0, void 0, function () {
+                                var e, n;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      return [4, r.updateProgress('Transforming...')];
+                                    case 1:
+                                      return (
+                                        t.sent(),
+                                        (n = i.props.model),
+                                        (e = {
+                                          t: o.params.transform,
+                                          v: Yc.Core.Geometry.LinearAlgebra.Vector3.zero(),
+                                        }),
+                                        (n = Yc.Core.Structure.Molecule.Model.withTransformedXYZ(
+                                          n,
+                                          e,
+                                          function (t, e, n, r, i) {
+                                            var o = t.v;
+                                            Yc.Core.Geometry.LinearAlgebra.Vector3.set(o, e, n, r),
+                                              Yc.Core.Geometry.LinearAlgebra.Vector3.transformMat4(
+                                                i,
+                                                o,
+                                                t.t,
+                                              );
+                                          },
+                                        )),
+                                        [
+                                          2,
+                                          c.Molecule.Model.create(o, {
+                                            label: i.props.label,
+                                            description: o.params.description || 'Transformed',
+                                            model: n,
+                                          }),
+                                        ]
+                                      );
+                                  }
+                                });
+                              });
+                            },
+                          );
+                        },
+                      )),
+                      (o.CreateVisual = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-visual',
+                          name: 'Visual',
+                          description: 'Create a visual of a molecule or a selection.',
+                          from: [c.Molecule.Model, c.Molecule.Selection],
+                          to: [c.Molecule.Visual],
+                          isUpdatable: !0,
+                          defaultParams: function (t) {
+                            return {
+                              style: u.Visualization.Molecule.Default.ForType.get('Cartoons'),
+                            };
+                          },
+                          validateParams: function (t) {
+                            return t.style ? void 0 : ['Specify Style'];
+                          },
+                          customController: function (t, e, n) {
+                            return new u.Components.Transform.MoleculeVisual(t, e, n);
+                          },
+                        },
+                        function (t, e, n) {
+                          var r = n.params;
+                          return u.Visualization.Molecule.create(e, n, r.style).setReportTime(
+                            'Normal' === u.Visualization.Style.getTaskType(n.params.style),
+                          );
+                        },
+                        function (t, e, n) {
+                          var r = e.transform.params;
+                          if (
+                            r.style.type === n.params.style.type &&
+                            u.Utils.deepEqual(r.style.params, n.params.style.params)
+                          ) {
+                            r = e.props.model;
+                            if (r) {
+                              var i,
+                                o = u.Utils.Molecule.findModel(e.parent);
+                              if (o)
+                                return (
+                                  (o = (i = n.params.style.theme).template.provider(
+                                    o,
+                                    u.Visualization.Theme.getProps(i),
+                                  )),
+                                  r.applyTheme(o),
+                                  (e.props.style = n.params.style),
+                                  c.nodeUpdated(e),
+                                  u.Task.resolve(
+                                    n.transformer.info.name,
+                                    'Background',
+                                    u.Tree.Node.Null,
+                                  )
+                                );
+                            }
+                          }
+                        },
+                      )),
+                      (o.CreateMacromoleculeVisual = u.Tree.Transformer.action(
+                        {
+                          id: 'molecule-create-macromolecule-visual',
+                          name: 'Macromolecule Visual',
+                          description:
+                            'Create a visual of a molecule that is split into polymer, HET, and water parts.',
+                          from: [c.Molecule.Selection, c.Molecule.Model],
+                          to: [c.Action],
+                          validateParams: function (t) {
+                            return t.polymer || t.het || t.water
+                              ? void 0
+                              : ['Select at least one component'];
+                          },
+                          defaultParams: function (t) {
+                            return { polymer: !0, het: !0, water: !0 };
+                          },
+                        },
+                        function (t, e, n) {
+                          var r,
+                            e = u.Tree.Transform.build().add(
+                              e,
+                              Oc.Basic.CreateGroup,
+                              { label: 'Group', description: 'Macromolecule' },
+                              { ref: n.params.groupRef },
+                            );
+                          return (
+                            n.params.polymer &&
+                              e
+                                .then(
+                                  o.CreateSelectionFromQuery,
+                                  {
+                                    query: Yc.Core.Structure.Query.nonHetPolymer(),
+                                    name: 'Polymer',
+                                    silent: !0,
+                                  },
+                                  { isBinding: !0 },
+                                )
+                                .then(
+                                  o.CreateVisual,
+                                  {
+                                    style: u.Visualization.Molecule.Default.ForType.get('Cartoons'),
+                                  },
+                                  { ref: n.params.polymerRef },
+                                ),
+                            n.params.het &&
+                              e
+                                .then(
+                                  o.CreateSelectionFromQuery,
+                                  {
+                                    query: Yc.Core.Structure.Query.hetGroups(),
+                                    name: 'HET',
+                                    silent: !0,
+                                  },
+                                  { isBinding: !0 },
+                                )
+                                .then(
+                                  o.CreateVisual,
+                                  {
+                                    style:
+                                      u.Visualization.Molecule.Default.ForType.get(
+                                        'BallsAndSticks',
+                                      ),
+                                  },
+                                  { ref: n.params.hetRef },
+                                ),
+                            n.params.water &&
+                              ((r = {
+                                type: 'BallsAndSticks',
+                                params: {
+                                  useVDW: !1,
+                                  atomRadius: 0.23,
+                                  bondRadius: 0.09,
+                                  detail: 'Automatic',
+                                },
+                                theme: {
+                                  template:
+                                    u.Visualization.Molecule.Default.ElementSymbolThemeTemplate,
+                                  colors:
+                                    u.Visualization.Molecule.Default.ElementSymbolThemeTemplate
+                                      .colors,
+                                  transparency: { alpha: 0.25 },
+                                },
+                              }),
+                              e
+                                .then(
+                                  o.CreateSelectionFromQuery,
+                                  {
+                                    query: Yc.Core.Structure.Query.entities({ type: 'water' }),
+                                    name: 'Water',
+                                    silent: !0,
+                                  },
+                                  { isBinding: !0 },
+                                )
+                                .then(o.CreateVisual, { style: r }, { ref: n.params.waterRef })),
+                            e
+                          );
+                        },
+                      )),
+                      (o.CreateLabels = u.Tree.Transformer.create(
+                        {
+                          id: 'molecule-create-labels',
+                          name: 'Labels',
+                          description: 'Create a labels for a molecule or a selection.',
+                          from: [c.Molecule.Model, c.Molecule.Selection, c.Molecule.Visual],
+                          to: [c.Visual.Labels],
+                          isUpdatable: !0,
+                          defaultParams: function (t) {
+                            return { style: u.Visualization.Labels.Default.MoleculeLabels };
+                          },
+                          validateParams: function (t) {
+                            return t.style ? void 0 : ['Specify Style'];
+                          },
+                          customController: function (t, e, n) {
+                            return new u.Components.Transform.MoleculeLabels(t, e, n);
+                          },
+                        },
+                        function (t, e, n) {
+                          var r = n.params;
+                          return u.Visualization.Labels.createMoleculeLabels(
+                            e,
+                            n,
+                            r.style,
+                          ).setReportTime(!1);
+                        },
+                        function (t, e, n) {
+                          var r = e.transform.params,
+                            i = n.params;
+                          if (
+                            u.Visualization.Labels.Style.moleculeHasOnlyThemeChanged(
+                              r.style,
+                              i.style,
+                            )
+                          ) {
+                            var r = e.props.model,
+                              o = u.Tree.Node.findClosestNodeOfType(e, [
+                                c.Molecule.Model,
+                                c.Molecule.Selection,
+                                c.Molecule.Visual,
+                              ]);
+                            if (o)
+                              return (
+                                (o = i.style.theme.template.provider(
+                                  o,
+                                  u.Visualization.Theme.getProps(i.style.theme),
+                                )),
+                                r.applyTheme(o),
+                                c.nodeUpdated(e),
+                                u.Task.resolve(
+                                  n.transformer.info.name,
+                                  'Background',
+                                  u.Tree.Node.Null,
+                                )
+                              );
+                          }
+                        },
+                      ));
+                  })((Oc = c.Transformer || (c.Transformer = {})).Molecule || (Oc.Molecule = {})),
+                  (e = F = F || {}),
+                  (Gc = e.Bootstrap || (e.Bootstrap = {})),
+                  (zc = Gc.Entity || (Gc.Entity = {})),
+                  ((
+                    (e = zc.Transformer || (zc.Transformer = {})).Labels || (e.Labels = {})
+                  ).Create = Gc.Tree.Transformer.create(
+                    {
+                      id: 'labels-create',
+                      name: 'Labels',
+                      description: 'Create a labels for a molecule or a selection.',
+                      from: [],
+                      to: [zc.Visual.Labels],
+                      isUpdatable: !1,
+                      defaultParams: function (t) {
+                        return {};
+                      },
+                      customController: function (t, e, n) {
+                        return new Gc.Components.Transform.MoleculeLabels(t, e, n);
+                      },
+                    },
+                    function (t, e, n) {
+                      return Gc.Visualization.Labels.createGenericLabels(
+                        e,
+                        n,
+                        n.params,
+                      ).setReportTime(!1);
+                    },
+                    function (t, e, n) {
+                      var r = e.transform.params,
+                        i = n.params;
+                      if (
+                        r.positions === i.positions &&
+                        r.sizes === i.sizes &&
+                        r.labels === i.labels &&
+                        r.options === i.options
+                      ) {
+                        var r = e.props.model,
+                          o = Gc.Tree.Node.findClosestNodeOfType(e, [zc.Root]);
+                        if (o)
+                          return (
+                            (o = i.style.theme.template.provider(
+                              o,
+                              Gc.Visualization.Theme.getProps(i.style.theme),
+                            )),
+                            r.applyTheme(o),
+                            zc.nodeUpdated(e),
+                            Gc.Task.resolve(
+                              n.transformer.info.name,
+                              'Background',
+                              Gc.Tree.Node.Null,
+                            )
+                          );
+                      }
+                    },
+                  )),
+                  (Hc = F = F || {}),
+                  (jc = Hc.Bootstrap || (Hc.Bootstrap = {})),
+                  (Vc = jc.Entity || (jc.Entity = {})),
+                  (function (t) {
+                    var e = this;
+                    function o(t) {
+                      return null != t && 'binary' === t.toLowerCase() ? 'Binary' : 'String';
+                    }
+                    (t.Download = jc.Tree.Transformer.create(
+                      {
+                        id: 'data-download',
+                        name: 'Download Data',
+                        description:
+                          'Downloads a string or binary data from the given URL (if the host server supports cross domain requests).',
+                        from: [Vc.Root],
+                        to: [Vc.Data.String, Vc.Data.Binary],
+                        validateParams: function (t) {
+                          return t.url && t.url.trim().length
+                            ? t.type
+                              ? 'String' === t.type &&
+                                (void 0 === (t = t.responseCompression)
+                                  ? jc.Utils.DataCompressionMethod.None
+                                  : t) !== jc.Utils.DataCompressionMethod.None
+                                ? ['Decompression is only available for Binary data.']
+                                : void 0
+                              : ['Specify type']
+                            : ['Enter URL'];
+                        },
+                        defaultParams: function () {
+                          return {
+                            id: '',
+                            description: '',
+                            type: 'String',
+                            url: '',
+                            responseCompression: jc.Utils.DataCompressionMethod.None,
+                          };
+                        },
+                      },
+                      function (n, t, r) {
+                        var i = r.params;
+                        return jc.Task.create('Download', 'Silent', function () {
+                          return D(e, void 0, void 0, function () {
+                            var e;
+                            return P(this, function (t) {
+                              switch (t.label) {
+                                case 0:
+                                  return [
+                                    4,
+                                    jc.Utils.ajaxGet({
+                                      url: i.url,
+                                      type: o(i.type),
+                                      compression: i.responseCompression,
+                                      title: i.title,
+                                    })
+                                      .setReportTime(!0)
+                                      .run(n),
+                                  ];
+                                case 1:
+                                  return (
+                                    (e = t.sent()),
+                                    'String' === i.type
+                                      ? [
+                                          2,
+                                          Vc.Data.String.create(r, {
+                                            label: i.id || i.url,
+                                            description: i.description,
+                                            data: e,
+                                          }),
+                                        ]
+                                      : [
+                                          2,
+                                          Vc.Data.Binary.create(r, {
+                                            label: i.id || i.url,
+                                            description: i.description,
+                                            data: e,
+                                          }),
+                                        ]
+                                  );
+                              }
+                            });
+                          });
+                        });
+                      },
+                    )),
+                      (t.OpenFile = jc.Tree.Transformer.create(
+                        {
+                          id: 'data-open-file',
+                          name: 'Open Data File',
+                          description: 'Read a string or binary data from the selected file.',
+                          from: [Vc.Root],
+                          to: [Vc.Data.String, Vc.Data.Binary],
+                          validateParams: function (t) {
+                            return t.file ? void 0 : ['Select a file'];
+                          },
+                          defaultParams: function () {
+                            return { type: 'String', file: void 0 };
+                          },
+                        },
+                        function (r, t, i) {
+                          return jc.Task.create('Download', 'Silent', function (t) {
+                            return D(e, void 0, void 0, function () {
+                              var e, n;
+                              return P(this, function (t) {
+                                switch (t.label) {
+                                  case 0:
+                                    return (
+                                      (e = i.params),
+                                      [
+                                        4,
+                                        jc.Utils.readFromFile(e.file, o(e.type))
+                                          .setReportTime(!0)
+                                          .run(r),
+                                      ]
+                                    );
+                                  case 1:
+                                    return (
+                                      (n = t.sent()),
+                                      'String' === e.type
+                                        ? [
+                                            2,
+                                            Vc.Data.String.create(i, {
+                                              label: e.id || e.file.name,
+                                              description: e.description,
+                                              data: n,
+                                            }),
+                                          ]
+                                        : [
+                                            2,
+                                            Vc.Data.Binary.create(i, {
+                                              label: e.id || e.file.name,
+                                              description: e.description,
+                                              data: n,
+                                            }),
+                                          ]
+                                    );
+                                }
+                              });
+                            });
+                          });
+                        },
+                      )),
+                      (t.ParseCif = jc.Tree.Transformer.create(
+                        {
+                          id: 'data-parse-cif',
+                          name: 'CIF Dictionary',
+                          description: 'Parse CIF dictionary from a string.',
+                          from: [Vc.Data.String],
+                          to: [Vc.Data.CifDictionary],
+                          defaultParams: function () {
+                            return {};
+                          },
+                        },
+                        function (t, r, i) {
+                          return jc.Task.create(
+                            'CIF Parse (' + r.props.label + ')',
+                            'Normal',
+                            function (n) {
+                              return D(e, void 0, void 0, function () {
+                                var e;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      return [4, n.updateProgress('Parsing...')];
+                                    case 1:
+                                      if (
+                                        (t.sent(),
+                                        (e = Hc.Core.Formats.CIF.Text.parse(r.props.data)).isError)
+                                      )
+                                        throw e.toString();
+                                      return [
+                                        2,
+                                        Vc.Data.CifDictionary.create(i, {
+                                          label: i.params.id || 'CIF Dictionary',
+                                          description: i.params.description,
+                                          dictionary: e.result,
+                                        }),
+                                      ];
+                                  }
+                                });
+                              });
+                            },
+                          ).setReportTime(!0);
+                        },
+                      )),
+                      (t.ParseBinaryCif = jc.Tree.Transformer.create(
+                        {
+                          id: 'data-parse-binary-cif',
+                          name: 'CIF Dictionary',
+                          description: 'Parse CIF dictionary from BinaryCIF data.',
+                          from: [Vc.Data.Binary],
+                          to: [Vc.Data.CifDictionary],
+                          defaultParams: function () {
+                            return {};
+                          },
+                        },
+                        function (t, r, i) {
+                          return jc.Task.create(
+                            'BinaryCIF Parse (' + r.props.label + ')',
+                            'Normal',
+                            function (n) {
+                              return D(e, void 0, void 0, function () {
+                                var e;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      return [4, n.updateProgress('Parsing...')];
+                                    case 1:
+                                      if (
+                                        (t.sent(),
+                                        (e = Hc.Core.Formats.CIF.Binary.parse(r.props.data))
+                                          .isError)
+                                      )
+                                        throw e.toString();
+                                      return [
+                                        2,
+                                        Vc.Data.CifDictionary.create(i, {
+                                          label: i.params.id || 'CIF Dictionary',
+                                          description: i.params.description,
+                                          dictionary: e.result,
+                                        }),
+                                      ];
+                                  }
+                                });
+                              });
+                            },
+                          ).setReportTime(!0);
+                        },
+                      )),
+                      (t.ParseJson = jc.Tree.Transformer.create(
+                        {
+                          id: 'data-parse-json',
+                          name: 'JSON',
+                          description: 'Parse a string to JSON object.',
+                          from: [Vc.Data.String],
+                          to: [Vc.Data.Json],
+                          defaultParams: function () {
+                            return {};
+                          },
+                        },
+                        function (t, r, i) {
+                          return jc.Task.create(
+                            'JSON Parse (' + r.props.label + ')',
+                            'Normal',
+                            function (n) {
+                              return D(e, void 0, void 0, function () {
+                                var e;
+                                return P(this, function (t) {
+                                  switch (t.label) {
+                                    case 0:
+                                      return [4, n.updateProgress('Parsing...')];
+                                    case 1:
+                                      return (
+                                        t.sent(),
+                                        (e = JSON.parse(r.props.data)),
+                                        [
+                                          2,
+                                          Vc.Data.Json.create(i, {
+                                            label: i.params.id || 'JSON Data',
+                                            description: i.params.description,
+                                            data: e,
+                                          }),
+                                        ]
+                                      );
+                                  }
+                                });
+                              });
+                            },
+                          ).setReportTime(!0);
+                        },
+                      )),
+                      (t.FromData = jc.Tree.Transformer.create(
+                        {
+                          id: 'data-from-data',
+                          name: 'From Data',
+                          description: 'Creates a data entity from string or binary data',
+                          from: [Vc.Root],
+                          to: [Vc.Data.String, Vc.Data.Binary],
+                          defaultParams: function () {},
+                        },
+                        function (t, e, n) {
+                          var r = n.params.data,
+                            n =
+                              r instanceof ArrayBuffer
+                                ? Vc.Data.Binary.create(n, {
+                                    label: n.params.id || 'Binary Data',
+                                    description: n.params.description,
+                                    data: r,
+                                  })
+                                : Vc.Data.String.create(n, {
+                                    label: n.params.id || 'String Data',
+                                    description: n.params.description,
+                                    data: r,
+                                  });
+                          return jc.Task.resolve('From Data', 'Silent', n);
+                        },
+                      ));
+                  })((t = Vc.Transformer || (Vc.Transformer = {})).Data || (t.Data = {})),
+                  (qc = F = F || {}),
+                  (A = qc.Bootstrap || (qc.Bootstrap = {})),
+                  (Wc = A.Entity || (A.Entity = {})),
+                  (function (t) {
+                    var e = this;
+                    function s(t, e, n) {
+                      if (A.Visualization.Density.areNonIsoParamsSame(e, n))
+                        return (
+                          (t = t.valuesInfo),
+                          (e =
+                            e.isoValueType === A.Visualization.Density.IsoValueType.Absolute
+                              ? e.isoValue
+                              : t.mean + t.sigma * e.isoValue),
+                          (t =
+                            n.isoValueType === A.Visualization.Density.IsoValueType.Absolute
+                              ? n.isoValue
+                              : t.mean + t.sigma * n.isoValue),
+                          Math.abs(e - t) < 1e-6
+                        );
+                    }
+                    (t.ParseData = A.Tree.Transformer.create(
+                      {
+                        id: 'density-parse-binary',
+                        name: 'Density Data',
+                        description: 'Parse density from binary data.',
+                        from: [Wc.Data.String, Wc.Data.Binary],
+                        to: [Wc.Density.Data],
+                        isUpdatable: !0,
+                        defaultParams: function () {
+                          return { format: qc.Core.Formats.Density.SupportedFormats.CCP4 };
+                        },
+                      },
+                      function (n, r, i) {
+                        return A.Task.create(
+                          'Create Density (' + r.props.label + ')',
+                          'Background',
+                          function (t) {
+                            return D(e, void 0, void 0, function () {
+                              var e;
+                              return P(this, function (t) {
+                                switch (t.label) {
+                                  case 0:
+                                    return [
+                                      4,
+                                      A.Task.fromComputation(
+                                        'Parse Density (' + r.props.label + ')',
+                                        'Normal',
+                                        i.params.format.parse(r.props.data),
+                                      )
+                                        .setReportTime(!0)
+                                        .run(n),
+                                    ];
+                                  case 1:
+                                    if ((e = t.sent()).isError) throw e.toString();
+                                    return [
+                                      2,
+                                      Wc.Density.Data.create(i, {
+                                        label: i.params.id || 'Density Data',
+                                        data: e.result,
+                                      }),
+                                    ];
+                                }
+                              });
+                            });
+                          },
+                        );
+                      },
+                    )),
+                      (t.CreateFromCif = A.Tree.Transformer.create(
+                        {
+                          id: 'density-create-from-cif',
+                          name: 'Density Data',
+                          description: 'Parse density from CIF data.',
+                          from: [Wc.Data.CifDictionary],
+                          to: [Wc.Density.Data],
+                          isUpdatable: !1,
+                          defaultParams: function () {
+                            return { blockIndex: 0 };
+                          },
+                        },
+                        function (t, r, i) {
+                          return A.Task.create('Create Density', 'Normal', function (n) {
+                            return D(e, void 0, void 0, function () {
+                              var e;
+                              return P(this, function (t) {
+                                switch (t.label) {
+                                  case 0:
+                                    return [4, n.updateProgress('Parsing...')];
+                                  case 1:
+                                    if (
+                                      (t.sent(),
+                                      (e = qc.Core.Formats.Density.CIF.parse(
+                                        r.props.dictionary.dataBlocks[i.params.blockIndex],
+                                      )).isError)
+                                    )
+                                      throw e.toString();
+                                    return [
+                                      2,
+                                      Wc.Density.Data.create(i, {
+                                        label: i.params.id || 'Density Data',
+                                        data: e.result,
+                                        description: e.result.name,
+                                      }),
+                                    ];
+                                }
+                              });
+                            });
+                          }).setReportTime(!0);
+                        },
+                      )),
+                      (t.CreateFromData = A.Tree.Transformer.create(
+                        {
+                          id: 'density-create-from-data',
+                          name: 'Density Data',
+                          description: 'Create density from data.',
+                          from: [],
+                          to: [Wc.Density.Data],
+                          isUpdatable: !1,
+                          defaultParams: function () {
+                            return {};
+                          },
+                        },
+                        function (t, e, n) {
+                          n = Wc.Density.Data.create(n, {
+                            label: n.params.id || 'Density Data',
+                            data: n.params.data,
+                            description: n.params.data.name,
+                          });
+                          return A.Task.resolve('Create Density', 'Background', n);
+                        },
+                      )),
+                      (t.CreateVisual = A.Tree.Transformer.create(
+                        {
+                          id: 'density-create-visual',
+                          name: 'Surface',
+                          description: 'Create a surface from the density data.',
+                          from: [Wc.Density.Data],
+                          to: [Wc.Density.Visual],
+                          isUpdatable: !0,
+                          defaultParams: function () {
+                            return { style: A.Visualization.Density.Default.Style };
+                          },
+                          validateParams: function (t) {
+                            return t.style ? void 0 : ['Specify Style'];
+                          },
+                          customController: function (t, e, n) {
+                            return new A.Components.Transform.DensityVisual(t, e, n);
+                          },
+                        },
+                        function (t, e, n) {
+                          var r = n.params;
+                          return A.Visualization.Density.create(e, n, r.style).setReportTime(
+                            'Normal' === A.Visualization.Style.getTaskType(n.params.style),
+                          );
+                        },
+                        function (t, e, n) {
+                          var r = e.transform.params.style,
+                            i = n.params.style;
+                          if (r.type === n.params.style.type) {
+                            var o = A.Tree.Node.findClosestNodeOfType(e, [Wc.Density.Data]);
+                            if (o) {
+                              var a = e.props.model;
+                              if (a)
+                                if (s(o.props.data, r.params, i.params))
+                                  return (
+                                    A.Utils.deepEqual(r.theme, n.params.style.theme) ||
+                                      ((i = (r = i.theme).template.provider(
+                                        o,
+                                        A.Visualization.Theme.getProps(r),
+                                      )),
+                                      a.applyTheme(i),
+                                      (e.props.style.theme = r),
+                                      Wc.nodeUpdated(e)),
+                                    A.Task.resolve(
+                                      n.transformer.info.name,
+                                      'Background',
+                                      A.Tree.Node.Null,
+                                    )
+                                  );
+                            }
+                          }
+                        },
+                      )),
+                      (t.CreateVisualBehaviour = A.Tree.Transformer.create(
+                        {
+                          id: 'density-create-visual-behaviour',
+                          name: 'Interactive Surface',
+                          description:
+                            'Create a surface from the density data when a residue or atom is selected.',
+                          from: [Wc.Density.Data],
+                          to: [Wc.Density.InteractiveSurface],
+                          isUpdatable: !0,
+                          defaultParams: function (t) {
+                            return {
+                              style: A.Visualization.Density.Default.Style,
+                              radius: t.settings.get('density.defaultVisualBehaviourRadius') || 0,
+                              isoSigmaMin: -5,
+                              isoSigmaMax: 5,
+                              minRadius: 0,
+                              maxRadius: 10,
+                              showFull: !1,
+                            };
+                          },
+                          customController: function (t, e, n) {
+                            return new A.Components.Transform.DensityVisual(t, e, n);
+                          },
+                        },
+                        function (t, e, n) {
+                          var r = n.params,
+                            t = new A.Behaviour.Density.ShowDynamicDensity(t, {
+                              style: r.style,
+                              radius: r.radius,
+                              showFull: r.showFull,
+                            }),
+                            i =
+                              void 0 === r.style.params.isoValueType ||
+                              r.style.params.isoValueType ===
+                                A.Visualization.Density.IsoValueType.Sigma;
+                          return A.Task.resolve(
+                            'Behaviour',
+                            'Background',
+                            Wc.Density.InteractiveSurface.create(n, {
+                              label:
+                                (r.id ? n.params.id : 'Interactive') +
+                                ', ' +
+                                A.Utils.round(r.style.params.isoValue, 2) +
+                                (i ? ' σ' : ''),
+                              behaviour: t,
+                            }),
+                          );
+                        },
+                        function (t, e, n) {
+                          var r = e.transform.params,
+                            i = n.params;
+                          if (
+                            r.style.type === i.style.type &&
+                            r.isoSigmaMin === i.isoSigmaMin &&
+                            r.isoSigmaMax === i.isoSigmaMax &&
+                            r.minRadius === i.minRadius &&
+                            r.maxRadius === i.maxRadius &&
+                            r.radius === i.radius &&
+                            r.showFull === i.showFull
+                          ) {
+                            var o = A.Tree.Node.findClosestNodeOfType(e, [Wc.Density.Data]);
+                            if (o)
+                              if (s(o.props.data, r.style.params, i.style.params))
+                                return (
+                                  (o = i.style.theme),
+                                  e.props.behaviour.updateTheme(o),
+                                  Wc.nodeUpdated(e),
+                                  A.Task.resolve(
+                                    n.transformer.info.name,
+                                    'Background',
+                                    A.Tree.Node.Null,
+                                  )
+                                );
+                          }
+                        },
+                      ));
+                  })((n = Wc.Transformer || (Wc.Transformer = {})).Density || (n.Density = {})),
+                  (Jc = F = F || {}),
+                  (Kc = Jc.Bootstrap || (Jc.Bootstrap = {})),
+                  (Zc = Kc.Entity || (Kc.Entity = {})),
+                  (Xc = Zc.Transformer || (Zc.Transformer = {})),
+                  (function (r) {
+                    var i = this;
+                    (r.CreateBehaviour = Kc.Tree.Transformer.create(
+                      {
+                        id: 'streaming-create-behaviour',
+                        name: 'Coordinate Streaming',
+                        description: 'Enable coordinate data streaming for this molecule.',
+                        from: [Zc.Molecule.Model],
+                        to: [Zc.Molecule.CoordinateStreaming.Behaviour],
+                        defaultParams: function (t) {
+                          return {
+                            server:
+                              t.settings.get('molecule.coordinateStreaming.defaultServer') || '',
+                            radius:
+                              t.settings.get('molecule.coordinateStreaming.defaultRadius') || 0,
+                          };
+                        },
+                      },
+                      function (t, e, n) {
+                        return Kc.Task.resolve(
+                          'Behaviour',
+                          'Background',
+                          Zc.Molecule.CoordinateStreaming.Behaviour.create(n, {
+                            label: 'Coordinate Streaming',
+                            behaviour: new Kc.Behaviour.Molecule.CoordinateStreaming(
+                              t,
+                              n.params.server,
+                              n.params.radius,
+                            ),
+                          }),
+                        );
+                      },
+                    )),
+                      (r.CreateModel = Kc.Tree.Transformer.create(
+                        {
+                          id: 'streaming-create-model',
+                          name: 'Streaming Model',
+                          description: '',
+                          from: [Zc.Molecule.CoordinateStreaming.Behaviour],
+                          to: [Zc.Molecule.Model],
+                          defaultParams: function () {},
+                        },
+                        function (t, e, n) {
+                          return Kc.Task.create('Load', 'Silent', function (t) {
+                            return D(i, void 0, void 0, function () {
+                              var e;
+                              return P(this, function (t) {
+                                if ((e = Jc.Core.Formats.CIF.Binary.parse(n.params.data)).isError)
+                                  throw new Error('Invalid CIF.');
+                                return (
+                                  (e = Jc.Core.Formats.Molecule.mmCIF.ofDataBlock(
+                                    e.result.dataBlocks[0],
+                                  ).models[0]),
+                                  n.params.transform &&
+                                    Jc.Core.Structure.Operator.applyToModelUnsafe(
+                                      n.params.transform,
+                                      e,
+                                    ),
+                                  [2, Zc.Molecule.Model.create(n, { label: 'part', model: e })]
+                                );
+                              });
+                            });
+                          });
+                        },
+                      )),
+                      (r.InitStreaming = Kc.Tree.Transformer.action(
+                        {
+                          id: 'streaming-init',
+                          name: 'Coordinate Streaming',
+                          description:
+                            'Download a smaller version of the molecule required to display cartoon representation and stream the rest of the coordinates as required.',
+                          from: [Zc.Root],
+                          to: [Zc.Action],
+                          validateParams: function (t) {
+                            return (t.id || '').trim().length
+                              ? (t.server || '').trim().length
+                                ? void 0
+                                : ['Specify server']
+                              : ['Enter id'];
+                          },
+                          defaultParams: function (t) {
+                            return {
+                              id: t.settings.get('molecule.coordinateStreaming.defaultId') || '',
+                              server:
+                                t.settings.get('molecule.coordinateStreaming.defaultServer') || '',
+                              radius:
+                                t.settings.get('molecule.coordinateStreaming.defaultRadius') || 0,
+                            };
+                          },
+                        },
+                        function (t, e, n) {
+                          return Kc.Tree.Transform.build()
+                            .add(e, Xc.Data.Download, {
+                              url: Kc.Behaviour.Molecule.CoordinateStreaming.getBaseUrl(
+                                n.params.id,
+                                n.params.server,
+                              ),
+                              type: 'Binary',
+                              id: n.params.id,
+                            })
+                            .then(Xc.Data.ParseBinaryCif, { id: n.params.id }, { isBinding: !0 })
+                            .then($c.CreateFromMmCif, { blockIndex: 0 }, { isBinding: !0 })
+                            .then($c.CreateModel, { modelIndex: 0 }, { isBinding: !1 })
+                            .then(r.CreateBehaviour, {
+                              server: n.params.server,
+                              radius: n.params.radius,
+                            });
+                        },
+                      ));
+                  })(
+                    ($c = Xc.Molecule || (Xc.Molecule = {})).CoordinateStreaming ||
+                      ($c.CoordinateStreaming = {}),
+                  ),
+                  (tA = F = F || {}),
+                  (eA = tA.Bootstrap || (tA.Bootstrap = {})),
+                  (function (t) {
+                    var m = tA.Core.Geometry.LinearAlgebra,
+                      e = [eA.Entity.Molecule.Model];
+                    function r(t) {
+                      return eA.Tree.Node.findClosestNodeOfType(t, e);
+                    }
+                    t.findModel = r;
+                    var i = [eA.Entity.Molecule.Model, eA.Entity.Molecule.Selection];
+                    t.findModelOrSelection = function (t) {
+                      return eA.Tree.Node.findClosestNodeOfType(t, i);
+                    };
+                    var n = [eA.Entity.Molecule.Molecule];
+                    function v(t) {
+                      var e,
+                        n,
+                        t = eA.Tree.Node.findClosestNodeOfType(t, i);
+                      return eA.Entity.isMoleculeModel(t)
+                        ? t.props.model.queryContext
+                        : (n = (e = t.tree.context.entityCache).get(
+                            t,
+                            eA.Entity.Cache.Keys.QueryContext,
+                          )) ||
+                            ((n = tA.Core.Structure.Query.Context.ofAtomIndices(
+                              r(t).props.model,
+                              t.props.indices,
+                            )),
+                            e.set(t, eA.Entity.Cache.Keys.QueryContext, n));
+                    }
+                    function o(t) {
+                      (this.center = { x: 0, y: 0, z: 0 }),
+                        (this.radiusSquared = 0),
+                        (this.count = 0),
+                        (this.x = t.positions.x),
+                        (this.y = t.positions.y),
+                        (this.z = t.positions.z);
+                    }
+                    function b(t, e, n) {
+                      m.Vector3.set(n, 0, 0, 0);
+                      var t = t.positions,
+                        r = t.x,
+                        i = t.y,
+                        o = t.z;
+                      if (0 === e.length) return 0;
+                      if (1 === e.length) return m.Vector3.set(n, r[e[0]], i[e[0]], o[e[0]]), 0;
+                      for (var a = 0, s = e; a < s.length; a++) {
+                        var l = s[a];
+                        (n[0] += r[l]), (n[1] += i[l]), (n[2] += o[l]);
+                      }
+                      for (
+                        var t = e.length,
+                          u = ((n[0] /= t), (n[1] /= t), (n[2] /= t), 0),
+                          c = 0,
+                          A = e;
+                        c < A.length;
+                        c++
+                      )
+                        var l = A[c],
+                          h = n[0] - r[l],
+                          p = n[1] - i[l],
+                          d = n[2] - o[l],
+                          u = Math.max(u, h * h + p * p + d * d);
+                      return Math.sqrt(u);
+                    }
+                    (t.findMolecule = function (t) {
+                      return eA.Tree.Node.findClosestNodeOfType(t, n);
+                    }),
+                      (t.findQueryContext = v),
+                      (t.getDistance = function (t, e, n, r, i, o) {
+                        for (
+                          var a = (t = t.positions).x,
+                            s = t.y,
+                            l = t.z,
+                            u = (t = r.positions).x,
+                            c = t.y,
+                            A = t.z,
+                            h = Number.POSITIVE_INFINITY,
+                            p = e;
+                          p < n;
+                          p++
+                        )
+                          for (var d = i; d < o; d++)
+                            var f = a[p] - u[d],
+                              g = s[p] - c[d],
+                              m = l[p] - A[d],
+                              h = Math.min(h, f * f + g * g + m * m);
+                        return Math.sqrt(h);
+                      }),
+                      (t.getDistanceSet = function (t, e, n, r) {
+                        for (
+                          var i = (t = t.positions).x,
+                            o = t.y,
+                            a = t.z,
+                            s = (t = n.positions).x,
+                            l = t.y,
+                            u = t.z,
+                            c = Number.POSITIVE_INFINITY,
+                            A = 0,
+                            h = e;
+                          A < h.length;
+                          A++
+                        )
+                          for (var p = h[A], d = 0, f = r; d < f.length; d++)
+                            var g = f[d],
+                              m = i[p] - s[g],
+                              v = o[p] - l[g],
+                              g = a[p] - u[g],
+                              c = Math.min(c, m * m + v * v + g * g);
+                        return Math.sqrt(c);
+                      }),
+                      (t.getModelAndIndicesFromQuery = function (t, e) {
+                        var n = r(t);
+                        if (n) {
+                          t = v(t);
+                          try {
+                            return {
+                              model: n,
+                              indices:
+                                tA.Core.Structure.Query.Builder.toQuery(e)(t).unionAtomIndices(),
+                              queryContext: t,
+                            };
+                          } catch (t) {
+                            return void console.error('Query Execution', t);
+                          }
+                        } else console.warn('Could not find a model for query selection.');
+                      }),
+                      (t.getResidueIndices = function (t, e) {
+                        for (
+                          var n = t.data.atoms.residueIndex,
+                            r = [],
+                            i = t.data.residues.atomStartIndex[n[e]],
+                            o = t.data.residues.atomEndIndex[n[e]];
+                          i < o;
+                          i++
+                        )
+                          r.push(i);
+                        return r;
+                      }),
+                      (t.getBox = function (t, e, n) {
+                        for (
+                          var r = (t = t.positions).x,
+                            i = t.y,
+                            o = t.z,
+                            a = [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE],
+                            s = [-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE],
+                            l = 0,
+                            u = e;
+                          l < u.length;
+                          l++
+                        ) {
+                          var c = u[l];
+                          (a[0] = Math.min(r[c], a[0])),
+                            (a[1] = Math.min(i[c], a[1])),
+                            (a[2] = Math.min(o[c], a[2])),
+                            (s[0] = Math.max(r[c], s[0])),
+                            (s[1] = Math.max(i[c], s[1])),
+                            (s[2] = Math.max(o[c], s[2]));
+                        }
+                        return (
+                          (a[0] = a[0] - n),
+                          (a[1] = a[1] - n),
+                          (a[2] = a[2] - n),
+                          (s[0] = s[0] + n),
+                          (s[1] = s[1] + n),
+                          (s[2] = s[2] + n),
+                          { bottomLeft: a, topRight: s }
+                        );
+                      }),
+                      (o.prototype.addAtom = function (t) {
+                        this.count++,
+                          (this.center.x += this.x[t]),
+                          (this.center.y += this.y[t]),
+                          (this.center.z += this.z[t]);
+                      }),
+                      (o.prototype.finishedAdding = function () {
+                        (this.center.x /= this.count),
+                          (this.center.y /= this.count),
+                          (this.center.z /= this.count);
+                      }),
+                      (o.prototype.radiusVisit = function (t) {
+                        var e = this.center.x - this.x[t],
+                          n = this.center.y - this.y[t],
+                          t = this.center.z - this.z[t];
+                        this.radiusSquared = Math.max(this.radiusSquared, e * e + n * n + t * t);
+                      }),
+                      (t.CentroidHelper = o),
+                      (t.getCentroidAndRadius = b),
+                      (t.Labels3DKinds = [
+                        'Residue-Name',
+                        'Residue-Full-Id',
+                        'Atom-Name',
+                        'Atom-Element',
+                      ]),
+                      (t.Labels3DKindLabels = {
+                        'Residue-Name': 'Residue Name',
+                        'Residue-Full-Id': 'Residue Full Id',
+                        'Atom-Name': 'Atom Name',
+                        'Atom-Element': 'Atom Element',
+                      }),
+                      (t.create3DLabelsParams = function (t, e, n) {
+                        for (
+                          var r = v(t),
+                            t = (
+                              0 <= e.kind.indexOf('Residue')
+                                ? tA.Core.Structure.Query.residues()
+                                : tA.Core.Structure.Query.allAtoms()
+                            ).compile()(r),
+                            i = (function (t, e) {
+                              var n = e.data.atoms,
+                                r = n.residueIndex,
+                                i = n.chainIndex,
+                                o = n.name,
+                                a = n.elementSymbol,
+                                s = (n = e.data.residues).name,
+                                l = n.seqNumber,
+                                u = e.data.chains.authAsymId;
+                              switch (t.kind) {
+                                case 'Residue-Name':
+                                  return function (t) {
+                                    return s[r[t]];
+                                  };
+                                case 'Residue-Full-Id':
+                                  return function (t) {
+                                    var e = r[t],
+                                      t = i[t];
+                                    return s[e] + ' ' + u[t] + ' ' + l[e];
+                                  };
+                                case 'Atom-Name':
+                                  return function (t) {
+                                    return o[t];
+                                  };
+                                case 'Atom-Element':
+                                  return function (t) {
+                                    return a[t];
+                                  };
+                                default:
+                                  return function (t) {
+                                    return '' + t;
+                                  };
+                              }
+                            })(e, r.structure),
+                            o = tA.Core.Utils.DataTable.ofDefinition(
+                              tA.Core.Structure.Tables.Positions,
+                              t.length,
+                            ),
+                            a = o.x,
+                            s = o.y,
+                            l = o.z,
+                            u = [],
+                            c = new Float32Array(t.length),
+                            A = m.Vector3.zero(),
+                            h = 0,
+                            p = 0,
+                            d = t.fragments;
+                          p < d.length;
+                          p++
+                        ) {
+                          var f = d[p],
+                            g = i(f.atomIndices[0]);
+                          b(r.structure, f.atomIndices, A),
+                            (a[h] = A[0]),
+                            (s[h] = A[1]),
+                            (l[h] = A[2]),
+                            (u[u.length] = g),
+                            (c[h] = 1),
+                            h++;
+                        }
+                        return {
+                          labels: u,
+                          options: e.labelsOptions,
+                          positions: o,
+                          sizes: c,
+                          theme: n,
+                        };
+                      });
+                  })((E = eA.Utils || (eA.Utils = {})).Molecule || (E.Molecule = {})),
+                  (r = F = F || {}),
+                  (function (t) {
+                    function e(t) {
+                      (this.context = t),
+                        (this.subjects = {
+                          select: new nA.Rx.BehaviorSubject(nA.Interactivity.Info.empty),
+                          click: new nA.Rx.BehaviorSubject(nA.Interactivity.Info.empty),
+                          currentEntity: new nA.Rx.BehaviorSubject(void 0),
+                        }),
+                        (this.select = this.subjects.select.distinctUntilChanged(function (t) {
+                          return t;
+                        }, nA.Interactivity.interactivityInfoEqual)),
+                        (this.click = this.subjects.click.distinctUntilChanged(function (t) {
+                          return t;
+                        }, nA.Interactivity.interactivityInfoEqual)),
+                        (this.currentEntity = this.subjects.currentEntity),
+                        this.init();
+                    }
+                    (e.prototype.init = function () {
+                      var e = this,
+                        n = nA.Interactivity.Info.empty;
+                      nA.Event.Tree.NodeRemoved.getStream(this.context).subscribe(function (t) {
+                        nA.Interactivity.isSelection(n) &&
+                          n.source === t.data &&
+                          ((n = nA.Interactivity.Info.empty),
+                          nA.Event.Visual.VisualSelectElement.dispatch(e.context, n));
+                      }),
+                        nA.Event.Visual.VisualSelectElement.getStream(this.context).subscribe(
+                          function (t) {
+                            (n = t.data),
+                              e.subjects.click.onNext(n),
+                              (nA.Interactivity.isSelection(n) &&
+                                nA.Entity.isVisual(n.source) &&
+                                !n.source.props.isSelectable) ||
+                                e.subjects.select.onNext(n);
+                          },
+                        ),
+                        nA.Event.Entity.CurrentChanged.getStream(this.context).subscribe(
+                          function (t) {
+                            return e.subjects.currentEntity.onNext(t.data);
+                          },
+                        );
+                    }),
+                      (t.Streams = e);
+                  })((nA = r.Bootstrap || (r.Bootstrap = {})).Behaviour || (nA.Behaviour = {})),
+                  (rA = F = F || {}),
+                  (h = rA.Bootstrap || (rA.Bootstrap = {})),
+                  ((iA = h.Behaviour || (h.Behaviour = {})).SetEntityToCurrentWhenAdded = function (
+                    e,
+                  ) {
+                    h.Event.Tree.NodeAdded.getStream(e).subscribe(function (t) {
+                      t = t.data;
+                      (t && (t.transform.isUpdate || t.type.info.traits.isSilent)) ||
+                        h.Command.Entity.SetCurrent.dispatch(e, t);
+                    });
+                  }),
+                  (iA.SuppressCreateVisualWhenModelIsAdded = !1),
+                  (iA.CreateVisualWhenModelIsAdded = function (n) {
+                    h.Event.Tree.NodeAdded.getStream(n).subscribe(function (t) {
+                      var e;
+                      iA.SuppressCreateVisualWhenModelIsAdded ||
+                        !h.Tree.Node.is(t.data, h.Entity.Molecule.Model) ||
+                        t.data.isHidden ||
+                        ((e =
+                          h.Entity.Transformer.Molecule.CreateMacromoleculeVisual.info.defaultParams(
+                            n,
+                            t.data,
+                          )),
+                        h.Command.Tree.ApplyTransform.dispatch(n, {
+                          node: t.data,
+                          transform:
+                            h.Entity.Transformer.Molecule.CreateMacromoleculeVisual.create(e),
+                        }));
+                    });
+                  }),
+                  (iA.ApplySelectionToVisual = function (t) {
+                    h.Event.Tree.NodeAdded.getStream(t).subscribe(function (t) {
+                      t = t.data;
+                      h.Entity.isMoleculeSelection(t) &&
+                        h.Entity.isVisual(t.parent) &&
+                        t.parent.props.model.applySelection(t.props.indices, 1);
+                    }),
+                      h.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) {
+                        t = t.data;
+                        h.Entity.isMoleculeSelection(t) &&
+                          h.Entity.isVisual(t.parent) &&
+                          t.parent.props.model.applySelection(t.props.indices, 2);
+                      });
+                  }),
+                  (iA.ApplyInteractivitySelection = function (t) {
+                    Jh(t.behaviours.click);
+                  }),
+                  (iA.FilteredApplyInteractivitySelection = function (n) {
+                    return function (e) {
+                      Jh(
+                        e.behaviours.click.filter(function (t) {
+                          return n(t, e);
+                        }),
+                      );
+                    };
+                  }),
+                  (iA.UnselectElementOnRepeatedClick = function (e) {
+                    var n = h.Interactivity.Info.empty;
+                    h.Event.Visual.VisualSelectElement.getStream(e).subscribe(function (t) {
+                      !h.Interactivity.isEmpty(t.data) &&
+                      !h.Interactivity.isEmpty(n) &&
+                      (h.Tree.Node.hasAncestor(n.source, t.data.source) ||
+                        h.Tree.Node.hasAncestor(t.data.source, n.source)) &&
+                      h.Interactivity.interactivitySelectionElementsEqual(t.data, n)
+                        ? ((n = h.Interactivity.Info.empty),
+                          setTimeout(function () {
+                            return h.Event.Visual.VisualSelectElement.dispatch(
+                              e,
+                              h.Interactivity.Info.empty,
+                            );
+                          }, 0))
+                        : (n = t.data);
+                    });
+                  }),
+                  (oA = rA.Core.Geometry.LinearAlgebra.Vector3.zero()),
+                  (iA.FocusCameraOnSelect = function (t) {
+                    Kh(t.behaviours.click, t);
+                  }),
+                  (iA.FilteredFocusCameraOnSelect = function (n) {
+                    return function (e) {
+                      Kh(
+                        e.behaviours.click.filter(function (t) {
+                          return n(t, e);
+                        }),
+                        e,
+                      );
+                    };
+                  }),
+                  (aA = F = F || {}),
+                  (p = aA.Bootstrap || (aA.Bootstrap = {})),
+                  (e = p.Behaviour || (p.Behaviour = {})),
+                  (sA = e.Molecule || (e.Molecule = {})),
+                  (lA = aA.Core.Structure.Query),
+                  (uA = p.Entity.Transformer),
+                  (sA.SuppressShowInteractionOnSelect = !1),
+                  (sA.ShowInteractionOnSelect = function (c) {
+                    return function (i) {
+                      var o = void 0,
+                        a = void 0,
+                        s = {
+                          type: 'BallsAndSticks',
+                          taskType: 'Silent',
+                          params: {
+                            useVDW: !0,
+                            vdwScaling: 0.25,
+                            bondRadius: 0.13,
+                            detail: 'Automatic',
+                          },
+                          theme: {
+                            template: p.Visualization.Molecule.Default.ElementSymbolThemeTemplate,
+                            colors:
+                              p.Visualization.Molecule.Default.ElementSymbolThemeTemplate.colors.set(
+                                'Bond',
+                                aA.Visualization.Theme.Default.SelectionColor,
+                              ),
+                            transparency: { alpha: 0.4 },
+                          },
+                          isNotSelectable: !0,
+                        },
+                        l = {
+                          type: 'BallsAndSticks',
+                          taskType: 'Silent',
+                          params: {
+                            useVDW: !1,
+                            atomRadius: 0.15,
+                            bondRadius: 0.07,
+                            detail: 'Automatic',
+                          },
+                          theme: {
+                            template: p.Visualization.Molecule.Default.UniformThemeTemplate,
+                            colors:
+                              p.Visualization.Molecule.Default.UniformThemeTemplate.colors.set(
+                                'Uniform',
+                                { r: 0.4, g: 0.4, b: 0.4 },
+                              ),
+                            transparency: { alpha: 0.75 },
+                          },
+                          isNotSelectable: !0,
+                        };
+                      function u() {
+                        o && (p.Command.Tree.RemoveNode.dispatch(i, o), (a = o = void 0));
+                      }
+                      i.behaviours.click.subscribe(function (t) {
+                        var e, n, r;
+                        sA.SuppressShowInteractionOnSelect || p.Interactivity.isEmpty(t)
+                          ? u()
+                          : t.source.ref === a
+                            ? (e = p.Utils.Molecule.findModel(t.source)) &&
+                              ((n = lA.atomsFromIndices(t.elements)),
+                              setTimeout(
+                                p.Command.Molecule.CreateSelectInteraction.dispatch(i, {
+                                  entity: e,
+                                  query: n,
+                                }),
+                                0,
+                              ))
+                            : (p.Entity.isVisual(t.source) && !t.source.props.isSelectable) ||
+                              (u(),
+                              !p.Interactivity.isEmpty(t) &&
+                                p.Utils.Molecule.findModelOrSelection(t.source) &&
+                                ((e = lA.atomsFromIndices(t.elements).wholeResidues()),
+                                (n = lA
+                                  .atomsFromIndices(t.elements)
+                                  .wholeResidues()
+                                  .ambientResidues(c)),
+                                (r = p.Utils.generateUUID()),
+                                (t = p.Tree.Transform.build().add(
+                                  t.source,
+                                  uA.Basic.CreateGroup,
+                                  { label: 'Interaction' },
+                                  { ref: r, isHidden: !0 },
+                                )),
+                                (o = r),
+                                (a = p.Utils.generateUUID()),
+                                t
+                                  .then(
+                                    uA.Molecule.CreateSelectionFromQuery,
+                                    { query: n, name: 'Ambience', silent: !0, inFullContext: !0 },
+                                    { isBinding: !0 },
+                                  )
+                                  .then(uA.Molecule.CreateVisual, { style: l }, { ref: a }),
+                                t
+                                  .then(
+                                    uA.Molecule.CreateSelectionFromQuery,
+                                    { query: e, name: 'Ligand', silent: !0, inFullContext: !0 },
+                                    { isBinding: !0 },
+                                  )
+                                  .then(uA.Molecule.CreateVisual, { style: s }),
+                                p.Tree.Transform.apply(i, t).run()));
+                      });
+                    };
+                  }),
+                  (sA.HighlightElementInfo = function (t) {
+                    t.highlight.addProvider(function (t) {
+                      if (p.Interactivity.Molecule.isMoleculeModelInteractivity(t))
+                        return (
+                          (t = p.Interactivity.Molecule.transformInteraction(t)),
+                          p.Interactivity.Molecule.formatInfo(t)
+                        );
+                    });
+                  }),
+                  (sA.DistanceToLastClickedElement = function (t) {
+                    var n = p.Interactivity.Info.empty,
+                      r = void 0,
+                      i = void 0;
+                    t.behaviours.click.subscribe(function (t) {
+                      var e;
+                      r = p.Interactivity.Molecule.isMoleculeModelInteractivity(t)
+                        ? ((n = t),
+                          (e = p.Utils.Molecule.findModel(t.source))
+                            ? ((i = e.props.model),
+                              p.Interactivity.Molecule.formatInfoShort(
+                                p.Interactivity.Molecule.transformInteraction(t),
+                              ))
+                            : ((n = p.Interactivity.Info.empty), (i = void 0)))
+                        : ((n = p.Interactivity.Info.empty), (i = void 0));
+                    }),
+                      t.highlight.addProvider(function (t) {
+                        if (
+                          p.Interactivity.Molecule.isMoleculeModelInteractivity(t) &&
+                          !p.Interactivity.isEmpty(n)
+                        ) {
+                          var e = p.Utils.Molecule.findModel(t.source);
+                          if (e) {
+                            e = p.Utils.Molecule.getDistanceSet(
+                              i,
+                              n.elements,
+                              e.props.model,
+                              t.elements,
+                            );
+                            if (!(e < 1e-4))
+                              return (
+                                '<span><b>' +
+                                p.Utils.round(e, 2) +
+                                ' â„«</b> from <b>' +
+                                r +
+                                '</b></span>'
+                              );
+                          }
+                        }
+                      });
+                  }),
+                  (t = F = F || {}),
+                  (function (t) {
+                    var i = '__ShowDynamicDensity-toast';
+                    function e(t, e) {
+                      (this.context = t),
+                        (this.params = e),
+                        (this.obs = []),
+                        (this.ref = cA.Utils.generateUUID());
+                    }
+                    (e.prototype.remove = function () {
+                      var t = this.getVisual();
+                      t && cA.Tree.remove(t);
+                    }),
+                      (e.prototype.getVisual = function () {
+                        return this.context.select(this.ref)[0];
+                      }),
+                      (e.prototype.update = function (t) {
+                        var e, n, r;
+                        this.params.showFull ||
+                        cA.Interactivity.Molecule.isMoleculeModelInteractivity(t)
+                          ? (cA.Command.Toast.Hide.dispatch(this.context, { key: i }),
+                            ((e = cA.Utils.shallowClone(this.params.style)).params =
+                              cA.Utils.shallowClone(e.params)),
+                            this.params.showFull
+                              ? ((e.params.bottomLeft = void 0),
+                                (e.params.topRight = void 0),
+                                (e.taskType = 'Normal'))
+                              : ((n = cA.Utils.Molecule.findModel((t = t).source)),
+                                (r = t.elements),
+                                (n = n.props.model),
+                                1 === t.elements.length &&
+                                  (r = cA.Utils.Molecule.getResidueIndices(n, t.elements[0])),
+                                (t = cA.Utils.Molecule.getBox(n, r, this.params.radius)),
+                                (e.params.bottomLeft = t.bottomLeft),
+                                (e.params.topRight = t.topRight),
+                                (e.taskType = 'Silent')),
+                            ((n = this.getVisual())
+                              ? cA.Entity.Transformer.Density.CreateVisual.create(
+                                  { style: e },
+                                  { ref: this.ref, isHidden: !0 },
+                                ).update(this.context, n)
+                              : (((r = cA.Entity.Transformer.Density.CreateVisual.create(
+                                  { style: e },
+                                  { ref: this.ref, isHidden: !0 },
+                                )).isUpdate = !0),
+                                r.apply(this.context, this.behaviour))
+                            ).run())
+                          : this.remove();
+                      }),
+                      (e.prototype.updateTheme = function (t) {
+                        var e, n;
+                        (this.params.style.theme = t),
+                          !this.behaviour ||
+                            ((e = this.getVisual()) &&
+                              ((n = cA.Tree.Node.findClosestNodeOfType(this.behaviour, [
+                                cA.Entity.Density.Data,
+                              ])),
+                              (n = t.template.provider(n, cA.Visualization.Theme.getProps(t))),
+                              e.props.model.applyTheme(n)));
+                      }),
+                      (e.prototype.dispose = function () {
+                        this.remove(), cA.Command.Toast.Hide.dispatch(this.context, { key: i });
+                        for (var t = 0, e = this.obs; t < e.length; t++) e[t].dispose();
+                        this.obs = [];
+                      }),
+                      (e.prototype.register = function (t) {
+                        var e = this;
+                        (this.behaviour = t),
+                          this.params.showFull ||
+                            cA.Command.Toast.Show.dispatch(this.context, {
+                              key: i,
+                              title: 'Density',
+                              message: 'Click on a residue or an atom to view the data.',
+                              timeoutMs: 3e4,
+                            }),
+                          this.obs.push(
+                            this.context.behaviours.select.subscribe(function (t) {
+                              e.update(t);
+                            }),
+                          );
+                      }),
+                      (t.ShowDynamicDensity = e);
+                  })(
+                    (t = (cA = t.Bootstrap || (t.Bootstrap = {})).Behaviour || (cA.Behaviour = {}))
+                      .Density || (t.Density = {}),
+                  ),
+                  (AA = F = F || {}),
+                  (hA = AA.Bootstrap || (AA.Bootstrap = {})),
+                  (function (t) {
+                    var n = hA.Entity.Transformer;
+                    (r.prototype.remove = function () {
+                      this.download && (this.download.tryAbort(), (this.download = void 0)),
+                        hA.Command.Tree.RemoveNode.dispatch(this.context, this.ref);
+                    }),
+                      (r.prototype.isApplicable = function (t) {
+                        return (
+                          !!hA.Interactivity.Molecule.isMoleculeModelInteractivity(t) &&
+                          hA.Tree.Node.hasAncestor(t.source, this.target)
+                        );
+                      }),
+                      (r.prototype.update = function (t) {
+                        var e,
+                          n,
+                          r,
+                          i,
+                          o,
+                          a,
+                          s,
+                          l,
+                          u = this;
+                        this.remove(),
+                          this.isApplicable(t) &&
+                            ((t = (e = hA.Utils.Molecule.findModel(t.source).props.model).data.atoms
+                              .residueIndex[t.elements[0]]),
+                            (o = (n = e.data.residues).authAsymId[t]),
+                            (a = void 0),
+                            e.source === AA.Core.Structure.Molecule.Model.Source.Computed &&
+                              ((l = e.parent),
+                              (r = n.chainIndex[t]),
+                              (i = e.data.chains.sourceChainIndex[r]),
+                              (o = l.data.chains.authAsymId[i]),
+                              (a = e.operators[e.data.chains.operatorIndex[r]].matrix)),
+                            (s =
+                              this.server +
+                              '/' +
+                              e.id.toLocaleLowerCase() +
+                              '/ambientResidues?modelId=' +
+                              encodeURIComponent(e.modelId) +
+                              '&entityId=' +
+                              encodeURIComponent(n.entityId[t]) +
+                              '&authAsymId=' +
+                              encodeURIComponent(o) +
+                              '&authSeqNumber=' +
+                              encodeURIComponent('' + n.authSeqNumber[t]) +
+                              '&insCode=' +
+                              encodeURIComponent(null !== n.insCode[t] ? n.insCode[t] : '') +
+                              '&radius=' +
+                              encodeURIComponent('' + this.radius) +
+                              '&atomSitesOnly=1&encoding=bcif&lowPrecisionCoords=1'),
+                            (this.download = hA.Utils.ajaxGetArrayBuffer(s).runWithContext(
+                              this.context,
+                            )),
+                            (l = hA.Utils.LRUCache.get(this.cache, s))
+                              ? this.create(l, a)
+                              : (this.context.performance.start(this.ref),
+                                this.download.result
+                                  .then(function (t) {
+                                    hA.Utils.LRUCache.set(u.cache, s, t),
+                                      u.context.performance.end(u.ref),
+                                      u.context.logger.info(
+                                        'Streaming done in ' +
+                                          u.context.performance.formatTime(u.ref),
+                                      ),
+                                      u.create(t, a);
+                                  })
+                                  .catch(function () {
+                                    u.context.performance.end(u.ref);
+                                  })));
+                      }),
+                      (r.prototype.create = function (t, e) {
+                        t = hA.Tree.Transform.build()
+                          .add(
+                            this.behaviour,
+                            hA.Entity.Transformer.Molecule.CoordinateStreaming.CreateModel,
+                            { data: t, transform: e },
+                            { ref: this.ref, isHidden: !0 },
+                          )
+                          .then(n.Molecule.CreateVisual, { style: this.style });
+                        hA.Tree.Transform.apply(this.context, t).run();
+                      }),
+                      (r.prototype.dispose = function () {
+                        this.remove();
+                        for (var t = 0, e = this.obs; t < e.length; t++) e[t].dispose();
+                        this.obs = [];
+                      }),
+                      (r.prototype.register = function (t) {
+                        var e = this;
+                        (this.behaviour = t),
+                          (this.target = t.parent),
+                          this.obs.push(
+                            this.context.behaviours.select.subscribe(function (t) {
+                              return e.update(t);
+                            }),
+                          );
+                      });
+                    function r(t, e, n) {
+                      void 0 === n && (n = 5),
+                        (this.context = t),
+                        (this.radius = n),
+                        (this.obs = []),
+                        (this.target = void 0),
+                        (this.behaviour = void 0),
+                        (this.ref = hA.Utils.generateUUID()),
+                        (this.download = void 0),
+                        (this.cache = hA.Utils.LRUCache.create(100)),
+                        (this.style = {
+                          type: 'BallsAndSticks',
+                          taskType: 'Silent',
+                          params: {
+                            useVDW: !0,
+                            vdwScaling: 0.17,
+                            bondRadius: 0.07,
+                            detail: 'Automatic',
+                          },
+                          theme: {
+                            template: hA.Visualization.Molecule.Default.ElementSymbolThemeTemplate,
+                            colors:
+                              hA.Visualization.Molecule.Default.ElementSymbolThemeTemplate.colors,
+                            transparency: { alpha: 1 },
+                          },
+                          isNotSelectable: !0,
+                        }),
+                        (this.server = r.normalizeServerName(e));
+                    }
+                    function i(t) {
+                      return '/' === t[t.length - 1] && 0 < t.length
+                        ? t.substr(0, t.length - 1)
+                        : t;
+                    }
+                    (t.CoordinateStreaming = r),
+                      ((t =
+                        t.CoordinateStreaming || (t.CoordinateStreaming = {})).normalizeServerName =
+                        i),
+                      (t.getBaseUrl = function (t, e) {
+                        return (
+                          i(e) +
+                          '/' +
+                          t.trim().toLocaleLowerCase() +
+                          '/cartoon?encoding=bcif&lowPrecisionCoords=1'
+                        );
+                      });
+                  })((n = hA.Behaviour || (hA.Behaviour = {})).Molecule || (n.Molecule = {})),
+                  (E = F = F || {}),
+                  ((
+                    (pA = E.Bootstrap || (E.Bootstrap = {})).Behaviour || (pA.Behaviour = {})
+                  ).GoogleAnalytics = function (s, l) {
+                    return (
+                      void 0 === l && (l = 'default'),
+                      function (e) {
+                        var t,
+                          n,
+                          r,
+                          i,
+                          o,
+                          a = 'ga-' + e.id + '-' + l;
+                        try {
+                          (t = window),
+                            (n = document),
+                            (r = a),
+                            (t.GoogleAnalyticsObject = r),
+                            (t[r] =
+                              t[r] ||
+                              function () {
+                                (t[r].q = t[r].q || []).push(arguments);
+                              }),
+                            (t[r].l = +new Date()),
+                            (i = n.createElement('script')),
+                            (o = n.getElementsByTagName('script')[0]),
+                            (i.async = 1),
+                            (i.src = 'https://www.google-analytics.com/analytics.js'),
+                            o.parentNode.insertBefore(i, o),
+                            window[a]('create', s, 'auto'),
+                            setTimeout(function () {
+                              try {
+                                var t = window[a];
+                                t && t('send', 'event', 'Loaded', 'contextId', e.id);
+                              } catch (t) {}
+                            }, 1e3);
+                        } catch (t) {}
+                        pA.Event.Tree.TransformerApply.getStream(e).subscribe(function (t) {
+                          Zh(
+                            e,
+                            'Download',
+                            pA.Entity.Transformer.Data.Download,
+                            t.data.a,
+                            t.data.t,
+                            $h,
+                            a,
+                          ),
+                            Zh(
+                              e,
+                              'Create Molecule From Data',
+                              pA.Entity.Transformer.Molecule.CreateFromData,
+                              t.data.a,
+                              t.data.t,
+                              Xh,
+                              a,
+                            ),
+                            Zh(
+                              e,
+                              'Create Model Selecion',
+                              pA.Entity.Transformer.Molecule.CreateSelection,
+                              t.data.a,
+                              t.data.t,
+                              tp,
+                              a,
+                            ),
+                            Zh(
+                              e,
+                              'Create Assembly',
+                              pA.Entity.Transformer.Molecule.CreateAssembly,
+                              t.data.a,
+                              t.data.t,
+                              ep,
+                              a,
+                            ),
+                            Zh(
+                              e,
+                              'Create Symmetry',
+                              pA.Entity.Transformer.Molecule.CreateSymmetryMates,
+                              t.data.a,
+                              t.data.t,
+                              np,
+                              a,
+                            ),
+                            Zh(
+                              e,
+                              'Create Visual',
+                              pA.Entity.Transformer.Molecule.CreateVisual,
+                              t.data.a,
+                              t.data.t,
+                              ip,
+                              a,
+                            ),
+                            Zh(
+                              e,
+                              'Coordinate Streaming',
+                              pA.Entity.Transformer.Molecule.CoordinateStreaming.CreateBehaviour,
+                              t.data.a,
+                              t.data.t,
+                              rp,
+                              a,
+                            ),
+                            Zh(
+                              e,
+                              'Parse Density',
+                              pA.Entity.Transformer.Density.ParseData,
+                              t.data.a,
+                              t.data.t,
+                              op,
+                              a,
+                            ),
+                            Zh(
+                              e,
+                              'Create Model Selection',
+                              pA.Entity.Transformer.Molecule.CreateSelection,
+                              t.data.a,
+                              t.data.t,
+                              ap,
+                              a,
+                            );
+                        });
+                      }
+                    );
+                  }),
+                  (r = F = F || {}),
+                  (function (t) {
+                    function e(t, e) {
+                      (this.context = t),
+                        (this._state = new dA.Rx.Subject()),
+                        (this._latestState = void 0),
+                        (this._latestState = e);
+                    }
+                    Object.defineProperty(e.prototype, 'dispatcher', {
+                      get: function () {
+                        return this.context.dispatcher;
+                      },
+                      enumerable: !0,
+                      configurable: !0,
+                    }),
+                      (e.prototype.setState = function () {
+                        for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+                        var n = dA.Utils.merge.apply(dA.Utils, [this._latestState].concat(t));
+                        n !== this._latestState && ((this._latestState = n), this._state.onNext(n));
+                      }),
+                      Object.defineProperty(e.prototype, 'state', {
+                        get: function () {
+                          return this._state;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(e.prototype, 'latestState', {
+                        get: function () {
+                          return this._latestState;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (t.Component = e);
+                  })((dA = r.Bootstrap || (r.Bootstrap = {})).Components || (dA.Components = {})),
+                  (e = F = F || {}),
+                  (e = (fA = e.Bootstrap || (e.Bootstrap = {})).Components || (fA.Components = {})),
+                  ((t = gA = e.LayoutRegion || (e.LayoutRegion = {}))[(t.Main = 0)] = 'Main'),
+                  (t[(t.Top = 1)] = 'Top'),
+                  (t[(t.Right = 2)] = 'Right'),
+                  (t[(t.Bottom = 3)] = 'Bottom'),
+                  (t[(t.Left = 4)] = 'Left'),
+                  (t[(t.Root = 5)] = 'Root'),
+                  ((t = mA = e.CollapsedControlsLayout || (e.CollapsedControlsLayout = {}))[
+                    (t.Outside = 0)
+                  ] = 'Outside'),
+                  (t[(t.Landscape = 1)] = 'Landscape'),
+                  (t[(t.Portrait = 2)] = 'Portrait'),
+                  (vA = function (t) {
+                    (this.cssClass = t), (this.components = []);
+                  }),
+                  (e.LayoutTarget = vA),
+                  (e.makeEmptyTargets = function () {
+                    for (var t = [], e = 0; e <= gA.Root; e++) t.push(new vA(gA[e].toLowerCase()));
+                    return t;
+                  }),
+                  (bA = e.Component),
+                  M(sp, bA),
+                  (sp.prototype.update = function (t) {
+                    var e = this,
+                      n = !!this.latestState.isExpanded;
+                    this.setState(t),
+                      'boolean' == typeof t.isExpanded && t.isExpanded !== n && this.handleExpand(),
+                      this.dispatcher.schedule(function () {
+                        return fA.Event.Common.LayoutChanged.dispatch(e.context, {});
+                      });
+                  }),
+                  (sp.prototype.getScrollElement = function () {
+                    return document.scrollingElement || document.documentElement || document.body;
+                  }),
+                  (sp.prototype.handleExpand = function () {
+                    try {
+                      var t = document.getElementsByTagName('body')[0],
+                        e = document.getElementsByTagName('head')[0];
+                      if (!t || !e) return;
+                      if (this.latestState.isExpanded) {
+                        for (var n = e.children, r = !1, i = [], o = 0; o < n.length; o++)
+                          n[o] === this.expandedViewport
+                            ? (r = !0)
+                            : 'viewport' === (n[o].name || '').toLowerCase() && i.push(n[o]);
+                        for (var a = 0, s = i; a < s.length; a++) {
+                          var l = s[a];
+                          e.removeChild(l);
+                        }
+                        r || e.appendChild(this.expandedViewport);
+                        var u = t.style,
+                          c = (h = this.getScrollElement()).scrollLeft,
+                          A = h.scrollTop;
+                        (this.rootState = {
+                          top: u.top,
+                          bottom: u.bottom,
+                          right: u.right,
+                          left: u.left,
+                          scrollTop: A,
+                          scrollLeft: c,
+                          position: u.position,
+                          overflow: u.overflow,
+                          viewports: i,
+                          zindex: this.root.style.zIndex,
+                          width: u.width,
+                          height: u.height,
+                          maxWidth: u.maxWidth,
+                          maxHeight: u.maxHeight,
+                          margin: u.margin,
+                          marginLeft: u.marginLeft,
+                          marginRight: u.marginRight,
+                          marginTop: u.marginTop,
+                          marginBottom: u.marginBottom,
+                        }),
+                          (u.overflow = 'hidden'),
+                          (u.position = 'fixed'),
+                          (u.top = '0'),
+                          (u.bottom = '0'),
+                          (u.right = '0'),
+                          (u.left = '0'),
+                          (u.width = '100%'),
+                          (u.height = '100%'),
+                          (u.maxWidth = '100%'),
+                          (u.maxHeight = '100%'),
+                          (u.margin = '0'),
+                          (u.marginLeft = '0'),
+                          (u.marginRight = '0'),
+                          (u.marginTop = '0'),
+                          (u.marginBottom = '0'),
+                          (this.root.style.zIndex = '100000');
+                      } else {
+                        for (n = e.children, o = 0; o < n.length; o++)
+                          if (n[o] === this.expandedViewport) {
+                            e.removeChild(this.expandedViewport);
+                            break;
+                          }
+                        if (this.rootState) {
+                          for (
+                            var h, u = t.style, p = this.rootState, d = 0, f = p.viewports;
+                            d < f.length;
+                            d++
+                          ) {
+                            l = f[d];
+                            e.appendChild(l);
+                          }
+                          (u.top = p.top),
+                            (u.bottom = p.bottom),
+                            (u.left = p.left),
+                            (u.right = p.right),
+                            (u.width = p.width),
+                            (u.height = p.height),
+                            (u.maxWidth = p.maxWidth),
+                            (u.maxHeight = p.maxHeight),
+                            (u.margin = p.margin),
+                            (u.marginLeft = p.marginLeft),
+                            (u.marginRight = p.marginRight),
+                            (u.marginTop = p.marginTop),
+                            (u.marginBottom = p.marginBottom),
+                            (u.position = p.position),
+                            (u.overflow = p.overflow),
+                            ((h = this.getScrollElement()).scrollTop = p.scrollTop),
+                            (h.scrollLeft = p.scrollLeft),
+                            (this.rootState = void 0),
+                            (this.root.style.zIndex = p.zindex);
+                        }
+                      }
+                    } catch (t) {
+                      this.context.logger.error(
+                        'Layout change error, you might have to reload the page.',
+                      ),
+                        console.log('Layout change error, you might have to reload the page.', t);
+                    }
+                  }),
+                  (sp.prototype.updateTargets = function (t) {
+                    var e = this;
+                    (this.targets = t),
+                      this.dispatcher.schedule(function () {
+                        return fA.Event.Common.ComponentsChanged.dispatch(e.context, {});
+                      });
+                  }),
+                  (t = sp),
+                  (e.Layout = t),
+                  (yA = F = F || {}),
+                  (function (t) {
+                    var e, i;
+                    function n(t, e, n) {
+                      var r =
+                        i.call(this, t, {
+                          params: e.info.defaultParams(t, n),
+                          canApply: !1,
+                          isBusy: !1,
+                          issues: void 0,
+                          parametersAutoUpdating: !1,
+                          isDirty: !1,
+                        }) || this;
+                      return (
+                        (r.transformer = e),
+                        (r.entity = n),
+                        (r.updateTimeout = new wA.Rx.Subject()),
+                        (r.timeout = wA.Rx.Observable.timer(50)),
+                        (r.never = wA.Rx.Observable.never()),
+                        (r.anchorParams = r.latestState.params),
+                        r.updateParams(r.anchorParams),
+                        r.updateTimeout
+                          .flatMapLatest(function (t) {
+                            return t;
+                          })
+                          .forEach(function () {
+                            return r.apply();
+                          }),
+                        r
+                      );
+                    }
+                    (e = t.Transform || (t.Transform = {})),
+                      (i = t.Component),
+                      M(n, i),
+                      (n.prototype._update = function () {
+                        this.isUpdate &&
+                          !this.latestState.isBusy &&
+                          this.updateTimeout &&
+                          (this.updateTimeout.onNext(this.timeout),
+                          this.setState({ parametersAutoUpdating: !0 }));
+                      }),
+                      (n.prototype._reset = function () {
+                        this.setState({ parametersAutoUpdating: !1 }),
+                          this.updateTimeout && this.updateTimeout.onNext(this.never);
+                      }),
+                      (n.prototype._updateParams = function (t) {
+                        t = wA.Utils.merge(this.latestState.params, t);
+                        if (this.transformer.info.validateParams) {
+                          var e = this.transformer.info.validateParams(t);
+                          if (e && 0 < e.length)
+                            return void this.setState({ params: t, issues: e, canApply: !1 });
+                        }
+                        e = !wA.Utils.deepEqual(this.anchorParams, t);
+                        this.setState({ params: t, isDirty: e, issues: void 0, canApply: !0 });
+                      }),
+                      (n.prototype.updateParams = function (t) {
+                        this._reset(), this._updateParams(t);
+                      }),
+                      (n.prototype.autoUpdateParams = function (t) {
+                        this._update(), this._updateParams(t);
+                      }),
+                      Object.defineProperty(n.prototype, 'isUpdate', {
+                        get: function () {
+                          return this.transformer === this.entity.transform.transformer;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (n.prototype.apply = function () {
+                        var t = this;
+                        if ((this._reset(), !this.latestState.isBusy)) {
+                          var e = this.transformer.create(this.latestState.params);
+                          (this.anchorParams = this.latestState.params),
+                            this.setState({ isDirty: !1, isBusy: !0 });
+                          try {
+                            var n = (
+                              this.isUpdate
+                                ? e.update(this.context, this.entity)
+                                : e.apply(this.context, this.entity)
+                            ).run();
+                            return (
+                              n
+                                .then(function () {
+                                  return t.setState({ isBusy: !1 });
+                                })
+                                .catch(function () {
+                                  return t.setState({ isBusy: !1 });
+                                }),
+                              n
+                            );
+                          } catch (t) {
+                            return this.setState({ isBusy: !1 }), yA.Core.Computation.reject(t);
+                          }
+                        }
+                      }),
+                      (n.prototype.setParams = function (t) {
+                        this._reset(), (this.anchorParams = t), this.updateParams(t);
+                      }),
+                      (e.Controller = n);
+                  })((wA = yA.Bootstrap || (yA.Bootstrap = {})).Components || (wA.Components = {})),
+                  (n = F = F || {}),
+                  (function (t) {
+                    var e, n;
+                    function r(t) {
+                      var e = n.call(this, t, { update: void 0, transforms: [] }) || this;
+                      return (
+                        e.update(),
+                        EA.Event.Entity.CurrentChanged.getStream(t).subscribe(function () {
+                          return e.update();
+                        }),
+                        e
+                      );
+                    }
+                    (e = t.Transform || (t.Transform = {})),
+                      (n = t.Component),
+                      M(r, n),
+                      (r.prototype.update = function () {
+                        if (this.context.currentEntity) {
+                          for (
+                            var t = this.context.currentEntity,
+                              e = this.context.transforms,
+                              n = void 0,
+                              r =
+                                (t.transform.transformer &&
+                                  t.transform.transformer.info.isUpdatable &&
+                                  (n = e.getController(t.transform.transformer, t)),
+                                []),
+                              i = 0,
+                              o = this.context.transforms.getBySourceType(t.type);
+                            i < o.length;
+                            i++
+                          ) {
+                            var a = o[i];
+                            (a.info.isApplicable && !a.info.isApplicable(t)) ||
+                              ((a = e.getController(a, t)) && r.push(a));
+                          }
+                          this.setState({ update: n, transforms: r });
+                        } else this.setState({ transforms: [] });
+                      }),
+                      (e.View = r);
+                  })((EA = n.Bootstrap || (n.Bootstrap = {})).Components || (EA.Components = {})),
+                  (E = F = F || {}),
+                  (function (t) {
+                    t = t.Transform || (t.Transform = {});
+                    (e = t.Controller),
+                      M(i, e),
+                      (i.prototype.updateTemplate = function (t, e) {
+                        var e = e.get(t),
+                          t = this.latestState && this.latestState.params.style.theme,
+                          n = e.params,
+                          t = t || this.getThemeInstance(e.theme.template),
+                          e = { type: e.type, params: n, theme: t };
+                        this.autoUpdateParams({ style: e });
+                      }),
+                      (i.prototype.updateStyleParams = function (t) {
+                        var e = BA.Utils.shallowClone(this.latestState.params.style);
+                        (e.params = BA.Utils.merge(e.params, t)),
+                          this.autoUpdateParams({ style: e });
+                      }),
+                      (i.prototype.updateStyleTheme = function (t) {
+                        var e = BA.Utils.shallowClone(this.latestState.params.style);
+                        (e.theme = BA.Utils.merge(e.theme, t)), this.autoUpdateParams({ style: e });
+                      }),
+                      (i.prototype.updateThemeColor = function (t, e) {
+                        var n = this.latestState.params.style.theme;
+                        n &&
+                          ((n = (n = (n = n.colors) || BA.Immutable.Map()).set(t, e)),
+                          this.updateStyleTheme({ colors: n }));
+                      }),
+                      (i.prototype.updateThemeVariable = function (t, e) {
+                        var n = this.latestState.params.style.theme;
+                        n &&
+                          ((n = (n = (n = n.variables) || BA.Immutable.Map()).set(t, e)),
+                          this.updateStyleTheme({ variables: n }));
+                      }),
+                      (i.prototype.updateThemeTransparency = function (t) {
+                        this.latestState.params.style.theme &&
+                          this.updateStyleTheme({ transparency: t });
+                      }),
+                      (i.prototype.getThemeInstance = function (t) {
+                        var e = this.latestState.params.style.theme,
+                          n = BA.Visualization.Molecule.Default.ForType.get(
+                            this.latestState.params.style.type,
+                          ).theme.transparency;
+                        if (!e) return { template: t, colors: t.colors, transparency: n };
+                        var r = t.colors,
+                          i =
+                            (e.colors &&
+                              r &&
+                              (r = r.withMutations(function (n) {
+                                e.colors.forEach(function (t, e) {
+                                  n.has(e) && n.set(e, t);
+                                });
+                              })),
+                            t.variables),
+                          n =
+                            (e.variables &&
+                              i &&
+                              (i = i.withMutations(function (n) {
+                                e.variables.forEach(function (t, e) {
+                                  n.has(e) && n.set(e, t);
+                                });
+                              })),
+                            e.transparency || n);
+                        return { template: t, colors: r, variables: i, transparency: n };
+                      }),
+                      (i.prototype.updateThemeDefinition = function (t) {
+                        this.updateStyleTheme(this.getThemeInstance(t));
+                      });
+                    var e,
+                      n,
+                      r = i;
+                    function i() {
+                      return (null !== e && e.apply(this, arguments)) || this;
+                    }
+                    function o() {
+                      return (null !== n && n.apply(this, arguments)) || this;
+                    }
+                    (t.VisualStyle = r), M(o, (n = r)), (t.MoleculeVisual = o), M(s, (a = r));
+                    var a;
+                    function s() {
+                      return (null !== a && a.apply(this, arguments)) || this;
+                    }
+                    (t.MoleculeLabels = s), M(u, (l = r));
+                    var l;
+                    function u() {
+                      return (null !== l && l.apply(this, arguments)) || this;
+                    }
+                    (t.GenericLabels = u),
+                      (c = t.Controller),
+                      M(A, c),
+                      (A.prototype.cloneStyle = function (t) {
+                        return BA.Utils.shallowClone(this.latestState.params[t || 'style']);
+                      }),
+                      (A.prototype.getStyle = function (t) {
+                        return this.latestState.params[t || 'style'];
+                      }),
+                      (A.prototype.setStyle = function (t, e) {
+                        var n;
+                        this.autoUpdateParams((((n = {})[e || 'style'] = t), n));
+                      }),
+                      (A.prototype.updateStyleParams = function (t, e) {
+                        var n = this.cloneStyle(e);
+                        (n.params = BA.Utils.merge(n.params, t)), this.setStyle(n, e);
+                      }),
+                      (A.prototype.updateStyleTheme = function (t, e) {
+                        var n = this.cloneStyle(e);
+                        (n.theme = BA.Utils.merge(n.theme, t)), this.setStyle(n, e);
+                      }),
+                      (A.prototype.updateThemeColor = function (t, e, n) {
+                        var r = this.getStyle(n).theme;
+                        r &&
+                          ((r = (r = (r = r.colors) || BA.Immutable.Map()).set(t, e)),
+                          this.updateStyleTheme({ colors: r }, n));
+                      }),
+                      (A.prototype.updateThemeTransparency = function (t, e) {
+                        this.getStyle(e).theme && this.updateStyleTheme({ transparency: t }, e);
+                      }),
+                      (A.prototype.getThemeInstance = function (t, e) {
+                        var r = this.getStyle(e).theme,
+                          e = BA.Visualization.Density.Default.Transparency;
+                        if (!r) return { template: t, colors: t.colors, transparency: e };
+                        var n = t.colors,
+                          e =
+                            (r.colors &&
+                              n &&
+                              (n = n.withMutations(function (n) {
+                                r.colors.forEach(function (t, e) {
+                                  n.has(e) && n.set(e, t);
+                                });
+                              })),
+                            r.transparency || e);
+                        return { template: t, colors: n, transparency: e };
+                      }),
+                      (A.prototype.updateThemeDefinition = function (t, e) {
+                        this.updateStyleTheme(this.getThemeInstance(t, e), e);
+                      });
+                    var c,
+                      r = A;
+                    function A() {
+                      return (null !== c && c.apply(this, arguments)) || this;
+                    }
+                    t.DensityVisual = A;
+                  })((BA = E.Bootstrap || (E.Bootstrap = {})).Components || (BA.Components = {})),
+                  (r = F = F || {}),
+                  (function (t) {
+                    var e, i;
+                    function n(t, e, n) {
+                      var r = i.call(this, t, { controller: void 0 }) || this;
+                      return (
+                        (r.selector = e),
+                        (r.header = n),
+                        CA.Event.Tree.NodeAdded.getStream(t).subscribe(function () {
+                          return r.added();
+                        }),
+                        CA.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) {
+                          return r.removed(t.data);
+                        }),
+                        r
+                      );
+                    }
+                    (e = t.Transform || (t.Transform = {})),
+                      (i = t.Component),
+                      M(n, i),
+                      (n.prototype.removed = function (t) {
+                        this.latestState.controller &&
+                          this.latestState.controller.entity === t &&
+                          this.setState({ controller: void 0 });
+                      }),
+                      (n.prototype.added = function () {
+                        var t = this.context.select(this.selector)[0];
+                        t &&
+                          t.transform &&
+                          (t = this.context.transforms.getController(t.transform.transformer, t)) &&
+                          this.setState({ controller: t });
+                      }),
+                      (e.Updater = n);
+                  })((CA = r.Bootstrap || (r.Bootstrap = {})).Components || (CA.Components = {})),
+                  (e = F = F || {}),
+                  (function (t) {
+                    var e, o;
+                    function n(t, e, n, r) {
+                      var i = o.call(this, t, { controller: void 0 }) || this;
+                      return (
+                        (i.selector = e),
+                        (i.transformer = n),
+                        (i.header = r),
+                        xA.Event.Tree.NodeAdded.getStream(t).subscribe(function () {
+                          return i.added();
+                        }),
+                        xA.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) {
+                          return i.removed(t.data);
+                        }),
+                        i
+                      );
+                    }
+                    (e = t.Transform || (t.Transform = {})),
+                      (o = t.Component),
+                      M(n, o),
+                      (n.prototype.removed = function (t) {
+                        this.latestState.controller &&
+                          this.latestState.controller.entity === t &&
+                          this.setState({ controller: void 0 });
+                      }),
+                      (n.prototype.added = function () {
+                        var t = this.context.select(this.selector)[0];
+                        !t ||
+                          ((t = this.context.transforms.getController(this.transformer, t)) &&
+                            this.setState({ controller: t }));
+                      }),
+                      (e.Action = n);
+                  })((xA = e.Bootstrap || (e.Bootstrap = {})).Components || (xA.Components = {})),
+                  (t = F = F || {}),
+                  (function (t) {
+                    var e, n;
+                    function r(t) {
+                      var e = n.call(this, t, { entries: IA.Immutable.List() }) || this;
+                      return (
+                        IA.Event.Log.getStream(e.context).subscribe(function (t) {
+                          return e.setState({ entries: e.latestState.entries.push(t.data) });
+                        }),
+                        e
+                      );
+                    }
+                    (e = t.Context || (t.Context = {})), (n = t.Component), M(r, n), (e.Log = r);
+                  })((IA = t.Bootstrap || (t.Bootstrap = {})).Components || (IA.Components = {})),
+                  (n = F = F || {}),
+                  (function (t) {
+                    var e, n;
+                    function r(t) {
+                      var e = n.call(this, t, { entries: MA.Immutable.Map() }) || this;
+                      return (
+                        (e.serialNumber = 0),
+                        (e.serialId = 0),
+                        MA.Command.Toast.Show.getStream(e.context).subscribe(function (t) {
+                          return e.show(t.data);
+                        }),
+                        MA.Command.Toast.Hide.getStream(e.context).subscribe(function (t) {
+                          return e.hide(e.findByKey(t.data.key));
+                        }),
+                        e
+                      );
+                    }
+                    (e = t.Context || (t.Context = {})),
+                      (n = t.Component),
+                      M(r, n),
+                      (r.prototype.findByKey = function (e) {
+                        return this.latestState.entries.find(function (t) {
+                          return !!t && t.key === e;
+                        });
+                      }),
+                      (r.prototype.show = function (t) {
+                        var e,
+                          n = this,
+                          r = this.latestState.entries,
+                          i = void 0,
+                          o = ++this.serialId;
+                        t.key && (i = this.findByKey(t.key))
+                          ? (void 0 !== i.timeout && clearTimeout(i.timeout),
+                            (e = i.serialNumber),
+                            (r = r.remove(i.id)))
+                          : (e = ++this.serialNumber),
+                          (i = {
+                            id: o,
+                            serialNumber: e,
+                            key: t.key,
+                            title: t.title,
+                            message: t.message,
+                            timeout: this.timeout(o, t.timeoutMs),
+                            hide: function () {
+                              return n.hideId(o);
+                            },
+                          }),
+                          (r = r.set(o, i)),
+                          this.setState({ entries: r });
+                      }),
+                      (r.prototype.timeout = function (e, t) {
+                        var n = this;
+                        if (void 0 !== t)
+                          return (
+                            t < 0 && (t = 500),
+                            setTimeout(function () {
+                              var t = n.latestState.entries.get(e);
+                              (t.timeout = void 0), n.hide(t);
+                            }, t)
+                          );
+                      }),
+                      (r.prototype.hideId = function (t) {
+                        this.hide(this.latestState.entries.get(t));
+                      }),
+                      (r.prototype.hide = function (t) {
+                        var e;
+                        t &&
+                          (void 0 !== t.timeout && clearTimeout(t.timeout),
+                          (t.hide = void 0),
+                          (e = (e = this.latestState.entries).delete(t.id)),
+                          this.setState({ entries: e }));
+                      }),
+                      (e.Toast = r);
+                  })((MA = n.Bootstrap || (n.Bootstrap = {})).Components || (MA.Components = {})),
+                  (E = F = F || {}),
+                  (function (t) {
+                    var e, r;
+                    function n(t, e) {
+                      var n = r.call(this, t, { tasks: DA.Immutable.Map() }) || this;
+                      return (
+                        (n.type = e),
+                        DA.Event.Task.StateUpdated.getStream(n.context).subscribe(function (t) {
+                          return n.updated(t.data);
+                        }),
+                        DA.Event.Task.Started.getStream(n.context)
+                          .filter(function (t) {
+                            return t.data.type === e;
+                          })
+                          .subscribe(function (t) {
+                            return n.started(t.data);
+                          }),
+                        DA.Event.Task.Completed.getStream(n.context).subscribe(function (t) {
+                          return n.completed(t.data);
+                        }),
+                        n
+                      );
+                    }
+                    (e = t.Context || (t.Context = {})),
+                      (r = t.Component),
+                      M(n, r),
+                      (n.prototype.updated = function (t) {
+                        var e = t.type === this.type,
+                          n = this.latestState.tasks;
+                        e
+                          ? ((n = n.set(t.taskId, {
+                              name: t.name,
+                              message: t.message,
+                              abort: t.abort,
+                            })),
+                            this.setState({ tasks: n }))
+                          : n.has(t.taskId) &&
+                            ((n = n.delete(t.taskId)), this.setState({ tasks: n }));
+                      }),
+                      (n.prototype.started = function (t) {
+                        this.setState({
+                          tasks: this.latestState.tasks.set(t.id, {
+                            name: t.name,
+                            message: 'Running...',
+                          }),
+                        });
+                      }),
+                      (n.prototype.completed = function (t) {
+                        this.latestState.tasks.has(t) &&
+                          this.setState({ tasks: this.latestState.tasks.delete(t) });
+                      }),
+                      (e.TaskWatcher = n);
+                  })((DA = E.Bootstrap || (E.Bootstrap = {})).Components || (DA.Components = {})),
+                  (r = F = F || {}),
+                  (function (t) {
+                    var e, n;
+                    function r(t) {
+                      var e = n.call(this, t, { info: [] }) || this;
+                      return (
+                        SA.Event.Interactivity.Highlight.getStream(e.context).subscribe(
+                          function (t) {
+                            return e.setState({ info: t.data });
+                          },
+                        ),
+                        e
+                      );
+                    }
+                    (e = t.Visualization || (t.Visualization = {})),
+                      (n = t.Component),
+                      M(r, n),
+                      (e.HighlightInfo = r);
+                  })((SA = r.Bootstrap || (r.Bootstrap = {})).Components || (SA.Components = {})),
+                  (kA = F = F || {}),
+                  (function (t) {
+                    var e, n, r;
+                    function i(t) {
+                      var e = n.call(this, t, FA.Utils.shallowClone(r.DefaultSceneOptions)) || this;
+                      return (
+                        FA.Event.Common.LayoutChanged.getStream(e.context).subscribe(function (t) {
+                          e._scene && e._scene.scene.resized();
+                        }),
+                        FA.Command.Layout.SetViewportOptions.getStream(e.context).subscribe(
+                          function (t) {
+                            return e.setState(t.data);
+                          },
+                        ),
+                        e.state.throttle(1e3 / 30).subscribe(function (t) {
+                          e.scene.scene.updateOptions(t);
+                        }),
+                        e
+                      );
+                    }
+                    (e = t.Visualization || (t.Visualization = {})),
+                      (r = kA.Visualization),
+                      (n = t.Component),
+                      M(i, n),
+                      Object.defineProperty(i.prototype, 'scene', {
+                        get: function () {
+                          return this._scene;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (i.prototype.init = function (t) {
+                        if (!kA.Visualization.checkWebGL()) return !1;
+                        try {
+                          return (
+                            (this._scene = new FA.Visualization.SceneWrapper(
+                              t,
+                              this.context,
+                              this.latestState,
+                            )),
+                            (this.context.scene = this._scene),
+                            !0
+                          );
+                        } catch (t) {
+                          return !1;
+                        }
+                      }),
+                      (i.prototype.destroy = function () {
+                        this._scene && (this._scene.destroy(), (this._scene = null));
+                      }),
+                      (e.Viewport = i);
+                  })((FA = kA.Bootstrap || (kA.Bootstrap = {})).Components || (FA.Components = {})),
+                  (function (n) {
+                    (t.prototype.set = function (t, e) {
+                      this.settings.set(t, e);
+                    }),
+                      (t.prototype.get = function (t) {
+                        return this.settings.get(t);
+                      });
+                    var e = t;
+                    function t() {
+                      this.settings = QA.Core.Utils.FastMap.create();
+                    }
+                    function r(t) {
+                      (this.plugin = t),
+                        (this.id = n.Utils.generateUUID()),
+                        (this.dispatcher = new n.Service.Dispatcher()),
+                        (this.logger = new n.Service.Logger(this)),
+                        (this.performance = new QA.Core.Utils.PerformanceMonitor()),
+                        (this.scene = void 0),
+                        (this.tree = n.Tree.create(
+                          this,
+                          n.Entity.Root.create(n.Entity.RootTransform, { label: 'Root Entity' }),
+                        )),
+                        (this.currentEntity = void 0),
+                        (this.transforms = new n.TransformManager(this)),
+                        (this.entityCache = new n.Entity.Cache(this)),
+                        (this.viewport = new n.Components.Visualization.Viewport(this)),
+                        (this.highlight = new n.Interactivity.HighlightManager(this)),
+                        (this.behaviours = new n.Behaviour.Streams(this)),
+                        (this.settings = new e()),
+                        n.initEventsAndCommands(this);
+                    }
+                    (n.Settings = e),
+                      (r.prototype.createLayout = function (t, e) {
+                        this.layout = new n.Components.Layout(this, t, e);
+                      }),
+                      (r.prototype.select = function (t) {
+                        return n.Tree.Selection.select(t, this.tree);
+                      }),
+                      (n.Context = r);
+                  })((QA = F = F || {}).Bootstrap || (QA.Bootstrap = {})),
+                  (e = (e = F = F || {}).Bootstrap || (e.Bootstrap = {})).Plugin || (e.Plugin = {}),
+                  (t = F = F || {}),
+                  ((f = t.Bootstrap || (t.Bootstrap = {})).initEventsAndCommands = function (r) {
+                    f.Command.Entity.SetCurrent.getStream(r).subscribe(function (t) {
+                      return f.Entity.setCurrent(t.data);
+                    }),
+                      f.Command.Entity.SetVisibility.getStream(r).subscribe(function (t) {
+                        return f.Entity.setVisibility(t.data.entity, t.data.visible);
+                      }),
+                      f.Command.Entity.ToggleExpanded.getStream(r).subscribe(function (t) {
+                        return f.Entity.toggleExpanded(t.data);
+                      }),
+                      f.Command.Tree.RemoveNode.getStream(r).subscribe(function (t) {
+                        return r.select(t.data).forEach(function (t) {
+                          return f.Tree.remove(t);
+                        });
+                      }),
+                      f.Command.Tree.ApplyTransform.getStream(r).subscribe(function (t) {
+                        (t.data.isUpdate
+                          ? t.data.transform.update(r, t.data.node)
+                          : t.data.transform.apply(r, t.data.node)
+                        ).run();
+                      }),
+                      f.Event.Tree.NodeAdded.getStream(r).subscribe(function (t) {
+                        var e = t.data.parent.state.visibility;
+                        f.Entity.setVisibility(t.data, 2 !== e),
+                          f.Entity.isClass(t.data, f.Entity.BehaviourClass) &&
+                            (e = t.data).props.behaviour.register(e);
+                      }),
+                      f.Event.Tree.NodeRemoved.getStream(r).subscribe(function (t) {
+                        f.Entity.updateVisibilityState(t.data.parent),
+                          f.Entity.isClass(t.data, f.Entity.BehaviourClass) &&
+                            t.data.props.behaviour.dispose();
+                      }),
+                      f.Event.Visual.VisualHoverElement.getStream(r)
+                        .distinctUntilChanged(function (t) {
+                          return t.data;
+                        }, f.Interactivity.interactivityInfoEqual)
+                        .map(function (t) {
+                          return f.Interactivity.Molecule.transformInteraction(t.data);
+                        })
+                        .distinctUntilChanged(
+                          function (t) {
+                            return t;
+                          },
+                          function (t, e) {
+                            return t === e;
+                          },
+                        )
+                        .subscribe(function (t) {
+                          return f.Event.Molecule.ModelHighlight.dispatch(r, t);
+                        }),
+                      f.Event.Visual.VisualSelectElement.getStream(r)
+                        .distinctUntilChanged(function (t) {
+                          return t.data;
+                        }, f.Interactivity.interactivityInfoEqual)
+                        .map(function (t) {
+                          return f.Interactivity.Molecule.transformInteraction(t.data);
+                        })
+                        .distinctUntilChanged(
+                          function (t) {
+                            return t;
+                          },
+                          function (t, e) {
+                            return t === e;
+                          },
+                        )
+                        .subscribe(function (t) {
+                          return f.Event.Molecule.ModelSelect.dispatch(r, t);
+                        }),
+                      f.Command.Molecule.CreateSelectInteraction.getStream(r).subscribe(
+                        function (t) {
+                          var e, n;
+                          (e = r),
+                            (t = t.data),
+                            f.Utils.Molecule.findModelOrSelection(t.entity)
+                              ? (n = f.Utils.Molecule.getModelAndIndicesFromQuery(
+                                  t.entity,
+                                  t.query,
+                                )) &&
+                                n.indices.length &&
+                                f.Event.Visual.VisualSelectElement.dispatch(
+                                  e,
+                                  f.Interactivity.Info.selection(t.entity, n.indices),
+                                )
+                              : console.warn(
+                                  'Select: Trying to create a selection event on a non-molecule related entity, ignoring...',
+                                );
+                        },
+                      );
+                  }),
+                  (function (o) {
+                    function t(t) {
+                      var e = this;
+                      (this.context = t),
+                        (this.controllerCache = _A.Core.Utils.FastMap.create()),
+                        (this.state = _A.Core.Utils.FastMap.create()),
+                        (this.byId = _A.Core.Utils.FastMap.create()),
+                        (this.bySourceType = _A.Core.Utils.FastMap.create()),
+                        (this.byTargetType = _A.Core.Utils.FastMap.create()),
+                        o.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) {
+                          e.controllerCache.delete(t.data.id), e.state.delete(t.data.id);
+                        });
+                    }
+                    (t.prototype.addType = function (t, e, n) {
+                      var r = n.get(t.id);
+                      r ? r.push(e) : n.set(t.id, [e]);
+                    }),
+                      (t.prototype.getController = function (t, e) {
+                        if (e) {
+                          var n, r, i;
+                          if (this.byId.get(t.info.id))
+                            return (
+                              (n = this.controllerCache.get(e.id)) ||
+                                ((n = _A.Core.Utils.FastMap.create()),
+                                this.controllerCache.set(e.id, n)),
+                              (r = n.get(t.info.id)) ||
+                                ((r = (i = t.info.customController)
+                                  ? i(this.context, t, e)
+                                  : new o.Components.Transform.Controller(this.context, t, e)),
+                                (i =
+                                  this.context.plugin &&
+                                  this.context.plugin.getTransformerInfo(t)) && i.initiallyCollapsed
+                                  ? this.hasPersistentState(t, e, 'isExpanded') ||
+                                    this.setPersistentState(t, e, 'isExpanded', !1)
+                                  : this.hasPersistentState(t, e, 'isExpanded') ||
+                                    this.setPersistentState(t, e, 'isExpanded', !0),
+                                e.transform.transformer === t && r.setParams(e.transform.params),
+                                n.set(t.info.id, r)),
+                              r
+                            );
+                          console.warn(
+                            'Trying to get controller for unregistered transform (' +
+                              t.info.id +
+                              ').',
+                          );
+                        } else console.warn('Trying to get controller for undefined entity.');
+                      }),
+                      (t.prototype.getBySourceType = function (t) {
+                        return this.bySourceType.get(t.id) || [];
+                      }),
+                      (t.prototype.getByTargetType = function (t) {
+                        return this.byTargetType.get(t.id) || [];
+                      }),
+                      (t.prototype.add = function (t) {
+                        if (this.byId.has(t.info.id))
+                          throw (
+                            "Transformer with id '" +
+                            t.info.id +
+                            "' is has already been added. Pick another id."
+                          );
+                        this.byId.set(t.info.id, t);
+                        for (var e = 0, n = t.info.from; e < n.length; e++) {
+                          var r = n[e];
+                          this.addType(r, t, this.bySourceType);
+                        }
+                        for (var i = 0, o = t.info.to; i < o.length; i++) {
+                          r = o[i];
+                          this.addType(r, t, this.byTargetType);
+                        }
+                      }),
+                      (t.prototype.hasPersistentState = function (t, e, n) {
+                        e = this.state.get(e.id);
+                        if (!e) return !1;
+                        e = e.get(t.info.id);
+                        return !(!e || !e.has(n));
+                      }),
+                      (t.prototype.getPersistentState = function (t, e, n, r) {
+                        e = this.state.get(e.id);
+                        if (!e) return r;
+                        e = e.get(t.info.id);
+                        return e && e.has(n) ? e.get(n) : r;
+                      }),
+                      (t.prototype.setPersistentState = function (t, e, n, r) {
+                        var i = this.state.get(e.id),
+                          e =
+                            (i || ((i = _A.Core.Utils.FastMap.create()), this.state.set(e.id, i)),
+                            i.get(t.info.id)),
+                          i =
+                            (e || ((e = _A.Core.Utils.FastMap.create()), i.set(t.info.id, e)),
+                            e.get(n));
+                        return e.set(n, r), i !== r;
+                      }),
+                      (o.TransformManager = t);
+                  })((_A = F = F || {}).Bootstrap || (_A.Bootstrap = {})),
+                  (((n = F = F || {}).Plugin || (n.Plugin = {})).VERSION = {
+                    number: '1.3.4',
+                    date: 'September 7 2017',
+                  }),
+                  ((E = (E = F = F || {}).Plugin || (E.Plugin = {})).React = br),
+                  (E.ReactDOM = w),
+                  ((E.Controls || (E.Controls = {})).ChromePickerHelper = Mr.ChromePicker),
+                  (function (r) {
+                    var t,
+                      n = r.Controls || (r.Controls = {}),
+                      i = TA.Bootstrap.Utils.shallowEqual,
+                      e =
+                        ((t = r.React.Component),
+                        M(o, t),
+                        (o.prototype.shouldComponentUpdate = function (t, e) {
+                          return !i(this.props, t) || !i(this.state, e);
+                        }),
+                        o);
+                    function o() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    (n.Pure = e),
+                      M(s, (a = e)),
+                      (s.prototype.render = function () {
+                        var e = this.props,
+                          t = 'lm-btn',
+                          n =
+                            (e.size && 'normal' !== e.size && (t += ' lm-btn-' + e.size),
+                            e.asBlock && (t += ' lm-btn-block'),
+                            e.disabled
+                              ? (t += ' lm-btn-' + (e.disabledStyle || e.style || 'default'))
+                              : e.active
+                                ? (t += ' lm-btn-' + (e.activeStyle || e.style || 'default'))
+                                : (t += ' lm-btn-' + (e.style || 'default')),
+                            e.customClass && (t += ' ' + e.customClass),
+                            void 0);
+                        return (
+                          e.icon &&
+                            (n =
+                              e.active && e.activeIcon
+                                ? r.React.createElement('span', {
+                                    className: 'lm-icon lm-icon-' + e.activeIcon,
+                                  })
+                                : r.React.createElement('span', {
+                                    className: 'lm-icon lm-icon-' + e.icon,
+                                  })),
+                          r.React.createElement(
+                            'button',
+                            {
+                              title: e.title,
+                              className: t,
+                              style: e.customStyle,
+                              disabled: e.disabled,
+                              onClick: function (t) {
+                                e.onClick.call(null, t), t.target.blur();
+                              },
+                            },
+                            n,
+                            e.children,
+                          )
+                        );
+                      });
+                    var a,
+                      e = s;
+                    function s() {
+                      return (null !== a && a.apply(this, arguments)) || this;
+                    }
+                    function l(t) {
+                      return 13 === t.keyCode || 13 === t.charCode;
+                    }
+                    (n.Button = s),
+                      (n.TextBox = function (e) {
+                        return r.React.createElement('input', {
+                          type: 'text',
+                          className: 'lm-form-control',
+                          placeholder: e.placeholder,
+                          value: e.value,
+                          defaultValue: e.defaultValue,
+                          onBlur: function (t) {
+                            e.onBlur && e.onBlur.call(null, t);
+                          },
+                          onChange: function (t) {
+                            return e.onChange.call(null, t.target.value);
+                          },
+                          onKeyPress: e.onKeyPress,
+                        });
+                      }),
+                      (n.isEnter = l),
+                      (n.TextBoxGroup = function (e) {
+                        return r.React.createElement(
+                          'div',
+                          { className: 'lm-control-row lm-options-group', title: e.title },
+                          r.React.createElement('span', null, e.label),
+                          r.React.createElement(
+                            'div',
+                            null,
+                            r.React.createElement(n.TextBox, {
+                              placeholder: e.placeholder,
+                              onChange: e.onChange,
+                              value: e.value,
+                              onKeyPress: function (t) {
+                                l(t) && e.onEnter && e.onEnter.call(null, t);
+                              },
+                            }),
+                          ),
+                        );
+                      }),
+                      (n.CommitButton = function (e) {
+                        return r.React.createElement(
+                          'div',
+                          { style: { marginTop: '1px' } },
+                          r.React.createElement(
+                            'button',
+                            {
+                              onClick: function (t) {
+                                e.action(), t.target.blur();
+                              },
+                              className:
+                                'lm-btn lm-btn-block lm-btn-commit lm-btn-commit-' +
+                                (e.isOn ? 'on' : 'off'),
+                              disabled: !e.isOn,
+                              title: e.title,
+                            },
+                            r.React.createElement('span', {
+                              className: 'lm-icon lm-icon-' + (e.isOn ? 'ok' : 'cross'),
+                            }),
+                            e.isOn ? r.React.createElement('b', null, e.on) : e.off || e.on,
+                          ),
+                        );
+                      }),
+                      (n.Toggle = function (e) {
+                        return r.React.createElement(
+                          'div',
+                          { className: 'lm-control-row lm-toggle-button', title: e.title },
+                          r.React.createElement('span', null, e.label),
+                          r.React.createElement(
+                            'div',
+                            null,
+                            r.React.createElement(
+                              'button',
+                              {
+                                onClick: function (t) {
+                                  e.onChange.call(null, !e.value), t.target.blur();
+                                },
+                              },
+                              r.React.createElement('span', {
+                                className: 'lm-icon lm-icon-' + (e.value ? 'ok' : 'off'),
+                              }),
+                              ' ',
+                              e.value ? 'On' : 'Off',
+                            ),
+                          ),
+                        );
+                      }),
+                      (n.ControlGroupExpander = function (t) {
+                        return r.React.createElement(n.Button, {
+                          style: 'link',
+                          title: (t.isExpanded ? 'Less' : 'More') + ' options',
+                          onClick: function () {
+                            return t.onChange.call(null, !t.isExpanded);
+                          },
+                          icon: t.isExpanded ? 'minus' : 'plus',
+                          customClass: 'lm-conrol-group-expander',
+                        });
+                      }),
+                      (n.RowText = function (t) {
+                        return r.React.createElement(
+                          'div',
+                          { className: 'lm-control-row lm-row-text', title: t.title },
+                          r.React.createElement('span', null, t.label),
+                          r.React.createElement('div', null, t.value),
+                        );
+                      }),
+                      (n.HelpBox = function (t) {
+                        return r.React.createElement(
+                          'div',
+                          { className: 'lm-help-row' },
+                          r.React.createElement('span', null, t.title),
+                          r.React.createElement('div', null, t.content),
+                        );
+                      });
+                  })((TA = F = F || {}).Plugin || (TA.Plugin = {})),
+                  (function (r) {
+                    var n, e;
+                    function t() {
+                      var t = (null !== e && e.apply(this, arguments)) || this;
+                      return (t.current = void 0), t;
+                    }
+                    (n = r.Controls || (r.Controls = {})),
+                      (e = r.React.Component),
+                      M(t, e),
+                      (t.prototype.get = function (t) {
+                        var e = this.props.options;
+                        return void 0 !== e.get ? e.get(t) : e[t];
+                      }),
+                      (t.prototype.render = function () {
+                        var e = this,
+                          n = this.props.caption,
+                          t = this.props.options.indexOf(this.props.current);
+                        return r.React.createElement(
+                          'select',
+                          {
+                            title: this.props.title,
+                            value: (t = t < 0 ? 0 : t).toString(),
+                            className: 'lm-form-control',
+                            onChange: function (t) {
+                              (e.current = e.get(+t.target.value)), e.props.onChange(e.current);
+                            },
+                          },
+                          this.props.options.map(function (t, e) {
+                            return r.React.createElement('option', { key: e, value: '' + e }, n(t));
+                          }),
+                        );
+                      }),
+                      (n.OptionsBox = t),
+                      (n.OptionsGroup = function (t) {
+                        var e =
+                          t.caption ||
+                          function (t) {
+                            return t;
+                          };
+                        return r.React.createElement(
+                          'div',
+                          { className: 'lm-control-row lm-options-group', title: t.title },
+                          r.React.createElement('span', null, t.label),
+                          r.React.createElement(
+                            'div',
+                            null,
+                            r.React.createElement(n.OptionsBox, {
+                              options: t.options,
+                              caption: e,
+                              current: t.current,
+                              onChange: t.onChange,
+                            }),
+                          ),
+                        );
+                      });
+                  })((r = F = F || {}).Plugin || (r.Plugin = {})),
+                  (function (i) {
+                    var o, t;
+                    function e() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    (o = i.Controls || (i.Controls = {})),
+                      (t = i.React.Component),
+                      M(e, t),
+                      (e.prototype.header = function () {
+                        var t = this,
+                          e = this.props.isExpanded,
+                          n = this.props.title || this.props.header,
+                          e = e ? 'collapse' : 'expand',
+                          r = i.React.createElement(
+                            'div',
+                            {
+                              className:
+                                'lm-panel-description lm-panel-description-' +
+                                (this.props.topRightAction ? 'with-action' : 'standalone'),
+                              onClick: function () {
+                                return t.props.onExpand.call(null, !t.props.isExpanded);
+                              },
+                            },
+                            i.React.createElement('span', { className: 'lm-icon lm-icon-info' }),
+                            i.React.createElement(
+                              'div',
+                              { className: 'lm-panel-description-content' },
+                              i.React.createElement('span', { className: 'lm-icon lm-icon-info' }),
+                              this.props.description,
+                            ),
+                          );
+                        return i.React.createElement(
+                          'div',
+                          { className: 'lm-panel-header' },
+                          r,
+                          this.props.topRightAction,
+                          i.React.createElement(
+                            'div',
+                            { className: 'lm-panel-expander-wrapper' },
+                            i.React.createElement(
+                              o.Button,
+                              {
+                                title: n,
+                                onClick: function () {
+                                  return t.props.onExpand.call(null, !t.props.isExpanded);
+                                },
+                                icon: e,
+                                customClass: 'lm-panel-expander',
+                                style: 'link',
+                              },
+                              this.props.badge,
+                              this.props.header,
+                            ),
+                          ),
+                        );
+                      }),
+                      (e.prototype.render = function () {
+                        var t =
+                          'lm-panel' +
+                          (this.props.className ? ' ' + this.props.className : '') +
+                          (this.props.isExpanded ? ' lm-panel-expanded' : ' lm-panel-collapsed');
+                        return i.React.createElement(
+                          'div',
+                          { className: t },
+                          this.header(),
+                          i.React.createElement(
+                            'div',
+                            {
+                              className: 'lm-panel-body',
+                              style: { display: this.props.isExpanded ? 'block' : 'none' },
+                            },
+                            this.props.children,
+                          ),
+                        );
+                      }),
+                      (o.Panel = e),
+                      (o.ExpandableGroup = function (t) {
+                        return i.React.createElement(
+                          'div',
+                          { className: 'lm-control-group' },
+                          t.select,
+                          t.colorStripe
+                            ? i.React.createElement('div', {
+                                className: 'lm-expandable-group-color-stripe',
+                                style: {
+                                  backgroundColor:
+                                    'rgb(' +
+                                    ((255 * t.colorStripe.r) | 0) +
+                                    ', ' +
+                                    ((255 * t.colorStripe.g) | 0) +
+                                    ', ' +
+                                    ((255 * t.colorStripe.b) | 0) +
+                                    ')',
+                                },
+                              })
+                            : void 0,
+                          0 < t.options.length ? t.expander : void 0,
+                          0 < t.options.length
+                            ? i.React.createElement(
+                                'div',
+                                {
+                                  style: { display: t.isExpanded ? 'block' : 'none' },
+                                  className: 'lm-control-subgroup',
+                                },
+                                t.options,
+                              )
+                            : void 0,
+                        );
+                      });
+                  })((e = F = F || {}).Plugin || (e.Plugin = {}));
+                var lp,
+                  up,
+                  cp,
+                  Ap,
+                  hp,
+                  pp,
+                  dp,
+                  fp,
+                  gp,
+                  mp,
+                  k,
+                  vp,
+                  m,
+                  bp,
+                  yp,
+                  wp,
+                  Ep,
+                  Bp,
+                  Cp,
+                  v,
+                  xp,
+                  b,
+                  Ip,
+                  y,
+                  Mp,
+                  Dp,
+                  w,
+                  Sp,
+                  E,
+                  kp,
+                  Fp,
+                  Qp,
+                  x,
+                  _p,
+                  Tp,
+                  Rp,
+                  F,
+                  Up,
+                  Np,
+                  Pp,
+                  Lp,
+                  Yp,
+                  Op =
+                    (this && this.__assign) ||
+                    Object.assign ||
+                    function (t) {
+                      for (var e, n = 1, r = arguments.length; n < r; n++)
+                        for (var i in (e = arguments[n]))
+                          Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);
+                      return t;
+                    };
+                function Gp(r, i, o) {
+                  return function (e, n) {
+                    return function (t) {
+                      return { key: r, controller: i(t), region: e, view: o, isStatic: n };
+                    };
+                  };
+                }
+                function zp(t, e, n) {
+                  t = Sp.call(this, t, {}) || this;
+                  return (t.appName = e), (t.appVersion = n), t;
+                }
+                function Hp(t) {
+                  t.getTransformerInfo ? this.ofInstace(t) : this.ofOptions(t);
+                }
+                return (
+                  (function (w) {
+                    var n = w.Controls || (w.Controls = {});
+                    (e = w.React.Component),
+                      M(r, e),
+                      (r.prototype.componentWillMount = function () {
+                        this.setState({ value: '' + this.props.value });
+                      }),
+                      (r.prototype.componentWillReceiveProps = function (t) {
+                        this.setState({ value: '' + t.value });
+                      }),
+                      (r.prototype.updateValue = function (t) {
+                        var e = +t;
+                        e < this.props.min
+                          ? (t = '' + (e = this.props.min))
+                          : e > this.props.max && (t = '' + (e = this.props.max)),
+                          this.setState({ value: t });
+                      }),
+                      (r.prototype.fire = function () {
+                        var t = +this.state.value;
+                        (t = isNaN(t) ? this.props.value : t) !== this.props.value &&
+                          this.firedValue !== t &&
+                          ((this.firedValue = t), this.props.onChange.call(null, t));
+                      }),
+                      (r.prototype.render = function () {
+                        var e = this,
+                          t = this.props.step;
+                        return (
+                          void 0 === t && (t = 1),
+                          w.React.createElement(
+                            'div',
+                            { className: 'lm-control-row lm-slider', title: this.props.title },
+                            w.React.createElement('span', null, this.props.label),
+                            w.React.createElement(
+                              'div',
+                              null,
+                              w.React.createElement(
+                                'div',
+                                null,
+                                w.React.createElement(
+                                  'div',
+                                  null,
+                                  w.React.createElement(h, {
+                                    min: this.props.min,
+                                    max: this.props.max,
+                                    step: t,
+                                    value: +this.state.value,
+                                    onChange: function (t) {
+                                      return e.setState({ value: '' + t });
+                                    },
+                                    onAfterChange: function (t) {
+                                      return e.fire();
+                                    },
+                                  }),
+                                ),
+                              ),
+                              w.React.createElement(
+                                'div',
+                                null,
+                                w.React.createElement(n.TextBox, {
+                                  value: this.state.value,
+                                  onChange: function (t) {
+                                    return e.updateValue(t);
+                                  },
+                                  onBlur: function () {
+                                    return e.fire();
+                                  },
+                                  onKeyPress: function (t) {
+                                    n.isEnter(t) && e.fire();
+                                  },
+                                }),
+                              ),
+                            ),
+                          )
+                        );
+                      });
+                    var e,
+                      t = r;
+                    function r() {
+                      var t = (null !== e && e.apply(this, arguments)) || this;
+                      return (t.state = { value: '0' }), (t.firedValue = NaN), t;
+                    }
+                    function E(t) {
+                      for (var e = [], n = {}.hasOwnProperty, r = 0; r < arguments.length; r++) {
+                        var i = arguments[r];
+                        if (i) {
+                          var o = typeof i;
+                          if ('string' == o || 'number' == o) e.push(i);
+                          else if (Array.isArray(i)) e.push(E.apply(null, i));
+                          else if ('object' == o)
+                            for (var a in i) n.call(i, a) && i[a] && e.push(a);
+                        }
+                      }
+                      return e.join(' ');
+                    }
+                    function B() {}
+                    function i(t) {
+                      return (
+                        1 < t.touches.length ||
+                        ('touchend' === t.type.toLowerCase() && 0 < t.touches.length)
+                      );
+                    }
+                    function o(t, e) {
+                      return t ? e.touches[0].clientY : e.touches[0].pageX;
+                    }
+                    function a(t, e) {
+                      return t ? e.clientY : e.pageX;
+                    }
+                    function s(t, e) {
+                      e = e.getBoundingClientRect();
+                      return t ? e.top + 0.5 * e.height : e.left + 0.5 * e.width;
+                    }
+                    function l(t) {
+                      t.stopPropagation(), t.preventDefault();
+                    }
+                    (n.Slider = r),
+                      (u = w.React.Component),
+                      M(c, u),
+                      (c.prototype.render = function () {
+                        var t = this.props,
+                          e = t.className,
+                          n = t.tipFormatter,
+                          r = t.vertical,
+                          i = t.offset,
+                          o = t.value,
+                          t = t.index;
+                        return w.React.createElement('div', {
+                          className: e,
+                          style: r ? { bottom: i + '%' } : { left: i + '%' },
+                          title: n(o, t),
+                        });
+                      });
+                    var u,
+                      t = c;
+                    function c() {
+                      return (null !== u && u.apply(this, arguments)) || this;
+                    }
+                    (n.Handle = t),
+                      (A = w.React.Component),
+                      M(p, A),
+                      (p.prototype.componentWillReceiveProps = function (e) {
+                        var n,
+                          t,
+                          r,
+                          i = this;
+                        ('value' in e || 'min' in e || 'max' in e) &&
+                          ((n = this.state.bounds),
+                          e.range
+                            ? (r = (t = e.value || n).map(function (t) {
+                                return i.trimAlignValue(t, e);
+                              })).every(function (t, e) {
+                                return t === n[e];
+                              }) ||
+                              (this.setState({ bounds: r }),
+                              n.some(function (t) {
+                                return i.isValueOutOfBounds(t, e);
+                              }) && this.props.onChange(r))
+                            : ((t = void 0 !== e.value ? e.value : n[1]),
+                              ((r = this.trimAlignValue(t, e)) === n[1] && n[0] === e.min) ||
+                                (this.setState({ bounds: [e.min, r] }),
+                                this.isValueOutOfBounds(n[1], e) && this.props.onChange(r))));
+                      }),
+                      (p.prototype.onChange = function (t) {
+                        var e = this.props,
+                          t =
+                            (!('value' in e)
+                              ? this.setState(t)
+                              : void 0 !== t.handle && this.setState({ handle: t.handle }),
+                            Op({}, this.state, t)),
+                          t = e.range ? t.bounds : t.bounds[1];
+                        e.onChange(t);
+                      }),
+                      (p.prototype.onMouseDown = function (t) {
+                        var e, n;
+                        0 === t.button &&
+                          ((e = a(this.props.vertical, t)),
+                          this.isEventFromHandle(t)
+                            ? ((n = s(this.props.vertical, t.target)),
+                              (this.dragOffset = e - n),
+                              (e = n))
+                            : (this.dragOffset = 0),
+                          this.onStart(e),
+                          this.addDocumentEvents('mouse'),
+                          l(t));
+                      }),
+                      (p.prototype.onMouseMove = function (t) {
+                        var e = a(this.props.vertical, t);
+                        this.onMove(t, e - this.dragOffset);
+                      }),
+                      (p.prototype.onMove = function (t, e) {
+                        l(t);
+                        var n,
+                          r,
+                          t = this.props,
+                          i = this.state,
+                          e = e - this.startPosition,
+                          e =
+                            ((e = this.props.vertical ? -e : e) / this.getSliderLength()) *
+                            (t.max - t.min),
+                          e = this.trimAlignValue(this.startValue + e);
+                        e !== i.bounds[i.handle] &&
+                          (((n = i.bounds.slice())[i.handle] = e),
+                          (r = i.handle),
+                          !1 !== t.pushable
+                            ? ((i = i.bounds[r]), this.pushSurroundingHandles(n, r, i))
+                            : t.allowCross &&
+                              (n.sort(function (t, e) {
+                                return t - e;
+                              }),
+                              (r = n.indexOf(e))),
+                          this.onChange({ handle: r, bounds: n }));
+                      }),
+                      (p.prototype.onStart = function (t) {
+                        this.props.onBeforeChange(this.getValue());
+                        var e = this.calcValueByPos(t),
+                          t = ((this.startValue = e), (this.startPosition = t), this.state),
+                          n = t.bounds,
+                          r = 1;
+                        if (this.props.range) {
+                          for (var i = 0, o = 1; o < n.length - 1; ++o) e > n[o] && (i = o);
+                          Math.abs(n[i + 1] - e) < Math.abs(n[i] - e) && (i += 1);
+                          var r = i,
+                            a = n[i + 1] === n[i];
+                          a && (r = t.recent),
+                            a && e !== n[i + 1] && (r = e < n[i + 1] ? i : i + 1);
+                        }
+                        this.setState({ handle: r, recent: r }),
+                          e !== t.bounds[r] &&
+                            (((a = t.bounds.slice())[r] = e), this.onChange({ bounds: a }));
+                      }),
+                      (p.prototype.onTouchMove = function (t) {
+                        var e;
+                        i(t)
+                          ? this.end('touch')
+                          : ((e = o(this.props.vertical, t)), this.onMove(t, e - this.dragOffset));
+                      }),
+                      (p.prototype.onTouchStart = function (t) {
+                        var e, n;
+                        i(t) ||
+                          ((e = o(this.props.vertical, t)),
+                          this.isEventFromHandle(t)
+                            ? ((n = s(this.props.vertical, t.target)),
+                              (this.dragOffset = e - n),
+                              (e = n))
+                            : (this.dragOffset = 0),
+                          this.onStart(e),
+                          this.addDocumentEvents('touch'),
+                          l(t));
+                      }),
+                      (p.prototype.getPoints = function () {
+                        var t = this.props,
+                          e = t.marks,
+                          n = t.step,
+                          r = t.min,
+                          i = t.max,
+                          t = this._getPointsCache;
+                        if (!t || t.marks !== e || t.step !== n) {
+                          var o = Op({}, e);
+                          if (null !== n) for (var a = r; a <= i; a += n) o[a] = a;
+                          t = Object.keys(o).map(parseFloat);
+                          t.sort(function (t, e) {
+                            return t - e;
+                          }),
+                            (this._getPointsCache = { marks: e, step: n, points: t });
+                        }
+                        return this._getPointsCache.points;
+                      }),
+                      (p.prototype.getPrecision = function (t) {
+                        var t = t.toString(),
+                          e = 0;
+                        return (e = 0 <= t.indexOf('.') ? t.length - t.indexOf('.') - 1 : e);
+                      }),
+                      (p.prototype.getSliderLength = function () {
+                        var t = this.sliderElement;
+                        return t ? (this.props.vertical ? t.clientHeight : t.clientWidth) : 0;
+                      }),
+                      (p.prototype.getSliderStart = function () {
+                        var t = this.sliderElement.getBoundingClientRect();
+                        return this.props.vertical ? t.top : t.left;
+                      }),
+                      (p.prototype.getValue = function () {
+                        var t = this.state.bounds;
+                        return this.props.range ? t : t[1];
+                      }),
+                      (p.prototype.addDocumentEvents = function (t) {
+                        'touch' === t
+                          ? (document.addEventListener('touchmove', this.eventHandlers.touchmove),
+                            document.addEventListener('touchend', this.eventHandlers.touchend))
+                          : 'mouse' === t &&
+                            (document.addEventListener('mousemove', this.eventHandlers.mousemove),
+                            document.addEventListener('mouseup', this.eventHandlers.mouseup));
+                      }),
+                      (p.prototype.calcOffset = function (t) {
+                        var e = this.props,
+                          n = e.min;
+                        return 100 * ((t - n) / (e.max - n));
+                      }),
+                      (p.prototype.calcValue = function (t) {
+                        var e = this.props,
+                          n = e.vertical,
+                          r = e.min,
+                          e = e.max,
+                          t = Math.abs(t / this.getSliderLength());
+                        return n ? (1 - t) * (e - r) + r : t * (e - r) + r;
+                      }),
+                      (p.prototype.calcValueByPos = function (t) {
+                        t -= this.getSliderStart();
+                        return this.trimAlignValue(this.calcValue(t));
+                      }),
+                      (p.prototype.end = function (t) {
+                        this.removeEvents(t),
+                          this.props.onAfterChange(this.getValue()),
+                          this.setState({ handle: null });
+                      }),
+                      (p.prototype.isEventFromHandle = function (t) {
+                        for (var e = 0, n = this.handleElements; e < n.length; e++)
+                          if (n[e] === t.target) return !0;
+                        return !1;
+                      }),
+                      (p.prototype.isValueOutOfBounds = function (t, e) {
+                        return t < e.min || t > e.max;
+                      }),
+                      (p.prototype.pushHandle = function (t, e, n, r) {
+                        for (var i = t[e], o = t[e]; n * (o - i) < r; ) {
+                          if (!this.pushHandleOnePoint(t, e, n)) return (t[e] = i), !1;
+                          o = t[e];
+                        }
+                        return !0;
+                      }),
+                      (p.prototype.pushHandleOnePoint = function (t, e, n) {
+                        var r = this.getPoints(),
+                          i = r.indexOf(t[e]) + n;
+                        if (i >= r.length || i < 0) return !1;
+                        var o = e + n,
+                          r = r[i],
+                          i = this.props.pushable,
+                          a = n * (t[o] - r);
+                        return !!this.pushHandle(t, o, n, +i - a) && ((t[e] = r), !0);
+                      }),
+                      (p.prototype.pushSurroundingHandles = function (t, e, n) {
+                        var r,
+                          i = this.props.pushable,
+                          o = t[e],
+                          a = 0;
+                        t[e + 1] - o < i ? (a = 1) : o - t[e - 1] < i && (a = -1),
+                          0 !== a &&
+                            ((o = a * (t[(r = e + a)] - o)),
+                            this.pushHandle(t, r, a, +i - o) || (t[e] = n));
+                      }),
+                      (p.prototype.removeEvents = function (t) {
+                        'touch' === t
+                          ? (document.removeEventListener(
+                              'touchmove',
+                              this.eventHandlers.touchmove,
+                            ),
+                            document.removeEventListener('touchend', this.eventHandlers.touchend))
+                          : 'mouse' === t &&
+                            (document.removeEventListener(
+                              'mousemove',
+                              this.eventHandlers.mousemove,
+                            ),
+                            document.removeEventListener('mouseup', this.eventHandlers.mouseup));
+                      }),
+                      (p.prototype.trimAlignValue = function (t, e) {
+                        var n = this.state || {},
+                          r = n.handle,
+                          n = n.bounds,
+                          e = Op({}, this.props, e || {}),
+                          i = e.marks,
+                          o = e.step,
+                          a = e.min,
+                          s = e.max,
+                          e = e.allowCross,
+                          l = t,
+                          t =
+                            (s <= (l = l <= a ? a : l) && (l = s),
+                            !e && null != r && 0 < r && l <= n[r - 1] && (l = n[r - 1]),
+                            !e && null != r && r < n.length - 1 && l >= n[r + 1] && (l = n[r + 1]),
+                            Object.keys(i).map(parseFloat)),
+                          e =
+                            (null !== o && ((s = Math.round((l - a) / o) * o + a), t.push(s)),
+                            t.map(function (t) {
+                              return Math.abs(l - t);
+                            })),
+                          n = t[e.indexOf(Math.min.apply(Math, e))];
+                        return null !== o ? parseFloat(n.toFixed(this.getPrecision(o))) : n;
+                      }),
+                      (p.prototype.render = function () {
+                        var n = this,
+                          t = this.state,
+                          r = t.handle,
+                          i = t.bounds,
+                          t = this.props,
+                          e = t.className,
+                          o = t.prefixCls,
+                          a = t.disabled,
+                          s = t.vertical,
+                          l = t.dots,
+                          u = t.included,
+                          c = t.range,
+                          A = t.step,
+                          h = t.marks,
+                          p = t.max,
+                          d = t.min,
+                          f = t.tipFormatter,
+                          t = t.children,
+                          g = this.props.handle,
+                          m = i.map(function (t) {
+                            return n.calcOffset(t);
+                          }),
+                          v = o + '-handle',
+                          b = i.map(function (t, e) {
+                            var n;
+                            return E(
+                              (((n = {})[v] = !0),
+                              (n[v + '-' + (e + 1)] = !0),
+                              (n[v + '-lower'] = 0 === e),
+                              (n[v + '-upper'] = e === i.length - 1),
+                              n),
+                            );
+                          }),
+                          y = {
+                            prefixCls: o,
+                            noTip: null === A || null === f,
+                            tipFormatter: f,
+                            vertical: s,
+                          },
+                          f =
+                            ((this.handleElements = []),
+                            i.map(function (t, e) {
+                              return w.React.cloneElement(
+                                g,
+                                Op({}, y, {
+                                  className: b[e],
+                                  value: t,
+                                  offset: m[e],
+                                  dragging: r === e,
+                                  index: e,
+                                  key: e,
+                                  ref: function (t) {
+                                    return n.handleElements.push(t);
+                                  },
+                                }),
+                              );
+                            })),
+                          u = (c || f.shift(), u || c),
+                          e = E(
+                            (((c = {})[o] = !0),
+                            (c[o + '-with-marks'] = Object.keys(h).length),
+                            (c[o + '-disabled'] = a),
+                            (c[o + '-vertical'] = this.props.vertical),
+                            (c[e] = !!e),
+                            c),
+                          );
+                        return w.React.createElement(
+                          'div',
+                          {
+                            ref: function (t) {
+                              return (n.sliderElement = t);
+                            },
+                            className: e,
+                            onTouchStart: a ? B : this.onTouchStart.bind(this),
+                            onMouseDown: a ? B : this.onMouseDown.bind(this),
+                          },
+                          w.React.createElement('div', { className: o + '-rail' }),
+                          [],
+                          w.React.createElement(x, {
+                            prefixCls: o,
+                            vertical: s,
+                            marks: h,
+                            dots: l,
+                            step: A,
+                            included: u,
+                            lowerBound: i[0],
+                            upperBound: i[i.length - 1],
+                            max: p,
+                            min: d,
+                          }),
+                          f,
+                          w.React.createElement(C, {
+                            className: o + '-mark',
+                            vertical: s,
+                            marks: h,
+                            included: u,
+                            lowerBound: i[0],
+                            upperBound: i[i.length - 1],
+                            max: p,
+                            min: d,
+                          }),
+                          t,
+                        );
+                      }),
+                      (p.defaultProps = {
+                        prefixCls: 'lm-slider-base',
+                        className: '',
+                        min: 0,
+                        max: 100,
+                        step: 1,
+                        marks: {},
+                        handle: w.React.createElement(t, {
+                          className: '',
+                          vertical: !1,
+                          offset: 0,
+                          tipFormatter: function (t) {
+                            return t;
+                          },
+                          value: 0,
+                          index: 0,
+                        }),
+                        onBeforeChange: B,
+                        onChange: B,
+                        onAfterChange: B,
+                        tipFormatter: function (t, e) {
+                          return t;
+                        },
+                        included: !0,
+                        disabled: !1,
+                        dots: !1,
+                        range: !1,
+                        vertical: !1,
+                        allowCross: !0,
+                        pushable: !1,
+                      });
+                    var A,
+                      h = p;
+                    function p(t) {
+                      var e = A.call(this, t) || this,
+                        n =
+                          ((e.sliderElement = void 0),
+                          (e.handleElements = []),
+                          (e.dragOffset = 0),
+                          (e.startPosition = 0),
+                          (e.startValue = 0),
+                          (e._getPointsCache = void 0),
+                          (e.eventHandlers = {
+                            touchmove: function (t) {
+                              return e.onTouchMove(t);
+                            },
+                            touchend: function (t) {
+                              return e.end('touch');
+                            },
+                            mousemove: function (t) {
+                              return e.onMouseMove(t);
+                            },
+                            mouseup: function (t) {
+                              return e.end('mouse');
+                            },
+                          }),
+                          t.range),
+                        r = t.min,
+                        i = t.max,
+                        o = n
+                          ? Array.apply(null, Array(+n + 1)).map(function () {
+                              return r;
+                            })
+                          : r,
+                        o = 'defaultValue' in t ? t.defaultValue : o,
+                        t = void 0 !== t.value ? t.value : o,
+                        o = (n ? t : [r, t]).map(function (t) {
+                          return e.trimAlignValue(t);
+                        }),
+                        t = n && o[0] === o[o.length - 1] && o[0] === i ? 0 : o.length - 1;
+                      return (e.state = { handle: null, recent: t, bounds: o }), e;
+                    }
+                    n.SliderBase = h;
+                    var C = function (t) {
+                        var a = t.className,
+                          s = t.vertical,
+                          l = t.marks,
+                          u = t.included,
+                          c = t.upperBound,
+                          A = t.lowerBound,
+                          e = t.max,
+                          h = t.min,
+                          t = Object.keys(l),
+                          p = 0.9 * (100 / (t.length - 1)),
+                          d = e - h,
+                          e = t
+                            .map(parseFloat)
+                            .sort(function (t, e) {
+                              return t - e;
+                            })
+                            .map(function (t) {
+                              var e = (!u && t === c) || (u && t <= c && A <= t),
+                                e = E(
+                                  (((n = {})[a + '-text'] = !0), (n[a + '-text-active'] = e), n),
+                                ),
+                                n = s
+                                  ? { marginBottom: '-50%', bottom: ((t - h) / d) * 100 + '%' }
+                                  : {
+                                      width: p + '%',
+                                      marginLeft: -p / 2 + '%',
+                                      left: ((t - h) / d) * 100 + '%',
+                                    },
+                                r = l[t],
+                                i = 'object' == typeof r && !w.React.isValidElement(r),
+                                o = i ? r.label : r,
+                                i = i ? Op({}, n, r.style) : n;
+                              return w.React.createElement(
+                                'span',
+                                { className: e, style: i, key: t },
+                                o,
+                              );
+                            });
+                        return w.React.createElement('div', { className: a }, e);
+                      },
+                      x = function (t) {
+                        var i = t.prefixCls,
+                          o = t.vertical,
+                          e = t.marks,
+                          n = t.dots,
+                          r = t.step,
+                          a = t.included,
+                          s = t.lowerBound,
+                          l = t.upperBound,
+                          u = t.max,
+                          c = t.min,
+                          A = u - c,
+                          t = (function (t, e, n, r, i) {
+                            var o = Object.keys(t).map(parseFloat);
+                            if (e) for (var a = r; a <= i; a += n) 0 <= o.indexOf(a) || o.push(a);
+                            return o;
+                          })(e, n, r, c, u).map(function (t) {
+                            var e,
+                              n = (Math.abs(t - c) / A) * 100 + '%',
+                              n = o ? { bottom: n } : { left: n },
+                              r = (!a && t === l) || (a && t <= l && s <= t),
+                              r = E((((e = {})[i + '-dot'] = !0), (e[i + '-dot-active'] = r), e));
+                            return w.React.createElement('span', {
+                              className: r,
+                              style: n,
+                              key: t,
+                            });
+                          });
+                        return w.React.createElement('div', { className: i + '-step' }, t);
+                      };
+                  })((t = F = F || {}).Plugin || (t.Plugin = {})),
+                  (function (i) {
+                    var t,
+                      e,
+                      o = i.Controls || (i.Controls = {}),
+                      r = lp.Bootstrap.Utils.shallowEqual,
+                      a =
+                        ((t = i.React.Component),
+                        M(n, t),
+                        (n.prototype.shouldComponentUpdate = function (t, e, n) {
+                          return !r(this.props, t);
+                        }),
+                        (n.prototype.render = function () {
+                          var e = this,
+                            t = this.props.color,
+                            n = t.r,
+                            r = t.g,
+                            t = t.b,
+                            n = i.React.createElement(o.ChromePickerHelper, {
+                              color: {
+                                a: 1,
+                                r: 255 * (void 0 === n ? 1 : n),
+                                g: 255 * (void 0 === r ? 1 : r),
+                                b: 255 * (void 0 === t ? 1 : t),
+                              },
+                              onChangeComplete: function (t) {
+                                return e.props.onChange({
+                                  r: t.rgb.r / 255,
+                                  g: t.rgb.g / 255,
+                                  b: t.rgb.b / 255,
+                                });
+                              },
+                            });
+                          return i.React.createElement('div', { className: 'lm-color-picker' }, n);
+                        }),
+                        n);
+                    function n() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    function s() {
+                      var t = (null !== e && e.apply(this, arguments)) || this;
+                      return (t.state = { isExpanded: !1 }), t;
+                    }
+                    (o.ColorPicker = a),
+                      (e = i.React.Component),
+                      M(s, e),
+                      (s.prototype.render = function () {
+                        var t = this,
+                          e = this.state.isExpanded
+                            ? i.React.createElement(a, Op({}, this.props))
+                            : void 0,
+                          n = this.props.color,
+                          r = this.props.position || 'above';
+                        return i.React.createElement(
+                          'div',
+                          {
+                            className:
+                              'lm-control-row lm-toggle-color-picker lm-toggle-color-picker-' + r,
+                            onMouseLeave: function () {
+                              return t.setState({ isExpanded: !1 });
+                            },
+                          },
+                          i.React.createElement('span', null, this.props.label),
+                          i.React.createElement(
+                            'div',
+                            null,
+                            i.React.createElement(o.Button, {
+                              onClick: function () {
+                                t.setState({ isExpanded: !t.state.isExpanded });
+                              },
+                              asBlock: !0,
+                              customStyle: {
+                                backgroundColor:
+                                  'rgb(' +
+                                  ((255 * n.r) | 0) +
+                                  ', ' +
+                                  ((255 * n.g) | 0) +
+                                  ', ' +
+                                  ((255 * n.b) | 0) +
+                                  ')',
+                                color:
+                                  'rgb(' +
+                                  ((255 * (1 - n.r)) | 0) +
+                                  ',' +
+                                  ((255 * (1 - n.g)) | 0) +
+                                  ',' +
+                                  ((255 * (1 - n.b)) | 0) +
+                                  ')',
+                              },
+                            }),
+                          ),
+                          e,
+                        );
+                      }),
+                      (o.ToggleColorPicker = s);
+                  })((lp = F = F || {}).Plugin || (lp.Plugin = {})),
+                  (n = F = F || {}),
+                  (up = n.Plugin || (n.Plugin = {})),
+                  ((cp = up.Controls || (up.Controls = {})).QueryEditor = function (e) {
+                    return up.React.createElement(
+                      'div',
+                      { className: 'lm-control-row' },
+                      up.React.createElement(cp.TextBox, {
+                        placeholder: 'Enter query...',
+                        onChange: e.onChange,
+                        value: e.value,
+                        onKeyPress: function (t) {
+                          cp.isEnter(t) && e.onEnter && e.onEnter.call(null, t);
+                        },
+                      }),
+                    );
+                  }),
+                  (function (t) {
+                    var e,
+                      n = t.Views || (t.Views = {}),
+                      r = Ap.Bootstrap.Utils.shallowEqual,
+                      i =
+                        ((e = t.React.Component),
+                        M(o, e),
+                        (o.prototype.update = function (t) {
+                          t = Ap.Bootstrap.Utils.merge(this.props.state, t);
+                          t !== this.props.state && this.props.onChange(t);
+                        }),
+                        (o.prototype.shouldComponentUpdate = function (t, e) {
+                          return !r(this.props, t) || !r(this.state, e);
+                        }),
+                        o);
+                    function o() {
+                      return (null !== e && e.apply(this, arguments)) || this;
+                    }
+                    (n.PureView = i),
+                      (a = t.React.Component),
+                      M(s, a),
+                      (s.prototype.subscribe = function (t, e) {
+                        t = t.subscribe(e);
+                        return this.subs.push(t), t;
+                      }),
+                      (s.prototype.unsubscribe = function (t) {
+                        for (var e = this.subs.indexOf(t); e < this.subs.length - 1; e++)
+                          this.subs[e] = this.subs[e + 1];
+                        t.dispose(), this.subs.pop();
+                      }),
+                      (s.prototype.componentWillUnmount = function () {
+                        for (var t = 0, e = this.subs; t < e.length; t++) e[t].dispose();
+                        this.subs = [];
+                      });
+                    var a,
+                      i = s;
+                    function s() {
+                      var t = (null !== a && a.apply(this, arguments)) || this;
+                      return (t.subs = []), t;
+                    }
+                    (n.Component = s),
+                      (l = t.React.Component),
+                      M(u, l),
+                      (u.prototype.subscribe = function (t, e) {
+                        t = t.subscribe(e);
+                        return this.subs.push(t), t;
+                      }),
+                      (u.prototype.unsubscribe = function (t) {
+                        for (var e = this.subs.indexOf(t); e < this.subs.length - 1; e++)
+                          this.subs[e] = this.subs[e + 1];
+                        t.dispose(), this.subs.pop();
+                      }),
+                      (u.prototype.componentWillUnmount = function () {
+                        for (var t = 0, e = this.subs; t < e.length; t++) e[t].dispose();
+                        this.subs = [];
+                      });
+                    var l,
+                      i = u;
+                    function u() {
+                      var t = (null !== l && l.apply(this, arguments)) || this;
+                      return (t.subs = []), t;
+                    }
+                    (n.ObserverView = i),
+                      M(A, (c = i)),
+                      Object.defineProperty(A.prototype, 'controller', {
+                        get: function () {
+                          return this.props.controller;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (A.prototype.componentWillMount = function () {
+                        var e = this;
+                        this.subscribe(this.controller.state, function (t) {
+                          e.forceUpdate();
+                        });
+                      });
+                    var c,
+                      i = A;
+                    function A() {
+                      return (null !== c && c.apply(this, arguments)) || this;
+                    }
+                    n.View = A;
+                  })((Ap = F = F || {}).Plugin || (Ap.Plugin = {})),
+                  (function (s) {
+                    var t, e, i;
+                    function n() {
+                      return (null !== e && e.apply(this, arguments)) || this;
+                    }
+                    (t = s.Views || (s.Views = {})),
+                      (i = hp.Bootstrap.Components.LayoutRegion),
+                      (e = t.View),
+                      M(n, e),
+                      (n.prototype.componentDidMount = function () {
+                        var t = this;
+                        this.subscribe(
+                          hp.Bootstrap.Event.Common.ComponentsChanged.getStream(
+                            this.controller.context,
+                          ),
+                          function () {
+                            return t.forceUpdate();
+                          },
+                        );
+                      }),
+                      (n.prototype.renderTarget = function (t, e) {
+                        for (var n = [], r = [], i = 0, o = e.components; i < o.length; i++) {
+                          var a = o[i];
+                          (a.isStatic ? n : r).push(
+                            s.React.createElement(a.view, { key: a.key, controller: a.controller }),
+                          );
+                        }
+                        return s.React.createElement(
+                          'div',
+                          {
+                            key: 'layout-target-' + t,
+                            className: 'lm-layout-region lm-layout-' + e.cssClass,
+                          },
+                          n.length
+                            ? s.React.createElement('div', { className: 'lm-layout-static' }, n)
+                            : void 0,
+                          r.length
+                            ? s.React.createElement('div', { className: 'lm-layout-scrollable' }, r)
+                            : void 0,
+                        );
+                      }),
+                      (n.prototype.updateTarget = function (t, e, n) {
+                        var r = this.controller.latestState,
+                          i = r.regionStates,
+                          o = this.controller.targets[e],
+                          r = r.hideControls
+                            ? void 0 !== i && 'Sticky' === i[e] && 0 < o.components.length
+                            : (!i || 'Hidden' !== i[e]) && 0 < o.components.length;
+                        r
+                          ? n.regions.push(this.renderTarget(t, o))
+                          : (n.layoutClass += ' lm-layout-hide-' + t);
+                      }),
+                      (n.prototype.render = function () {
+                        var t,
+                          e = this.controller.latestState;
+                        if (e.isExpanded) t = 'lm-layout-expanded';
+                        else
+                          switch (((t = 'lm-layout-standard '), e.collapsedControlsLayout)) {
+                            case hp.Bootstrap.Components.CollapsedControlsLayout.Outside:
+                              t += 'lm-layout-standard-outside';
+                              break;
+                            case hp.Bootstrap.Components.CollapsedControlsLayout.Landscape:
+                              t += 'lm-layout-standard-landscape';
+                              break;
+                            case hp.Bootstrap.Components.CollapsedControlsLayout.Portrait:
+                              t += 'lm-layout-standard-portrait';
+                              break;
+                            default:
+                              t += 'lm-layout-standard-outside';
+                          }
+                        var e = this.controller.targets,
+                          n = [this.renderTarget('main', e[i.Main])],
+                          r = { regions: n, layoutClass: '' },
+                          e =
+                            (this.updateTarget('top', i.Top, r),
+                            this.updateTarget('right', i.Right, r),
+                            this.updateTarget('bottom', i.Bottom, r),
+                            this.updateTarget('left', i.Left, r),
+                            (r = r.layoutClass),
+                            e[i.Root].components.map(function (t) {
+                              return s.React.createElement(t.view, {
+                                key: t.key,
+                                controller: t.controller,
+                              });
+                            }));
+                        return s.React.createElement(
+                          'div',
+                          { className: 'lm-plugin' },
+                          s.React.createElement(
+                            'div',
+                            { className: 'lm-plugin-content ' + t },
+                            s.React.createElement('div', { className: r }, n, e),
+                          ),
+                        );
+                      }),
+                      (t.Layout = n);
+                  })((hp = F = F || {}).Plugin || (hp.Plugin = {})),
+                  (pp = F = F || {}),
+                  (function (a) {
+                    var t,
+                      e = a.Transform || (a.Transform = {});
+                    function n() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    (t = a.View),
+                      M(n, t),
+                      Object.defineProperty(n.prototype, 'params', {
+                        get: function () {
+                          return this.controller.latestState.params;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (n.prototype.updateParams = function (t) {
+                        this.controller.updateParams(t);
+                      }),
+                      (n.prototype.autoUpdateParams = function (t) {
+                        this.controller.autoUpdateParams(t);
+                      }),
+                      (n.prototype.getPersistentState = function (t, e) {
+                        return this.controller.context.transforms.getPersistentState(
+                          this.controller.transformer,
+                          this.transformSourceEntity,
+                          t,
+                          e,
+                        );
+                      }),
+                      (n.prototype.setPersistentState = function (t, e) {
+                        this.controller.context.transforms.setPersistentState(
+                          this.controller.transformer,
+                          this.transformSourceEntity,
+                          t,
+                          e,
+                        ) && this.forceUpdate();
+                      }),
+                      Object.defineProperty(n.prototype, 'transformSourceEntity', {
+                        get: function () {
+                          return this.isUpdate
+                            ? this.controller.entity.parent
+                            : this.controller.entity;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(n.prototype, 'isUpdate', {
+                        get: function () {
+                          return this.controller.isUpdate;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      Object.defineProperty(n.prototype, 'canApply', {
+                        get: function () {
+                          var t = this.controller.latestState,
+                            e = t.canApply && (!this.isUpdate || t.isDirty) && !t.isBusy;
+                          return !(e && this.isUpdate && t.parametersAutoUpdating) && e;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (n.prototype.applyEnter = function (t) {
+                        this.canApply && (t.target.blur(), this.controller.apply());
+                      }),
+                      (n.prototype.render = function () {
+                        var e = this,
+                          t = this.isUpdate,
+                          n = this.controller.latestState,
+                          r = n.issues,
+                          i = r && r.length,
+                          n = n.isBusy
+                            ? 'Working...'
+                            : t && !i
+                              ? 'Nothing to update'
+                              : r
+                                ? r[0]
+                                : void 0,
+                          o = this.controller.transformer.info,
+                          r = dp.React.createElement(dp.Controls.CommitButton, {
+                            action: function () {
+                              return e.controller.apply();
+                            },
+                            isOn: this.canApply,
+                            title:
+                              r && r.length
+                                ? r[0]
+                                : this.canApply && t
+                                  ? 'An update will remove all child nodes.'
+                                  : void 0,
+                            on: t ? 'Update' : this.props.isAction ? 'Apply' : 'Add',
+                            off: n,
+                          }),
+                          n = this.canApply || i,
+                          i = this.props.customHeader || (t ? 'Update ' : '') + o.name,
+                          t = this.getPersistentState('isExpanded', !0);
+                        return dp.React.createElement(
+                          'div',
+                          { className: 'lm-transformer-wrapper' },
+                          dp.React.createElement(
+                            dp.Controls.Panel,
+                            {
+                              header: i,
+                              badge: this.props.hideBadge
+                                ? void 0
+                                : dp.React.createElement(a.Entity.Badge, { type: o.to[0].info }),
+                              className:
+                                'lm-control lm-transformer lm-panel-' + o.to[0].info.typeClass,
+                              key: o.id,
+                              title: o.description,
+                              isExpanded: t,
+                              onExpand: function (t) {
+                                e.setPersistentState('isExpanded', t);
+                              },
+                              description: this.controller.transformer.info.description,
+                              topRightAction: this.props.showVisibilityIcon
+                                ? dp.React.createElement(a.Entity.VisibilityControl, {
+                                    entity: this.controller.entity,
+                                  })
+                                : void 0,
+                            },
+                            this.renderControls(),
+                            n ? r : void 0,
+                          ),
+                        );
+                      }),
+                      (e.ControllerBase = n),
+                      (r = e.ControllerBase),
+                      M(i, r),
+                      (i.prototype.renderControls = function () {
+                        return dp.React.createElement('div', null);
+                      });
+                    var r;
+                    function i() {
+                      return (null !== r && r.apply(this, arguments)) || this;
+                    }
+                    (e.Empty = i),
+                      (o = a.View),
+                      M(s, o),
+                      (s.prototype.render = function () {
+                        var t,
+                          n = this.controller.context.plugin,
+                          e = this.controller.latestState,
+                          r = e.transforms.map(function (t) {
+                            var e = n.getTransformerInfo(t.transformer).view;
+                            return dp.React.createElement(e, {
+                              controller: t,
+                              key: t.transformer.info.id + '-' + t.entity.id,
+                            });
+                          });
+                        return (
+                          e.update &&
+                            ((t = n.getTransformerInfo(e.update.transformer).view),
+                            r.push(
+                              dp.React.createElement(t, {
+                                controller: e.update,
+                                key: e.update.transformer.info.id + '-' + e.update.entity.id,
+                              }),
+                            )),
+                          dp.React.createElement('div', { className: 'lm-transform-view' }, r)
+                        );
+                      });
+                    var o;
+                    function s() {
+                      return (null !== o && o.apply(this, arguments)) || this;
+                    }
+                    (e.View = s),
+                      (e.TransparencyControl = function (e) {
+                        var t = e.definition.alpha;
+                        return dp.React.createElement(dp.Controls.Slider, {
+                          label: 'Opacity',
+                          onChange: function (t) {
+                            return e.onChange({ alpha: t, writeDepth: e.definition.writeDepth });
+                          },
+                          min: 0,
+                          max: 1,
+                          step: 0.01,
+                          value: t,
+                        });
+                      }),
+                      (l = a.View),
+                      M(u, l),
+                      (u.prototype.componentWillMount = function () {
+                        var n = this;
+                        l.prototype.componentWillMount.call(this),
+                          this.subscribe(
+                            pp.Bootstrap.Event.Tree.NodeUpdated.getStream(this.controller.context),
+                            function (t) {
+                              var e = n.controller.latestState.controller,
+                                e = e && e.entity;
+                              t.data === e && n.forceUpdate();
+                            },
+                          );
+                      }),
+                      (u.prototype.render = function () {
+                        var t = this.controller.latestState.controller;
+                        if (!t)
+                          return dp.React.createElement('div', { className: 'lm-empty-control' });
+                        var e = this.controller.context.plugin.getTransformerInfo(
+                          t.transformer,
+                        ).view;
+                        return e
+                          ? dp.React.createElement(e, {
+                              controller: t,
+                              key: t.transformer.info.id + '-' + t.entity.id,
+                              customHeader: this.controller.header,
+                              hideBadge: !0,
+                              showVisibilityIcon: !0,
+                            })
+                          : (console.warn(
+                              'Count not find view for updater (' +
+                                t.transformer.info.id +
+                                '), please register it.',
+                            ),
+                            dp.React.createElement('div', { className: 'lm-empty-control' }));
+                      });
+                    var l;
+                    function u() {
+                      return (null !== l && l.apply(this, arguments)) || this;
+                    }
+                    (e.Updater = u),
+                      (c = a.View),
+                      M(A, c),
+                      (A.prototype.render = function () {
+                        var t = this.controller.latestState.controller;
+                        if (!t)
+                          return dp.React.createElement('div', { className: 'lm-empty-control' });
+                        var e = this.controller.context.plugin.getTransformerInfo(
+                          t.transformer,
+                        ).view;
+                        return e
+                          ? dp.React.createElement(e, {
+                              controller: t,
+                              key: t.transformer.info.id + '-' + t.entity.id,
+                              customHeader: this.controller.header,
+                              hideBadge: !0,
+                              isAction: !0,
+                            })
+                          : (console.warn(
+                              'Count not find view for updater (' +
+                                t.transformer.info.id +
+                                '), please register it.',
+                            ),
+                            dp.React.createElement('div', { className: 'lm-empty-control' }));
+                      });
+                    var c;
+                    function A() {
+                      return (null !== c && c.apply(this, arguments)) || this;
+                    }
+                    e.Action = A;
+                  })((dp = pp.Plugin || (pp.Plugin = {})).Views || (dp.Views = {})),
+                  (fp = F = F || {}),
+                  (gp = fp.Plugin || (fp.Plugin = {})),
+                  (function (t) {
+                    var e,
+                      n = t.Data || (t.Data = {});
+                    function r() {
+                      return (null !== e && e.apply(this, arguments)) || this;
+                    }
+                    (e = t.ControllerBase),
+                      M(r, e),
+                      (r.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return gp.React.createElement(
+                          'div',
+                          null,
+                          gp.React.createElement(gp.Controls.OptionsGroup, {
+                            options: fp.Bootstrap.Entity.Data.Types,
+                            caption: function (t) {
+                              return t;
+                            },
+                            current: t.type,
+                            onChange: function (t) {
+                              return e.updateParams({
+                                type: t,
+                                responseCompression: fp.Bootstrap.Utils.DataCompressionMethod.None,
+                              });
+                            },
+                            label: 'Type',
+                          }),
+                          'Binary' === t.type
+                            ? gp.React.createElement(gp.Controls.OptionsGroup, {
+                                options: ['None', 'Gzip'],
+                                caption: function (t) {
+                                  return t;
+                                },
+                                current:
+                                  t.responseCompression ===
+                                  fp.Bootstrap.Utils.DataCompressionMethod.Gzip
+                                    ? 'Gzip'
+                                    : 'None',
+                                onChange: function (t) {
+                                  return e.updateParams({
+                                    responseCompression:
+                                      'None' === t
+                                        ? fp.Bootstrap.Utils.DataCompressionMethod.None
+                                        : fp.Bootstrap.Utils.DataCompressionMethod.Gzip,
+                                  });
+                                },
+                                label: 'Compression',
+                                title:
+                                  'Specify the compression of the data. Usually only appliable if you downloading "raw" files.',
+                              })
+                            : void 0,
+                          gp.React.createElement(gp.Controls.TextBoxGroup, {
+                            value: t.url,
+                            onChange: function (t) {
+                              return e.updateParams({ url: t });
+                            },
+                            label: 'URL',
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                            placeholder: 'Enter URL...',
+                          }),
+                        );
+                      }),
+                      (n.Download = r),
+                      (i = t.ControllerBase),
+                      M(o, i),
+                      (o.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params,
+                          n = this.controller.latestState;
+                        return gp.React.createElement(
+                          'div',
+                          null,
+                          gp.React.createElement(gp.Controls.OptionsGroup, {
+                            options: fp.Bootstrap.Entity.Data.Types,
+                            caption: function (t) {
+                              return t;
+                            },
+                            current: t.type,
+                            onChange: function (t) {
+                              return e.updateParams({ type: t });
+                            },
+                            label: 'Type',
+                          }),
+                          gp.React.createElement(
+                            'div',
+                            {
+                              className: 'lm-btn lm-btn-block lm-btn-action lm-loader-lm-btn-file',
+                              style: { marginTop: '1px' },
+                            },
+                            t.file ? t.file.name : 'Select a file...',
+                            ' ',
+                            gp.React.createElement('input', {
+                              disabled: n.isBusy,
+                              type: 'file',
+                              onChange: function (t) {
+                                return e.updateParams({ file: t.target.files[0] });
+                              },
+                              multiple: !1,
+                            }),
+                          ),
+                        );
+                      });
+                    var i;
+                    function o() {
+                      return (null !== i && i.apply(this, arguments)) || this;
+                    }
+                    (n.OpenFile = o),
+                      (a = t.ControllerBase),
+                      M(s, a),
+                      (s.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return gp.React.createElement(
+                          'div',
+                          null,
+                          gp.React.createElement(gp.Controls.TextBoxGroup, {
+                            value: t.id,
+                            onChange: function (t) {
+                              return e.updateParams({ id: t });
+                            },
+                            label: 'Id',
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                            placeholder: 'Enter PDB id...',
+                          }),
+                        );
+                      });
+                    var a;
+                    function s() {
+                      return (null !== a && a.apply(this, arguments)) || this;
+                    }
+                    (n.WithIdField = s),
+                      (l = t.ControllerBase),
+                      M(u, l),
+                      (u.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return gp.React.createElement(
+                          'div',
+                          null,
+                          gp.React.createElement(gp.Controls.TextBoxGroup, {
+                            value: t.id,
+                            onChange: function (t) {
+                              return e.updateParams({ id: t });
+                            },
+                            label: 'URL',
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                            placeholder: 'Enter URL...',
+                          }),
+                        );
+                      });
+                    var l;
+                    function u() {
+                      return (null !== l && l.apply(this, arguments)) || this;
+                    }
+                    n.WithUrlIdField = u;
+                  })((w = gp.Views || (gp.Views = {})).Transform || (w.Transform = {})),
+                  (mp = F = F || {}),
+                  (k = mp.Plugin || (mp.Plugin = {})),
+                  (function (i) {
+                    var t,
+                      e = i.Molecule || (i.Molecule = {});
+                    function n() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    (t = i.ControllerBase),
+                      M(n, t),
+                      (n.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.OptionsGroup, {
+                            options: mp.Core.Formats.Molecule.SupportedFormats.All,
+                            caption: function (t) {
+                              return t.name;
+                            },
+                            current: t.format,
+                            onChange: function (t) {
+                              return e.updateParams({ format: t });
+                            },
+                            label: 'Format',
+                          }),
+                        );
+                      }),
+                      (e.CreateFromData = n),
+                      (r = i.ControllerBase),
+                      M(o, r),
+                      (o.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.OptionsGroup, {
+                            options: mp.Core.Formats.Molecule.SupportedFormats.All,
+                            caption: function (t) {
+                              return t.name;
+                            },
+                            current: t.format,
+                            onChange: function (t) {
+                              return e.updateParams({ format: t });
+                            },
+                            label: 'Format',
+                          }),
+                          k.React.createElement(k.Controls.TextBoxGroup, {
+                            value: t.id,
+                            onChange: function (t) {
+                              return e.updateParams({ id: t });
+                            },
+                            label: 'URL',
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                            placeholder: 'Enter url...',
+                          }),
+                        );
+                      });
+                    var r;
+                    function o() {
+                      return (null !== r && r.apply(this, arguments)) || this;
+                    }
+                    (e.DownloadFromUrl = o),
+                      (a = i.ControllerBase),
+                      M(s, a),
+                      (s.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params,
+                          n = this.controller.latestState,
+                          r = mp.Core.Formats.FormatInfo.formatFileFilters(
+                            mp.Core.Formats.Molecule.SupportedFormats.All,
+                          );
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(
+                            'div',
+                            {
+                              className: 'lm-btn lm-btn-block lm-btn-action lm-loader-lm-btn-file',
+                              style: { marginTop: '1px' },
+                            },
+                            t.file ? t.file.name : 'Select a file...',
+                            ' ',
+                            k.React.createElement('input', {
+                              disabled: n.isBusy,
+                              type: 'file',
+                              accept: r,
+                              onChange: function (t) {
+                                return e.updateParams({ file: t.target.files[0] });
+                              },
+                              multiple: !1,
+                            }),
+                          ),
+                        );
+                      });
+                    var a;
+                    function s() {
+                      return (null !== a && a.apply(this, arguments)) || this;
+                    }
+                    (e.OpenFile = s),
+                      (l = i.ControllerBase),
+                      M(u, l),
+                      (u.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.TextBoxGroup, {
+                            value: t.id,
+                            onChange: function (t) {
+                              return e.updateParams({ id: t });
+                            },
+                            label: 'Id',
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                            placeholder: 'Enter pdb id...',
+                          }),
+                          k.React.createElement(k.Controls.TextBoxGroup, {
+                            value: t.server,
+                            onChange: function (t) {
+                              return e.updateParams({ server: t });
+                            },
+                            label: 'Server',
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                            placeholder: 'Server url...',
+                          }),
+                        );
+                      });
+                    var l;
+                    function u() {
+                      return (null !== l && l.apply(this, arguments)) || this;
+                    }
+                    (e.InitCoordinateStreaming = u),
+                      (c = i.ControllerBase),
+                      M(A, c),
+                      (A.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.transformSourceEntity.props.dictionary.dataBlocks.map(
+                            function (t, e) {
+                              return { b: t.header, i: e };
+                            },
+                          );
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.OptionsGroup, {
+                            options: t,
+                            caption: function (t) {
+                              return t.b;
+                            },
+                            current: t[this.params.blockIndex],
+                            onChange: function (t) {
+                              return e.updateParams({ blockIndex: t.i });
+                            },
+                            label: 'Source',
+                          }),
+                        );
+                      });
+                    var c;
+                    function A() {
+                      return (null !== c && c.apply(this, arguments)) || this;
+                    }
+                    (e.CreateFromMmCif = A),
+                      (h = i.ControllerBase),
+                      M(p, h),
+                      (p.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.transformSourceEntity.props.molecule.models.length;
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.Slider, {
+                            label: 'Index',
+                            onChange: function (t) {
+                              return e.updateParams({ modelIndex: t - 1 });
+                            },
+                            min: 1,
+                            max: t,
+                            step: 1,
+                            value: 1 + (0 | this.params.modelIndex),
+                            title: 'Index of the model.',
+                          }),
+                        );
+                      });
+                    var h;
+                    function p() {
+                      return (null !== h && h.apply(this, arguments)) || this;
+                    }
+                    (e.CreateModel = p),
+                      (d = i.ControllerBase),
+                      M(f, d),
+                      (f.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params,
+                          n = mp.Bootstrap.Utils.Molecule.findModel(this.transformSourceEntity)
+                            .props.model.data.assemblyInfo;
+                        if (n)
+                          return (
+                            (n = n.assemblies.map(function (t) {
+                              return t.name;
+                            })),
+                            k.React.createElement(
+                              'div',
+                              null,
+                              k.React.createElement(k.Controls.OptionsGroup, {
+                                options: n,
+                                current: t.name,
+                                onChange: function (t) {
+                                  return e.updateParams({ name: t });
+                                },
+                                label: 'Name',
+                              }),
+                            )
+                          );
+                      });
+                    var d;
+                    function f() {
+                      return (null !== d && d.apply(this, arguments)) || this;
+                    }
+                    (e.CreateAssembly = f),
+                      (g = i.ControllerBase),
+                      M(m, g),
+                      (m.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.OptionsGroup, {
+                            options: ['Mates', 'Interaction'],
+                            current: t.type,
+                            onChange: function (t) {
+                              return e.updateParams({ type: t });
+                            },
+                            label: 'Type',
+                            title:
+                              'Mates: copies whole asymetric unit. Interaction: Includes only residues that are no more than `radius` from the asymetric unit.',
+                          }),
+                          k.React.createElement(k.Controls.Slider, {
+                            label: 'Radius',
+                            onChange: function (t) {
+                              return e.updateParams({ radius: t });
+                            },
+                            min: 0,
+                            max: 25,
+                            step: 0.1,
+                            value: t.radius,
+                            title: 'Interaction radius.',
+                          }),
+                        );
+                      });
+                    var g;
+                    function m() {
+                      return (null !== g && g.apply(this, arguments)) || this;
+                    }
+                    (e.CreateSymmetryMates = m),
+                      (v = i.ControllerBase),
+                      M(b, v),
+                      (b.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.TextBoxGroup, {
+                            value: t.name,
+                            onChange: function (t) {
+                              return e.updateParams({ name: t });
+                            },
+                            label: 'Name',
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                            placeholder: 'Optional name...',
+                          }),
+                          k.React.createElement(k.Controls.QueryEditor, {
+                            value: t.queryString,
+                            onChange: function (t) {
+                              return e.updateParams({ queryString: t });
+                            },
+                            onEnter: function (t) {
+                              return e.applyEnter(t);
+                            },
+                          }),
+                        );
+                      });
+                    var v;
+                    function b() {
+                      return (null !== v && v.apply(this, arguments)) || this;
+                    }
+                    (e.CreateSelection = b),
+                      (y = i.ControllerBase),
+                      M(w, y),
+                      (w.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.Toggle, {
+                            onChange: function (t) {
+                              return e.updateParams({ polymer: t });
+                            },
+                            value: t.polymer,
+                            label: 'Polymer',
+                          }),
+                          k.React.createElement(k.Controls.Toggle, {
+                            onChange: function (t) {
+                              return e.updateParams({ het: t });
+                            },
+                            value: t.het,
+                            label: 'HET',
+                          }),
+                          k.React.createElement(k.Controls.Toggle, {
+                            onChange: function (t) {
+                              return e.updateParams({ water: t });
+                            },
+                            value: t.water,
+                            label: 'Water',
+                          }),
+                        );
+                      });
+                    var y;
+                    function w() {
+                      return (null !== y && y.apply(this, arguments)) || this;
+                    }
+                    (e.CreateMacromoleculeVisual = w),
+                      (E = i.ControllerBase),
+                      M(B, E),
+                      (B.prototype.detail = function () {
+                        var e = this,
+                          t = this.params.style.params;
+                        return [
+                          k.React.createElement(k.Controls.OptionsGroup, {
+                            options: mp.Bootstrap.Visualization.Molecule.DetailTypes,
+                            caption: function (t) {
+                              return t;
+                            },
+                            current: t.detail,
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ detail: t });
+                            },
+                            label: 'Detail',
+                          }),
+                        ];
+                      }),
+                      (B.prototype.cartoons = function () {
+                        var e = this,
+                          t = this.params.style.params;
+                        return [
+                          k.React.createElement(k.Controls.Toggle, {
+                            key: 0,
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ showDirectionCone: t });
+                            },
+                            value: t.showDirectionCone,
+                            label: 'Dir. Cones',
+                          }),
+                          k.React.createElement(k.Controls.OptionsGroup, {
+                            key: 1,
+                            options: mp.Bootstrap.Visualization.Molecule.DetailTypes,
+                            caption: function (t) {
+                              return t;
+                            },
+                            current: t.detail,
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ detail: t });
+                            },
+                            label: 'Detail',
+                          }),
+                        ];
+                      }),
+                      (B.prototype.ballsAndSticks = function () {
+                        var e = this,
+                          n = this.params.style.params,
+                          t = [],
+                          r = 0,
+                          i =
+                            (t.push(
+                              k.React.createElement(k.Controls.Toggle, {
+                                title: 'Scale atoms using their VDW radius.',
+                                onChange: function (t) {
+                                  return e.controller.updateStyleParams({ useVDW: t });
+                                },
+                                value: n.useVDW,
+                                label: 'VDW',
+                              }),
+                            ),
+                            n.useVDW
+                              ? t.push(
+                                  k.React.createElement(k.Controls.Slider, {
+                                    key: r++,
+                                    label: 'Scale',
+                                    onChange: function (t) {
+                                      return e.controller.updateStyleParams({ vdwScaling: t });
+                                    },
+                                    min: 0.1,
+                                    max: 1,
+                                    step: 0.01,
+                                    value: n.vdwScaling,
+                                    title: 'VDW scale factor.',
+                                  }),
+                                )
+                              : t.push(
+                                  k.React.createElement(k.Controls.Slider, {
+                                    key: r++,
+                                    label: 'Atom Rds',
+                                    onChange: function (t) {
+                                      return e.controller.updateStyleParams({ atomRadius: t });
+                                    },
+                                    min: 0.05,
+                                    max: 2,
+                                    step: 0.01,
+                                    value: n.atomRadius,
+                                    title: 'Atom Radius',
+                                  }),
+                                ),
+                            t.push(
+                              k.React.createElement(k.Controls.Slider, {
+                                key: r++,
+                                label: 'Bond Rds',
+                                onChange: function (t) {
+                                  return e.controller.updateStyleParams({ bondRadius: t });
+                                },
+                                min: 0.05,
+                                max: 1,
+                                step: 0.01,
+                                value: n.bondRadius,
+                                title: 'Bond Radius',
+                              }),
+                            ),
+                            n.customMaxBondLengths && n.customMaxBondLengths.H
+                              ? n.customMaxBondLengths.H
+                              : 1.15);
+                        return (
+                          t.push(
+                            k.React.createElement(k.Controls.Slider, {
+                              key: r++,
+                              label: 'H Bond Len',
+                              onChange: function (t) {
+                                return e.controller.updateStyleParams({
+                                  customMaxBondLengths: Op({}, n.customMaxBondLengths, { H: t }),
+                                });
+                              },
+                              min: 0.9,
+                              max: 1.5,
+                              step: 0.01,
+                              value: i,
+                              title: 'Maximum H bond length',
+                            }),
+                          ),
+                          t.push(
+                            k.React.createElement(k.Controls.Toggle, {
+                              key: r++,
+                              onChange: function (t) {
+                                return e.controller.updateStyleParams({ hideHydrogens: t });
+                              },
+                              value: n.hideHydrogens,
+                              label: 'Hide H',
+                            }),
+                          ),
+                          t.push(
+                            k.React.createElement(k.Controls.OptionsGroup, {
+                              key: r++,
+                              options: mp.Bootstrap.Visualization.Molecule.DetailTypes,
+                              caption: function (t) {
+                                return t;
+                              },
+                              current: n.detail,
+                              onChange: function (t) {
+                                return e.controller.updateStyleParams({ detail: t });
+                              },
+                              label: 'Detail',
+                            }),
+                          ),
+                          t
+                        );
+                      }),
+                      (B.prototype.surface = function () {
+                        var e = this,
+                          t = this.params.style.params,
+                          n = 0;
+                        return [
+                          k.React.createElement(k.Controls.Slider, {
+                            key: n++,
+                            label: 'Probe Radius',
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ probeRadius: t });
+                            },
+                            min: 0,
+                            max: 6,
+                            step: 0.1,
+                            value: t.probeRadius,
+                          }),
+                          k.React.createElement(k.Controls.Slider, {
+                            key: n++,
+                            label: 'Smoothing',
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ smoothing: t });
+                            },
+                            min: 0,
+                            max: 20,
+                            step: 1,
+                            value: t.smoothing,
+                            title: 'Number of laplacian smoothing itrations.',
+                          }),
+                          k.React.createElement(k.Controls.Toggle, {
+                            key: n++,
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ automaticDensity: t });
+                            },
+                            value: t.automaticDensity,
+                            label: 'Auto Detail',
+                          }),
+                          t.automaticDensity
+                            ? void 0
+                            : k.React.createElement(k.Controls.Slider, {
+                                key: n++,
+                                label: 'Detail',
+                                onChange: function (t) {
+                                  return e.controller.updateStyleParams({ density: t });
+                                },
+                                min: 0.1,
+                                max: 3,
+                                step: 0.1,
+                                value: t.density,
+                                title: 'Determines the size of a grid cell (size = 1/detail).',
+                              }),
+                          k.React.createElement(k.Controls.Toggle, {
+                            key: n++,
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ isWireframe: t });
+                            },
+                            value: t.isWireframe,
+                            label: 'Wireframe',
+                          }),
+                        ];
+                      }),
+                      (B.prototype.createColors = function () {
+                        var n = this,
+                          t = this.params.style.theme,
+                          r = 'BallsAndSticks' === this.params.style.type,
+                          e = t.colors
+                            .filter(function (t, e) {
+                              return r || 'Bond' !== e;
+                            })
+                            .map(function (t, e) {
+                              return k.React.createElement(k.Controls.ToggleColorPicker, {
+                                key: e,
+                                label: e,
+                                color: t,
+                                onChange: function (t) {
+                                  return n.controller.updateThemeColor(e, t);
+                                },
+                              });
+                            })
+                            .toArray();
+                        return (
+                          e.push(
+                            k.React.createElement(i.TransparencyControl, {
+                              definition: t.transparency,
+                              onChange: function (t) {
+                                return n.controller.updateThemeTransparency(t);
+                              },
+                            }),
+                          ),
+                          e
+                        );
+                      }),
+                      (B.prototype.renderControls = function () {
+                        var t,
+                          e = this,
+                          n = this.params;
+                        switch (n.style.type) {
+                          case 'Surface':
+                            t = this.surface();
+                            break;
+                          case 'BallsAndSticks':
+                            t = this.ballsAndSticks();
+                            break;
+                          case 'Cartoons':
+                            t = this.cartoons();
+                            break;
+                          default:
+                            t = this.detail();
+                        }
+                        var r = this.getPersistentState('showTypeOptions', !1),
+                          i = this.getPersistentState('showThemeOptions', !1);
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.ExpandableGroup, {
+                            select: k.React.createElement(k.Controls.OptionsGroup, {
+                              options: mp.Bootstrap.Visualization.Molecule.Types,
+                              caption: function (t) {
+                                return mp.Bootstrap.Visualization.Molecule.TypeDescriptions[t]
+                                  .label;
+                              },
+                              current: n.style.type,
+                              onChange: function (t) {
+                                return e.controller.updateTemplate(
+                                  t,
+                                  mp.Bootstrap.Visualization.Molecule.Default.ForType,
+                                );
+                              },
+                              label: 'Type',
+                            }),
+                            expander: k.React.createElement(k.Controls.ControlGroupExpander, {
+                              isExpanded: r,
+                              onChange: function (t) {
+                                return e.setPersistentState('showTypeOptions', t);
+                              },
+                            }),
+                            options: t,
+                            isExpanded: r,
+                          }),
+                          k.React.createElement(k.Controls.ExpandableGroup, {
+                            select: k.React.createElement(k.Controls.OptionsGroup, {
+                              options: mp.Bootstrap.Visualization.Molecule.Default.Themes,
+                              caption: function (t) {
+                                return t.name;
+                              },
+                              current: n.style.theme.template,
+                              onChange: function (t) {
+                                return e.controller.updateThemeDefinition(t);
+                              },
+                              label: 'Coloring',
+                            }),
+                            expander: k.React.createElement(k.Controls.ControlGroupExpander, {
+                              isExpanded: i,
+                              onChange: function (t) {
+                                return e.setPersistentState('showThemeOptions', t);
+                              },
+                            }),
+                            options: this.createColors(),
+                            isExpanded: i,
+                          }),
+                        );
+                      });
+                    var E;
+                    function B() {
+                      return (null !== E && E.apply(this, arguments)) || this;
+                    }
+                    (e.CreateVisual = B),
+                      (C = i.ControllerBase),
+                      M(x, C),
+                      (x.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.controller.latestState.params.style,
+                          t = k.React.createElement(k.Controls.OptionsGroup, {
+                            options: mp.Bootstrap.Utils.Molecule.Labels3DKinds,
+                            caption: function (t) {
+                              return mp.Bootstrap.Utils.Molecule.Labels3DKindLabels[t];
+                            },
+                            current: t.params.kind,
+                            onChange: function (t) {
+                              return e.controller.updateStyleParams({ kind: t });
+                            },
+                            label: 'Kind',
+                          }),
+                          n = this.getPersistentState('showOptions', !1);
+                        return k.React.createElement(
+                          'div',
+                          null,
+                          k.React.createElement(k.Controls.ExpandableGroup, {
+                            select: t,
+                            expander: k.React.createElement(k.Controls.ControlGroupExpander, {
+                              isExpanded: n,
+                              onChange: function (t) {
+                                return e.setPersistentState('showOptions', t);
+                              },
+                            }),
+                            options: i.Labels.optionsControls(this.controller),
+                            isExpanded: n,
+                          }),
+                        );
+                      });
+                    var C;
+                    function x() {
+                      return (null !== C && C.apply(this, arguments)) || this;
+                    }
+                    e.CreateLabels = x;
+                  })((E = k.Views || (k.Views = {})).Transform || (E.Transform = {})),
+                  (vp = F = F || {}),
+                  (m = vp.Plugin || (vp.Plugin = {})),
+                  (function (o) {
+                    var t,
+                      e = o.Density || (o.Density = {});
+                    function a(e) {
+                      return m.React.createElement(m.Controls.ExpandableGroup, {
+                        select: m.React.createElement(m.Controls.Slider, {
+                          label: e.isSigma ? 'Iso Value (σ)' : 'Iso Value',
+                          onChange: e.onChangeValue,
+                          min: e.min,
+                          max: e.max,
+                          value: e.value,
+                          step: 0.001,
+                        }),
+                        expander: m.React.createElement(m.Controls.ControlGroupExpander, {
+                          isExpanded: e.view.getPersistentState('showIsoValueType', !1),
+                          onChange: function (t) {
+                            return e.view.setPersistentState('showIsoValueType', t);
+                          },
+                        }),
+                        options: [
+                          m.React.createElement(m.Controls.Toggle, {
+                            onChange: function (t) {
+                              return e.onChangeType(
+                                t
+                                  ? vp.Bootstrap.Visualization.Density.IsoValueType.Sigma
+                                  : vp.Bootstrap.Visualization.Density.IsoValueType.Absolute,
+                              );
+                            },
+                            value: e.isSigma,
+                            label: 'Relative (\\u03C3)',
+                          }),
+                        ],
+                        isExpanded: e.view.getPersistentState('showIsoValueType', !1),
+                      });
+                    }
+                    function s(t, e, n, r) {
+                      e = (e - t.valuesInfo.mean) / t.valuesInfo.sigma;
+                      return r < e ? r : e < n ? n : e;
+                    }
+                    function l(t, e) {
+                      e = t.valuesInfo.mean + e * t.valuesInfo.sigma;
+                      return e > t.valuesInfo.max
+                        ? t.valuesInfo.max
+                        : e < t.valuesInfo.min
+                          ? t.valuesInfo.min
+                          : e;
+                    }
+                    function n() {
+                      return (null !== t && t.apply(this, arguments)) || this;
+                    }
+                    (t = o.ControllerBase),
+                      M(n, t),
+                      (n.prototype.renderControls = function () {
+                        var t,
+                          e = this,
+                          n = this.params,
+                          r = vp.Bootstrap.Utils.round;
+                        return this.isUpdate
+                          ? ((t = this.controller.entity.props.data),
+                            m.React.createElement(
+                              'div',
+                              null,
+                              m.React.createElement(m.Controls.RowText, {
+                                label: 'Format',
+                                value: n.format.name,
+                              }),
+                              m.React.createElement(m.Controls.RowText, {
+                                label: 'Sigma',
+                                value: r(t.valuesInfo.sigma, 3),
+                              }),
+                              m.React.createElement(m.Controls.RowText, {
+                                label: 'Mean',
+                                value: r(t.valuesInfo.mean, 3),
+                              }),
+                              m.React.createElement(m.Controls.RowText, {
+                                label: 'Value Range',
+                                value:
+                                  '[' +
+                                  r(t.valuesInfo.min, 3) +
+                                  ', ' +
+                                  r(t.valuesInfo.max, 3) +
+                                  ']',
+                              }),
+                            ))
+                          : m.React.createElement(
+                              'div',
+                              null,
+                              m.React.createElement(m.Controls.OptionsGroup, {
+                                options: vp.Core.Formats.Density.SupportedFormats.All,
+                                caption: function (t) {
+                                  return t.name;
+                                },
+                                current: n.format,
+                                onChange: function (t) {
+                                  return e.updateParams({ format: t });
+                                },
+                                label: 'Format',
+                              }),
+                            );
+                      }),
+                      (e.ParseData = n),
+                      (r = o.ControllerBase),
+                      M(i, r),
+                      (i.prototype.surface = function () {
+                        var e = this,
+                          n = vp.Bootstrap.Tree.Node.findClosestNodeOfType(
+                            this.transformSourceEntity,
+                            [vp.Bootstrap.Entity.Density.Data],
+                          ),
+                          r = this.params.style.params,
+                          t =
+                            r.isoValueType !==
+                            vp.Bootstrap.Visualization.Density.IsoValueType.Absolute,
+                          i = n.props.data.valuesInfo,
+                          o = t ? (i.min - i.mean) / i.sigma : i.min,
+                          i = t ? (i.max - i.mean) / i.sigma : i.max;
+                        return m.React.createElement(a, {
+                          view: this,
+                          onChangeValue: function (t) {
+                            return e.controller.updateStyleParams({ isoValue: t });
+                          },
+                          onChangeType: function (t) {
+                            t !== r.isoValueType &&
+                              (t === vp.Bootstrap.Visualization.Density.IsoValueType.Absolute
+                                ? e.controller.updateStyleParams({
+                                    isoValue: l(n.props.data, r.isoValue),
+                                    isoValueType: t,
+                                  })
+                                : e.controller.updateStyleParams({
+                                    isoValue: s(n.props.data, r.isoValue, -5, 5),
+                                    isoValueType: t,
+                                  }));
+                          },
+                          min: o,
+                          max: i,
+                          isSigma: t,
+                          value: r.isoValue,
+                        });
+                      }),
+                      (i.prototype.colors = function () {
+                        var e = this,
+                          t = this.params.style.params,
+                          n = this.params.style.theme,
+                          r = n.colors.get('Uniform'),
+                          r = m.React.createElement(m.Controls.ToggleColorPicker, {
+                            key: 'Uniform',
+                            label: 'Color',
+                            color: r,
+                            onChange: function (t) {
+                              return e.controller.updateThemeColor('Uniform', t);
+                            },
+                          }),
+                          i = [],
+                          n =
+                            (i.push(
+                              m.React.createElement(o.TransparencyControl, {
+                                definition: n.transparency,
+                                onChange: function (t) {
+                                  return e.controller.updateThemeTransparency(t);
+                                },
+                              }),
+                            ),
+                            i.push(
+                              m.React.createElement(m.Controls.Toggle, {
+                                onChange: function (t) {
+                                  return e.controller.updateStyleParams({ isWireframe: t });
+                                },
+                                value: t.isWireframe,
+                                label: 'Wireframe',
+                              }),
+                            ),
+                            this.getPersistentState('showThemeOptions', !1));
+                        return m.React.createElement(m.Controls.ExpandableGroup, {
+                          select: r,
+                          expander: m.React.createElement(m.Controls.ControlGroupExpander, {
+                            isExpanded: n,
+                            onChange: function (t) {
+                              return e.setPersistentState('showThemeOptions', t);
+                            },
+                          }),
+                          options: i,
+                          isExpanded: n,
+                        });
+                      }),
+                      (i.prototype.renderControls = function () {
+                        return m.React.createElement('div', null, this.surface(), this.colors());
+                      });
+                    var r;
+                    function i() {
+                      return (null !== r && r.apply(this, arguments)) || this;
+                    }
+                    (e.CreateVisual = i),
+                      (u = o.ControllerBase),
+                      M(c, u),
+                      (c.prototype.surface = function () {
+                        var e = this,
+                          n = vp.Bootstrap.Tree.Node.findClosestNodeOfType(
+                            this.transformSourceEntity,
+                            [vp.Bootstrap.Entity.Density.Data],
+                          ),
+                          r = this.params,
+                          i = r.style.params,
+                          t =
+                            i.isoValueType !==
+                            vp.Bootstrap.Visualization.Density.IsoValueType.Absolute;
+                        return m.React.createElement(a, {
+                          view: this,
+                          onChangeValue: function (t) {
+                            return e.controller.updateStyleParams({ isoValue: t });
+                          },
+                          onChangeType: function (t) {
+                            t !== i.isoValueType &&
+                              (t === vp.Bootstrap.Visualization.Density.IsoValueType.Absolute
+                                ? e.controller.updateStyleParams({
+                                    isoValue: l(n.props.data, i.isoValue),
+                                    isoValueType: t,
+                                  })
+                                : e.controller.updateStyleParams({
+                                    isoValue: s(
+                                      n.props.data,
+                                      i.isoValue,
+                                      r.isoSigmaMin,
+                                      r.isoSigmaMax,
+                                    ),
+                                    isoValueType: t,
+                                  }));
+                          },
+                          min: t ? r.isoSigmaMin : n.props.data.valuesInfo.min,
+                          max: t ? r.isoSigmaMax : n.props.data.valuesInfo.max,
+                          isSigma: t,
+                          value: i.isoValue,
+                        });
+                      }),
+                      (c.prototype.colors = function () {
+                        var e = this,
+                          t = this.params.style.params,
+                          n = this.params.style.theme,
+                          r = n.colors.get('Uniform'),
+                          r = m.React.createElement(m.Controls.ToggleColorPicker, {
+                            key: 'Uniform',
+                            label: 'Color',
+                            color: r,
+                            onChange: function (t) {
+                              return e.controller.updateThemeColor('Uniform', t);
+                            },
+                          }),
+                          i = [],
+                          n =
+                            (i.push(
+                              m.React.createElement(o.TransparencyControl, {
+                                definition: n.transparency,
+                                onChange: function (t) {
+                                  return e.controller.updateThemeTransparency(t);
+                                },
+                              }),
+                            ),
+                            i.push(
+                              m.React.createElement(m.Controls.Toggle, {
+                                onChange: function (t) {
+                                  return e.controller.updateStyleParams({ isWireframe: t });
+                                },
+                                value: t.isWireframe,
+                                label: 'Wireframe',
+                              }),
+                            ),
+                            this.getPersistentState('showThemeOptions', !1));
+                        return m.React.createElement(m.Controls.ExpandableGroup, {
+                          select: r,
+                          expander: m.React.createElement(m.Controls.ControlGroupExpander, {
+                            isExpanded: n,
+                            onChange: function (t) {
+                              return e.setPersistentState('showThemeOptions', t);
+                            },
+                          }),
+                          options: i,
+                          isExpanded: n,
+                        });
+                      }),
+                      (c.prototype.show = function () {
+                        var e = this,
+                          t = 'Around Selection',
+                          n = 'Everything',
+                          r = this.params;
+                        return m.React.createElement(m.Controls.OptionsGroup, {
+                          options: [t, n],
+                          caption: function (t) {
+                            return t;
+                          },
+                          current: r.showFull ? n : t,
+                          onChange: function (t) {
+                            return e.autoUpdateParams({ showFull: t === n });
+                          },
+                          label: 'Show',
+                        });
+                      }),
+                      (c.prototype.renderControls = function () {
+                        var e = this,
+                          t = this.params;
+                        return m.React.createElement(
+                          'div',
+                          null,
+                          this.surface(),
+                          this.colors(),
+                          this.show(),
+                          t.showFull
+                            ? void 0
+                            : m.React.createElement(m.Controls.Slider, {
+                                label: 'Radius',
+                                onChange: function (t) {
+                                  return e.autoUpdateParams({ radius: t });
+                                },
+                                min: void 0 !== t.minRadius ? t.minRadius : 0,
+                                max: void 0 !== t.maxRadius ? t.maxRadius : 10,
+                                step: 0.005,
+                                value: t.radius,
+                              }),
+                        );
+                      });
+                    var u;
+                    function c() {
+                      return (null !== u && u.apply(this, arguments)) || this;
+                    }
+                    e.CreateVisualBehaviour = c;
+                  })((r = m.Views || (m.Views = {})).Transform || (r.Transform = {})),
+                  (e = F = F || {}),
+                  ((
+                    (e =
+                      (e = (bp = e.Plugin || (e.Plugin = {})).Views || (bp.Views = {})).Transform ||
+                      (e.Transform = {})).Labels || (e.Labels = {})
+                  ).optionsControls = function (n) {
+                    var t = n.latestState.params.style,
+                      e = t.theme.colors
+                        .map(function (t, e) {
+                          return bp.React.createElement(bp.Controls.ToggleColorPicker, {
+                            key: e,
+                            label: 'Uniform' === e ? 'Font' : e,
+                            color: t,
+                            onChange: function (t) {
+                              return n.updateThemeColor(e, t);
+                            },
+                          });
+                        })
+                        .toArray();
+                    return [
+                      bp.React.createElement(bp.Controls.Slider, {
+                        label: 'Size',
+                        onChange: function (t) {
+                          return n.updateThemeVariable('sizeFactor', t);
+                        },
+                        min: 0.1,
+                        max: 10,
+                        step: 0.1,
+                        value: (t.theme.variables && t.theme.variables.get('sizeFactor')) || 1,
+                        title: 'Font size.',
+                      }),
+                      bp.React.createElement(bp.Controls.Slider, {
+                        label: 'Outline',
+                        onChange: function (t) {
+                          return n.updateThemeVariable('outlineWidth', t);
+                        },
+                        min: 0,
+                        max: 0.3,
+                        step: 0.001,
+                        value: (t.theme.variables && t.theme.variables.get('outlineWidth')) || 0,
+                        title: 'Font outline.',
+                      }),
+                      bp.React.createElement(bp.Controls.Slider, {
+                        label: 'Offset',
+                        onChange: function (t) {
+                          return n.updateThemeVariable('zOffset', t);
+                        },
+                        min: 0,
+                        max: 5,
+                        step: 0.1,
+                        value: (t.theme.variables && t.theme.variables.get('zOffset')) || 0,
+                        title: 'Label offset.',
+                      }),
+                      bp.React.createElement(bp.Controls.Slider, {
+                        label: 'Bg. Opacity',
+                        onChange: function (t) {
+                          return n.updateThemeVariable('backgroundOpacity', t);
+                        },
+                        min: 0,
+                        max: 1,
+                        step: 0.01,
+                        value:
+                          (t.theme.variables && t.theme.variables.get('backgroundOpacity')) || 0,
+                        title: 'Background opacity.',
+                      }),
+                    ].concat(e);
+                  }),
+                  (yp = F = F || {}),
+                  (function (t) {
+                    var e, n, i;
+                    function r() {
+                      var t = (null !== n && n.apply(this, arguments)) || this;
+                      return (t.wrapper = void 0), t;
+                    }
+                    (e = t.Context || (t.Context = {})),
+                      (i = yp.Bootstrap.Service.Logger.EntryType),
+                      (n = t.View),
+                      M(r, n),
+                      (r.prototype.componentWillMount = function () {
+                        var t = this;
+                        n.prototype.componentWillMount.call(this),
+                          this.subscribe(
+                            yp.Bootstrap.Event.Common.LayoutChanged.getStream(
+                              this.controller.context,
+                            ),
+                            function () {
+                              return t.scrollToBottom();
+                            },
+                          );
+                      }),
+                      (r.prototype.componentDidUpdate = function () {
+                        this.scrollToBottom();
+                      }),
+                      (r.prototype.scrollToBottom = function () {
+                        var t = this.wrapper;
+                        t && (t.scrollTop = t.scrollHeight - t.clientHeight - 1);
+                      }),
+                      (r.prototype.render = function () {
+                        var e = this,
+                          t = this.controller.latestState.entries;
+                        return wp.React.createElement(
+                          'div',
+                          { className: 'lm-log-wrap' },
+                          wp.React.createElement(
+                            'div',
+                            {
+                              className: 'lm-log',
+                              ref: function (t) {
+                                return (e.wrapper = t);
+                              },
+                            },
+                            wp.React.createElement(
+                              'ul',
+                              { className: 'lm-list-unstyled' },
+                              t.map(function (t, e, n) {
+                                var r = yp.Bootstrap.Utils.formatTime(t.timestamp);
+                                return wp.React.createElement(
+                                  'li',
+                                  { key: e },
+                                  wp.React.createElement('div', {
+                                    className:
+                                      'lm-log-entry-badge lm-log-entry-' + i[t.type].toLowerCase(),
+                                  }),
+                                  wp.React.createElement(
+                                    'div',
+                                    { className: 'lm-log-timestamp' },
+                                    r,
+                                  ),
+                                  wp.React.createElement(
+                                    'div',
+                                    { className: 'lm-log-entry' },
+                                    t.message,
+                                  ),
+                                );
+                              }),
+                            ),
+                          ),
+                        );
+                      }),
+                      (e.Log = r);
+                  })((wp = yp.Plugin || (yp.Plugin = {})).Views || (wp.Views = {})),
+                  (t = F = F || {}),
+                  (function (t) {
+                    var e = t.Context || (t.Context = {});
+                    (n = Ep.React.Component),
+                      M(o, n),
+                      (o.prototype.render = function () {
+                        var t = this.props.info;
+                        return Ep.React.createElement(
+                          'div',
+                          { className: 'lm-task-state' },
+                          Ep.React.createElement(
+                            'div',
+                            null,
+                            t.abort
+                              ? Ep.React.createElement(Ep.Controls.Button, {
+                                  onClick: function () {
+                                    return t.abort.call(null);
+                                  },
+                                  style: 'remove',
+                                  icon: 'abort',
+                                  title: 'Abort',
+                                  customClass: 'lm-btn-icon',
+                                })
+                              : void 0,
+                            Ep.React.createElement('div', null, t.name, ': ', t.message),
+                          ),
+                        );
+                      });
+                    var n,
+                      r,
+                      i = o;
+                    function o() {
+                      return (null !== n && n.apply(this, arguments)) || this;
+                    }
+                    function a() {
+                      return (null !== r && r.apply(this, arguments)) || this;
+                    }
+                    (r = t.View),
+                      M(a, r),
+                      (a.prototype.render = function () {
+                        var t = this.controller.latestState;
+                        if (!t.tasks.count())
+                          return Ep.React.createElement('div', { className: 'lm-empty-control' });
+                        var n = [];
+                        return (
+                          t.tasks.forEach(function (t, e) {
+                            return n.push(Ep.React.createElement(i, { key: e, info: t }));
+                          }),
+                          Ep.React.createElement(
+                            'div',
+                            { className: 'lm-overlay' },
+                            Ep.React.createElement('div', { className: 'lm-overlay-background' }),
+                            Ep.React.createElement(
+                              'div',
+                              { className: 'lm-overlay-content-wrap' },
+                              Ep.React.createElement(
+                                'div',
+                                { className: 'lm-overlay-content' },
+                                Ep.React.createElement('div', null, n),
+                              ),
+                            ),
+                          )
+                        );
+                      }),
+                      (e.Overlay = a),
+                      (s = t.View),
+                      M(l, s),
+                      (l.prototype.render = function () {
+                        var t = this.controller.latestState;
+                        if (!t.tasks.count())
+                          return Ep.React.createElement('div', { className: 'lm-empty-control' });
+                        var n = [];
+                        return (
+                          t.tasks.forEach(function (t, e) {
+                            return n.push(
+                              Ep.React.createElement(i, { key: e, info: t, isSmall: !0 }),
+                            );
+                          }),
+                          Ep.React.createElement('div', { className: 'lm-background-tasks' }, n)
+                        );
+                      });
+                    var s;
+                    function l() {
+                      return (null !== s && s.apply(this, arguments)) || this;
+                    }
+                    e.BackgroundTasks = l;
+                  })((Ep = t.Plugin || (t.Plugin = {})).Views || (Ep.Views = {})),
+                  (n = F = F || {}),
+                  (function (t) {
+                    var e, n, r, i;
+                    function o() {
+                      return (null !== n && n.apply(this, arguments)) || this;
+                    }
+                    function a() {
+                      return (null !== i && i.apply(this, arguments)) || this;
+                    }
+                    (e = t.Context || (t.Context = {})),
+                      (n = Bp.React.Component),
+                      M(o, n),
+                      (o.prototype.hide = function () {
+                        (this.props.entry.hide || function () {}).call(null);
+                      }),
+                      (o.prototype.render = function () {
+                        var t = this,
+                          e = this.props.entry,
+                          n =
+                            'string' == typeof e.message
+                              ? Bp.React.createElement('div', {
+                                  dangerouslySetInnerHTML: { __html: e.message },
+                                })
+                              : Bp.React.createElement('div', null, e.message);
+                        return Bp.React.createElement(
+                          'div',
+                          { className: 'lm-toast-entry' },
+                          Bp.React.createElement(
+                            'div',
+                            {
+                              className: 'lm-toast-title',
+                              onClick: function () {
+                                return t.hide();
+                              },
+                            },
+                            e.title,
+                          ),
+                          Bp.React.createElement('div', { className: 'lm-toast-message' }, n),
+                          Bp.React.createElement('div', { className: 'lm-toast-clear' }),
+                          Bp.React.createElement(
+                            'div',
+                            { className: 'lm-toast-hide' },
+                            Bp.React.createElement(Bp.Controls.Button, {
+                              onClick: function () {
+                                return t.hide();
+                              },
+                              style: 'link',
+                              icon: 'abort',
+                              title: 'Hide',
+                              customClass: 'lm-btn-icon',
+                            }),
+                          ),
+                        );
+                      }),
+                      (r = o),
+                      (i = t.View),
+                      M(a, i),
+                      (a.prototype.render = function () {
+                        var t = this.controller.latestState;
+                        if (!t.entries.count())
+                          return Bp.React.createElement('div', { className: 'lm-empty-control' });
+                        var n = [],
+                          t =
+                            (t.entries.forEach(function (t, e) {
+                              return n.push(t);
+                            }),
+                            n.sort(function (t, e) {
+                              return t.serialNumber - e.serialNumber;
+                            }),
+                            n.map(function (t) {
+                              return Bp.React.createElement(r, { key: t.serialNumber, entry: t });
+                            }));
+                        return Bp.React.createElement(
+                          'div',
+                          { className: 'lm-toast-container' },
+                          Bp.React.createElement('div', null, t),
+                        );
+                      }),
+                      (e.Toast = a);
+                  })((Bp = n.Plugin || (n.Plugin = {})).Views || (Bp.Views = {})),
+                  (Cp = F = F || {}),
+                  (function (t) {
+                    var a = t.Entity || (t.Entity = {});
+                    (a.VisibilityControl = function (t) {
+                      var e,
+                        n = t.entity,
+                        t = n.state.visibility,
+                        t =
+                          0 === t
+                            ? ((e = 'full'), 'Hide')
+                            : ((e = 2 === t ? 'none' : 'partial'), 'Show');
+                      return v.React.createElement(v.Controls.Button, {
+                        title: t,
+                        onClick: function () {
+                          Cp.Bootstrap.Command.Entity.SetVisibility.dispatch(n.tree.context, {
+                            entity: n,
+                            visible: 0 !== n.state.visibility,
+                          });
+                        },
+                        icon: 'visual-visibility',
+                        style: 'link',
+                        customClass:
+                          'lm-entity-tree-entry-toggle-visible lm-entity-tree-entry-toggle-visible-' +
+                          e,
+                      });
+                    }),
+                      (e = t.ObserverView),
+                      M(c, e),
+                      (c.prototype.ensureVisible = function () {
+                        this.ctx.currentEntity === this.props.node &&
+                          this.root &&
+                          this.props.tree.scrollIntoView(this.root);
+                      }),
+                      (c.prototype.componentDidMount = function () {
+                        this.ensureVisible();
+                      }),
+                      (c.prototype.componentDidUpdate = function () {
+                        this.ensureVisible();
+                      }),
+                      Object.defineProperty(c.prototype, 'node', {
+                        get: function () {
+                          return this.props.node;
+                        },
+                        enumerable: !0,
+                        configurable: !0,
+                      }),
+                      (c.prototype.shouldComponentUpdate = function (t, e, n) {
+                        return this.node.version !== this.renderedVersion;
+                      }),
+                      (c.prototype.componentWillMount = function () {
+                        var e = this,
+                          n = ((this.ctx = this.props.node.tree.context), this.node);
+                        this.subscribe(
+                          Cp.Bootstrap.Event.Tree.NodeUpdated.getStream(this.ctx),
+                          function (t) {
+                            t.data === n &&
+                              (n.version !== e.renderedVersion && e.forceUpdate(),
+                              e.ctx.currentEntity === n &&
+                                e.isFullyBound() &&
+                                setTimeout(
+                                  Cp.Bootstrap.Command.Entity.SetCurrent.dispatch(
+                                    e.ctx,
+                                    n.children[0],
+                                  ),
+                                  0,
+                                ));
+                          },
+                        );
+                      }),
+                      (c.prototype.highlight = function (t) {
+                        var e = this.node;
+                        Cp.Bootstrap.Command.Entity.Highlight.dispatch(this.ctx, {
+                          entities: this.ctx.select(
+                            Cp.Bootstrap.Tree.Selection.byValue(e).subtree(),
+                          ),
+                          isOn: t,
+                        });
+                      }),
+                      (c.prototype.row = function (t) {
+                        var e = this,
+                          n = this.props.node,
+                          r = n.props,
+                          i = n.parent === n,
+                          o = r.label;
+                        return (
+                          r.description && (o += ' (' + r.description + ')'),
+                          v.React.createElement(
+                            'div',
+                            {
+                              className:
+                                'lm-entity-tree-entry-body' +
+                                (this.ctx.currentEntity === n
+                                  ? ' lm-entity-tree-entry-current'
+                                  : '') +
+                                (this.isOnCurrentPath()
+                                  ? ' lm-entity-tree-entry-current-path'
+                                  : ''),
+                              ref: function (t) {
+                                return (e.root = t);
+                              },
+                            },
+                            v.React.createElement(a.Badge, { type: n.type.info }),
+                            v.React.createElement(
+                              'div',
+                              { className: 'lm-entity-tree-entry-label-wrap' },
+                              v.React.createElement(
+                                v.Controls.Button,
+                                {
+                                  onClick: function () {
+                                    return Cp.Bootstrap.Command.Entity.SetCurrent.dispatch(
+                                      e.ctx,
+                                      n,
+                                    );
+                                  },
+                                  customClass: 'lm-entity-tree-entry-label',
+                                  style: 'link',
+                                  title: o,
+                                },
+                                v.React.createElement(
+                                  'span',
+                                  null,
+                                  r.label,
+                                  v.React.createElement(
+                                    'span',
+                                    { className: 'lm-entity-tree-entry-label-tag' },
+                                    r.description ? ' ' + r.description : void 0,
+                                  ),
+                                ),
+                              ),
+                            ),
+                            !i || t
+                              ? v.React.createElement(v.Controls.Button, {
+                                  title: 'Remove',
+                                  onClick: function () {
+                                    return Cp.Bootstrap.Command.Tree.RemoveNode.dispatch(
+                                      n.tree.context,
+                                      n,
+                                    );
+                                  },
+                                  icon: 'remove',
+                                  style: 'link',
+                                  customClass: 'lm-entity-tree-entry-remove',
+                                })
+                              : void 0,
+                            i && !t
+                              ? void 0
+                              : v.React.createElement(a.VisibilityControl, { entity: n }),
+                          )
+                        );
+                      }),
+                      (c.prototype.renderFlat = function () {
+                        for (var t = this.node, e = [], n = 0, r = t.children; n < r.length; n++) {
+                          var i = r[n];
+                          e.push(
+                            v.React.createElement(c, { key: i.id, node: i, tree: this.props.tree }),
+                          );
+                        }
+                        return v.React.createElement('div', { key: t.id }, e);
+                      }),
+                      (c.prototype.isFullyBound = function () {
+                        for (var t = !0, e = 0, n = this.node.children; e < n.length; e++)
+                          if (!n[e].transform.props.isBinding) {
+                            t = !1;
+                            break;
+                          }
+                        return t && 1 === this.node.children.length;
+                      }),
+                      (c.prototype.isOnCurrentPath = function () {
+                        if (this.ctx.currentEntity)
+                          for (
+                            var t = this.ctx.currentEntity.parent, e = this.node;
+                            t.parent !== t;
+
+                          ) {
+                            if (t === e) return !0;
+                            t = t.parent;
+                          }
+                        return !1;
+                      }),
+                      (c.prototype.render = function () {
+                        var t = this,
+                          e = this.node,
+                          n = ((this.renderedVersion = e.version), e.parent === e);
+                        if (this.isFullyBound()) return this.renderFlat();
+                        for (
+                          var r = e.state, i = 0, o = [], a = 0, s = e.children;
+                          a < s.length;
+                          a++
+                        ) {
+                          var l = s[a];
+                          l.isHidden ||
+                            (n ||
+                              o.push(
+                                v.React.createElement(c, {
+                                  key: l.id,
+                                  node: l,
+                                  tree: this.props.tree,
+                                }),
+                              ),
+                            i++);
+                        }
+                        o.length
+                          ? (u = r.isCollapsed
+                              ? v.React.createElement(v.Controls.Button, {
+                                  style: 'link',
+                                  title: 'Expand',
+                                  onClick: function () {
+                                    return Cp.Bootstrap.Command.Entity.ToggleExpanded.dispatch(
+                                      t.ctx,
+                                      e,
+                                    );
+                                  },
+                                  icon: 'expand',
+                                  customClass: 'lm-entity-tree-entry-toggle-group',
+                                })
+                              : v.React.createElement(v.Controls.Button, {
+                                  style: 'link',
+                                  title: 'Collapse',
+                                  onClick: function () {
+                                    return Cp.Bootstrap.Command.Entity.ToggleExpanded.dispatch(
+                                      t.ctx,
+                                      e,
+                                    );
+                                  },
+                                  icon: 'collapse',
+                                  customClass: 'lm-entity-tree-entry-toggle-group',
+                                }))
+                          : 0 === e.state.visibility &&
+                            e.type.info.traits.isFocusable &&
+                            (u = v.React.createElement(v.Controls.Button, {
+                              style: 'link',
+                              icon: 'focus-on-visual',
+                              title: 'Focus',
+                              onClick: function () {
+                                return Cp.Bootstrap.Command.Entity.Focus.dispatch(
+                                  t.ctx,
+                                  t.ctx.select(e),
+                                );
+                              },
+                              customClass: 'lm-entity-tree-entry-toggle-group',
+                            }));
+                        var u = v.React.createElement(
+                          'div',
+                          {
+                            className: 'lm-entity-tree-entry',
+                            onMouseEnter: function () {
+                              return t.highlight(!0);
+                            },
+                            onMouseLeave: function () {
+                              return t.highlight(!1);
+                            },
+                            onTouchStart: function () {
+                              return setTimeout(function () {
+                                return t.highlight(!0);
+                              }, 1e3 / 30);
+                            },
+                            onTouchCancel: function () {
+                              return setTimeout(function () {
+                                return t.highlight(!1);
+                              }, 1e3 / 30);
+                            },
+                            onTouchEnd: function () {
+                              return setTimeout(function () {
+                                return t.highlight(!1);
+                              }, 1e3 / 30);
+                            },
+                          },
+                          u,
+                          this.row(i),
+                        );
+                        return v.React.createElement(
+                          'div',
+                          { key: e.id, className: n ? 'lm-entity-tree-root' : '' },
+                          u,
+                          v.React.createElement(
+                            'div',
+                            {
+                              className: 'lm-entity-tree-children-wrap',
+                              style: { display: r.isCollapsed ? 'none' : 'block' },
+                            },
+                            o,
+                          ),
+                        );
+                      });
+                    var e,
+                      n,
+                      s = c;
+                    function c() {
+                      var t = (null !== e && e.apply(this, arguments)) || this;
+                      return (t.renderedVersion = -1), (t.root = void 0), t;
+                    }
+                    function r() {
+                      var t = (null !== n && n.apply(this, arguments)) || this;
+                      return (
+                        (t.renderedVersion = -1),
+                        (t.root = void 0),
+                        (t.splash = a.SplashInfo.Info()),
+                        t
+                      );
+                    }
+                    (n = t.View),
+                      M(r, n),
+                      (r.prototype.scrollIntoView = function (t) {
+                        var e = this.root;
+                        if (e && t)
+                          try {
+                            var n,
+                              r = e.getBoundingClientRect(),
+                              i = t.getBoundingClientRect(),
+                              o = e.scrollTop;
+                            i.top < r.top
+                              ? ((n = r.top - i.top), (e.scrollTop = o - n))
+                              : i.bottom > r.bottom &&
+                                ((n = i.bottom - r.bottom), (e.scrollTop = o + n));
+                          } catch (t) {}
+                      }),
+                      (r.prototype.componentWillMount = function () {
+                        var e = this,
+                          n = this.controller.context.tree.root,
+                          t = n.tree.context;
+                        this.subscribe(
+                          Cp.Bootstrap.Event.Tree.NodeUpdated.getStream(t),
+                          function (t) {
+                            t.data === n && n.version !== e.renderedVersion && e.forceUpdate();
+                          },
+                        );
+                      }),
+                      (r.prototype.render = function () {
+                        for (
+                          var e = this,
+                            t = this.controller.context.tree.root,
+                            n = ((this.renderedVersion = t.version), []),
+                            r = 0,
+                            i = t.children;
+                          r < i.length;
+                          r++
+                        ) {
+                          var o = i[r];
+                          o.isHidden ||
+                            n.push(v.React.createElement(s, { key: o.id, node: o, tree: this }));
+                        }
+                        return v.React.createElement(
+                          'div',
+                          {
+                            className: 'lm-entity-tree',
+                            ref: function (t) {
+                              return (e.root = t);
+                            },
+                          },
+                          v.React.createElement(s, { key: t.id, node: t, tree: this }),
+                          v.React.createElement(
+                            'div',
+                            { className: 'lm-entity-tree-children' },
+                            n.length ? n : this.splash,
+                          ),
+                        );
+                      }),
+                      (a.Tree = r);
+                  })((v = Cp.Plugin || (Cp.Plugin = {})).Views || (v.Views = {})),
+                  (xp = F = F || {}),
+                  (function (t) {
+                    var n = t.Entity || (t.Entity = {});
+                    (n.Remove = function (t) {
+                      return b.React.createElement(b.Controls.Button, {
+                        onClick: function () {
+                          xp.Bootstrap.Command.Tree.RemoveNode.dispatch(
+                            t.entity.tree.context,
+                            t.entity,
+                          ),
+                            t.onRemove.call(null);
+                        },
+                        style: 'link',
+                        icon: 'remove',
+                        customClass: 'lm-remove-entity lm-btn-icon',
+                      });
+                    }),
+                      (e = b.React.Component),
+                      M(o, e),
+                      (o.prototype.shouldComponentUpdate = function (t, e, n) {
+                        return this.props.type !== t.type;
+                      }),
+                      (o.prototype.createBadge = function (t) {
+                        if (t.length) {
+                          for (var e = 0; e < t.length; e++) {
+                            if ('_' === t[e])
+                              return b.React.createElement(
+                                'span',
+                                null,
+                                t.substr(0, e),
+                                b.React.createElement(
+                                  'sub',
+                                  null,
+                                  this.createBadge(t.substr(e + 1)),
+                                ),
+                              );
+                            if ('^' === t[e])
+                              return b.React.createElement(
+                                'span',
+                                null,
+                                t.substr(0, e),
+                                b.React.createElement(
+                                  'sup',
+                                  null,
+                                  this.createBadge(t.substr(e + 1)),
+                                ),
+                              );
+                          }
+                          return t;
+                        }
+                      }),
+                      (o.prototype.render = function () {
+                        var t = this.props.type;
+                        return b.React.createElement(
+                          'div',
+                          {
+                            className:
+                              'lm-entity-badge lm-entity-badge-' + this.props.type.typeClass,
+                            title: t.name,
+                          },
+                          b.React.createElement(
+                            'div',
+                            null,
+                            t === xp.Bootstrap.Entity.Root.info
+                              ? void 0
+                              : this.createBadge(t.shortName),
+                          ),
+                        );
+                      });
+                    var e,
+                      r,
+                      i = o;
+                    function o() {
+                      return (null !== e && e.apply(this, arguments)) || this;
+                    }
+                    function a() {
+                      var t = (null !== r && r.apply(this, arguments)) || this;
+                      return (t.state = { current: void 0 }), t;
+                    }
+                    (n.Badge = i),
+                      (r = t.View),
+                      M(a, r),
+                      (a.prototype.componentWillMount = function () {
+                        var e = this;
+                        r.prototype.componentWillMount.call(this),
+                          (this.state.current = this.controller.context.currentEntity),
+                          this.subscribe(
+                            xp.Bootstrap.Event.Entity.CurrentChanged.getStream(
+                              this.controller.context,
+                            ),
+                            function (t) {
+                              e.setState({ current: t.data });
+                            },
+                          );
+                      }),
+                      (a.prototype.render = function () {
+                        var t = this;
+                        if (!this.state.current)
+                          return b.React.createElement(
+                            'div',
+                            { className: 'lm-entity-info' },
+                            b.React.createElement(
+                              'div',
+                              null,
+                              b.React.createElement('span', null, this.controller.appName),
+                            ),
+                          );
+                        var e = this.state.current;
+                        return b.React.createElement(
+                          'div',
+                          {
+                            className: 'lm-entity-info',
+                            title: e.props.label + ' ' + (e.props.description || ''),
+                          },
+                          b.React.createElement(
+                            'div',
+                            null,
+                            b.React.createElement(i, { type: e.type.info }),
+                            b.React.createElement(
+                              'span',
+                              null,
+                              e.props.label,
+                              b.React.createElement('span', null, e.props.description),
+                            ),
+                            e.parent !== e || e.children.length
+                              ? b.React.createElement(n.Remove, {
+                                  entity: e,
+                                  onRemove: function () {
+                                    return t.forceUpdate();
+                                  },
+                                })
+                              : void 0,
+                          ),
+                        );
+                      }),
+                      (n.CurrentEntityControl = a);
+                    var s = n.SplashInfo || (n.SplashInfo = {});
+                    (s.General = function () {
+                      return b.React.createElement(
+                        'div',
+                        { className: 'lm-entity-splash-general' },
+                        b.React.createElement('div', null),
+                        b.React.createElement('span', { className: 'lm-icon lm-icon-info' }),
+                        'The application operates on an entity tree structure that can be manipulated using the controls on the panel to the right.',
+                      );
+                    }),
+                      (l = b.React.Component),
+                      M(c, l),
+                      (c.prototype.render = function () {
+                        var t = this;
+                        return b.React.createElement(
+                          'div',
+                          {
+                            className:
+                              'lm-entity-splash-class lm-entity-splash-class-' +
+                              (this.state.isExpanded ? 'expanded' : 'collapsed'),
+                          },
+                          b.React.createElement(
+                            'div',
+                            {
+                              onClick: function () {
+                                return t.setState({ isExpanded: !t.state.isExpanded });
+                              },
+                            },
+                            b.React.createElement('div', null),
+                            b.React.createElement('div', {
+                              className: 'lm-entity-badge-' + this.props.cls,
+                            }),
+                            ' ',
+                            b.React.createElement('span', null, this.props.cls),
+                          ),
+                          b.React.createElement('div', null, this.props.desc),
+                        );
+                      });
+                    var l,
+                      u = c;
+                    function c() {
+                      var t = (null !== l && l.apply(this, arguments)) || this;
+                      return (t.state = { isExpanded: !1 }), t;
+                    }
+                    s.Info = function () {
+                      return b.React.createElement(
+                        'div',
+                        { className: 'lm-entity-splash' },
+                        b.React.createElement(s.General, null),
+                        b.React.createElement(u, {
+                          cls: 'Root',
+                          desc: 'The root entity represents the starting point of all actions.',
+                        }),
+                        b.React.createElement(u, {
+                          cls: 'Action',
+                          desc: 'Represents a composition of one of more changes to the entity tree.',
+                        }),
+                        b.React.createElement(u, {
+                          cls: 'Data',
+                          desc: 'Low level data, for example a string or a CIF dictionary.',
+                        }),
+                        b.React.createElement(u, {
+                          cls: 'Object',
+                          desc: 'A more complex structure obtained from low level data. For example a molecule.',
+                        }),
+                        b.React.createElement(u, {
+                          cls: 'Visual',
+                          desc: 'A visual representation of an object.',
+                        }),
+                        b.React.createElement(u, {
+                          cls: 'Selection',
+                          desc: 'A description of a substructure of an object or a visual.',
+                        }),
+                        b.React.createElement(u, {
+                          cls: 'Behaviour',
+                          desc: 'Represents a dynamic behavior of the program. For example creating electron density surface when the selection changes.',
+                        }),
+                        b.React.createElement(u, {
+                          cls: 'Group',
+                          desc: 'A collection of related entities.',
+                        }),
+                      );
+                    };
+                  })((b = xp.Plugin || (xp.Plugin = {})).Views || (b.Views = {})),
+                  (Ip = F = F || {}),
+                  (function (t) {
+                    var n = t.Visualization || (t.Visualization = {});
+                    (e = t.View),
+                      M(o, e),
+                      (o.prototype.help = function () {
+                        return y.React.createElement(
+                          'div',
+                          { className: 'lm-viewport-controls-scene-options lm-control' },
+                          y.React.createElement(y.Controls.HelpBox, {
+                            title: 'Rotate',
+                            content: y.React.createElement(
+                              'div',
+                              null,
+                              y.React.createElement('div', null, 'Left button'),
+                              y.React.createElement('div', null, 'One finger touch'),
+                            ),
+                          }),
+                          y.React.createElement(y.Controls.HelpBox, {
+                            title: 'Zoom',
+                            content: y.React.createElement(
+                              'div',
+                              null,
+                              y.React.createElement('div', null, 'Right button'),
+                              y.React.createElement('div', null, 'Pinch'),
+                            ),
+                          }),
+                          y.React.createElement(y.Controls.HelpBox, {
+                            title: 'Move',
+                            content: y.React.createElement(
+                              'div',
+                              null,
+                              y.React.createElement('div', null, 'Middle button'),
+                              y.React.createElement('div', null, 'Two finger touch'),
+                            ),
+                          }),
+                          y.React.createElement(y.Controls.HelpBox, {
+                            title: 'Slab',
+                            content: y.React.createElement(
+                              'div',
+                              null,
+                              y.React.createElement('div', null, 'Mouse wheel'),
+                              y.React.createElement('div', null, 'Three finger touch'),
+                            ),
+                          }),
+                        );
+                      }),
+                      (o.prototype.render = function () {
+                        var t,
+                          e = this,
+                          n = this.controller.latestState,
+                          r = this.controller.context.layout,
+                          i = r.latestState,
+                          o =
+                            (this.state.showSceneOptions
+                              ? (t = y.React.createElement(
+                                  'div',
+                                  { className: 'lm-viewport-controls-scene-options lm-control' },
+                                  y.React.createElement(y.Controls.Toggle, {
+                                    onChange: function (t) {
+                                      return e.controller.setState({ enableFog: t });
+                                    },
+                                    value: n.enableFog,
+                                    label: 'Fog',
+                                  }),
+                                  y.React.createElement(y.Controls.Slider, {
+                                    label: 'Fog Factor',
+                                    min: 0.1,
+                                    max: 1,
+                                    step: 0.01,
+                                    onChange: function (t) {
+                                      return e.controller.setState({ fogFactor: t });
+                                    },
+                                    value: n.fogFactor,
+                                  }),
+                                  y.React.createElement(y.Controls.Slider, {
+                                    label: 'FOV',
+                                    min: 30,
+                                    max: 90,
+                                    onChange: function (t) {
+                                      return e.controller.setState({ cameraFOV: t });
+                                    },
+                                    value: n.cameraFOV,
+                                  }),
+                                  y.React.createElement(y.Controls.Slider, {
+                                    label: 'Camera Speed',
+                                    min: 1,
+                                    max: 10,
+                                    step: 0.01,
+                                    onChange: function (t) {
+                                      return e.controller.setState({ cameraSpeed: t });
+                                    },
+                                    value: n.cameraSpeed,
+                                  }),
+                                  y.React.createElement(y.Controls.ToggleColorPicker, {
+                                    color: n.clearColor,
+                                    label: 'Background',
+                                    position: 'below',
+                                    onChange: function (t) {
+                                      return e.controller.setState({ clearColor: t });
+                                    },
+                                  }),
+                                ))
+                              : this.state.showHelp && (t = this.help()),
+                            !i.hideControls);
+                        return y.React.createElement(
+                          'div',
+                          {
+                            className: 'lm-viewport-controls',
+                            onMouseLeave: function () {
+                              return e.setState({ showSceneOptions: !1, showHelp: !1 });
+                            },
+                          },
+                          y.React.createElement(
+                            'div',
+                            { className: 'lm-viewport-controls-buttons' },
+                            y.React.createElement(y.Controls.Button, {
+                              style: 'link',
+                              active: this.state.showHelp,
+                              customClass:
+                                'lm-btn-link-toggle-' + (this.state.showHelp ? 'on' : 'off'),
+                              icon: 'help-circle',
+                              onClick: function (t) {
+                                return e.setState({
+                                  showHelp: !e.state.showHelp,
+                                  showSceneOptions: !1,
+                                });
+                              },
+                              title: 'Controls Help',
+                            }),
+                            y.React.createElement(y.Controls.Button, {
+                              style: 'link',
+                              active: this.state.showSceneOptions,
+                              customClass:
+                                'lm-btn-link-toggle-' +
+                                (this.state.showSceneOptions ? 'on' : 'off'),
+                              icon: 'settings',
+                              onClick: function (t) {
+                                return e.setState({
+                                  showSceneOptions: !e.state.showSceneOptions,
+                                  showHelp: !1,
+                                });
+                              },
+                              title: 'Scene Options',
+                            }),
+                            y.React.createElement(y.Controls.Button, {
+                              style: 'link',
+                              icon: 'screenshot',
+                              onClick: function (t) {
+                                return e.controller.scene.scene.downloadScreenshot();
+                              },
+                              title: 'Screenshot',
+                            }),
+                            y.React.createElement(y.Controls.Button, {
+                              onClick: function () {
+                                r.update({ hideControls: o }), e.forceUpdate();
+                              },
+                              icon: 'tools',
+                              title: o ? 'Hide Controls' : 'Show Controls',
+                              active: o,
+                              customClass: 'lm-btn-link-toggle-' + (o ? 'on' : 'off'),
+                              style: 'link',
+                            }),
+                            y.React.createElement(y.Controls.Button, {
+                              onClick: function () {
+                                return r.update({ isExpanded: !i.isExpanded });
+                              },
+                              icon: 'expand-layout',
+                              title: i.isExpanded ? 'Collapse' : 'Expand',
+                              active: i.isExpanded,
+                              customClass: 'lm-btn-link-toggle-' + (i.isExpanded ? 'on' : 'off'),
+                              style: 'link',
+                            }),
+                            y.React.createElement(y.Controls.Button, {
+                              style: 'link',
+                              icon: 'reset-scene',
+                              onClick: function (t) {
+                                return Ip.Bootstrap.Command.Visual.ResetScene.dispatch(
+                                  e.controller.context,
+                                  void 0,
+                                );
+                              },
+                              title: 'Reset scene',
+                            }),
+                          ),
+                          t,
+                        );
+                      });
+                    var e,
+                      r,
+                      i = o;
+                    function o() {
+                      var t = (null !== e && e.apply(this, arguments)) || this;
+                      return (t.state = { showSceneOptions: !1, showHelp: !1 }), t;
+                    }
+                    function a() {
+                      return (null !== r && r.apply(this, arguments)) || this;
+                    }
+                    (n.ViewportControls = i),
+                      (r = t.View),
+                      M(a, r),
+                      (a.prototype.render = function () {
+                        var t = this.controller.latestState.info;
+                        if (!t.length)
+                          return y.React.createElement('div', { className: 'lm-empty-control' });
+                        t = { __html: t.join(', ') };
+                        return y.React.createElement(
+                          'div',
+                          { className: 'lm-highlight-info' },
+                          y.React.createElement('div', { dangerouslySetInnerHTML: t }),
+                        );
+                      }),
+                      (n.HighlightInfo = a),
+                      (n.Logo = function () {
+                        return y.React.createElement(
+                          'div',
+                          { className: 'lm-logo' },
+                          y.React.createElement(
+                            'div',
+                            null,
+                            y.React.createElement(
+                              'div',
+                              null,
+                              y.React.createElement('div', null),
+                              y.React.createElement('div', { className: 'lm-logo-image' }),
+                            ),
+                          ),
+                        );
+                      }),
+                      (s = t.View),
+                      M(l, s),
+                      (l.prototype.componentDidMount = function () {
+                        (this.host3d && this.controller.init(this.host3d)) ||
+                          this.setState({ noWebGl: !0 }),
+                          this.handleLogo();
+                      }),
+                      (l.prototype.componentWillUnmount = function () {
+                        s.prototype.componentWillUnmount.call(this), this.controller.destroy();
+                      }),
+                      (l.prototype.renderMissing = function () {
+                        return y.React.createElement(
+                          'div',
+                          { className: 'lm-no-webgl' },
+                          y.React.createElement(
+                            'div',
+                            null,
+                            y.React.createElement(
+                              'p',
+                              null,
+                              y.React.createElement(
+                                'b',
+                                null,
+                                'WebGL does not seem to be available.',
+                              ),
+                            ),
+                            y.React.createElement(
+                              'p',
+                              null,
+                              'This can be caused by an outdated browser, graphics card driver issue, or bad weather. Sometimes, just restarting the browser helps.',
+                            ),
+                            y.React.createElement(
+                              'p',
+                              null,
+                              'For a list of supported browsers, refer to ',
+                              y.React.createElement(
+                                'a',
+                                { href: 'http://caniuse.com/#feat=webgl', target: '_blank' },
+                                'http://caniuse.com/#feat=webgl',
+                              ),
+                              '.',
+                            ),
+                          ),
+                        );
+                      }),
+                      (l.prototype.handleLogo = function () {
+                        var e = this;
+                        this.subscribe(
+                          Ip.Bootstrap.Event.Tree.NodeAdded.getStream(this.controller.context),
+                          function (t) {
+                            Ip.Bootstrap.Entity.isClass(t.data, Ip.Bootstrap.Entity.VisualClass) &&
+                              setTimeout(function () {
+                                return e.setState({ showLogo: e.getShowLogo() });
+                              }, 0);
+                          },
+                        ),
+                          this.subscribe(
+                            Ip.Bootstrap.Event.Tree.NodeRemoved.getStream(this.controller.context),
+                            function (t) {
+                              Ip.Bootstrap.Entity.isClass(
+                                t.data,
+                                Ip.Bootstrap.Entity.VisualClass,
+                              ) &&
+                                setTimeout(function () {
+                                  return e.setState({ showLogo: e.getShowLogo() });
+                                }, 0);
+                            },
+                          );
+                      }),
+                      (l.prototype.getShowLogo = function () {
+                        try {
+                          return this.controller.context.viewport.scene.models.isEmpty();
+                        } catch (t) {
+                          return !0;
+                        }
+                      }),
+                      (l.prototype.render = function () {
+                        var e = this;
+                        if (this.state.noWebGl) return this.renderMissing();
+                        var t = this.controller.latestState.clearColor || this.defaultBg;
+                        return y.React.createElement(
+                          'div',
+                          {
+                            className: 'lm-viewport',
+                            style: {
+                              backgroundColor:
+                                'rgb(' + 255 * t.r + ', ' + 255 * t.g + ', ' + 255 * t.b + ')',
+                            },
+                          },
+                          y.React.createElement('div', {
+                            ref: function (t) {
+                              return (e.host3d = t);
+                            },
+                            className: 'lm-viewport-host3d',
+                          }),
+                          this.state.showLogo ? y.React.createElement(n.Logo, null) : void 0,
+                          y.React.createElement(i, { controller: this.controller }),
+                        );
+                      });
+                    var s;
+                    function l() {
+                      var t = (null !== s && s.apply(this, arguments)) || this;
+                      return (
+                        (t.host3d = void 0),
+                        (t.defaultBg = { r: 0, g: 0, b: 0 }),
+                        (t.state = { noWebGl: !1, showLogo: !0 }),
+                        t
+                      );
+                    }
+                    n.Viewport = l;
+                  })((y = Ip.Plugin || (Ip.Plugin = {})).Views || (y.Views = {})),
+                  (Mp = F = F || {}),
+                  (Dp = Mp.Plugin || (Mp.Plugin = {})),
+                  ((w = Dp.Components || (Dp.Components = {})).create = Gp),
+                  (Sp = Mp.Bootstrap.Components.Component),
+                  M(zp, Sp),
+                  (kp = zp),
+                  (w.AppInfo = kp),
+                  ((E = w.Context || (w.Context = {})).Log = Gp(
+                    'Context.Log',
+                    function (t) {
+                      return new Mp.Bootstrap.Components.Context.Log(t);
+                    },
+                    Dp.Views.Context.Log,
+                  )),
+                  (E.Toast = Gp(
+                    'Context.Toast',
+                    function (t) {
+                      return new Mp.Bootstrap.Components.Context.Toast(t);
+                    },
+                    Dp.Views.Context.Toast,
+                  )),
+                  (E.Overlay = Gp(
+                    'Context.Overlay',
+                    function (t) {
+                      return new Mp.Bootstrap.Components.Context.TaskWatcher(t, 'Normal');
+                    },
+                    Dp.Views.Context.Overlay,
+                  )),
+                  (E.BackgroundTasks = Gp(
+                    'Context.BackgroundTasks',
+                    function (t) {
+                      return new Mp.Bootstrap.Components.Context.TaskWatcher(t, 'Background');
+                    },
+                    Dp.Views.Context.BackgroundTasks,
+                  )),
+                  ((w.Transform || (w.Transform = {})).View = Gp(
+                    'Transform.View',
+                    function (t) {
+                      return new Mp.Bootstrap.Components.Transform.View(t);
+                    },
+                    Dp.Views.Transform.View,
+                  )),
+                  ((w.Entity || (w.Entity = {})).Current = function (e, n) {
+                    return Gp(
+                      'EntityInfo',
+                      function (t) {
+                        return new kp(t, e, n);
+                      },
+                      Dp.Views.Entity.CurrentEntityControl,
+                    );
+                  }),
+                  ((E = w.Visualization || (w.Visualization = {})).Viewport = Gp(
+                    'Viewport',
+                    function (t) {
+                      return new Mp.Bootstrap.Components.Visualization.Viewport(t);
+                    },
+                    Dp.Views.Visualization.Viewport,
+                  )),
+                  (E.HighlightInfo = Gp(
+                    'HighlightInfo',
+                    function (t) {
+                      return new Mp.Bootstrap.Components.Visualization.HighlightInfo(t);
+                    },
+                    Dp.Views.Visualization.HighlightInfo,
+                  )),
+                  (function (n) {
+                    n.Context = Fp.Bootstrap.Context;
+                    var o = Fp.Bootstrap.Components.LayoutRegion;
+                    function t(t, e) {
+                      (this.spec = t),
+                        (this.target = e),
+                        (this.transformersInfo = Fp.Core.Utils.FastMap.create()),
+                        (this.context = new Fp.Bootstrap.Context(this)),
+                        this.init(),
+                        n.ReactDOM.render(
+                          n.React.createElement(this.spec.layoutView, {
+                            controller: this.context.layout,
+                          }),
+                          e,
+                        ),
+                        Fp.Bootstrap.Command.Entity.SetCurrent.dispatch(
+                          this.context,
+                          this.context.tree.root,
+                        );
+                    }
+                    (t.prototype.compose = function () {
+                      for (var t = 0, e = Object.keys(this.spec.settings); t < e.length; t++) {
+                        var n = e[t];
+                        Object.prototype.hasOwnProperty.call(this.spec.settings, n) &&
+                          this.context.settings.set(n, this.spec.settings[n]);
+                      }
+                      for (var r = 0, i = this.spec.behaviours || []; r < i.length; r++)
+                        (0, i[r])(this.context);
+                      for (var o = 0, a = this.spec.transforms; o < a.length; o++) {
+                        var s = a[o];
+                        this.context.transforms.add(s.transformer),
+                          this.transformersInfo.set(s.transformer.info.id, s);
+                      }
+                    }),
+                      (t.prototype.prepareTargets = function () {
+                        for (
+                          var t = Fp.Bootstrap.Components.makeEmptyTargets(),
+                            e = Fp.Core.Utils.FastMap.create(),
+                            n = 0,
+                            r = this.spec.components;
+                          n < r.length;
+                          n++
+                        ) {
+                          var i = (0, r[n])(this.context);
+                          if (e.has(i.key))
+                            throw (
+                              "Component with key '" + i.key + "' was already added. Fix your spec."
+                            );
+                          t[i.region].components.push(i), e.set(i.key, i);
+                        }
+                        return (
+                          this.spec.tree &&
+                            t[this.spec.tree.region].components.push({
+                              key: 'lm-internal-tree',
+                              controller: new Fp.Bootstrap.Components.Component(this.context, {}),
+                              region: this.spec.tree.region,
+                              view: this.spec.tree.view,
+                              isStatic: !0,
+                            }),
+                          t[o.Main].components.push({
+                            key: 'lm-internal-viewport',
+                            controller: this.context.viewport,
+                            region: o.Main,
+                            view: this.spec.viewport.view,
+                            isStatic: !0,
+                          }),
+                          t
+                        );
+                      }),
+                      (t.prototype.getTransformerInfo = function (t) {
+                        return this.transformersInfo.get(t.info.id);
+                      }),
+                      (t.prototype.destroy = function () {
+                        this.context.dispatcher.finished(),
+                          n.ReactDOM.unmountComponentAtNode(this.target),
+                          (this.context = void 0),
+                          (this.spec = void 0),
+                          (this.target = void 0);
+                      }),
+                      (t.prototype.setComponents = function (t) {
+                        this.spec.components = t;
+                        t = this.prepareTargets();
+                        this.context.layout.updateTargets(t);
+                      }),
+                      (t.prototype.init = function () {
+                        this.compose();
+                        var t = this.prepareTargets();
+                        this.context.createLayout(t, this.target);
+                      }),
+                      (n.Instance = t);
+                  })((Fp = F = F || {}).Plugin || (Fp.Plugin = {})),
+                  (Qp = F = F || {}),
+                  (x = Qp.Plugin || (Qp.Plugin = {})),
+                  (_p = Qp.Bootstrap.Entity.Transformer),
+                  ((Tp = x.DataSources || (x.DataSources = {})).DownloadMolecule =
+                    _p.Molecule.downloadMoleculeSource({
+                      sourceId: 'url-molecule',
+                      name: 'URL',
+                      description:
+                        'Download a molecule from the specified URL (if the host server supports cross domain requests).',
+                      defaultId: 'https://cs.litemol.org/1tqn/cartoon',
+                      urlTemplate: function (t) {
+                        return t;
+                      },
+                      isFullUrl: !0,
+                    })),
+                  (Rp = Qp.Bootstrap.Components.LayoutRegion),
+                  (x.getDefaultSpecification = function () {
+                    return {
+                      settings: {
+                        'molecule.model.defaultQuery': "residues({ name: 'ALA' })",
+                        'molecule.model.defaultAssemblyName': '1',
+                        'molecule.coordinateStreaming.defaultId': '1jj2',
+                        'molecule.coordinateStreaming.defaultServer': 'https://cs.litemol.org',
+                        'molecule.coordinateStreaming.defaultRadius': 10,
+                        'density.defaultVisualBehaviourRadius': 5,
+                      },
+                      transforms: [
+                        {
+                          transformer: _p.Molecule.CoordinateStreaming.InitStreaming,
+                          view: x.Views.Transform.Molecule.InitCoordinateStreaming,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: Tp.DownloadMolecule,
+                          view: x.Views.Transform.Data.WithUrlIdField,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Molecule.OpenMoleculeFromFile,
+                          view: x.Views.Transform.Molecule.OpenFile,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Data.Download,
+                          view: x.Views.Transform.Data.Download,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Data.OpenFile,
+                          view: x.Views.Transform.Data.OpenFile,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateFromData,
+                          view: x.Views.Transform.Molecule.CreateFromData,
+                        },
+                        { transformer: _p.Data.ParseCif, view: x.Views.Transform.Empty },
+                        {
+                          transformer: _p.Density.ParseData,
+                          view: x.Views.Transform.Density.ParseData,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateFromMmCif,
+                          view: x.Views.Transform.Molecule.CreateFromMmCif,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateModel,
+                          view: x.Views.Transform.Molecule.CreateModel,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateSelection,
+                          view: x.Views.Transform.Molecule.CreateSelection,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateAssembly,
+                          view: x.Views.Transform.Molecule.CreateAssembly,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateSymmetryMates,
+                          view: x.Views.Transform.Molecule.CreateSymmetryMates,
+                          initiallyCollapsed: !0,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateMacromoleculeVisual,
+                          view: x.Views.Transform.Empty,
+                        },
+                        {
+                          transformer: _p.Molecule.CreateVisual,
+                          view: x.Views.Transform.Molecule.CreateVisual,
+                        },
+                        {
+                          transformer: _p.Density.CreateVisual,
+                          view: x.Views.Transform.Density.CreateVisual,
+                        },
+                        {
+                          transformer: _p.Density.CreateVisualBehaviour,
+                          view: x.Views.Transform.Density.CreateVisualBehaviour,
+                        },
+                        {
+                          transformer: _p.Molecule.CoordinateStreaming.CreateBehaviour,
+                          view: x.Views.Transform.Empty,
+                          initiallyCollapsed: !0,
+                        },
+                      ],
+                      behaviours: [
+                        Qp.Bootstrap.Behaviour.SetEntityToCurrentWhenAdded,
+                        Qp.Bootstrap.Behaviour.FocusCameraOnSelect,
+                        Qp.Bootstrap.Behaviour.ApplySelectionToVisual,
+                        Qp.Bootstrap.Behaviour.ApplyInteractivitySelection,
+                        Qp.Bootstrap.Behaviour.UnselectElementOnRepeatedClick,
+                        Qp.Bootstrap.Behaviour.Molecule.HighlightElementInfo,
+                        Qp.Bootstrap.Behaviour.Molecule.DistanceToLastClickedElement,
+                        Qp.Bootstrap.Behaviour.Molecule.ShowInteractionOnSelect(5),
+                      ],
+                      components: [
+                        x.Components.Visualization.HighlightInfo(Rp.Main, !0),
+                        x.Components.Entity.Current('LiteMol', x.VERSION.number)(Rp.Right, !0),
+                        x.Components.Transform.View(Rp.Right),
+                        x.Components.Context.Log(Rp.Bottom, !0),
+                        x.Components.Context.Overlay(Rp.Root),
+                        x.Components.Context.Toast(Rp.Main, !0),
+                        x.Components.Context.BackgroundTasks(Rp.Main, !0),
+                      ],
+                      viewport: {
+                        view: x.Views.Visualization.Viewport,
+                        controlsView: x.Views.Visualization.ViewportControls,
+                      },
+                      layoutView: x.Views.Layout,
+                      tree: { region: Rp.Left, view: x.Views.Entity.Tree },
+                    };
+                  }),
+                  (Up = F = F || {}),
+                  (Np = Up.Plugin || (Up.Plugin = {})),
+                  (Pp = Up.Bootstrap.Entity),
+                  (Lp = Pp.Transformer),
+                  Object.defineProperty(Hp.prototype, 'instance', {
+                    get: function () {
+                      return this._instance;
+                    },
+                    enumerable: !0,
+                    configurable: !0,
+                  }),
+                  Object.defineProperty(Hp.prototype, 'context', {
+                    get: function () {
+                      return this._instance.context;
+                    },
+                    enumerable: !0,
+                    configurable: !0,
+                  }),
+                  Object.defineProperty(Hp.prototype, 'root', {
+                    get: function () {
+                      return this._instance.context.tree.root;
+                    },
+                    enumerable: !0,
+                    configurable: !0,
+                  }),
+                  (Hp.prototype.command = function (t, e) {
+                    t.dispatch(this.context, e);
+                  }),
+                  (Hp.prototype.selectEntities = function (t) {
+                    return this.context.select(t);
+                  }),
+                  (Hp.prototype.subscribe = function (t, e) {
+                    return t.getStream(this.context).subscribe(e);
+                  }),
+                  (Hp.prototype.createTransform = function () {
+                    return Up.Bootstrap.Tree.Transform.build();
+                  }),
+                  (Hp.prototype.applyTransform = function (t) {
+                    var e = this.context;
+                    return Up.Bootstrap.Tree.Transform.apply(e, t).run();
+                  }),
+                  (Hp.prototype.clear = function () {
+                    this.command(Up.Bootstrap.Command.Tree.RemoveNode, this.root);
+                  }),
+                  (Hp.prototype.setViewportBackground = function (t) {
+                    Up.Visualization.Color.isColor(t)
+                      ? this.command(Up.Bootstrap.Command.Layout.SetViewportOptions, {
+                          clearColor: t,
+                        })
+                      : this.command(Up.Bootstrap.Command.Layout.SetViewportOptions, {
+                          clearColor: Up.Visualization.Color.fromHexString(t),
+                        });
+                  }),
+                  (Hp.prototype.setLayoutState = function (t) {
+                    this.command(Up.Bootstrap.Command.Layout.SetState, t);
+                  }),
+                  (Hp.prototype.loadMolecule = function (t) {
+                    var e = this.createTransform();
+                    if (!t.url && !t.data) throw new Error('Please specify either url or data');
+                    var n = Up.Core.Formats.Molecule.SupportedFormats.mmCIF;
+                    if (t.format)
+                      if (Up.Core.Formats.FormatInfo.is(t.format)) n = t.format;
+                      else {
+                        var r = Up.Core.Formats.FormatInfo.fromShortcut(
+                          Up.Core.Formats.Molecule.SupportedFormats.All,
+                          t.format,
+                        );
+                        if (!r) throw new Error("'" + t.format + "' is not a supported format.");
+                        n = r;
+                      }
+                    (r = t.data
+                      ? e.add(this.root, Pp.Transformer.Data.FromData, { data: t.data, id: t.id })
+                      : e.add(this.root, Lp.Data.Download, {
+                          url: t.url,
+                          type: n.isBinary ? 'Binary' : 'String',
+                          id: t.id,
+                          title: 'Molecule',
+                        })),
+                      (e = r
+                        .then(
+                          Lp.Molecule.CreateFromData,
+                          { format: n, customId: t.id },
+                          { isBinding: !0, ref: t.moleculeRef },
+                        )
+                        .then(
+                          Lp.Molecule.CreateModel,
+                          { modelIndex: 0 },
+                          { isBinding: !1, ref: t.modelRef },
+                        ));
+                    return (
+                      t.doNotCreateVisual ||
+                        e.then(Lp.Molecule.CreateMacromoleculeVisual, {
+                          polymer: !0,
+                          het: !0,
+                          water: !0,
+                        }),
+                      this.applyTransform(r)
+                    );
+                  }),
+                  (Hp.prototype.destroy = function () {
+                    this._instance && (this._instance.destroy(), (this._instance = void 0));
+                  }),
+                  (Hp.prototype.ofOptions = function (t) {
+                    var e,
+                      n = t.customSpecification || Np.getDefaultSpecification();
+                    if (
+                      (t.allowAnalytics &&
+                        !t.customSpecification &&
+                        n.behaviours.push(
+                          Up.Bootstrap.Behaviour.GoogleAnalytics(t.analyticsId || 'UA-77062725-1'),
+                        ),
+                      !(e =
+                        t.target instanceof HTMLElement
+                          ? t.target
+                          : document.querySelector(t.target)))
+                    )
+                      throw new Error('options.target cannot be undefined.');
+                    (this._instance = new Np.Instance(n, e)),
+                      t.viewportBackground && this.setViewportBackground(t.viewportBackground),
+                      t.layoutState && this.setLayoutState(t.layoutState);
+                  }),
+                  (Hp.prototype.ofInstace = function (t) {
+                    this._instance = t;
+                  }),
+                  (Yp = Hp),
+                  (Np.Controller = Yp),
+                  (Np.create = function (t) {
+                    return new Yp(t);
+                  }),
+                  F
+                );
+              }
+              'object' == typeof Wp && 'object' == typeof Wp.exports
+                ? (Wp.exports = t())
+                : ((window || this).LiteMol = t());
+            }.call(this);
+          }.call(
+            this,
+            t('_process'),
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+            t('timers').setImmediate,
+          );
+        },
+        { _process: 46, timers: 68 },
+      ],
+      43: [
+        function (t, e, n) {
+          (n.__esModule = !0), (n.default = t('./dist/js/LiteMol-plugin'));
+        },
+        { './dist/js/LiteMol-plugin': 42 },
+      ],
+      44: [
+        function (t, D, S) {
+          !function (M) {
+            !function () {
+              !function () {
+                var Oo,
+                  Go = 'Expected a function',
+                  va = '__lodash_hash_undefined__',
+                  ba = '__lodash_placeholder__',
+                  zo = 9007199254740991,
+                  ya = NaN,
+                  Ho = 4294967295,
+                  wa = [
+                    ['ary', 128],
+                    ['bind', 1],
+                    ['bindKey', 2],
+                    ['curry', 8],
+                    ['curryRight', 16],
+                    ['flip', 512],
+                    ['partial', 32],
+                    ['partialRight', 64],
+                    ['rearg', 256],
+                  ],
+                  jo = '[object Arguments]',
+                  Ea = '[object Array]',
+                  Vo = '[object Boolean]',
+                  qo = '[object Date]',
+                  Ba = '[object Error]',
+                  Ca = '[object Function]',
+                  xa = '[object GeneratorFunction]',
+                  Wo = '[object Map]',
+                  Jo = '[object Number]',
+                  Ko = '[object Object]',
+                  Ia = '[object Promise]',
+                  Zo = '[object RegExp]',
+                  Xo = '[object Set]',
+                  $o = '[object String]',
+                  Ma = '[object Symbol]',
+                  ta = '[object WeakMap]',
+                  ea = '[object ArrayBuffer]',
+                  na = '[object DataView]',
+                  Da = '[object Float32Array]',
+                  Sa = '[object Float64Array]',
+                  ka = '[object Int8Array]',
+                  Fa = '[object Int16Array]',
+                  Qa = '[object Int32Array]',
+                  _a = '[object Uint8Array]',
+                  Ta = '[object Uint8ClampedArray]',
+                  Ra = '[object Uint16Array]',
+                  Ua = '[object Uint32Array]',
+                  Na = /\b__p \+= '';/g,
+                  Pa = /\b(__p \+=) '' \+/g,
+                  La = /(__e\(.*?\)|\b__t\)) \+\n'';/g,
+                  Ya = /&(?:amp|lt|gt|quot|#39);/g,
+                  Oa = /[&<>"']/g,
+                  Ga = RegExp(Ya.source),
+                  za = RegExp(Oa.source),
+                  Ha = /<%-([\s\S]+?)%>/g,
+                  ja = /<%([\s\S]+?)%>/g,
+                  Va = /<%=([\s\S]+?)%>/g,
+                  qa = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
+                  Wa = /^\w*$/,
+                  Ja =
+                    /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,
+                  Ka = /[\\^$.*+?()[\]{}|]/g,
+                  Za = RegExp(Ka.source),
+                  Xa = /^\s+/,
+                  o = /\s/,
+                  $a = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,
+                  ts = /\{\n\/\* \[wrapped with (.+)\] \*/,
+                  es = /,? & /,
+                  ns = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,
+                  rs = /[()=,{}\[\]\/\s]/,
+                  is = /\\(\\)?/g,
+                  os = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,
+                  as = /\w*$/,
+                  ss = /^[-+]0x[0-9a-f]+$/i,
+                  ls = /^0b[01]+$/i,
+                  us = /^\[object .+?Constructor\]$/,
+                  cs = /^0o[0-7]+$/i,
+                  As = /^(?:0|[1-9]\d*)$/,
+                  hs = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,
+                  ps = /($^)/,
+                  ds = /['\n\r\u2028\u2029\\]/g,
+                  a = '\\ud800-\\udfff',
+                  s = '\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff',
+                  l = '\\u2700-\\u27bf',
+                  t = 'a-z\\xdf-\\xf6\\xf8-\\xff',
+                  e = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
+                  u = '\\ufe0e\\ufe0f',
+                  c =
+                    '\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000',
+                  n = '[' + a + ']',
+                  A = '[' + c + ']',
+                  h = '[' + s + ']',
+                  p = '[' + l + ']',
+                  d = '[' + t + ']',
+                  c = '[^' + a + c + '\\d+' + l + t + e + ']',
+                  l = '\\ud83c[\\udffb-\\udfff]',
+                  t = '[^' + a + ']',
+                  f = '(?:\\ud83c[\\udde6-\\uddff]){2}',
+                  r = '[\\ud800-\\udbff][\\udc00-\\udfff]',
+                  e = '[' + e + ']',
+                  g = '(?:' + d + '|' + c + ')',
+                  c = '(?:' + e + '|' + c + ')',
+                  m = "(?:['’](?:d|ll|m|re|s|t|ve))?",
+                  v = "(?:['’](?:D|LL|M|RE|S|T|VE))?",
+                  b = '(?:' + h + '|' + l + ')' + '?',
+                  y = '[' + u + ']?',
+                  y = y + b + ('(?:\\u200d(?:' + [t, f, r].join('|') + ')' + y + b + ')*'),
+                  b = '(?:' + [p, f, r].join('|') + ')' + y,
+                  p = '(?:' + [t + h + '?', h, f, r, n].join('|') + ')',
+                  fs = RegExp("['’]", 'g'),
+                  gs = RegExp(h, 'g'),
+                  w = RegExp(l + '(?=' + l + ')|' + p + y, 'g'),
+                  ms = RegExp(
+                    [
+                      e + '?' + d + '+' + m + '(?=' + [A, e, '$'].join('|') + ')',
+                      c + '+' + v + '(?=' + [A, e + g, '$'].join('|') + ')',
+                      e + '?' + g + '+' + m,
+                      e + '+' + v,
+                      '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])',
+                      '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])',
+                      '\\d+',
+                      b,
+                    ].join('|'),
+                    'g',
+                  ),
+                  E = RegExp('[\\u200d' + a + s + u + ']'),
+                  vs = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,
+                  bs = [
+                    'Array',
+                    'Buffer',
+                    'DataView',
+                    'Date',
+                    'Error',
+                    'Float32Array',
+                    'Float64Array',
+                    'Function',
+                    'Int8Array',
+                    'Int16Array',
+                    'Int32Array',
+                    'Map',
+                    'Math',
+                    'Object',
+                    'Promise',
+                    'RegExp',
+                    'Set',
+                    'String',
+                    'Symbol',
+                    'TypeError',
+                    'Uint8Array',
+                    'Uint8ClampedArray',
+                    'Uint16Array',
+                    'Uint32Array',
+                    'WeakMap',
+                    '_',
+                    'clearTimeout',
+                    'isFinite',
+                    'parseInt',
+                    'setTimeout',
+                  ],
+                  ys = -1,
+                  ra = {},
+                  ia =
+                    ((ra[Da] =
+                      ra[Sa] =
+                      ra[ka] =
+                      ra[Fa] =
+                      ra[Qa] =
+                      ra[_a] =
+                      ra[Ta] =
+                      ra[Ra] =
+                      ra[Ua] =
+                        !0),
+                    (ra[jo] =
+                      ra[Ea] =
+                      ra[ea] =
+                      ra[Vo] =
+                      ra[na] =
+                      ra[qo] =
+                      ra[Ba] =
+                      ra[Ca] =
+                      ra[Wo] =
+                      ra[Jo] =
+                      ra[Ko] =
+                      ra[Zo] =
+                      ra[Xo] =
+                      ra[$o] =
+                      ra[ta] =
+                        !1),
+                    {}),
+                  B =
+                    ((ia[jo] =
+                      ia[Ea] =
+                      ia[ea] =
+                      ia[na] =
+                      ia[Vo] =
+                      ia[qo] =
+                      ia[Da] =
+                      ia[Sa] =
+                      ia[ka] =
+                      ia[Fa] =
+                      ia[Qa] =
+                      ia[Wo] =
+                      ia[Jo] =
+                      ia[Ko] =
+                      ia[Zo] =
+                      ia[Xo] =
+                      ia[$o] =
+                      ia[Ma] =
+                      ia[_a] =
+                      ia[Ta] =
+                      ia[Ra] =
+                      ia[Ua] =
+                        !0),
+                    (ia[Ba] = ia[Ca] = ia[ta] = !1),
+                    {
+                      '\\': '\\',
+                      "'": "'",
+                      '\n': 'n',
+                      '\r': 'r',
+                      '\u2028': 'u2028',
+                      '\u2029': 'u2029',
+                    }),
+                  ws = parseFloat,
+                  Es = parseInt,
+                  t = 'object' == typeof M && M && M.Object === Object && M,
+                  f = 'object' == typeof self && self && self.Object === Object && self,
+                  oa = t || f || Function('return this')(),
+                  r = 'object' == typeof S && S && !S.nodeType && S,
+                  i = r && 'object' == typeof D && D && !D.nodeType && D,
+                  Bs = i && i.exports === r,
+                  C = Bs && t.process,
+                  n = (function () {
+                    try {
+                      var t = i && i.require && i.require('util').types;
+                      return t ? t : C && C.binding && C.binding('util');
+                    } catch (t) {}
+                  })(),
+                  Cs = n && n.isArrayBuffer,
+                  xs = n && n.isDate,
+                  Is = n && n.isMap,
+                  Ms = n && n.isRegExp,
+                  Ds = n && n.isSet,
+                  Ss = n && n.isTypedArray;
+                function aa(t, e, n) {
+                  switch (n.length) {
+                    case 0:
+                      return t.call(e);
+                    case 1:
+                      return t.call(e, n[0]);
+                    case 2:
+                      return t.call(e, n[0], n[1]);
+                    case 3:
+                      return t.call(e, n[0], n[1], n[2]);
+                  }
+                  return t.apply(e, n);
+                }
+                function ks(t, e, n, r) {
+                  for (var i = -1, o = null == t ? 0 : t.length; ++i < o; ) {
+                    var a = t[i];
+                    e(r, a, n(a), t);
+                  }
+                  return r;
+                }
+                function sa(t, e) {
+                  for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t); );
+                  return t;
+                }
+                function Fs(t, e) {
+                  for (var n = null == t ? 0 : t.length; n-- && !1 !== e(t[n], n, t); );
+                  return t;
+                }
+                function Qs(t, e) {
+                  for (var n = -1, r = null == t ? 0 : t.length; ++n < r; )
+                    if (!e(t[n], n, t)) return !1;
+                  return !0;
+                }
+                function la(t, e) {
+                  for (var n = -1, r = null == t ? 0 : t.length, i = 0, o = []; ++n < r; ) {
+                    var a = t[n];
+                    e(a, n, t) && (o[i++] = a);
+                  }
+                  return o;
+                }
+                function _s(t, e) {
+                  return !!(null == t ? 0 : t.length) && -1 < Aa(t, e, 0);
+                }
+                function Ts(t, e, n) {
+                  for (var r = -1, i = null == t ? 0 : t.length; ++r < i; )
+                    if (n(e, t[r])) return !0;
+                  return !1;
+                }
+                function ua(t, e) {
+                  for (var n = -1, r = null == t ? 0 : t.length, i = Array(r); ++n < r; )
+                    i[n] = e(t[n], n, t);
+                  return i;
+                }
+                function ca(t, e) {
+                  for (var n = -1, r = e.length, i = t.length; ++n < r; ) t[i + n] = e[n];
+                  return t;
+                }
+                function Rs(t, e, n, r) {
+                  var i = -1,
+                    o = null == t ? 0 : t.length;
+                  for (r && o && (n = t[++i]); ++i < o; ) n = e(n, t[i], i, t);
+                  return n;
+                }
+                function Us(t, e, n, r) {
+                  var i = null == t ? 0 : t.length;
+                  for (r && i && (n = t[--i]); i--; ) n = e(n, t[i], i, t);
+                  return n;
+                }
+                function Ns(t, e) {
+                  for (var n = -1, r = null == t ? 0 : t.length; ++n < r; )
+                    if (e(t[n], n, t)) return !0;
+                  return !1;
+                }
+                var x = zs('length');
+                function Ps(t, r, e) {
+                  var i;
+                  return (
+                    e(t, function (t, e, n) {
+                      if (r(t, e, n)) return (i = e), !1;
+                    }),
+                    i
+                  );
+                }
+                function Ls(t, e, n, r) {
+                  for (var i = t.length, o = n + (r ? 1 : -1); r ? o-- : ++o < i; )
+                    if (e(t[o], o, t)) return o;
+                  return -1;
+                }
+                function Aa(t, e, n) {
+                  if (e != e) return Ls(t, Os, n);
+                  for (var r = t, i = e, o = n - 1, a = r.length; ++o < a; )
+                    if (r[o] === i) return o;
+                  return -1;
+                }
+                function Ys(t, e, n, r) {
+                  for (var i = n - 1, o = t.length; ++i < o; ) if (r(t[i], e)) return i;
+                  return -1;
+                }
+                function Os(t) {
+                  return t != t;
+                }
+                function Gs(t, e) {
+                  var n = null == t ? 0 : t.length;
+                  return n ? js(t, e) / n : ya;
+                }
+                function zs(e) {
+                  return function (t) {
+                    return null == t ? Oo : t[e];
+                  };
+                }
+                function I(e) {
+                  return function (t) {
+                    return null == e ? Oo : e[t];
+                  };
+                }
+                function Hs(t, r, i, o, e) {
+                  return (
+                    e(t, function (t, e, n) {
+                      i = o ? ((o = !1), t) : r(i, t, e, n);
+                    }),
+                    i
+                  );
+                }
+                function js(t, e) {
+                  for (var n, r = -1, i = t.length; ++r < i; ) {
+                    var o = e(t[r]);
+                    o !== Oo && (n = n === Oo ? o : n + o);
+                  }
+                  return n;
+                }
+                function Vs(t, e) {
+                  for (var n = -1, r = Array(t); ++n < t; ) r[n] = e(n);
+                  return r;
+                }
+                function qs(t) {
+                  return t && t.slice(0, il(t) + 1).replace(Xa, '');
+                }
+                function ha(e) {
+                  return function (t) {
+                    return e(t);
+                  };
+                }
+                function Ws(e, t) {
+                  return ua(t, function (t) {
+                    return e[t];
+                  });
+                }
+                function Js(t, e) {
+                  return t.has(e);
+                }
+                function Ks(t, e) {
+                  for (var n = -1, r = t.length; ++n < r && -1 < Aa(e, t[n], 0); );
+                  return n;
+                }
+                function Zs(t, e) {
+                  for (var n = t.length; n-- && -1 < Aa(e, t[n], 0); );
+                  return n;
+                }
+                var Xs = I({
+                    À: 'A',
+                    Á: 'A',
+                    Â: 'A',
+                    Ã: 'A',
+                    Ä: 'A',
+                    Ã…: 'A',
+                    à: 'a',
+                    á: 'a',
+                    â: 'a',
+                    ã: 'a',
+                    ä: 'a',
+                    å: 'a',
+                    Ç: 'C',
+                    ç: 'c',
+                    Ð: 'D',
+                    ð: 'd',
+                    È: 'E',
+                    É: 'E',
+                    Ê: 'E',
+                    Ë: 'E',
+                    è: 'e',
+                    é: 'e',
+                    ê: 'e',
+                    ë: 'e',
+                    Ì: 'I',
+                    Í: 'I',
+                    ÃŽ: 'I',
+                    Ï: 'I',
+                    ì: 'i',
+                    í: 'i',
+                    î: 'i',
+                    ï: 'i',
+                    Ñ: 'N',
+                    ñ: 'n',
+                    Ã’: 'O',
+                    Ó: 'O',
+                    Ô: 'O',
+                    Õ: 'O',
+                    Ö: 'O',
+                    Ø: 'O',
+                    ò: 'o',
+                    ó: 'o',
+                    ô: 'o',
+                    õ: 'o',
+                    ö: 'o',
+                    ø: 'o',
+                    Ù: 'U',
+                    Ú: 'U',
+                    Û: 'U',
+                    Ü: 'U',
+                    ù: 'u',
+                    ú: 'u',
+                    û: 'u',
+                    ü: 'u',
+                    Ý: 'Y',
+                    ý: 'y',
+                    ÿ: 'y',
+                    Æ: 'Ae',
+                    æ: 'ae',
+                    Þ: 'Th',
+                    þ: 'th',
+                    ß: 'ss',
+                    Ā: 'A',
+                    Ä‚: 'A',
+                    Ä„: 'A',
+                    ā: 'a',
+                    ă: 'a',
+                    Ä…: 'a',
+                    Ć: 'C',
+                    Ĉ: 'C',
+                    ÄŠ: 'C',
+                    Č: 'C',
+                    ć: 'c',
+                    ĉ: 'c',
+                    Ä‹: 'c',
+                    č: 'c',
+                    ÄŽ: 'D',
+                    Đ: 'D',
+                    ď: 'd',
+                    Ä‘: 'd',
+                    Ä’: 'E',
+                    Ä”: 'E',
+                    Ä–: 'E',
+                    Ę: 'E',
+                    Äš: 'E',
+                    Ä“: 'e',
+                    Ä•: 'e',
+                    Ä—: 'e',
+                    Ä™: 'e',
+                    Ä›: 'e',
+                    Ĝ: 'G',
+                    Äž: 'G',
+                    Ä : 'G',
+                    Ģ: 'G',
+                    ĝ: 'g',
+                    ÄŸ: 'g',
+                    Ä¡: 'g',
+                    ģ: 'g',
+                    Ĥ: 'H',
+                    Ħ: 'H',
+                    ĥ: 'h',
+                    ħ: 'h',
+                    Ĩ: 'I',
+                    Ī: 'I',
+                    Ĭ: 'I',
+                    Ä®: 'I',
+                    Ä°: 'I',
+                    Ä©: 'i',
+                    Ä«: 'i',
+                    Ä­: 'i',
+                    į: 'i',
+                    ı: 'i',
+                    Ä´: 'J',
+                    ĵ: 'j',
+                    Ķ: 'K',
+                    Ä·: 'k',
+                    ĸ: 'k',
+                    Ĺ: 'L',
+                    Ä»: 'L',
+                    Ľ: 'L',
+                    Ä¿: 'L',
+                    Ł: 'L',
+                    ĺ: 'l',
+                    ļ: 'l',
+                    ľ: 'l',
+                    ŀ: 'l',
+                    Å‚: 'l',
+                    Ń: 'N',
+                    Å…: 'N',
+                    Ň: 'N',
+                    ÅŠ: 'N',
+                    Å„: 'n',
+                    ņ: 'n',
+                    ň: 'n',
+                    Å‹: 'n',
+                    Ō: 'O',
+                    ÅŽ: 'O',
+                    Ő: 'O',
+                    ō: 'o',
+                    ŏ: 'o',
+                    Å‘: 'o',
+                    Å”: 'R',
+                    Å–: 'R',
+                    Ř: 'R',
+                    Å•: 'r',
+                    Å—: 'r',
+                    Å™: 'r',
+                    Åš: 'S',
+                    Ŝ: 'S',
+                    Åž: 'S',
+                    Å : 'S',
+                    Å›: 's',
+                    ŝ: 's',
+                    ÅŸ: 's',
+                    Å¡: 's',
+                    Ţ: 'T',
+                    Ť: 'T',
+                    Ŧ: 'T',
+                    ţ: 't',
+                    ť: 't',
+                    ŧ: 't',
+                    Ũ: 'U',
+                    Ū: 'U',
+                    Ŭ: 'U',
+                    Å®: 'U',
+                    Å°: 'U',
+                    Ų: 'U',
+                    Å©: 'u',
+                    Å«: 'u',
+                    Å­: 'u',
+                    ů: 'u',
+                    ű: 'u',
+                    ų: 'u',
+                    Å´: 'W',
+                    ŵ: 'w',
+                    Ŷ: 'Y',
+                    Å·: 'y',
+                    Ÿ: 'Y',
+                    Ź: 'Z',
+                    Å»: 'Z',
+                    Ž: 'Z',
+                    ź: 'z',
+                    ż: 'z',
+                    ž: 'z',
+                    IJ: 'IJ',
+                    ij: 'ij',
+                    Å’: 'Oe',
+                    Å“: 'oe',
+                    ʼn: "'n",
+                    Å¿: 's',
+                  }),
+                  $s = I({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' });
+                function tl(t) {
+                  return '\\' + B[t];
+                }
+                function pa(t) {
+                  return E.test(t);
+                }
+                function el(t) {
+                  var n = -1,
+                    r = Array(t.size);
+                  return (
+                    t.forEach(function (t, e) {
+                      r[++n] = [e, t];
+                    }),
+                    r
+                  );
+                }
+                function nl(e, n) {
+                  return function (t) {
+                    return e(n(t));
+                  };
+                }
+                function da(t, e) {
+                  for (var n = -1, r = t.length, i = 0, o = []; ++n < r; ) {
+                    var a = t[n];
+                    (a !== e && a !== ba) || ((t[n] = ba), (o[i++] = n));
+                  }
+                  return o;
+                }
+                function rl(t) {
+                  var e = -1,
+                    n = Array(t.size);
+                  return (
+                    t.forEach(function (t) {
+                      n[++e] = t;
+                    }),
+                    n
+                  );
+                }
+                function fa(t) {
+                  return (
+                    pa(t)
+                      ? function (t) {
+                          var e = (w.lastIndex = 0);
+                          for (; w.test(t); ) ++e;
+                          return e;
+                        }
+                      : x
+                  )(t);
+                }
+                function ga(t) {
+                  return pa(t) ? t.match(w) || [] : t.split('');
+                }
+                function il(t) {
+                  for (var e = t.length; e-- && o.test(t.charAt(e)); );
+                  return e;
+                }
+                var ol = I({ '&amp;': '&', '&lt;': '<', '&gt;': '>', '&quot;': '"', '&#39;': "'" });
+                var ma = (function i(t) {
+                  var E = (t = null == t ? oa : ma.defaults(oa.Object(), t, ma.pick(oa, bs))).Array,
+                    o = t.Date,
+                    Q = t.Error,
+                    _ = t.Function,
+                    T = t.Math,
+                    f = t.Object,
+                    R = t.RegExp,
+                    G = t.String,
+                    B = t.TypeError,
+                    z = E.prototype,
+                    H = _.prototype,
+                    j = f.prototype,
+                    V = t['__core-js_shared__'],
+                    q = H.toString,
+                    U = j.hasOwnProperty,
+                    W = 0,
+                    J = (H = /[^.]+$/.exec((V && V.keys && V.keys.IE_PROTO) || ''))
+                      ? 'Symbol(src)_1.' + H
+                      : '',
+                    K = j.toString,
+                    Z = q.call(f),
+                    X = oa._,
+                    $ = R(
+                      '^' +
+                        q
+                          .call(U)
+                          .replace(Ka, '\\$&')
+                          .replace(
+                            /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,
+                            '$1.*?',
+                          ) +
+                        '$',
+                    ),
+                    H = Bs ? t.Buffer : Oo,
+                    e = t.Symbol,
+                    tt = t.Uint8Array,
+                    et = H ? H.allocUnsafe : Oo,
+                    nt = nl(f.getPrototypeOf, f),
+                    rt = f.create,
+                    it = j.propertyIsEnumerable,
+                    ot = z.splice,
+                    at = e ? e.isConcatSpreadable : Oo,
+                    st = e ? e.iterator : Oo,
+                    lt = e ? e.toStringTag : Oo,
+                    ut = (function () {
+                      try {
+                        var t = Xn(f, 'defineProperty');
+                        return t({}, '', {}), t;
+                      } catch (t) {}
+                    })(),
+                    ct = t.clearTimeout !== oa.clearTimeout && t.clearTimeout,
+                    At = o && o.now !== oa.Date.now && o.now,
+                    ht = t.setTimeout !== oa.setTimeout && t.setTimeout,
+                    pt = T.ceil,
+                    dt = T.floor,
+                    ft = f.getOwnPropertySymbols,
+                    H = H ? H.isBuffer : Oo,
+                    gt = t.isFinite,
+                    mt = z.join,
+                    vt = nl(f.keys, f),
+                    C = T.max,
+                    x = T.min,
+                    bt = o.now,
+                    yt = t.parseInt,
+                    wt = T.random,
+                    Et = z.reverse,
+                    o = Xn(t, 'DataView'),
+                    Bt = Xn(t, 'Map'),
+                    Ct = Xn(t, 'Promise'),
+                    xt = Xn(t, 'Set'),
+                    t = Xn(t, 'WeakMap'),
+                    It = Xn(f, 'create'),
+                    Mt = t && new t(),
+                    Dt = {},
+                    St = Br(o),
+                    kt = Br(Bt),
+                    Ft = Br(Ct),
+                    Qt = Br(xt),
+                    _t = Br(t),
+                    e = e ? e.prototype : Oo,
+                    Tt = e ? e.valueOf : Oo,
+                    Rt = e ? e.toString : Oo;
+                  function d(t) {
+                    if (O(t) && !Y(t) && !(t instanceof m)) {
+                      if (t instanceof g) return t;
+                      if (U.call(t, '__wrapped__')) return Cr(t);
+                    }
+                    return new g(t);
+                  }
+                  var Ut = function (t) {
+                    if (!w(t)) return {};
+                    if (rt) return rt(t);
+                    Nt.prototype = t;
+                    t = new Nt();
+                    return (Nt.prototype = Oo), t;
+                  };
+                  function Nt() {}
+                  function Pt() {}
+                  function g(t, e) {
+                    (this.__wrapped__ = t),
+                      (this.__actions__ = []),
+                      (this.__chain__ = !!e),
+                      (this.__index__ = 0),
+                      (this.__values__ = Oo);
+                  }
+                  function m(t) {
+                    (this.__wrapped__ = t),
+                      (this.__actions__ = []),
+                      (this.__dir__ = 1),
+                      (this.__filtered__ = !1),
+                      (this.__iteratees__ = []),
+                      (this.__takeCount__ = Ho),
+                      (this.__views__ = []);
+                  }
+                  function Lt(t) {
+                    var e = -1,
+                      n = null == t ? 0 : t.length;
+                    for (this.clear(); ++e < n; ) {
+                      var r = t[e];
+                      this.set(r[0], r[1]);
+                    }
+                  }
+                  function Yt(t) {
+                    var e = -1,
+                      n = null == t ? 0 : t.length;
+                    for (this.clear(); ++e < n; ) {
+                      var r = t[e];
+                      this.set(r[0], r[1]);
+                    }
+                  }
+                  function Ot(t) {
+                    var e = -1,
+                      n = null == t ? 0 : t.length;
+                    for (this.clear(); ++e < n; ) {
+                      var r = t[e];
+                      this.set(r[0], r[1]);
+                    }
+                  }
+                  function Gt(t) {
+                    var e = -1,
+                      n = null == t ? 0 : t.length;
+                    for (this.__data__ = new Ot(); ++e < n; ) this.add(t[e]);
+                  }
+                  function N(t) {
+                    t = this.__data__ = new Yt(t);
+                    this.size = t.size;
+                  }
+                  function zt(t, e) {
+                    var n,
+                      r = Y(t),
+                      i = !r && mi(t),
+                      o = !r && !i && bi(t),
+                      a = !r && !i && !o && ki(t),
+                      s = r || i || o || a,
+                      l = s ? Vs(t.length, G) : [],
+                      u = l.length;
+                    for (n in t)
+                      (!e && !U.call(t, n)) ||
+                        (s &&
+                          ('length' == n ||
+                            (o && ('offset' == n || 'parent' == n)) ||
+                            (a && ('buffer' == n || 'byteLength' == n || 'byteOffset' == n)) ||
+                            ir(n, u))) ||
+                        l.push(n);
+                    return l;
+                  }
+                  function Ht(t) {
+                    var e = t.length;
+                    return e ? t[Pe(0, e - 1)] : Oo;
+                  }
+                  function jt(t, e) {
+                    return br(I(t), te(e, 0, t.length));
+                  }
+                  function Vt(t) {
+                    return br(I(t));
+                  }
+                  function qt(t, e, n) {
+                    ((n === Oo || L(t[e], n)) && (n !== Oo || e in t)) || Xt(t, e, n);
+                  }
+                  function Wt(t, e, n) {
+                    var r = t[e];
+                    (U.call(t, e) && L(r, n) && (n !== Oo || e in t)) || Xt(t, e, n);
+                  }
+                  function Jt(t, e) {
+                    for (var n = t.length; n--; ) if (L(t[n][0], e)) return n;
+                    return -1;
+                  }
+                  function Kt(t, r, i, o) {
+                    return (
+                      ie(t, function (t, e, n) {
+                        r(o, t, i(t), n);
+                      }),
+                      o
+                    );
+                  }
+                  function Zt(t, e) {
+                    return t && gn(e, S(e), t);
+                  }
+                  function Xt(t, e, n) {
+                    '__proto__' == e && ut
+                      ? ut(t, e, { configurable: !0, enumerable: !0, value: n, writable: !0 })
+                      : (t[e] = n);
+                  }
+                  function $t(t, e) {
+                    for (var n = -1, r = e.length, i = E(r), o = null == t; ++n < r; )
+                      i[n] = o ? Oo : Hi(t, e[n]);
+                    return i;
+                  }
+                  function te(t, e, n) {
+                    return (
+                      t == t &&
+                        (n !== Oo && (t = t <= n ? t : n), e !== Oo && (t = e <= t ? t : e)),
+                      t
+                    );
+                  }
+                  function v(n, r, i, t, e, o) {
+                    var a,
+                      s = 1 & r,
+                      l = 2 & r,
+                      u = 4 & r;
+                    if ((a = i ? (e ? i(n, t, e, o) : i(n)) : a) === Oo) {
+                      if (!w(n)) return n;
+                      var c,
+                        t = Y(n);
+                      if (t) {
+                        if (
+                          ((a = (function (t) {
+                            var e = t.length,
+                              n = new t.constructor(e);
+                            e &&
+                              'string' == typeof t[0] &&
+                              U.call(t, 'index') &&
+                              ((n.index = t.index), (n.input = t.input));
+                            return n;
+                          })(n)),
+                          !s)
+                        )
+                          return I(n, a);
+                      } else {
+                        var A = P(n),
+                          h = A == Ca || A == xa;
+                        if (bi(n)) return cn(n, s);
+                        if (A == Ko || A == jo || (h && !e)) {
+                          if (((a = l || h ? {} : nr(n)), !s))
+                            return l
+                              ? ((p = h = n), (p = (c = a) && gn(p, k(p), c)), gn(h, tr(h), p))
+                              : ((h = Zt(a, (c = n))), gn(c, $n(c), h));
+                        } else {
+                          if (!ia[A]) return e ? n : {};
+                          a = (function (t, e, n) {
+                            var r = t.constructor;
+                            switch (e) {
+                              case ea:
+                                return An(t);
+                              case Vo:
+                              case qo:
+                                return new r(+t);
+                              case na:
+                                return (function (t, e) {
+                                  e = e ? An(t.buffer) : t.buffer;
+                                  return new t.constructor(e, t.byteOffset, t.byteLength);
+                                })(t, n);
+                              case Da:
+                              case Sa:
+                              case ka:
+                              case Fa:
+                              case Qa:
+                              case _a:
+                              case Ta:
+                              case Ra:
+                              case Ua:
+                                return hn(t, n);
+                              case Wo:
+                                return new r();
+                              case Jo:
+                              case $o:
+                                return new r(t);
+                              case Zo:
+                                return (function (t) {
+                                  var e = new t.constructor(t.source, as.exec(t));
+                                  return (e.lastIndex = t.lastIndex), e;
+                                })(t);
+                              case Xo:
+                                return new r();
+                              case Ma:
+                                return (function (t) {
+                                  return Tt ? f(Tt.call(t)) : {};
+                                })(t);
+                            }
+                          })(n, A, s);
+                        }
+                      }
+                      var p = (o = o || new N()).get(n);
+                      if (p) return p;
+                      o.set(n, a),
+                        Di(n)
+                          ? n.forEach(function (t) {
+                              a.add(v(t, r, i, t, n, o));
+                            })
+                          : Ci(n) &&
+                            n.forEach(function (t, e) {
+                              a.set(e, v(t, r, i, e, n, o));
+                            });
+                      var d = t ? Oo : (u ? (l ? Vn : jn) : l ? k : S)(n);
+                      sa(d || n, function (t, e) {
+                        d && (t = n[(e = t)]), Wt(a, e, v(t, r, i, e, n, o));
+                      });
+                    }
+                    return a;
+                  }
+                  function ee(t, e, n) {
+                    var r = n.length;
+                    if (null == t) return !r;
+                    for (t = f(t); r--; ) {
+                      var i = n[r],
+                        o = e[i],
+                        a = t[i];
+                      if ((a === Oo && !(i in t)) || !o(a)) return !1;
+                    }
+                    return !0;
+                  }
+                  function ne(t, e, n) {
+                    if ('function' != typeof t) throw new B(Go);
+                    return fr(function () {
+                      t.apply(Oo, n);
+                    }, e);
+                  }
+                  function re(t, e, n, r) {
+                    var i = -1,
+                      o = _s,
+                      a = !0,
+                      s = t.length,
+                      l = [],
+                      u = e.length;
+                    if (s) {
+                      n && (e = ua(e, ha(n))),
+                        r
+                          ? ((o = Ts), (a = !1))
+                          : 200 <= e.length && ((o = Js), (a = !1), (e = new Gt(e)));
+                      t: for (; ++i < s; ) {
+                        var c = t[i],
+                          A = null == n ? c : n(c),
+                          c = r || 0 !== c ? c : 0;
+                        if (a && A == A) {
+                          for (var h = u; h--; ) if (e[h] === A) continue t;
+                          l.push(c);
+                        } else o(e, A, r) || l.push(c);
+                      }
+                    }
+                    return l;
+                  }
+                  (d.templateSettings = {
+                    escape: Ha,
+                    evaluate: ja,
+                    interpolate: Va,
+                    variable: '',
+                    imports: { _: d },
+                  }),
+                    ((d.prototype = Pt.prototype).constructor = d),
+                    ((g.prototype = Ut(Pt.prototype)).constructor = g),
+                    ((m.prototype = Ut(Pt.prototype)).constructor = m),
+                    (Lt.prototype.clear = function () {
+                      (this.__data__ = It ? It(null) : {}), (this.size = 0);
+                    }),
+                    (Lt.prototype.delete = function (t) {
+                      return (
+                        (t = this.has(t) && delete this.__data__[t]), (this.size -= t ? 1 : 0), t
+                      );
+                    }),
+                    (Lt.prototype.get = function (t) {
+                      var e,
+                        n = this.__data__;
+                      return It ? ((e = n[t]) === va ? Oo : e) : U.call(n, t) ? n[t] : Oo;
+                    }),
+                    (Lt.prototype.has = function (t) {
+                      var e = this.__data__;
+                      return It ? e[t] !== Oo : U.call(e, t);
+                    }),
+                    (Lt.prototype.set = function (t, e) {
+                      var n = this.__data__;
+                      return (
+                        (this.size += this.has(t) ? 0 : 1), (n[t] = It && e === Oo ? va : e), this
+                      );
+                    }),
+                    (Yt.prototype.clear = function () {
+                      (this.__data__ = []), (this.size = 0);
+                    }),
+                    (Yt.prototype.delete = function (t) {
+                      var e = this.__data__;
+                      return (
+                        !((t = Jt(e, t)) < 0) &&
+                        (t == e.length - 1 ? e.pop() : ot.call(e, t, 1), --this.size, !0)
+                      );
+                    }),
+                    (Yt.prototype.get = function (t) {
+                      var e = this.__data__;
+                      return (t = Jt(e, t)) < 0 ? Oo : e[t][1];
+                    }),
+                    (Yt.prototype.has = function (t) {
+                      return -1 < Jt(this.__data__, t);
+                    }),
+                    (Yt.prototype.set = function (t, e) {
+                      var n = this.__data__,
+                        r = Jt(n, t);
+                      return r < 0 ? (++this.size, n.push([t, e])) : (n[r][1] = e), this;
+                    }),
+                    (Ot.prototype.clear = function () {
+                      (this.size = 0),
+                        (this.__data__ = {
+                          hash: new Lt(),
+                          map: new (Bt || Yt)(),
+                          string: new Lt(),
+                        });
+                    }),
+                    (Ot.prototype.delete = function (t) {
+                      return (t = Kn(this, t).delete(t)), (this.size -= t ? 1 : 0), t;
+                    }),
+                    (Ot.prototype.get = function (t) {
+                      return Kn(this, t).get(t);
+                    }),
+                    (Ot.prototype.has = function (t) {
+                      return Kn(this, t).has(t);
+                    }),
+                    (Ot.prototype.set = function (t, e) {
+                      var n = Kn(this, t),
+                        r = n.size;
+                      return n.set(t, e), (this.size += n.size == r ? 0 : 1), this;
+                    }),
+                    (Gt.prototype.add = Gt.prototype.push =
+                      function (t) {
+                        return this.__data__.set(t, va), this;
+                      }),
+                    (Gt.prototype.has = function (t) {
+                      return this.__data__.has(t);
+                    }),
+                    (N.prototype.clear = function () {
+                      (this.__data__ = new Yt()), (this.size = 0);
+                    }),
+                    (N.prototype.delete = function (t) {
+                      var e = this.__data__,
+                        t = e.delete(t);
+                      return (this.size = e.size), t;
+                    }),
+                    (N.prototype.get = function (t) {
+                      return this.__data__.get(t);
+                    }),
+                    (N.prototype.has = function (t) {
+                      return this.__data__.has(t);
+                    }),
+                    (N.prototype.set = function (t, e) {
+                      var n = this.__data__;
+                      if (n instanceof Yt) {
+                        var r = n.__data__;
+                        if (!Bt || r.length < 199)
+                          return r.push([t, e]), (this.size = ++n.size), this;
+                        n = this.__data__ = new Ot(r);
+                      }
+                      return n.set(t, e), (this.size = n.size), this;
+                    });
+                  var ie = bn(Ae),
+                    oe = bn(he, !0);
+                  function ae(t, r) {
+                    var i = !0;
+                    return (
+                      ie(t, function (t, e, n) {
+                        return (i = !!r(t, e, n));
+                      }),
+                      i
+                    );
+                  }
+                  function se(t, e, n) {
+                    for (var r = -1, i = t.length; ++r < i; ) {
+                      var o,
+                        a,
+                        s = t[r],
+                        l = e(s);
+                      null != l && (o === Oo ? l == l && !b(l) : n(l, o)) && ((o = l), (a = s));
+                    }
+                    return a;
+                  }
+                  function le(t, r) {
+                    var i = [];
+                    return (
+                      ie(t, function (t, e, n) {
+                        r(t, e, n) && i.push(t);
+                      }),
+                      i
+                    );
+                  }
+                  function l(t, e, n, r, i) {
+                    var o = -1,
+                      a = t.length;
+                    for (n = n || rr, i = i || []; ++o < a; ) {
+                      var s = t[o];
+                      0 < e && n(s)
+                        ? 1 < e
+                          ? l(s, e - 1, n, r, i)
+                          : ca(i, s)
+                        : r || (i[i.length] = s);
+                    }
+                    return i;
+                  }
+                  var ue = yn(),
+                    ce = yn(!0);
+                  function Ae(t, e) {
+                    return t && ue(t, e, S);
+                  }
+                  function he(t, e) {
+                    return t && ce(t, e, S);
+                  }
+                  function pe(e, t) {
+                    return la(t, function (t) {
+                      return wi(e[t]);
+                    });
+                  }
+                  function de(t, e) {
+                    for (var n = 0, r = (e = an(e, t)).length; null != t && n < r; )
+                      t = t[Er(e[n++])];
+                    return n && n == r ? t : Oo;
+                  }
+                  function fe(t, e, n) {
+                    e = e(t);
+                    return Y(t) ? e : ca(e, n(t));
+                  }
+                  function n(t) {
+                    {
+                      if (null == t) return t === Oo ? '[object Undefined]' : '[object Null]';
+                      if (lt && lt in f(t)) {
+                        var e = t,
+                          n = U.call(e, lt),
+                          r = e[lt];
+                        try {
+                          e[lt] = Oo;
+                          var i = !0;
+                        } catch (t) {}
+                        var o = K.call(e);
+                        return i && (n ? (e[lt] = r) : delete e[lt]), o;
+                      }
+                      return K.call(t);
+                    }
+                  }
+                  function ge(t, e) {
+                    return e < t;
+                  }
+                  function me(t, e) {
+                    return null != t && U.call(t, e);
+                  }
+                  function ve(t, e) {
+                    return null != t && e in f(t);
+                  }
+                  function be(t, e, n) {
+                    for (
+                      var r = n ? Ts : _s,
+                        i = t[0].length,
+                        o = t.length,
+                        a = o,
+                        s = E(o),
+                        l = 1 / 0,
+                        u = [];
+                      a--;
+
+                    ) {
+                      var c = t[a];
+                      a && e && (c = ua(c, ha(e))),
+                        (l = x(c.length, l)),
+                        (s[a] = !n && (e || (120 <= i && 120 <= c.length)) ? new Gt(a && c) : Oo);
+                    }
+                    var c = t[0],
+                      A = -1,
+                      h = s[0];
+                    t: for (; ++A < i && u.length < l; ) {
+                      var p = c[A],
+                        d = e ? e(p) : p,
+                        p = n || 0 !== p ? p : 0;
+                      if (!(h ? Js(h, d) : r(u, d, n))) {
+                        for (a = o; --a; ) {
+                          var f = s[a];
+                          if (!(f ? Js(f, d) : r(t[a], d, n))) continue t;
+                        }
+                        h && h.push(d), u.push(p);
+                      }
+                    }
+                    return u;
+                  }
+                  function ye(t, e, n) {
+                    e = null == (t = hr(t, (e = an(e, t)))) ? t : t[Er(r(e))];
+                    return null == e ? Oo : aa(e, t, n);
+                  }
+                  function we(t) {
+                    return O(t) && n(t) == jo;
+                  }
+                  function Ee(t, e, n, r, i) {
+                    {
+                      if (t === e) return !0;
+                      if (null == t || null == e || (!O(t) && !O(e))) return t != t && e != e;
+                      var o = Ee,
+                        a = Y(t),
+                        s = Y(e),
+                        l = a ? Ea : P(t),
+                        s = s ? Ea : P(e),
+                        u = (l = l == jo ? Ko : l) == Ko,
+                        c = (s = s == jo ? Ko : s) == Ko,
+                        s;
+                      if ((s = l == s) && bi(t)) {
+                        if (!bi(e)) return !1;
+                        u = !(a = !0);
+                      }
+                      if (s && !u) {
+                        i = i || new N();
+                        if (a || ki(t)) return zn(t, e, n, r, o, i);
+                        else {
+                          var A = t;
+                          var h = e;
+                          var p = l;
+                          var d = n;
+                          var f = r;
+                          var g = o;
+                          var m = i;
+                          switch (p) {
+                            case na:
+                              if (A.byteLength != h.byteLength || A.byteOffset != h.byteOffset)
+                                return !1;
+                              (A = A.buffer), (h = h.buffer);
+                            case ea:
+                              return A.byteLength == h.byteLength && g(new tt(A), new tt(h))
+                                ? !0
+                                : !1;
+                            case Vo:
+                            case qo:
+                            case Jo:
+                              return L(+A, +h);
+                            case Ba:
+                              return A.name == h.name && A.message == h.message;
+                            case Zo:
+                            case $o:
+                              return A == h + '';
+                            case Wo:
+                              var v = el;
+                            case Xo:
+                              var b = 1 & d;
+                              if (((v = v || rl), A.size != h.size && !b)) return !1;
+                              b = m.get(A);
+                              if (b) return b == h;
+                              (d |= 2), m.set(A, h);
+                              b = zn(v(A), v(h), d, f, g, m);
+                              return m.delete(A), b;
+                            case Ma:
+                              if (Tt) return Tt.call(A) == Tt.call(h);
+                          }
+                          return !1;
+                          return;
+                        }
+                      }
+                      if (!(1 & n)) {
+                        (a = u && U.call(t, '__wrapped__')), (l = c && U.call(e, '__wrapped__'));
+                        if (a || l)
+                          return (
+                            (u = a ? t.value() : t),
+                            (c = l ? e.value() : e),
+                            (i = i || new N()),
+                            o(u, c, n, r, i)
+                          );
+                      }
+                      if (s) {
+                        i = i || new N();
+                        var y = t,
+                          w = e,
+                          E = n,
+                          B = r,
+                          C = o,
+                          x = i,
+                          I = 1 & E,
+                          M = jn(y),
+                          D = M.length,
+                          a = jn(w).length;
+                        if (D != a && !I) return !1;
+                        for (var S = D; S--; ) {
+                          var k = M[S];
+                          if (!(I ? k in w : U.call(w, k))) return !1;
+                        }
+                        (a = x.get(y)), (l = x.get(w));
+                        if (a && l) return a == w && l == y;
+                        for (var F = !0, Q = (x.set(y, w), x.set(w, y), I); ++S < D; ) {
+                          k = M[S];
+                          var _,
+                            T = y[k],
+                            R = w[k];
+                          if (
+                            !((_ = B ? (I ? B(R, T, k, w, y, x) : B(T, R, k, y, w, x)) : _) === Oo
+                              ? T === R || C(T, R, E, B, x)
+                              : _)
+                          ) {
+                            F = !1;
+                            break;
+                          }
+                          Q = Q || 'constructor' == k;
+                        }
+                        return (
+                          F &&
+                            !Q &&
+                            ((a = y.constructor),
+                            (l = w.constructor),
+                            a != l &&
+                              'constructor' in y &&
+                              'constructor' in w &&
+                              !(
+                                'function' == typeof a &&
+                                a instanceof a &&
+                                'function' == typeof l &&
+                                l instanceof l
+                              ) &&
+                              (F = !1)),
+                          x.delete(y),
+                          x.delete(w),
+                          F
+                        );
+                      }
+                      return !1;
+                    }
+                  }
+                  function Be(t, e, n, r) {
+                    var i = n.length,
+                      o = i,
+                      a = !r;
+                    if (null == t) return !o;
+                    for (t = f(t); i--; ) {
+                      var s = n[i];
+                      if (a && s[2] ? s[1] !== t[s[0]] : !(s[0] in t)) return !1;
+                    }
+                    for (; ++i < o; ) {
+                      var l = (s = n[i])[0],
+                        u = t[l],
+                        c = s[1];
+                      if (a && s[2]) {
+                        if (u === Oo && !(l in t)) return !1;
+                      } else {
+                        var A,
+                          h = new N();
+                        if (!((A = r ? r(u, c, l, t, e, h) : A) === Oo ? Ee(c, u, 3, r, h) : A))
+                          return !1;
+                      }
+                    }
+                    return !0;
+                  }
+                  function Ce(t) {
+                    return !(!w(t) || ((e = t), J && J in e)) && (wi(t) ? $ : us).test(Br(t));
+                    var e;
+                  }
+                  function xe(t) {
+                    return 'function' == typeof t
+                      ? t
+                      : null == t
+                        ? F
+                        : 'object' == typeof t
+                          ? Y(t)
+                            ? Fe(t[0], t[1])
+                            : ke(t)
+                          : Do(t);
+                  }
+                  function Ie(t) {
+                    if (!lr(t)) return vt(t);
+                    var e,
+                      n = [];
+                    for (e in f(t)) U.call(t, e) && 'constructor' != e && n.push(e);
+                    return n;
+                  }
+                  function Me(t) {
+                    if (!w(t)) {
+                      var e = t,
+                        n = [];
+                      if (null != e) for (var r in f(e)) n.push(r);
+                      return n;
+                    }
+                    var i,
+                      o = lr(t),
+                      a = [];
+                    for (i in t) ('constructor' != i || (!o && U.call(t, i))) && a.push(i);
+                    return a;
+                  }
+                  function De(t, e) {
+                    return t < e;
+                  }
+                  function Se(t, r) {
+                    var i = -1,
+                      o = c(t) ? E(t.length) : [];
+                    return (
+                      ie(t, function (t, e, n) {
+                        o[++i] = r(t, e, n);
+                      }),
+                      o
+                    );
+                  }
+                  function ke(e) {
+                    var n = Zn(e);
+                    return 1 == n.length && n[0][2]
+                      ? cr(n[0][0], n[0][1])
+                      : function (t) {
+                          return t === e || Be(t, e, n);
+                        };
+                  }
+                  function Fe(n, r) {
+                    return or(n) && ur(r)
+                      ? cr(Er(n), r)
+                      : function (t) {
+                          var e = Hi(t, n);
+                          return e === Oo && e === r ? ji(t, n) : Ee(r, e, 3);
+                        };
+                  }
+                  function Qe(f, g, m, v, b) {
+                    f !== g &&
+                      ue(
+                        g,
+                        function (t, e) {
+                          var n, r, i, o, a, s, l, u, c, A, h, p, d;
+                          (b = b || new N()),
+                            w(t)
+                              ? ((r = g),
+                                (o = m),
+                                (a = Qe),
+                                (s = v),
+                                (l = b),
+                                (h = pr((n = f), (i = e))),
+                                (p = pr(r, i)),
+                                (d = l.get(p))
+                                  ? qt(n, i, d)
+                                  : ((d = s ? s(h, p, i + '', n, r, l) : Oo),
+                                    (r = d === Oo) &&
+                                      ((u = Y(p)),
+                                      (c = !u && bi(p)),
+                                      (A = !u && !c && ki(p)),
+                                      (d = p),
+                                      u || c || A
+                                        ? (d = Y(h)
+                                            ? h
+                                            : y(h)
+                                              ? I(h)
+                                              : c
+                                                ? cn(p, !(r = !1))
+                                                : A
+                                                  ? hn(p, !(r = !1))
+                                                  : [])
+                                        : Ii(p) || mi(p)
+                                          ? mi((d = h))
+                                            ? (d = Ui(h))
+                                            : (w(h) && !wi(h)) || (d = nr(p))
+                                          : (r = !1)),
+                                    r && (l.set(p, d), a(d, p, o, s, l), l.delete(p)),
+                                    qt(n, i, d)))
+                              : ((u = v ? v(pr(f, e), t, e + '', f, g, b) : Oo),
+                                qt(f, e, (u = u === Oo ? t : u)));
+                        },
+                        k,
+                      );
+                  }
+                  function _e(t, e) {
+                    var n = t.length;
+                    if (n) return ir((e += e < 0 ? n : 0), n) ? t[e] : Oo;
+                  }
+                  function Te(t, r, c) {
+                    r = r.length
+                      ? ua(r, function (e) {
+                          return Y(e)
+                            ? function (t) {
+                                return de(t, 1 === e.length ? e[0] : e);
+                              }
+                            : e;
+                        })
+                      : [F];
+                    var i = -1;
+                    r = ua(r, ha(A()));
+                    var e = Se(t, function (e, t, n) {
+                        return {
+                          criteria: ua(r, function (t) {
+                            return t(e);
+                          }),
+                          index: ++i,
+                          value: e,
+                        };
+                      }),
+                      t = function (t, e) {
+                        for (
+                          var n = c,
+                            r = -1,
+                            i = t.criteria,
+                            o = e.criteria,
+                            a = i.length,
+                            s = n.length;
+                          ++r < a;
+
+                        ) {
+                          var l = pn(i[r], o[r]);
+                          if (l) {
+                            if (s <= r) return l;
+                            var u = n[r];
+                            return l * ('desc' == u ? -1 : 1);
+                          }
+                        }
+                        return t.index - e.index;
+                      },
+                      n = e.length;
+                    for (e.sort(t); n--; ) e[n] = e[n].value;
+                    return e;
+                  }
+                  function Re(t, e, n) {
+                    for (var r = -1, i = e.length, o = {}; ++r < i; ) {
+                      var a = e[r],
+                        s = de(t, a);
+                      n(s, a) && Ge(o, an(a, t), s);
+                    }
+                    return o;
+                  }
+                  function Ue(t, e, n, r) {
+                    var i = r ? Ys : Aa,
+                      o = -1,
+                      a = e.length,
+                      s = t;
+                    for (t === e && (e = I(e)), n && (s = ua(t, ha(n))); ++o < a; )
+                      for (var l = 0, u = e[o], c = n ? n(u) : u; -1 < (l = i(s, c, l, r)); )
+                        s !== t && ot.call(s, l, 1), ot.call(t, l, 1);
+                    return t;
+                  }
+                  function Ne(t, e) {
+                    for (var n = t ? e.length : 0, r = n - 1; n--; ) {
+                      var i,
+                        o = e[n];
+                      (n != r && o === i) || (ir((i = o)) ? ot.call(t, o, 1) : Ze(t, o));
+                    }
+                  }
+                  function Pe(t, e) {
+                    return t + dt(wt() * (e - t + 1));
+                  }
+                  function Le(t, e) {
+                    var n = '';
+                    if (!(!t || e < 1 || zo < e))
+                      for (; e % 2 && (n += t), (e = dt(e / 2)) && (t += t), e; );
+                    return n;
+                  }
+                  function a(t, e) {
+                    return gr(Ar(t, e, F), t + '');
+                  }
+                  function Ye(t) {
+                    return Ht(no(t));
+                  }
+                  function Oe(t, e) {
+                    t = no(t);
+                    return br(t, te(e, 0, t.length));
+                  }
+                  function Ge(t, e, n, r) {
+                    if (w(t))
+                      for (
+                        var i = -1, o = (e = an(e, t)).length, a = o - 1, s = t;
+                        null != s && ++i < o;
+
+                      ) {
+                        var l,
+                          u = Er(e[i]),
+                          c = n;
+                        if ('__proto__' === u || 'constructor' === u || 'prototype' === u) return t;
+                        i != a &&
+                          ((l = s[u]),
+                          (c = r ? r(l, u, s) : Oo) === Oo &&
+                            (c = w(l) ? l : ir(e[i + 1]) ? [] : {})),
+                          Wt(s, u, c),
+                          (s = s[u]);
+                      }
+                    return t;
+                  }
+                  var ze = Mt
+                      ? function (t, e) {
+                          return Mt.set(t, e), t;
+                        }
+                      : F,
+                    e = ut
+                      ? function (t, e) {
+                          return ut(t, 'toString', {
+                            configurable: !0,
+                            enumerable: !1,
+                            value: mo(e),
+                            writable: !0,
+                          });
+                        }
+                      : F;
+                  function He(t) {
+                    return br(no(t));
+                  }
+                  function s(t, e, n) {
+                    for (
+                      var r = -1,
+                        i = t.length,
+                        o =
+                          ((n = i < n ? i : n) < 0 && (n += i),
+                          (i = n < (e = e < 0 ? (i < -e ? 0 : i + e) : e) ? 0 : (n - e) >>> 0),
+                          (e >>>= 0),
+                          E(i));
+                      ++r < i;
+
+                    )
+                      o[r] = t[r + e];
+                    return o;
+                  }
+                  function je(t, r) {
+                    var i;
+                    return (
+                      ie(t, function (t, e, n) {
+                        return !(i = r(t, e, n));
+                      }),
+                      !!i
+                    );
+                  }
+                  function Ve(t, e, n) {
+                    var r = 0,
+                      i = null == t ? r : t.length;
+                    if ('number' == typeof e && e == e && i <= 2147483647) {
+                      for (; r < i; ) {
+                        var o = (r + i) >>> 1,
+                          a = t[o];
+                        null !== a && !b(a) && (n ? a <= e : a < e) ? (r = 1 + o) : (i = o);
+                      }
+                      return i;
+                    }
+                    return qe(t, e, F, n);
+                  }
+                  function qe(t, e, n, r) {
+                    var i = 0,
+                      o = null == t ? 0 : t.length;
+                    if (0 === o) return 0;
+                    for (var a = (e = n(e)) != e, s = null === e, l = b(e), u = e === Oo; i < o; ) {
+                      var c = dt((i + o) / 2),
+                        A = n(t[c]),
+                        h = A !== Oo,
+                        p = null === A,
+                        d = A == A,
+                        f = b(A),
+                        d = a
+                          ? r || d
+                          : u
+                            ? d && (r || h)
+                            : s
+                              ? d && h && (r || !p)
+                              : l
+                                ? d && h && !p && (r || !f)
+                                : !p && !f && (r ? A <= e : A < e);
+                      d ? (i = c + 1) : (o = c);
+                    }
+                    return x(o, 4294967294);
+                  }
+                  function We(t, e) {
+                    for (var n = -1, r = t.length, i = 0, o = []; ++n < r; ) {
+                      var a,
+                        s = t[n],
+                        l = e ? e(s) : s;
+                      (n && L(l, a)) || ((a = l), (o[i++] = 0 === s ? 0 : s));
+                    }
+                    return o;
+                  }
+                  function Je(t) {
+                    return 'number' == typeof t ? t : b(t) ? ya : +t;
+                  }
+                  function u(t) {
+                    if ('string' == typeof t) return t;
+                    if (Y(t)) return ua(t, u) + '';
+                    if (b(t)) return Rt ? Rt.call(t) : '';
+                    var e = t + '';
+                    return '0' == e && 1 / t == -1 / 0 ? '-0' : e;
+                  }
+                  function Ke(t, e, n) {
+                    var r = -1,
+                      i = _s,
+                      o = t.length,
+                      a = !0,
+                      s = [],
+                      l = s;
+                    if (n) (a = !1), (i = Ts);
+                    else if (200 <= o) {
+                      var u = e ? null : Nn(t);
+                      if (u) return rl(u);
+                      (a = !1), (i = Js), (l = new Gt());
+                    } else l = e ? [] : s;
+                    t: for (; ++r < o; ) {
+                      var c = t[r],
+                        A = e ? e(c) : c,
+                        c = n || 0 !== c ? c : 0;
+                      if (a && A == A) {
+                        for (var h = l.length; h--; ) if (l[h] === A) continue t;
+                        e && l.push(A), s.push(c);
+                      } else i(l, A, n) || (l !== s && l.push(A), s.push(c));
+                    }
+                    return s;
+                  }
+                  function Ze(t, e) {
+                    return null == (t = hr(t, (e = an(e, t)))) || delete t[Er(r(e))];
+                  }
+                  function Xe(t, e, n, r) {
+                    return Ge(t, e, n(de(t, e)), r);
+                  }
+                  function $e(t, e, n, r) {
+                    for (var i = t.length, o = r ? i : -1; (r ? o-- : ++o < i) && e(t[o], o, t); );
+                    return n ? s(t, r ? 0 : o, r ? o + 1 : i) : s(t, r ? o + 1 : 0, r ? i : o);
+                  }
+                  function tn(t, e) {
+                    var n = t;
+                    return Rs(
+                      e,
+                      function (t, e) {
+                        return e.func.apply(e.thisArg, ca([t], e.args));
+                      },
+                      (n = t instanceof m ? t.value() : n),
+                    );
+                  }
+                  function en(t, e, n) {
+                    var r = t.length;
+                    if (r < 2) return r ? Ke(t[0]) : [];
+                    for (var i = -1, o = E(r); ++i < r; )
+                      for (var a = t[i], s = -1; ++s < r; )
+                        s != i && (o[i] = re(o[i] || a, t[s], e, n));
+                    return Ke(l(o, 1), e, n);
+                  }
+                  function nn(t, e, n) {
+                    for (var r = -1, i = t.length, o = e.length, a = {}; ++r < i; ) {
+                      var s = r < o ? e[r] : Oo;
+                      n(a, t[r], s);
+                    }
+                    return a;
+                  }
+                  function rn(t) {
+                    return y(t) ? t : [];
+                  }
+                  function on(t) {
+                    return 'function' == typeof t ? t : F;
+                  }
+                  function an(t, e) {
+                    return Y(t) ? t : or(t, e) ? [t] : wr(p(t));
+                  }
+                  var sn = a;
+                  function ln(t, e, n) {
+                    var r = t.length;
+                    return (n = n === Oo ? r : n), !e && r <= n ? t : s(t, e, n);
+                  }
+                  var un =
+                    ct ||
+                    function (t) {
+                      return oa.clearTimeout(t);
+                    };
+                  function cn(t, e) {
+                    if (e) return t.slice();
+                    (e = t.length), (e = et ? et(e) : new t.constructor(e));
+                    return t.copy(e), e;
+                  }
+                  function An(t) {
+                    var e = new t.constructor(t.byteLength);
+                    return new tt(e).set(new tt(t)), e;
+                  }
+                  function hn(t, e) {
+                    e = e ? An(t.buffer) : t.buffer;
+                    return new t.constructor(e, t.byteOffset, t.length);
+                  }
+                  function pn(t, e) {
+                    if (t !== e) {
+                      var n = t !== Oo,
+                        r = null === t,
+                        i = t == t,
+                        o = b(t),
+                        a = e !== Oo,
+                        s = null === e,
+                        l = e == e,
+                        u = b(e);
+                      if (
+                        (!s && !u && !o && e < t) ||
+                        (o && a && l && !s && !u) ||
+                        (r && a && l) ||
+                        (!n && l) ||
+                        !i
+                      )
+                        return 1;
+                      if (
+                        (!r && !o && !u && t < e) ||
+                        (u && n && i && !r && !o) ||
+                        (s && n && i) ||
+                        (!a && i) ||
+                        !l
+                      )
+                        return -1;
+                    }
+                    return 0;
+                  }
+                  function dn(t, e, n, r) {
+                    for (
+                      var i = -1,
+                        o = t.length,
+                        a = n.length,
+                        s = -1,
+                        l = e.length,
+                        u = C(o - a, 0),
+                        c = E(l + u),
+                        A = !r;
+                      ++s < l;
+
+                    )
+                      c[s] = e[s];
+                    for (; ++i < a; ) (A || i < o) && (c[n[i]] = t[i]);
+                    for (; u--; ) c[s++] = t[i++];
+                    return c;
+                  }
+                  function fn(t, e, n, r) {
+                    for (
+                      var i = -1,
+                        o = t.length,
+                        a = -1,
+                        s = n.length,
+                        l = -1,
+                        u = e.length,
+                        c = C(o - s, 0),
+                        A = E(c + u),
+                        h = !r;
+                      ++i < c;
+
+                    )
+                      A[i] = t[i];
+                    for (var p = i; ++l < u; ) A[p + l] = e[l];
+                    for (; ++a < s; ) (h || i < o) && (A[p + n[a]] = t[i++]);
+                    return A;
+                  }
+                  function I(t, e) {
+                    var n = -1,
+                      r = t.length;
+                    for (e = e || E(r); ++n < r; ) e[n] = t[n];
+                    return e;
+                  }
+                  function gn(t, e, n, r) {
+                    for (var i = !n, o = ((n = n || {}), -1), a = e.length; ++o < a; ) {
+                      var s = e[o],
+                        l = r ? r(n[s], t[s], s, n, t) : Oo;
+                      (i ? Xt : Wt)(n, s, (l = l === Oo ? t[s] : l));
+                    }
+                    return n;
+                  }
+                  function mn(i, o) {
+                    return function (t, e) {
+                      var n = Y(t) ? ks : Kt,
+                        r = o ? o() : {};
+                      return n(t, i, A(e, 2), r);
+                    };
+                  }
+                  function vn(s) {
+                    return a(function (t, e) {
+                      var n = -1,
+                        r = e.length,
+                        i = 1 < r ? e[r - 1] : Oo,
+                        o = 2 < r ? e[2] : Oo,
+                        i = 3 < s.length && 'function' == typeof i ? (r--, i) : Oo;
+                      for (
+                        o && h(e[0], e[1], o) && ((i = r < 3 ? Oo : i), (r = 1)), t = f(t);
+                        ++n < r;
+
+                      ) {
+                        var a = e[n];
+                        a && s(t, a, n, i);
+                      }
+                      return t;
+                    });
+                  }
+                  function bn(o, a) {
+                    return function (t, e) {
+                      if (null != t) {
+                        if (!c(t)) return o(t, e);
+                        for (
+                          var n = t.length, r = a ? n : -1, i = f(t);
+                          (a ? r-- : ++r < n) && !1 !== e(i[r], r, i);
+
+                        );
+                      }
+                      return t;
+                    };
+                  }
+                  function yn(l) {
+                    return function (t, e, n) {
+                      for (var r = -1, i = f(t), o = n(t), a = o.length; a--; ) {
+                        var s = o[l ? a : ++r];
+                        if (!1 === e(i[s], s, i)) break;
+                      }
+                      return t;
+                    };
+                  }
+                  function wn(r) {
+                    return function (t) {
+                      var e = pa((t = p(t))) ? ga(t) : Oo,
+                        n = e ? e[0] : t.charAt(0),
+                        e = e ? ln(e, 1).join('') : t.slice(1);
+                      return n[r]() + e;
+                    };
+                  }
+                  function En(e) {
+                    return function (t) {
+                      return Rs(po(oo(t).replace(fs, '')), e, '');
+                    };
+                  }
+                  function Bn(r) {
+                    return function () {
+                      var t = arguments;
+                      switch (t.length) {
+                        case 0:
+                          return new r();
+                        case 1:
+                          return new r(t[0]);
+                        case 2:
+                          return new r(t[0], t[1]);
+                        case 3:
+                          return new r(t[0], t[1], t[2]);
+                        case 4:
+                          return new r(t[0], t[1], t[2], t[3]);
+                        case 5:
+                          return new r(t[0], t[1], t[2], t[3], t[4]);
+                        case 6:
+                          return new r(t[0], t[1], t[2], t[3], t[4], t[5]);
+                        case 7:
+                          return new r(t[0], t[1], t[2], t[3], t[4], t[5], t[6]);
+                      }
+                      var e = Ut(r.prototype),
+                        n = r.apply(e, t);
+                      return w(n) ? n : e;
+                    };
+                  }
+                  function Cn(o, a, s) {
+                    var l = Bn(o);
+                    return function t() {
+                      for (var e = arguments.length, n = E(e), r = e, i = Jn(t); r--; )
+                        n[r] = arguments[r];
+                      i = e < 3 && n[0] !== i && n[e - 1] !== i ? [] : da(n, i);
+                      return (e -= i.length) < s
+                        ? Rn(o, a, Mn, t.placeholder, Oo, n, i, Oo, Oo, s - e)
+                        : aa(this && this !== oa && this instanceof t ? l : o, this, n);
+                    };
+                  }
+                  function xn(o) {
+                    return function (t, e, n) {
+                      var r,
+                        i = f(t),
+                        e =
+                          (c(t) ||
+                            ((r = A(e, 3)),
+                            (t = S(t)),
+                            (e = function (t) {
+                              return r(i[t], t, i);
+                            })),
+                          o(t, e, n));
+                      return -1 < e ? i[r ? t[e] : e] : Oo;
+                    };
+                  }
+                  function In(l) {
+                    return Hn(function (i) {
+                      var o = i.length,
+                        t = o,
+                        e = g.prototype.thru;
+                      for (l && i.reverse(); t--; ) {
+                        var n = i[t];
+                        if ('function' != typeof n) throw new B(Go);
+                        e && !s && 'wrapper' == Wn(n) && (s = new g([], !0));
+                      }
+                      for (t = s ? t : o; ++t < o; )
+                        var r = Wn((n = i[t])),
+                          a = 'wrapper' == r ? qn(n) : Oo,
+                          s =
+                            a && ar(a[0]) && 424 == a[1] && !a[4].length && 1 == a[9]
+                              ? s[Wn(a[0])].apply(s, a[3])
+                              : 1 == n.length && ar(n)
+                                ? s[r]()
+                                : s.thru(n);
+                      return function () {
+                        var t = arguments,
+                          e = t[0];
+                        if (s && 1 == t.length && Y(e)) return s.plant(e).value();
+                        for (var n = 0, r = o ? i[n].apply(this, t) : e; ++n < o; )
+                          r = i[n].call(this, r);
+                        return r;
+                      };
+                    });
+                  }
+                  function Mn(a, s, l, u, c, A, h, p, d, f) {
+                    var g = 128 & s,
+                      m = 1 & s,
+                      v = 2 & s,
+                      b = 24 & s,
+                      y = 512 & s,
+                      w = v ? Oo : Bn(a);
+                    return function t() {
+                      for (var e = E((o = arguments.length)), n = o; n--; ) e[n] = arguments[n];
+                      if (
+                        (b &&
+                          (i = (function (t, e) {
+                            for (var n = t.length, r = 0; n--; ) t[n] === e && ++r;
+                            return r;
+                          })(e, (r = Jn(t)))),
+                        u && (e = dn(e, u, c, b)),
+                        A && (e = fn(e, A, h, b)),
+                        (o -= i),
+                        b && o < f)
+                      )
+                        return (i = da(e, r)), Rn(a, s, Mn, t.placeholder, l, e, i, p, d, f - o);
+                      var r = m ? l : this,
+                        i = v ? r[a] : a,
+                        o = e.length;
+                      return (
+                        p
+                          ? (e = (function (t, e) {
+                              for (var n = t.length, r = x(e.length, n), i = I(t); r--; ) {
+                                var o = e[r];
+                                t[r] = ir(o, n) ? i[o] : Oo;
+                              }
+                              return t;
+                            })(e, p))
+                          : y && 1 < o && e.reverse(),
+                        g && d < o && (e.length = d),
+                        (i = this && this !== oa && this instanceof t ? w || Bn(i) : i).apply(r, e)
+                      );
+                    };
+                  }
+                  function Dn(n, a) {
+                    return function (t, e) {
+                      return (
+                        (t = t),
+                        (r = n),
+                        (i = a(e)),
+                        (o = {}),
+                        Ae(t, function (t, e, n) {
+                          r(o, i(t), e, n);
+                        }),
+                        o
+                      );
+                      var r, i, o;
+                    };
+                  }
+                  function Sn(r, i) {
+                    return function (t, e) {
+                      var n;
+                      if (t === Oo && e === Oo) return i;
+                      if ((t !== Oo && (n = t), e !== Oo)) {
+                        if (n === Oo) return e;
+                        (e =
+                          'string' == typeof t || 'string' == typeof e
+                            ? ((t = u(t)), u(e))
+                            : ((t = Je(t)), Je(e))),
+                          (n = r(t, e));
+                      }
+                      return n;
+                    };
+                  }
+                  function kn(r) {
+                    return Hn(function (t) {
+                      return (
+                        (t = ua(t, ha(A()))),
+                        a(function (e) {
+                          var n = this;
+                          return r(t, function (t) {
+                            return aa(t, n, e);
+                          });
+                        })
+                      );
+                    });
+                  }
+                  function Fn(t, e) {
+                    var n = (e = e === Oo ? ' ' : u(e)).length;
+                    if (n < 2) return n ? Le(e, t) : e;
+                    n = Le(e, pt(t / fa(e)));
+                    return pa(e) ? ln(ga(n), 0, t).join('') : n.slice(0, t);
+                  }
+                  function Qn(s, t, l, u) {
+                    var c = 1 & t,
+                      A = Bn(s);
+                    return function t() {
+                      for (
+                        var e = -1,
+                          n = arguments.length,
+                          r = -1,
+                          i = u.length,
+                          o = E(i + n),
+                          a = this && this !== oa && this instanceof t ? A : s;
+                        ++r < i;
+
+                      )
+                        o[r] = u[r];
+                      for (; n--; ) o[r++] = arguments[++e];
+                      return aa(a, c ? l : this, o);
+                    };
+                  }
+                  function _n(u) {
+                    return function (t, e, n) {
+                      n && 'number' != typeof n && h(t, e, n) && (e = n = Oo),
+                        (t = Ti(t)),
+                        e === Oo ? ((e = t), (t = 0)) : (e = Ti(e)),
+                        (n = n === Oo ? (t < e ? 1 : -1) : Ti(n));
+                      for (
+                        var r = t, i = n, o = u, a = -1, s = C(pt((e - r) / (i || 1)), 0), l = E(s);
+                        s--;
+
+                      )
+                        (l[o ? s : ++a] = r), (r += i);
+                      return l;
+                    };
+                  }
+                  function Tn(n) {
+                    return function (t, e) {
+                      return (
+                        ('string' == typeof t && 'string' == typeof e) || ((t = D(t)), (e = D(e))),
+                        n(t, e)
+                      );
+                    };
+                  }
+                  function Rn(t, e, n, r, i, o, a, s, l, u) {
+                    var c = 8 & e,
+                      i =
+                        (4 & (e = (e | (c ? 32 : 64)) & ~(c ? 64 : 32)) || (e &= -4),
+                        [t, e, i, c ? o : Oo, c ? a : Oo, c ? Oo : o, c ? Oo : a, s, l, u]),
+                      o = n.apply(Oo, i);
+                    return ar(t) && dr(o, i), (o.placeholder = r), mr(o, t, e);
+                  }
+                  function Un(t) {
+                    var r = T[t];
+                    return function (t, e) {
+                      var n;
+                      return (
+                        (t = D(t)),
+                        (e = null == e ? 0 : x(M(e), 292)) && gt(t)
+                          ? ((n = (p(t) + 'e').split('e')),
+                            +(
+                              (n = (p(r(n[0] + 'e' + (+n[1] + e))) + 'e').split('e'))[0] +
+                              'e' +
+                              (+n[1] - e)
+                            ))
+                          : r(t)
+                      );
+                    };
+                  }
+                  var Nn =
+                    xt && 1 / rl(new xt([, -0]))[1] == 1 / 0
+                      ? function (t) {
+                          return new xt(t);
+                        }
+                      : Co;
+                  function Pn(o) {
+                    return function (t) {
+                      var e,
+                        n,
+                        r,
+                        i = P(t);
+                      return i == Wo
+                        ? el(t)
+                        : i == Xo
+                          ? ((i = t),
+                            (e = -1),
+                            (n = Array(i.size)),
+                            i.forEach(function (t) {
+                              n[++e] = [t, t];
+                            }),
+                            n)
+                          : ua(o((r = t)), function (t) {
+                              return [t, r[t]];
+                            });
+                    };
+                  }
+                  function Ln(t, e, n, r, i, o, a, s) {
+                    var l = 2 & e;
+                    if (!l && 'function' != typeof t) throw new B(Go);
+                    var u,
+                      c,
+                      A,
+                      h,
+                      p,
+                      d,
+                      f,
+                      g,
+                      m,
+                      v,
+                      b = r ? r.length : 0,
+                      y =
+                        (b || ((e &= -97), (r = i = Oo)),
+                        (a = a === Oo ? a : C(M(a), 0)),
+                        (s = s === Oo ? s : M(s)),
+                        (b -= i ? i.length : 0),
+                        64 & e && ((w = r), (u = i), (r = i = Oo)),
+                        l ? Oo : qn(t)),
+                      w = [t, e, n, r, i, w, u, o, a, s];
+                    return (
+                      y &&
+                        ((u = y),
+                        (a = (o = w)[1]),
+                        (A = u[1]),
+                        (p = (h = a | A) < 131),
+                        (d =
+                          (128 == A && 8 == a) ||
+                          (128 == A && 256 == a && o[7].length <= u[8]) ||
+                          (384 == A && u[7].length <= u[8] && 8 == a)),
+                        (p || d) &&
+                          (1 & A && ((o[2] = u[2]), (h |= 1 & a ? 0 : 4)),
+                          (p = u[3]) &&
+                            ((c = o[3]),
+                            (o[3] = c ? dn(c, p, u[4]) : p),
+                            (o[4] = c ? da(o[3], ba) : u[4])),
+                          (p = u[5]) &&
+                            ((c = o[5]),
+                            (o[5] = c ? fn(c, p, u[6]) : p),
+                            (o[6] = c ? da(o[5], ba) : u[6])),
+                          (p = u[7]) && (o[7] = p),
+                          128 & A && (o[8] = null == o[8] ? u[8] : x(o[8], u[8])),
+                          null == o[9] && (o[9] = u[9]),
+                          (o[0] = u[0]),
+                          (o[1] = h))),
+                      (t = w[0]),
+                      (e = w[1]),
+                      (n = w[2]),
+                      (r = w[3]),
+                      (i = w[4]),
+                      !(s = w[9] = w[9] === Oo ? (l ? 0 : t.length) : C(w[9] - b, 0)) &&
+                        24 & e &&
+                        (e &= -25),
+                      (d =
+                        e && 1 != e
+                          ? 8 == e || 16 == e
+                            ? Cn(t, e, s)
+                            : (32 != e && 33 != e) || i.length
+                              ? Mn.apply(Oo, w)
+                              : Qn(t, e, n, r)
+                          : ((g = n),
+                            (m = 1 & e),
+                            (v = Bn((f = t))),
+                            function t() {
+                              return (this && this !== oa && this instanceof t ? v : f).apply(
+                                m ? g : this,
+                                arguments,
+                              );
+                            })),
+                      mr((y ? ze : dr)(d, w), t, e)
+                    );
+                  }
+                  function Yn(t, e, n, r) {
+                    return t === Oo || (L(t, j[n]) && !U.call(r, n)) ? e : t;
+                  }
+                  function On(t, e, n, r, i, o) {
+                    return w(t) && w(e) && (o.set(e, t), Qe(t, e, Oo, On, o), o.delete(e)), t;
+                  }
+                  function Gn(t) {
+                    return Ii(t) ? Oo : t;
+                  }
+                  function zn(t, e, n, r, i, o) {
+                    var a = 1 & n,
+                      s = t.length,
+                      l = e.length;
+                    if (s != l && !(a && s < l)) return !1;
+                    var l = o.get(t),
+                      u = o.get(e);
+                    if (l && u) return l == e && u == t;
+                    var c = -1,
+                      A = !0,
+                      h = 2 & n ? new Gt() : Oo;
+                    for (o.set(t, e), o.set(e, t); ++c < s; ) {
+                      var p,
+                        d = t[c],
+                        f = e[c];
+                      if ((p = r ? (a ? r(f, d, c, e, t, o) : r(d, f, c, t, e, o)) : p) !== Oo) {
+                        if (p) continue;
+                        A = !1;
+                        break;
+                      }
+                      if (h) {
+                        if (
+                          !Ns(e, function (t, e) {
+                            return !Js(h, e) && (d === t || i(d, t, n, r, o)) && h.push(e);
+                          })
+                        ) {
+                          A = !1;
+                          break;
+                        }
+                      } else if (d !== f && !i(d, f, n, r, o)) {
+                        A = !1;
+                        break;
+                      }
+                    }
+                    return o.delete(t), o.delete(e), A;
+                  }
+                  function Hn(t) {
+                    return gr(Ar(t, Oo, Mr), t + '');
+                  }
+                  function jn(t) {
+                    return fe(t, S, $n);
+                  }
+                  function Vn(t) {
+                    return fe(t, k, tr);
+                  }
+                  var qn = Mt
+                    ? function (t) {
+                        return Mt.get(t);
+                      }
+                    : Co;
+                  function Wn(t) {
+                    for (var e = t.name + '', n = Dt[e], r = U.call(Dt, e) ? n.length : 0; r--; ) {
+                      var i = n[r],
+                        o = i.func;
+                      if (null == o || o == t) return i.name;
+                    }
+                    return e;
+                  }
+                  function Jn(t) {
+                    return (U.call(d, 'placeholder') ? d : t).placeholder;
+                  }
+                  function A() {
+                    var t = (t = d.iteratee || yo) === yo ? xe : t;
+                    return arguments.length ? t(arguments[0], arguments[1]) : t;
+                  }
+                  function Kn(t, e) {
+                    var n,
+                      r,
+                      t = t.__data__;
+                    return (
+                      'string' == (r = typeof (n = e)) ||
+                      'number' == r ||
+                      'symbol' == r ||
+                      'boolean' == r
+                        ? '__proto__' !== n
+                        : null === n
+                    )
+                      ? t['string' == typeof e ? 'string' : 'hash']
+                      : t.map;
+                  }
+                  function Zn(t) {
+                    for (var e = S(t), n = e.length; n--; ) {
+                      var r = e[n],
+                        i = t[r];
+                      e[n] = [r, i, ur(i)];
+                    }
+                    return e;
+                  }
+                  function Xn(t, e) {
+                    e = e;
+                    t = null == (t = t) ? Oo : t[e];
+                    return Ce(t) ? t : Oo;
+                  }
+                  var $n = ft
+                      ? function (e) {
+                          return null == e
+                            ? []
+                            : ((e = f(e)),
+                              la(ft(e), function (t) {
+                                return it.call(e, t);
+                              }));
+                        }
+                      : Fo,
+                    tr = ft
+                      ? function (t) {
+                          for (var e = []; t; ) ca(e, $n(t)), (t = nt(t));
+                          return e;
+                        }
+                      : Fo,
+                    P = n;
+                  function er(t, e, n) {
+                    for (var r = -1, i = (e = an(e, t)).length, o = !1; ++r < i; ) {
+                      var a = Er(e[r]);
+                      if (!(o = null != t && n(t, a))) break;
+                      t = t[a];
+                    }
+                    return o || ++r != i
+                      ? o
+                      : !!(i = null == t ? 0 : t.length) && Bi(i) && ir(a, i) && (Y(t) || mi(t));
+                  }
+                  function nr(t) {
+                    return 'function' != typeof t.constructor || lr(t) ? {} : Ut(nt(t));
+                  }
+                  function rr(t) {
+                    return Y(t) || mi(t) || !!(at && t && t[at]);
+                  }
+                  function ir(t, e) {
+                    var n = typeof t;
+                    return (
+                      !!(e = null == e ? zo : e) &&
+                      ('number' == n || ('symbol' != n && As.test(t))) &&
+                      -1 < t &&
+                      t % 1 == 0 &&
+                      t < e
+                    );
+                  }
+                  function h(t, e, n) {
+                    var r;
+                    if (w(n))
+                      return (
+                        (r = typeof e),
+                        ('number' == r ? c(n) && ir(e, n.length) : 'string' == r && e in n) &&
+                          L(n[e], t)
+                      );
+                  }
+                  function or(t, e) {
+                    var n;
+                    if (!Y(t))
+                      return (
+                        (n = typeof t),
+                        'number' == n ||
+                          'symbol' == n ||
+                          'boolean' == n ||
+                          null == t ||
+                          b(t) ||
+                          Wa.test(t) ||
+                          !qa.test(t) ||
+                          (null != e && t in f(e))
+                      );
+                  }
+                  function ar(t) {
+                    var e = Wn(t),
+                      n = d[e];
+                    if ('function' == typeof n && e in m.prototype) {
+                      if (t === n) return 1;
+                      e = qn(n);
+                      return e && t === e[0];
+                    }
+                  }
+                  ((o && P(new o(new ArrayBuffer(1))) != na) ||
+                    (Bt && P(new Bt()) != Wo) ||
+                    (Ct && P(Ct.resolve()) != Ia) ||
+                    (xt && P(new xt()) != Xo) ||
+                    (t && P(new t()) != ta)) &&
+                    (P = function (t) {
+                      var e = n(t),
+                        t = e == Ko ? t.constructor : Oo,
+                        t = t ? Br(t) : '';
+                      if (t)
+                        switch (t) {
+                          case St:
+                            return na;
+                          case kt:
+                            return Wo;
+                          case Ft:
+                            return Ia;
+                          case Qt:
+                            return Xo;
+                          case _t:
+                            return ta;
+                        }
+                      return e;
+                    });
+                  var sr = V ? wi : Qo;
+                  function lr(t) {
+                    var e = t && t.constructor;
+                    return t === (('function' == typeof e && e.prototype) || j);
+                  }
+                  function ur(t) {
+                    return t == t && !w(t);
+                  }
+                  function cr(e, n) {
+                    return function (t) {
+                      return null != t && t[e] === n && (n !== Oo || e in f(t));
+                    };
+                  }
+                  function Ar(o, a, s) {
+                    return (
+                      (a = C(a === Oo ? o.length - 1 : a, 0)),
+                      function () {
+                        for (var t = arguments, e = -1, n = C(t.length - a, 0), r = E(n); ++e < n; )
+                          r[e] = t[a + e];
+                        for (var e = -1, i = E(a + 1); ++e < a; ) i[e] = t[e];
+                        return (i[a] = s(r)), aa(o, this, i);
+                      }
+                    );
+                  }
+                  function hr(t, e) {
+                    return e.length < 2 ? t : de(t, s(e, 0, -1));
+                  }
+                  function pr(t, e) {
+                    if (('constructor' !== e || 'function' != typeof t[e]) && '__proto__' != e)
+                      return t[e];
+                  }
+                  var dr = vr(ze),
+                    fr =
+                      ht ||
+                      function (t, e) {
+                        return oa.setTimeout(t, e);
+                      },
+                    gr = vr(e);
+                  function mr(t, e, n) {
+                    var r,
+                      i,
+                      e = e + '';
+                    return gr(
+                      t,
+                      (function (t, e) {
+                        var n = e.length;
+                        if (!n) return t;
+                        var r = n - 1;
+                        return (
+                          (e[r] = (1 < n ? '& ' : '') + e[r]),
+                          (e = e.join(2 < n ? ', ' : ' ')),
+                          t.replace($a, '{\n/* [wrapped with ' + e + '] */\n')
+                        );
+                      })(
+                        e,
+                        ((r = (t = (t = e).match(ts)) ? t[1].split(es) : []),
+                        (i = n),
+                        sa(wa, function (t) {
+                          var e = '_.' + t[0];
+                          i & t[1] && !_s(r, e) && r.push(e);
+                        }),
+                        r.sort()),
+                      ),
+                    );
+                  }
+                  function vr(n) {
+                    var r = 0,
+                      i = 0;
+                    return function () {
+                      var t = bt(),
+                        e = 16 - (t - i);
+                      if (((i = t), 0 < e)) {
+                        if (800 <= ++r) return arguments[0];
+                      } else r = 0;
+                      return n.apply(Oo, arguments);
+                    };
+                  }
+                  function br(t, e) {
+                    var n = -1,
+                      r = t.length,
+                      i = r - 1;
+                    for (e = e === Oo ? r : e; ++n < e; ) {
+                      var o = Pe(n, i),
+                        a = t[o];
+                      (t[o] = t[n]), (t[n] = a);
+                    }
+                    return (t.length = e), t;
+                  }
+                  yr = (ct = ci(
+                    (ct = function (t) {
+                      var i = [];
+                      return (
+                        46 === t.charCodeAt(0) && i.push(''),
+                        t.replace(Ja, function (t, e, n, r) {
+                          i.push(n ? r.replace(is, '$1') : e || t);
+                        }),
+                        i
+                      );
+                    }),
+                    function (t) {
+                      return 500 === yr.size && yr.clear(), t;
+                    },
+                  )).cache;
+                  var yr,
+                    wr = ct;
+                  function Er(t) {
+                    if ('string' == typeof t || b(t)) return t;
+                    var e = t + '';
+                    return '0' == e && 1 / t == -1 / 0 ? '-0' : e;
+                  }
+                  function Br(t) {
+                    if (null != t) {
+                      try {
+                        return q.call(t);
+                      } catch (t) {}
+                      try {
+                        return t + '';
+                      } catch (t) {}
+                    }
+                    return '';
+                  }
+                  function Cr(t) {
+                    if (t instanceof m) return t.clone();
+                    var e = new g(t.__wrapped__, t.__chain__);
+                    return (
+                      (e.__actions__ = I(t.__actions__)),
+                      (e.__index__ = t.__index__),
+                      (e.__values__ = t.__values__),
+                      e
+                    );
+                  }
+                  (o = a(function (t, e) {
+                    return y(t) ? re(t, l(e, 1, y, !0)) : [];
+                  })),
+                    (Ct = a(function (t, e) {
+                      var n = r(e);
+                      return y(n) && (n = Oo), y(t) ? re(t, l(e, 1, y, !0), A(n, 2)) : [];
+                    })),
+                    (t = a(function (t, e) {
+                      var n = r(e);
+                      return y(n) && (n = Oo), y(t) ? re(t, l(e, 1, y, !0), Oo, n) : [];
+                    }));
+                  function xr(t, e, n) {
+                    var r = null == t ? 0 : t.length;
+                    if (!r) return -1;
+                    n = null == n ? 0 : M(n);
+                    return n < 0 && (n = C(r + n, 0)), Ls(t, A(e, 3), n);
+                  }
+                  function Ir(t, e, n) {
+                    var r = null == t ? 0 : t.length;
+                    if (!r) return -1;
+                    var i = r - 1;
+                    return (
+                      n !== Oo && ((i = M(n)), (i = n < 0 ? C(r + i, 0) : x(i, r - 1))),
+                      Ls(t, A(e, 3), i, !0)
+                    );
+                  }
+                  function Mr(t) {
+                    return (null == t ? 0 : t.length) ? l(t, 1) : [];
+                  }
+                  function Dr(t) {
+                    return t && t.length ? t[0] : Oo;
+                  }
+                  (V = a(function (t) {
+                    var e = ua(t, rn);
+                    return e.length && e[0] === t[0] ? be(e) : [];
+                  })),
+                    (ht = a(function (t) {
+                      var e = r(t),
+                        n = ua(t, rn);
+                      return (
+                        e === r(n) ? (e = Oo) : n.pop(),
+                        n.length && n[0] === t[0] ? be(n, A(e, 2)) : []
+                      );
+                    })),
+                    (e = a(function (t) {
+                      var e = r(t),
+                        n = ua(t, rn);
+                      return (
+                        (e = 'function' == typeof e ? e : Oo) && n.pop(),
+                        n.length && n[0] === t[0] ? be(n, Oo, e) : []
+                      );
+                    }));
+                  function r(t) {
+                    var e = null == t ? 0 : t.length;
+                    return e ? t[e - 1] : Oo;
+                  }
+                  ct = a(Sr);
+                  function Sr(t, e) {
+                    return t && t.length && e && e.length ? Ue(t, e) : t;
+                  }
+                  var kr = Hn(function (t, e) {
+                    var n = null == t ? 0 : t.length,
+                      r = $t(t, e);
+                    return (
+                      Ne(
+                        t,
+                        ua(e, function (t) {
+                          return ir(t, n) ? +t : t;
+                        }).sort(pn),
+                      ),
+                      r
+                    );
+                  });
+                  function Fr(t) {
+                    return null == t ? t : Et.call(t);
+                  }
+                  var Qr = a(function (t) {
+                      return Ke(l(t, 1, y, !0));
+                    }),
+                    _r = a(function (t) {
+                      var e = r(t);
+                      return y(e) && (e = Oo), Ke(l(t, 1, y, !0), A(e, 2));
+                    }),
+                    Tr = a(function (t) {
+                      var e = 'function' == typeof (e = r(t)) ? e : Oo;
+                      return Ke(l(t, 1, y, !0), Oo, e);
+                    });
+                  function Rr(e) {
+                    if (!e || !e.length) return [];
+                    var n = 0;
+                    return (
+                      (e = la(e, function (t) {
+                        return y(t) && ((n = C(t.length, n)), 1);
+                      })),
+                      Vs(n, function (t) {
+                        return ua(e, zs(t));
+                      })
+                    );
+                  }
+                  function Ur(t, e) {
+                    if (!t || !t.length) return [];
+                    t = Rr(t);
+                    return null == e
+                      ? t
+                      : ua(t, function (t) {
+                          return aa(e, Oo, t);
+                        });
+                  }
+                  var Nr = a(function (t, e) {
+                      return y(t) ? re(t, e) : [];
+                    }),
+                    Pr = a(function (t) {
+                      return en(la(t, y));
+                    }),
+                    Lr = a(function (t) {
+                      var e = r(t);
+                      return y(e) && (e = Oo), en(la(t, y), A(e, 2));
+                    }),
+                    Yr = a(function (t) {
+                      var e = 'function' == typeof (e = r(t)) ? e : Oo;
+                      return en(la(t, y), Oo, e);
+                    }),
+                    Or = a(Rr);
+                  var Gr = a(function (t) {
+                    var e = t.length,
+                      e = 'function' == typeof (e = 1 < e ? t[e - 1] : Oo) ? (t.pop(), e) : Oo;
+                    return Ur(t, e);
+                  });
+                  function zr(t) {
+                    t = d(t);
+                    return (t.__chain__ = !0), t;
+                  }
+                  function Hr(t, e) {
+                    return e(t);
+                  }
+                  var jr = Hn(function (e) {
+                    function t(t) {
+                      return $t(t, e);
+                    }
+                    var n = e.length,
+                      r = n ? e[0] : 0,
+                      i = this.__wrapped__;
+                    return !(1 < n || this.__actions__.length) && i instanceof m && ir(r)
+                      ? ((i = i.slice(r, +r + (n ? 1 : 0))).__actions__.push({
+                          func: Hr,
+                          args: [t],
+                          thisArg: Oo,
+                        }),
+                        new g(i, this.__chain__).thru(function (t) {
+                          return n && !t.length && t.push(Oo), t;
+                        }))
+                      : this.thru(t);
+                  });
+                  var Vr = mn(function (t, e, n) {
+                    U.call(t, n) ? ++t[n] : Xt(t, n, 1);
+                  });
+                  var qr = xn(xr),
+                    Wr = xn(Ir);
+                  function Jr(t, e) {
+                    return (Y(t) ? sa : ie)(t, A(e, 3));
+                  }
+                  function Kr(t, e) {
+                    return (Y(t) ? Fs : oe)(t, A(e, 3));
+                  }
+                  var Zr = mn(function (t, e, n) {
+                    U.call(t, n) ? t[n].push(e) : Xt(t, n, [e]);
+                  });
+                  var Xr = a(function (t, e, n) {
+                      var r = -1,
+                        i = 'function' == typeof e,
+                        o = c(t) ? E(t.length) : [];
+                      return (
+                        ie(t, function (t) {
+                          o[++r] = i ? aa(e, t, n) : ye(t, e, n);
+                        }),
+                        o
+                      );
+                    }),
+                    $r = mn(function (t, e, n) {
+                      Xt(t, n, e);
+                    });
+                  function ti(t, e) {
+                    return (Y(t) ? ua : Se)(t, A(e, 3));
+                  }
+                  var ei = mn(
+                    function (t, e, n) {
+                      t[n ? 0 : 1].push(e);
+                    },
+                    function () {
+                      return [[], []];
+                    },
+                  );
+                  var ni = a(function (t, e) {
+                      if (null == t) return [];
+                      var n = e.length;
+                      return (
+                        1 < n && h(t, e[0], e[1])
+                          ? (e = [])
+                          : 2 < n && h(e[0], e[1], e[2]) && (e = [e[0]]),
+                        Te(t, l(e, 1), [])
+                      );
+                    }),
+                    ri =
+                      At ||
+                      function () {
+                        return oa.Date.now();
+                      };
+                  function ii(t, e, n) {
+                    return (
+                      (e = n ? Oo : e),
+                      (e = t && null == e ? t.length : e),
+                      Ln(t, 128, Oo, Oo, Oo, Oo, e)
+                    );
+                  }
+                  function oi(t, e) {
+                    var n;
+                    if ('function' != typeof e) throw new B(Go);
+                    return (
+                      (t = M(t)),
+                      function () {
+                        return 0 < --t && (n = e.apply(this, arguments)), t <= 1 && (e = Oo), n;
+                      }
+                    );
+                  }
+                  var ai = a(function (t, e, n) {
+                      var r,
+                        i = 1;
+                      return n.length && ((r = da(n, Jn(ai))), (i |= 32)), Ln(t, i, e, n, r);
+                    }),
+                    si = a(function (t, e, n) {
+                      var r,
+                        i = 3;
+                      return n.length && ((r = da(n, Jn(si))), (i |= 32)), Ln(e, i, t, n, r);
+                    });
+                  function li(r, n, t) {
+                    var i,
+                      o,
+                      a,
+                      s,
+                      l,
+                      u,
+                      c = 0,
+                      A = !1,
+                      h = !1,
+                      e = !0;
+                    if ('function' != typeof r) throw new B(Go);
+                    function p(t) {
+                      var e = i,
+                        n = o;
+                      return (i = o = Oo), (c = t), (s = r.apply(n, e));
+                    }
+                    function d(t) {
+                      var e = t - u;
+                      return u === Oo || n <= e || e < 0 || (h && a <= t - c);
+                    }
+                    function f() {
+                      var t,
+                        e = ri();
+                      if (d(e)) return g(e);
+                      l = fr(f, ((t = n - ((e = e) - u)), h ? x(t, a - (e - c)) : t));
+                    }
+                    function g(t) {
+                      return (l = Oo), e && i ? p(t) : ((i = o = Oo), s);
+                    }
+                    function m() {
+                      var t = ri(),
+                        e = d(t);
+                      if (((i = arguments), (o = this), (u = t), e)) {
+                        if (l === Oo) return (c = t = u), (l = fr(f, n)), A ? p(t) : s;
+                        if (h) return un(l), (l = fr(f, n)), p(u);
+                      }
+                      return l === Oo && (l = fr(f, n)), s;
+                    }
+                    return (
+                      (n = D(n) || 0),
+                      w(t) &&
+                        ((A = !!t.leading),
+                        (h = 'maxWait' in t),
+                        (a = h ? C(D(t.maxWait) || 0, n) : a),
+                        (e = 'trailing' in t ? !!t.trailing : e)),
+                      (m.cancel = function () {
+                        l !== Oo && un(l), (c = 0), (i = u = o = l = Oo);
+                      }),
+                      (m.flush = function () {
+                        return l === Oo ? s : g(ri());
+                      }),
+                      m
+                    );
+                  }
+                  var At = a(function (t, e) {
+                      return ne(t, 1, e);
+                    }),
+                    ui = a(function (t, e, n) {
+                      return ne(t, D(e) || 0, n);
+                    });
+                  function ci(r, i) {
+                    if ('function' != typeof r || (null != i && 'function' != typeof i))
+                      throw new B(Go);
+                    function o() {
+                      var t = arguments,
+                        e = i ? i.apply(this, t) : t[0],
+                        n = o.cache;
+                      return n.has(e)
+                        ? n.get(e)
+                        : ((t = r.apply(this, t)), (o.cache = n.set(e, t) || n), t);
+                    }
+                    return (o.cache = new (ci.Cache || Ot)()), o;
+                  }
+                  function Ai(e) {
+                    if ('function' != typeof e) throw new B(Go);
+                    return function () {
+                      var t = arguments;
+                      switch (t.length) {
+                        case 0:
+                          return !e.call(this);
+                        case 1:
+                          return !e.call(this, t[0]);
+                        case 2:
+                          return !e.call(this, t[0], t[1]);
+                        case 3:
+                          return !e.call(this, t[0], t[1], t[2]);
+                      }
+                      return !e.apply(this, t);
+                    };
+                  }
+                  ci.Cache = Ot;
+                  var sn = sn(function (r, i) {
+                      var o = (i =
+                        1 == i.length && Y(i[0]) ? ua(i[0], ha(A())) : ua(l(i, 1), ha(A()))).length;
+                      return a(function (t) {
+                        for (var e = -1, n = x(t.length, o); ++e < n; )
+                          t[e] = i[e].call(this, t[e]);
+                        return aa(r, this, t);
+                      });
+                    }),
+                    hi = a(function (t, e) {
+                      var n = da(e, Jn(hi));
+                      return Ln(t, 32, Oo, e, n);
+                    }),
+                    pi = a(function (t, e) {
+                      var n = da(e, Jn(pi));
+                      return Ln(t, 64, Oo, e, n);
+                    }),
+                    di = Hn(function (t, e) {
+                      return Ln(t, 256, Oo, Oo, Oo, e);
+                    });
+                  function L(t, e) {
+                    return t === e || (t != t && e != e);
+                  }
+                  var fi = Tn(ge),
+                    gi = Tn(function (t, e) {
+                      return e <= t;
+                    }),
+                    mi = we(
+                      (function () {
+                        return arguments;
+                      })(),
+                    )
+                      ? we
+                      : function (t) {
+                          return O(t) && U.call(t, 'callee') && !it.call(t, 'callee');
+                        },
+                    Y = E.isArray,
+                    vi = Cs
+                      ? ha(Cs)
+                      : function (t) {
+                          return O(t) && n(t) == ea;
+                        };
+                  function c(t) {
+                    return null != t && Bi(t.length) && !wi(t);
+                  }
+                  function y(t) {
+                    return O(t) && c(t);
+                  }
+                  var bi = H || Qo,
+                    H = xs
+                      ? ha(xs)
+                      : function (t) {
+                          return O(t) && n(t) == qo;
+                        };
+                  function yi(t) {
+                    if (!O(t)) return !1;
+                    var e = n(t);
+                    return (
+                      e == Ba ||
+                      '[object DOMException]' == e ||
+                      ('string' == typeof t.message && 'string' == typeof t.name && !Ii(t))
+                    );
+                  }
+                  function wi(t) {
+                    if (!w(t)) return !1;
+                    t = n(t);
+                    return (
+                      t == Ca || t == xa || '[object AsyncFunction]' == t || '[object Proxy]' == t
+                    );
+                  }
+                  function Ei(t) {
+                    return 'number' == typeof t && t == M(t);
+                  }
+                  function Bi(t) {
+                    return 'number' == typeof t && -1 < t && t % 1 == 0 && t <= zo;
+                  }
+                  function w(t) {
+                    var e = typeof t;
+                    return null != t && ('object' == e || 'function' == e);
+                  }
+                  function O(t) {
+                    return null != t && 'object' == typeof t;
+                  }
+                  var Ci = Is
+                    ? ha(Is)
+                    : function (t) {
+                        return O(t) && P(t) == Wo;
+                      };
+                  function xi(t) {
+                    return 'number' == typeof t || (O(t) && n(t) == Jo);
+                  }
+                  function Ii(t) {
+                    if (!O(t) || n(t) != Ko) return !1;
+                    t = nt(t);
+                    if (null === t) return !0;
+                    t = U.call(t, 'constructor') && t.constructor;
+                    return 'function' == typeof t && t instanceof t && q.call(t) == Z;
+                  }
+                  var Mi = Ms
+                    ? ha(Ms)
+                    : function (t) {
+                        return O(t) && n(t) == Zo;
+                      };
+                  var Di = Ds
+                    ? ha(Ds)
+                    : function (t) {
+                        return O(t) && P(t) == Xo;
+                      };
+                  function Si(t) {
+                    return 'string' == typeof t || (!Y(t) && O(t) && n(t) == $o);
+                  }
+                  function b(t) {
+                    return 'symbol' == typeof t || (O(t) && n(t) == Ma);
+                  }
+                  var ki = Ss
+                    ? ha(Ss)
+                    : function (t) {
+                        return O(t) && Bi(t.length) && !!ra[n(t)];
+                      };
+                  var Fi = Tn(De),
+                    Qi = Tn(function (t, e) {
+                      return t <= e;
+                    });
+                  function _i(t) {
+                    if (!t) return [];
+                    if (c(t)) return (Si(t) ? ga : I)(t);
+                    if (st && t[st]) {
+                      for (var e, n = t[st](), r = []; !(e = n.next()).done; ) r.push(e.value);
+                      return r;
+                    }
+                    var i = P(t);
+                    return (i == Wo ? el : i == Xo ? rl : no)(t);
+                  }
+                  function Ti(t) {
+                    return t
+                      ? (t = D(t)) === 1 / 0 || t === -1 / 0
+                        ? 17976931348623157e292 * (t < 0 ? -1 : 1)
+                        : t == t
+                          ? t
+                          : 0
+                      : 0 === t
+                        ? t
+                        : 0;
+                  }
+                  function M(t) {
+                    var t = Ti(t),
+                      e = t % 1;
+                    return t == t ? (e ? t - e : t) : 0;
+                  }
+                  function Ri(t) {
+                    return t ? te(M(t), 0, Ho) : 0;
+                  }
+                  function D(t) {
+                    if ('number' == typeof t) return t;
+                    if (b(t)) return ya;
+                    if (
+                      'string' !=
+                      typeof (t = w(t)
+                        ? w((e = 'function' == typeof t.valueOf ? t.valueOf() : t))
+                          ? e + ''
+                          : e
+                        : t)
+                    )
+                      return 0 === t ? t : +t;
+                    t = qs(t);
+                    var e = ls.test(t);
+                    return e || cs.test(t) ? Es(t.slice(2), e ? 2 : 8) : ss.test(t) ? ya : +t;
+                  }
+                  function Ui(t) {
+                    return gn(t, k(t));
+                  }
+                  function p(t) {
+                    return null == t ? '' : u(t);
+                  }
+                  var Ni = vn(function (t, e) {
+                      if (lr(e) || c(e)) gn(e, S(e), t);
+                      else for (var n in e) U.call(e, n) && Wt(t, n, e[n]);
+                    }),
+                    Pi = vn(function (t, e) {
+                      gn(e, k(e), t);
+                    }),
+                    Li = vn(function (t, e, n, r) {
+                      gn(e, k(e), t, r);
+                    }),
+                    Yi = vn(function (t, e, n, r) {
+                      gn(e, S(e), t, r);
+                    }),
+                    Oi = Hn($t);
+                  var Gi = a(function (t, e) {
+                      t = f(t);
+                      var n = -1,
+                        r = e.length,
+                        i = 2 < r ? e[2] : Oo;
+                      for (i && h(e[0], e[1], i) && (r = 1); ++n < r; )
+                        for (var o = e[n], a = k(o), s = -1, l = a.length; ++s < l; ) {
+                          var u = a[s],
+                            c = t[u];
+                          (c === Oo || (L(c, j[u]) && !U.call(t, u))) && (t[u] = o[u]);
+                        }
+                      return t;
+                    }),
+                    zi = a(function (t) {
+                      return t.push(Oo, On), aa(Ki, Oo, t);
+                    });
+                  function Hi(t, e, n) {
+                    t = null == t ? Oo : de(t, e);
+                    return t === Oo ? n : t;
+                  }
+                  function ji(t, e) {
+                    return null != t && er(t, e, ve);
+                  }
+                  var Vi = Dn(function (t, e, n) {
+                      t[(e = null != e && 'function' != typeof e.toString ? K.call(e) : e)] = n;
+                    }, mo(F)),
+                    qi = Dn(function (t, e, n) {
+                      null != e && 'function' != typeof e.toString && (e = K.call(e)),
+                        U.call(t, e) ? t[e].push(n) : (t[e] = [n]);
+                    }, A),
+                    Wi = a(ye);
+                  function S(t) {
+                    return (c(t) ? zt : Ie)(t);
+                  }
+                  function k(t) {
+                    return c(t) ? zt(t, !0) : Me(t);
+                  }
+                  var Ji = vn(function (t, e, n) {
+                      Qe(t, e, n);
+                    }),
+                    Ki = vn(function (t, e, n, r) {
+                      Qe(t, e, n, r);
+                    }),
+                    Zi = Hn(function (e, t) {
+                      var n = {};
+                      if (null != e)
+                        for (
+                          var r = !1,
+                            i =
+                              ((t = ua(t, function (t) {
+                                return (t = an(t, e)), (r = r || 1 < t.length), t;
+                              })),
+                              gn(e, Vn(e), n),
+                              r && (n = v(n, 7, Gn)),
+                              t.length);
+                          i--;
+
+                        )
+                          Ze(n, t[i]);
+                      return n;
+                    });
+                  var Xi = Hn(function (t, e) {
+                    return null == t
+                      ? {}
+                      : Re((n = t), e, function (t, e) {
+                          return ji(n, e);
+                        });
+                    var n;
+                  });
+                  function $i(t, n) {
+                    if (null == t) return {};
+                    var e = ua(Vn(t), function (t) {
+                      return [t];
+                    });
+                    return (
+                      (n = A(n)),
+                      Re(t, e, function (t, e) {
+                        return n(t, e[0]);
+                      })
+                    );
+                  }
+                  var to = Pn(S),
+                    eo = Pn(k);
+                  function no(t) {
+                    return null == t ? [] : Ws(t, S(t));
+                  }
+                  var ro = En(function (t, e, n) {
+                    return (e = e.toLowerCase()), t + (n ? io(e) : e);
+                  });
+                  function io(t) {
+                    return ho(p(t).toLowerCase());
+                  }
+                  function oo(t) {
+                    return (t = p(t)) && t.replace(hs, Xs).replace(gs, '');
+                  }
+                  var ao = En(function (t, e, n) {
+                      return t + (n ? '-' : '') + e.toLowerCase();
+                    }),
+                    so = En(function (t, e, n) {
+                      return t + (n ? ' ' : '') + e.toLowerCase();
+                    }),
+                    lo = wn('toLowerCase');
+                  var uo = En(function (t, e, n) {
+                    return t + (n ? '_' : '') + e.toLowerCase();
+                  });
+                  var co = En(function (t, e, n) {
+                    return t + (n ? ' ' : '') + ho(e);
+                  });
+                  var Ao = En(function (t, e, n) {
+                      return t + (n ? ' ' : '') + e.toUpperCase();
+                    }),
+                    ho = wn('toUpperCase');
+                  function po(t, e, n) {
+                    return (
+                      (t = p(t)),
+                      (e = n ? Oo : e) === Oo
+                        ? ((n = t), vs.test(n) ? t.match(ms) || [] : t.match(ns) || [])
+                        : t.match(e) || []
+                    );
+                  }
+                  var fo = a(function (t, e) {
+                      try {
+                        return aa(t, Oo, e);
+                      } catch (t) {
+                        return yi(t) ? t : new Q(t);
+                      }
+                    }),
+                    go = Hn(function (e, t) {
+                      return (
+                        sa(t, function (t) {
+                          (t = Er(t)), Xt(e, t, ai(e[t], e));
+                        }),
+                        e
+                      );
+                    });
+                  function mo(t) {
+                    return function () {
+                      return t;
+                    };
+                  }
+                  var vo = In(),
+                    bo = In(!0);
+                  function F(t) {
+                    return t;
+                  }
+                  function yo(t) {
+                    return xe('function' == typeof t ? t : v(t, 1));
+                  }
+                  var wo = a(function (e, n) {
+                      return function (t) {
+                        return ye(t, e, n);
+                      };
+                    }),
+                    Eo = a(function (e, n) {
+                      return function (t) {
+                        return ye(e, t, n);
+                      };
+                    });
+                  function Bo(r, e, t) {
+                    var n = S(e),
+                      i = pe(e, n),
+                      o =
+                        (null != t ||
+                          (w(e) && (i.length || !n.length)) ||
+                          ((t = e), (e = r), (r = this), (i = pe(e, S(e)))),
+                        !(w(t) && 'chain' in t && !t.chain)),
+                      a = wi(r);
+                    return (
+                      sa(i, function (t) {
+                        var n = e[t];
+                        (r[t] = n),
+                          a &&
+                            (r.prototype[t] = function () {
+                              var t,
+                                e = this.__chain__;
+                              return o || e
+                                ? (((t = r(this.__wrapped__)).__actions__ = I(
+                                    this.__actions__,
+                                  )).push({ func: n, args: arguments, thisArg: r }),
+                                  (t.__chain__ = e),
+                                  t)
+                                : n.apply(r, ca([this.value()], arguments));
+                            });
+                      }),
+                      r
+                    );
+                  }
+                  function Co() {}
+                  var xo = kn(ua),
+                    Io = kn(Qs),
+                    Mo = kn(Ns);
+                  function Do(t) {
+                    return or(t)
+                      ? zs(Er(t))
+                      : ((e = t),
+                        function (t) {
+                          return de(t, e);
+                        });
+                    var e;
+                  }
+                  var So = _n(),
+                    ko = _n(!0);
+                  function Fo() {
+                    return [];
+                  }
+                  function Qo() {
+                    return !1;
+                  }
+                  var _o = Sn(function (t, e) {
+                      return t + e;
+                    }, 0),
+                    To = Un('ceil'),
+                    Ro = Sn(function (t, e) {
+                      return t / e;
+                    }, 1),
+                    Uo = Un('floor');
+                  var No,
+                    Po = Sn(function (t, e) {
+                      return t * e;
+                    }, 1),
+                    Lo = Un('round'),
+                    Yo = Sn(function (t, e) {
+                      return t - e;
+                    }, 0);
+                  return (
+                    (d.after = function (t, e) {
+                      if ('function' != typeof e) throw new B(Go);
+                      return (
+                        (t = M(t)),
+                        function () {
+                          if (--t < 1) return e.apply(this, arguments);
+                        }
+                      );
+                    }),
+                    (d.ary = ii),
+                    (d.assign = Ni),
+                    (d.assignIn = Pi),
+                    (d.assignInWith = Li),
+                    (d.assignWith = Yi),
+                    (d.at = Oi),
+                    (d.before = oi),
+                    (d.bind = ai),
+                    (d.bindAll = go),
+                    (d.bindKey = si),
+                    (d.castArray = function () {
+                      if (!arguments.length) return [];
+                      var t = arguments[0];
+                      return Y(t) ? t : [t];
+                    }),
+                    (d.chain = zr),
+                    (d.chunk = function (t, e, n) {
+                      e = (n ? h(t, e, n) : e === Oo) ? 1 : C(M(e), 0);
+                      var r = null == t ? 0 : t.length;
+                      if (!r || e < 1) return [];
+                      for (var i = 0, o = 0, a = E(pt(r / e)); i < r; ) a[o++] = s(t, i, (i += e));
+                      return a;
+                    }),
+                    (d.compact = function (t) {
+                      for (var e = -1, n = null == t ? 0 : t.length, r = 0, i = []; ++e < n; ) {
+                        var o = t[e];
+                        o && (i[r++] = o);
+                      }
+                      return i;
+                    }),
+                    (d.concat = function () {
+                      var t = arguments.length;
+                      if (!t) return [];
+                      for (var e = E(t - 1), n = arguments[0], r = t; r--; )
+                        e[r - 1] = arguments[r];
+                      return ca(Y(n) ? I(n) : [n], l(e, 1));
+                    }),
+                    (d.cond = function (r) {
+                      var i = null == r ? 0 : r.length,
+                        e = A();
+                      return (
+                        (r = i
+                          ? ua(r, function (t) {
+                              if ('function' != typeof t[1]) throw new B(Go);
+                              return [e(t[0]), t[1]];
+                            })
+                          : []),
+                        a(function (t) {
+                          for (var e = -1; ++e < i; ) {
+                            var n = r[e];
+                            if (aa(n[0], this, t)) return aa(n[1], this, t);
+                          }
+                        })
+                      );
+                    }),
+                    (d.conforms = function (t) {
+                      return (
+                        (e = v(t, 1)),
+                        (n = S(e)),
+                        function (t) {
+                          return ee(t, e, n);
+                        }
+                      );
+                      var e, n;
+                    }),
+                    (d.constant = mo),
+                    (d.countBy = Vr),
+                    (d.create = function (t, e) {
+                      return (t = Ut(t)), null == e ? t : Zt(t, e);
+                    }),
+                    (d.curry = function t(e, n, r) {
+                      e = Ln(e, 8, Oo, Oo, Oo, Oo, Oo, (n = r ? Oo : n));
+                      return (e.placeholder = t.placeholder), e;
+                    }),
+                    (d.curryRight = function t(e, n, r) {
+                      e = Ln(e, 16, Oo, Oo, Oo, Oo, Oo, (n = r ? Oo : n));
+                      return (e.placeholder = t.placeholder), e;
+                    }),
+                    (d.debounce = li),
+                    (d.defaults = Gi),
+                    (d.defaultsDeep = zi),
+                    (d.defer = At),
+                    (d.delay = ui),
+                    (d.difference = o),
+                    (d.differenceBy = Ct),
+                    (d.differenceWith = t),
+                    (d.drop = function (t, e, n) {
+                      var r = null == t ? 0 : t.length;
+                      return r ? s(t, (e = n || e === Oo ? 1 : M(e)) < 0 ? 0 : e, r) : [];
+                    }),
+                    (d.dropRight = function (t, e, n) {
+                      var r = null == t ? 0 : t.length;
+                      return r ? s(t, 0, (e = r - (e = n || e === Oo ? 1 : M(e))) < 0 ? 0 : e) : [];
+                    }),
+                    (d.dropRightWhile = function (t, e) {
+                      return t && t.length ? $e(t, A(e, 3), !0, !0) : [];
+                    }),
+                    (d.dropWhile = function (t, e) {
+                      return t && t.length ? $e(t, A(e, 3), !0) : [];
+                    }),
+                    (d.fill = function (t, e, n, r) {
+                      if (!(l = null == t ? 0 : t.length)) return [];
+                      n && 'number' != typeof n && h(t, e, n) && ((n = 0), (r = l));
+                      var i = t,
+                        o = e,
+                        a = n,
+                        s = r,
+                        l = i.length;
+                      for (
+                        (a = M(a)) < 0 && (a = l < -a ? 0 : l + a),
+                          (s = s === Oo || l < s ? l : M(s)) < 0 && (s += l),
+                          s = s < a ? 0 : Ri(s);
+                        a < s;
+
+                      )
+                        i[a++] = o;
+                      return i;
+                    }),
+                    (d.filter = function (t, e) {
+                      return (Y(t) ? la : le)(t, A(e, 3));
+                    }),
+                    (d.flatMap = function (t, e) {
+                      return l(ti(t, e), 1);
+                    }),
+                    (d.flatMapDeep = function (t, e) {
+                      return l(ti(t, e), 1 / 0);
+                    }),
+                    (d.flatMapDepth = function (t, e, n) {
+                      return (n = n === Oo ? 1 : M(n)), l(ti(t, e), n);
+                    }),
+                    (d.flatten = Mr),
+                    (d.flattenDeep = function (t) {
+                      return (null == t ? 0 : t.length) ? l(t, 1 / 0) : [];
+                    }),
+                    (d.flattenDepth = function (t, e) {
+                      return (null == t ? 0 : t.length) ? l(t, (e = e === Oo ? 1 : M(e))) : [];
+                    }),
+                    (d.flip = function (t) {
+                      return Ln(t, 512);
+                    }),
+                    (d.flow = vo),
+                    (d.flowRight = bo),
+                    (d.fromPairs = function (t) {
+                      for (var e = -1, n = null == t ? 0 : t.length, r = {}; ++e < n; ) {
+                        var i = t[e];
+                        r[i[0]] = i[1];
+                      }
+                      return r;
+                    }),
+                    (d.functions = function (t) {
+                      return null == t ? [] : pe(t, S(t));
+                    }),
+                    (d.functionsIn = function (t) {
+                      return null == t ? [] : pe(t, k(t));
+                    }),
+                    (d.groupBy = Zr),
+                    (d.initial = function (t) {
+                      return (null == t ? 0 : t.length) ? s(t, 0, -1) : [];
+                    }),
+                    (d.intersection = V),
+                    (d.intersectionBy = ht),
+                    (d.intersectionWith = e),
+                    (d.invert = Vi),
+                    (d.invertBy = qi),
+                    (d.invokeMap = Xr),
+                    (d.iteratee = yo),
+                    (d.keyBy = $r),
+                    (d.keys = S),
+                    (d.keysIn = k),
+                    (d.map = ti),
+                    (d.mapKeys = function (t, r) {
+                      var i = {};
+                      return (
+                        (r = A(r, 3)),
+                        Ae(t, function (t, e, n) {
+                          Xt(i, r(t, e, n), t);
+                        }),
+                        i
+                      );
+                    }),
+                    (d.mapValues = function (t, r) {
+                      var i = {};
+                      return (
+                        (r = A(r, 3)),
+                        Ae(t, function (t, e, n) {
+                          Xt(i, e, r(t, e, n));
+                        }),
+                        i
+                      );
+                    }),
+                    (d.matches = function (t) {
+                      return ke(v(t, 1));
+                    }),
+                    (d.matchesProperty = function (t, e) {
+                      return Fe(t, v(e, 1));
+                    }),
+                    (d.memoize = ci),
+                    (d.merge = Ji),
+                    (d.mergeWith = Ki),
+                    (d.method = wo),
+                    (d.methodOf = Eo),
+                    (d.mixin = Bo),
+                    (d.negate = Ai),
+                    (d.nthArg = function (e) {
+                      return (
+                        (e = M(e)),
+                        a(function (t) {
+                          return _e(t, e);
+                        })
+                      );
+                    }),
+                    (d.omit = Zi),
+                    (d.omitBy = function (t, e) {
+                      return $i(t, Ai(A(e)));
+                    }),
+                    (d.once = function (t) {
+                      return oi(2, t);
+                    }),
+                    (d.orderBy = function (t, e, n, r) {
+                      return null == t
+                        ? []
+                        : Te(
+                            t,
+                            (e = Y(e) ? e : null == e ? [] : [e]),
+                            (n = Y((n = r ? Oo : n)) ? n : null == n ? [] : [n]),
+                          );
+                    }),
+                    (d.over = xo),
+                    (d.overArgs = sn),
+                    (d.overEvery = Io),
+                    (d.overSome = Mo),
+                    (d.partial = hi),
+                    (d.partialRight = pi),
+                    (d.partition = ei),
+                    (d.pick = Xi),
+                    (d.pickBy = $i),
+                    (d.property = Do),
+                    (d.propertyOf = function (e) {
+                      return function (t) {
+                        return null == e ? Oo : de(e, t);
+                      };
+                    }),
+                    (d.pull = ct),
+                    (d.pullAll = Sr),
+                    (d.pullAllBy = function (t, e, n) {
+                      return t && t.length && e && e.length ? Ue(t, e, A(n, 2)) : t;
+                    }),
+                    (d.pullAllWith = function (t, e, n) {
+                      return t && t.length && e && e.length ? Ue(t, e, Oo, n) : t;
+                    }),
+                    (d.pullAt = kr),
+                    (d.range = So),
+                    (d.rangeRight = ko),
+                    (d.rearg = di),
+                    (d.reject = function (t, e) {
+                      return (Y(t) ? la : le)(t, Ai(A(e, 3)));
+                    }),
+                    (d.remove = function (t, e) {
+                      var n = [];
+                      if (t && t.length) {
+                        var r = -1,
+                          i = [],
+                          o = t.length;
+                        for (e = A(e, 3); ++r < o; ) {
+                          var a = t[r];
+                          e(a, r, t) && (n.push(a), i.push(r));
+                        }
+                        Ne(t, i);
+                      }
+                      return n;
+                    }),
+                    (d.rest = function (t, e) {
+                      if ('function' != typeof t) throw new B(Go);
+                      return a(t, (e = e === Oo ? e : M(e)));
+                    }),
+                    (d.reverse = Fr),
+                    (d.sampleSize = function (t, e, n) {
+                      return (e = (n ? h(t, e, n) : e === Oo) ? 1 : M(e)), (Y(t) ? jt : Oe)(t, e);
+                    }),
+                    (d.set = function (t, e, n) {
+                      return null == t ? t : Ge(t, e, n);
+                    }),
+                    (d.setWith = function (t, e, n, r) {
+                      return (r = 'function' == typeof r ? r : Oo), null == t ? t : Ge(t, e, n, r);
+                    }),
+                    (d.shuffle = function (t) {
+                      return (Y(t) ? Vt : He)(t);
+                    }),
+                    (d.slice = function (t, e, n) {
+                      var r = null == t ? 0 : t.length;
+                      return r
+                        ? ((n =
+                            n && 'number' != typeof n && h(t, e, n)
+                              ? ((e = 0), r)
+                              : ((e = null == e ? 0 : M(e)), n === Oo ? r : M(n))),
+                          s(t, e, n))
+                        : [];
+                    }),
+                    (d.sortBy = ni),
+                    (d.sortedUniq = function (t) {
+                      return t && t.length ? We(t) : [];
+                    }),
+                    (d.sortedUniqBy = function (t, e) {
+                      return t && t.length ? We(t, A(e, 2)) : [];
+                    }),
+                    (d.split = function (t, e, n) {
+                      return (
+                        n && 'number' != typeof n && h(t, e, n) && (e = n = Oo),
+                        (n = n === Oo ? Ho : n >>> 0)
+                          ? (t = p(t)) &&
+                            ('string' == typeof e || (null != e && !Mi(e))) &&
+                            !(e = u(e)) &&
+                            pa(t)
+                            ? ln(ga(t), 0, n)
+                            : t.split(e, n)
+                          : []
+                      );
+                    }),
+                    (d.spread = function (n, r) {
+                      if ('function' != typeof n) throw new B(Go);
+                      return (
+                        (r = null == r ? 0 : C(M(r), 0)),
+                        a(function (t) {
+                          var e = t[r],
+                            t = ln(t, 0, r);
+                          return e && ca(t, e), aa(n, this, t);
+                        })
+                      );
+                    }),
+                    (d.tail = function (t) {
+                      var e = null == t ? 0 : t.length;
+                      return e ? s(t, 1, e) : [];
+                    }),
+                    (d.take = function (t, e, n) {
+                      return t && t.length
+                        ? s(t, 0, (e = n || e === Oo ? 1 : M(e)) < 0 ? 0 : e)
+                        : [];
+                    }),
+                    (d.takeRight = function (t, e, n) {
+                      var r = null == t ? 0 : t.length;
+                      return r ? s(t, (e = r - (e = n || e === Oo ? 1 : M(e))) < 0 ? 0 : e, r) : [];
+                    }),
+                    (d.takeRightWhile = function (t, e) {
+                      return t && t.length ? $e(t, A(e, 3), !1, !0) : [];
+                    }),
+                    (d.takeWhile = function (t, e) {
+                      return t && t.length ? $e(t, A(e, 3)) : [];
+                    }),
+                    (d.tap = function (t, e) {
+                      return e(t), t;
+                    }),
+                    (d.throttle = function (t, e, n) {
+                      var r = !0,
+                        i = !0;
+                      if ('function' != typeof t) throw new B(Go);
+                      return (
+                        w(n) &&
+                          ((r = 'leading' in n ? !!n.leading : r),
+                          (i = 'trailing' in n ? !!n.trailing : i)),
+                        li(t, e, { leading: r, maxWait: e, trailing: i })
+                      );
+                    }),
+                    (d.thru = Hr),
+                    (d.toArray = _i),
+                    (d.toPairs = to),
+                    (d.toPairsIn = eo),
+                    (d.toPath = function (t) {
+                      return Y(t) ? ua(t, Er) : b(t) ? [t] : I(wr(p(t)));
+                    }),
+                    (d.toPlainObject = Ui),
+                    (d.transform = function (t, r, i) {
+                      var e,
+                        n = Y(t),
+                        o = n || bi(t) || ki(t);
+                      return (
+                        (r = A(r, 4)),
+                        null == i &&
+                          ((e = t && t.constructor),
+                          (i = o ? (n ? new e() : []) : w(t) && wi(e) ? Ut(nt(t)) : {})),
+                        (o ? sa : Ae)(t, function (t, e, n) {
+                          return r(i, t, e, n);
+                        }),
+                        i
+                      );
+                    }),
+                    (d.unary = function (t) {
+                      return ii(t, 1);
+                    }),
+                    (d.union = Qr),
+                    (d.unionBy = _r),
+                    (d.unionWith = Tr),
+                    (d.uniq = function (t) {
+                      return t && t.length ? Ke(t) : [];
+                    }),
+                    (d.uniqBy = function (t, e) {
+                      return t && t.length ? Ke(t, A(e, 2)) : [];
+                    }),
+                    (d.uniqWith = function (t, e) {
+                      return (
+                        (e = 'function' == typeof e ? e : Oo), t && t.length ? Ke(t, Oo, e) : []
+                      );
+                    }),
+                    (d.unset = function (t, e) {
+                      return null == t || Ze(t, e);
+                    }),
+                    (d.unzip = Rr),
+                    (d.unzipWith = Ur),
+                    (d.update = function (t, e, n) {
+                      return null == t ? t : Xe(t, e, on(n));
+                    }),
+                    (d.updateWith = function (t, e, n, r) {
+                      return (
+                        (r = 'function' == typeof r ? r : Oo), null == t ? t : Xe(t, e, on(n), r)
+                      );
+                    }),
+                    (d.values = no),
+                    (d.valuesIn = function (t) {
+                      return null == t ? [] : Ws(t, k(t));
+                    }),
+                    (d.without = Nr),
+                    (d.words = po),
+                    (d.wrap = function (t, e) {
+                      return hi(on(e), t);
+                    }),
+                    (d.xor = Pr),
+                    (d.xorBy = Lr),
+                    (d.xorWith = Yr),
+                    (d.zip = Or),
+                    (d.zipObject = function (t, e) {
+                      return nn(t || [], e || [], Wt);
+                    }),
+                    (d.zipObjectDeep = function (t, e) {
+                      return nn(t || [], e || [], Ge);
+                    }),
+                    (d.zipWith = Gr),
+                    (d.entries = to),
+                    (d.entriesIn = eo),
+                    (d.extend = Pi),
+                    (d.extendWith = Li),
+                    Bo(d, d),
+                    (d.add = _o),
+                    (d.attempt = fo),
+                    (d.camelCase = ro),
+                    (d.capitalize = io),
+                    (d.ceil = To),
+                    (d.clamp = function (t, e, n) {
+                      return (
+                        n === Oo && ((n = e), (e = Oo)),
+                        n !== Oo && (n = (n = D(n)) == n ? n : 0),
+                        e !== Oo && (e = (e = D(e)) == e ? e : 0),
+                        te(D(t), e, n)
+                      );
+                    }),
+                    (d.clone = function (t) {
+                      return v(t, 4);
+                    }),
+                    (d.cloneDeep = function (t) {
+                      return v(t, 5);
+                    }),
+                    (d.cloneDeepWith = function (t, e) {
+                      return v(t, 5, (e = 'function' == typeof e ? e : Oo));
+                    }),
+                    (d.cloneWith = function (t, e) {
+                      return v(t, 4, (e = 'function' == typeof e ? e : Oo));
+                    }),
+                    (d.conformsTo = function (t, e) {
+                      return null == e || ee(t, e, S(e));
+                    }),
+                    (d.deburr = oo),
+                    (d.defaultTo = function (t, e) {
+                      return null == t || t != t ? e : t;
+                    }),
+                    (d.divide = Ro),
+                    (d.endsWith = function (t, e, n) {
+                      (t = p(t)), (e = u(e));
+                      var r = t.length,
+                        r = (n = n === Oo ? r : te(M(n), 0, r));
+                      return 0 <= (n -= e.length) && t.slice(n, r) == e;
+                    }),
+                    (d.eq = L),
+                    (d.escape = function (t) {
+                      return (t = p(t)) && za.test(t) ? t.replace(Oa, $s) : t;
+                    }),
+                    (d.escapeRegExp = function (t) {
+                      return (t = p(t)) && Za.test(t) ? t.replace(Ka, '\\$&') : t;
+                    }),
+                    (d.every = function (t, e, n) {
+                      return (Y(t) ? Qs : ae)(t, A((e = n && h(t, e, n) ? Oo : e), 3));
+                    }),
+                    (d.find = qr),
+                    (d.findIndex = xr),
+                    (d.findKey = function (t, e) {
+                      return Ps(t, A(e, 3), Ae);
+                    }),
+                    (d.findLast = Wr),
+                    (d.findLastIndex = Ir),
+                    (d.findLastKey = function (t, e) {
+                      return Ps(t, A(e, 3), he);
+                    }),
+                    (d.floor = Uo),
+                    (d.forEach = Jr),
+                    (d.forEachRight = Kr),
+                    (d.forIn = function (t, e) {
+                      return null == t ? t : ue(t, A(e, 3), k);
+                    }),
+                    (d.forInRight = function (t, e) {
+                      return null == t ? t : ce(t, A(e, 3), k);
+                    }),
+                    (d.forOwn = function (t, e) {
+                      return t && Ae(t, A(e, 3));
+                    }),
+                    (d.forOwnRight = function (t, e) {
+                      return t && he(t, A(e, 3));
+                    }),
+                    (d.get = Hi),
+                    (d.gt = fi),
+                    (d.gte = gi),
+                    (d.has = function (t, e) {
+                      return null != t && er(t, e, me);
+                    }),
+                    (d.hasIn = ji),
+                    (d.head = Dr),
+                    (d.identity = F),
+                    (d.includes = function (t, e, n, r) {
+                      return (
+                        (t = c(t) ? t : no(t)),
+                        (n = n && !r ? M(n) : 0),
+                        (r = t.length),
+                        n < 0 && (n = C(r + n, 0)),
+                        Si(t) ? n <= r && -1 < t.indexOf(e, n) : !!r && -1 < Aa(t, e, n)
+                      );
+                    }),
+                    (d.indexOf = function (t, e, n) {
+                      var r = null == t ? 0 : t.length;
+                      return r
+                        ? ((n = null == n ? 0 : M(n)), Aa(t, e, (n = n < 0 ? C(r + n, 0) : n)))
+                        : -1;
+                    }),
+                    (d.inRange = function (t, e, n) {
+                      return (
+                        (e = Ti(e)),
+                        n === Oo ? ((n = e), (e = 0)) : (n = Ti(n)),
+                        (t = t = D(t)) >= x((e = e), (n = n)) && t < C(e, n)
+                      );
+                    }),
+                    (d.invoke = Wi),
+                    (d.isArguments = mi),
+                    (d.isArray = Y),
+                    (d.isArrayBuffer = vi),
+                    (d.isArrayLike = c),
+                    (d.isArrayLikeObject = y),
+                    (d.isBoolean = function (t) {
+                      return !0 === t || !1 === t || (O(t) && n(t) == Vo);
+                    }),
+                    (d.isBuffer = bi),
+                    (d.isDate = H),
+                    (d.isElement = function (t) {
+                      return O(t) && 1 === t.nodeType && !Ii(t);
+                    }),
+                    (d.isEmpty = function (t) {
+                      if (null != t) {
+                        if (
+                          c(t) &&
+                          (Y(t) ||
+                            'string' == typeof t ||
+                            'function' == typeof t.splice ||
+                            bi(t) ||
+                            ki(t) ||
+                            mi(t))
+                        )
+                          return !t.length;
+                        var e,
+                          n = P(t);
+                        if (n == Wo || n == Xo) return !t.size;
+                        if (lr(t)) return !Ie(t).length;
+                        for (e in t) if (U.call(t, e)) return !1;
+                      }
+                      return !0;
+                    }),
+                    (d.isEqual = function (t, e) {
+                      return Ee(t, e);
+                    }),
+                    (d.isEqualWith = function (t, e, n) {
+                      var r = (n = 'function' == typeof n ? n : Oo) ? n(t, e) : Oo;
+                      return r === Oo ? Ee(t, e, Oo, n) : !!r;
+                    }),
+                    (d.isError = yi),
+                    (d.isFinite = function (t) {
+                      return 'number' == typeof t && gt(t);
+                    }),
+                    (d.isFunction = wi),
+                    (d.isInteger = Ei),
+                    (d.isLength = Bi),
+                    (d.isMap = Ci),
+                    (d.isMatch = function (t, e) {
+                      return t === e || Be(t, e, Zn(e));
+                    }),
+                    (d.isMatchWith = function (t, e, n) {
+                      return (n = 'function' == typeof n ? n : Oo), Be(t, e, Zn(e), n);
+                    }),
+                    (d.isNaN = function (t) {
+                      return xi(t) && t != +t;
+                    }),
+                    (d.isNative = function (t) {
+                      if (sr(t))
+                        throw new Q(
+                          'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
+                        );
+                      return Ce(t);
+                    }),
+                    (d.isNil = function (t) {
+                      return null == t;
+                    }),
+                    (d.isNull = function (t) {
+                      return null === t;
+                    }),
+                    (d.isNumber = xi),
+                    (d.isObject = w),
+                    (d.isObjectLike = O),
+                    (d.isPlainObject = Ii),
+                    (d.isRegExp = Mi),
+                    (d.isSafeInteger = function (t) {
+                      return Ei(t) && -zo <= t && t <= zo;
+                    }),
+                    (d.isSet = Di),
+                    (d.isString = Si),
+                    (d.isSymbol = b),
+                    (d.isTypedArray = ki),
+                    (d.isUndefined = function (t) {
+                      return t === Oo;
+                    }),
+                    (d.isWeakMap = function (t) {
+                      return O(t) && P(t) == ta;
+                    }),
+                    (d.isWeakSet = function (t) {
+                      return O(t) && '[object WeakSet]' == n(t);
+                    }),
+                    (d.join = function (t, e) {
+                      return null == t ? '' : mt.call(t, e);
+                    }),
+                    (d.kebabCase = ao),
+                    (d.last = r),
+                    (d.lastIndexOf = function (t, e, n) {
+                      var r = null == t ? 0 : t.length;
+                      if (!r) return -1;
+                      var i = r;
+                      if ((n !== Oo && (i = (i = M(n)) < 0 ? C(r + i, 0) : x(i, r - 1)), e != e))
+                        return Ls(t, Os, i, !0);
+                      for (var o = t, a = e, s = i + 1; s--; ) if (o[s] === a) return s;
+                      return s;
+                    }),
+                    (d.lowerCase = so),
+                    (d.lowerFirst = lo),
+                    (d.lt = Fi),
+                    (d.lte = Qi),
+                    (d.max = function (t) {
+                      return t && t.length ? se(t, F, ge) : Oo;
+                    }),
+                    (d.maxBy = function (t, e) {
+                      return t && t.length ? se(t, A(e, 2), ge) : Oo;
+                    }),
+                    (d.mean = function (t) {
+                      return Gs(t, F);
+                    }),
+                    (d.meanBy = function (t, e) {
+                      return Gs(t, A(e, 2));
+                    }),
+                    (d.min = function (t) {
+                      return t && t.length ? se(t, F, De) : Oo;
+                    }),
+                    (d.minBy = function (t, e) {
+                      return t && t.length ? se(t, A(e, 2), De) : Oo;
+                    }),
+                    (d.stubArray = Fo),
+                    (d.stubFalse = Qo),
+                    (d.stubObject = function () {
+                      return {};
+                    }),
+                    (d.stubString = function () {
+                      return '';
+                    }),
+                    (d.stubTrue = function () {
+                      return !0;
+                    }),
+                    (d.multiply = Po),
+                    (d.nth = function (t, e) {
+                      return t && t.length ? _e(t, M(e)) : Oo;
+                    }),
+                    (d.noConflict = function () {
+                      return oa._ === this && (oa._ = X), this;
+                    }),
+                    (d.noop = Co),
+                    (d.now = ri),
+                    (d.pad = function (t, e, n) {
+                      t = p(t);
+                      var r = (e = M(e)) ? fa(t) : 0;
+                      return !e || e <= r ? t : Fn(dt((e = (e - r) / 2)), n) + t + Fn(pt(e), n);
+                    }),
+                    (d.padEnd = function (t, e, n) {
+                      t = p(t);
+                      var r = (e = M(e)) ? fa(t) : 0;
+                      return e && r < e ? t + Fn(e - r, n) : t;
+                    }),
+                    (d.padStart = function (t, e, n) {
+                      t = p(t);
+                      var r = (e = M(e)) ? fa(t) : 0;
+                      return e && r < e ? Fn(e - r, n) + t : t;
+                    }),
+                    (d.parseInt = function (t, e, n) {
+                      return (e = n || null == e ? 0 : e && +e), yt(p(t).replace(Xa, ''), e || 0);
+                    }),
+                    (d.random = function (t, e, n) {
+                      var r;
+                      return (
+                        n && 'boolean' != typeof n && h(t, e, n) && (e = n = Oo),
+                        n === Oo &&
+                          ('boolean' == typeof e
+                            ? ((n = e), (e = Oo))
+                            : 'boolean' == typeof t && ((n = t), (t = Oo))),
+                        t === Oo && e === Oo
+                          ? ((t = 0), (e = 1))
+                          : ((t = Ti(t)), e === Oo ? ((e = t), (t = 0)) : (e = Ti(e))),
+                        e < t && ((r = t), (t = e), (e = r)),
+                        n || t % 1 || e % 1
+                          ? ((r = wt()), x(t + r * (e - t + ws('1e-' + ((r + '').length - 1))), e))
+                          : Pe(t, e)
+                      );
+                    }),
+                    (d.reduce = function (t, e, n) {
+                      var r = Y(t) ? Rs : Hs,
+                        i = arguments.length < 3;
+                      return r(t, A(e, 4), n, i, ie);
+                    }),
+                    (d.reduceRight = function (t, e, n) {
+                      var r = Y(t) ? Us : Hs,
+                        i = arguments.length < 3;
+                      return r(t, A(e, 4), n, i, oe);
+                    }),
+                    (d.repeat = function (t, e, n) {
+                      return (e = (n ? h(t, e, n) : e === Oo) ? 1 : M(e)), Le(p(t), e);
+                    }),
+                    (d.replace = function () {
+                      var t = arguments,
+                        e = p(t[0]);
+                      return t.length < 3 ? e : e.replace(t[1], t[2]);
+                    }),
+                    (d.result = function (t, e, n) {
+                      var r = -1,
+                        i = (e = an(e, t)).length;
+                      for (i || ((i = 1), (t = Oo)); ++r < i; ) {
+                        var o = null == t ? Oo : t[Er(e[r])];
+                        o === Oo && ((r = i), (o = n)), (t = wi(o) ? o.call(t) : o);
+                      }
+                      return t;
+                    }),
+                    (d.round = Lo),
+                    (d.runInContext = i),
+                    (d.sample = function (t) {
+                      return (Y(t) ? Ht : Ye)(t);
+                    }),
+                    (d.size = function (t) {
+                      if (null == t) return 0;
+                      if (c(t)) return Si(t) ? fa(t) : t.length;
+                      var e = P(t);
+                      return e == Wo || e == Xo ? t.size : Ie(t).length;
+                    }),
+                    (d.snakeCase = uo),
+                    (d.some = function (t, e, n) {
+                      return (Y(t) ? Ns : je)(t, A((e = n && h(t, e, n) ? Oo : e), 3));
+                    }),
+                    (d.sortedIndex = function (t, e) {
+                      return Ve(t, e);
+                    }),
+                    (d.sortedIndexBy = function (t, e, n) {
+                      return qe(t, e, A(n, 2));
+                    }),
+                    (d.sortedIndexOf = function (t, e) {
+                      var n = null == t ? 0 : t.length;
+                      if (n) {
+                        var r = Ve(t, e);
+                        if (r < n && L(t[r], e)) return r;
+                      }
+                      return -1;
+                    }),
+                    (d.sortedLastIndex = function (t, e) {
+                      return Ve(t, e, !0);
+                    }),
+                    (d.sortedLastIndexBy = function (t, e, n) {
+                      return qe(t, e, A(n, 2), !0);
+                    }),
+                    (d.sortedLastIndexOf = function (t, e) {
+                      if (null == t ? 0 : t.length) {
+                        var n = Ve(t, e, !0) - 1;
+                        if (L(t[n], e)) return n;
+                      }
+                      return -1;
+                    }),
+                    (d.startCase = co),
+                    (d.startsWith = function (t, e, n) {
+                      return (
+                        (t = p(t)),
+                        (n = null == n ? 0 : te(M(n), 0, t.length)),
+                        (e = u(e)),
+                        t.slice(n, n + e.length) == e
+                      );
+                    }),
+                    (d.subtract = Yo),
+                    (d.sum = function (t) {
+                      return t && t.length ? js(t, F) : 0;
+                    }),
+                    (d.sumBy = function (t, e) {
+                      return t && t.length ? js(t, A(e, 2)) : 0;
+                    }),
+                    (d.template = function (a, t, e) {
+                      var s,
+                        l,
+                        n = d.templateSettings;
+                      e && h(a, t, e) && (t = Oo), (a = p(a)), (t = Li({}, t, n, Yn));
+                      var r = S((e = Li({}, t.imports, n.imports, Yn))),
+                        i = Ws(e, r),
+                        u = 0,
+                        n = t.interpolate || ps,
+                        c = "__p += '",
+                        e = R(
+                          (t.escape || ps).source +
+                            '|' +
+                            n.source +
+                            '|' +
+                            (n === Va ? os : ps).source +
+                            '|' +
+                            (t.evaluate || ps).source +
+                            '|$',
+                          'g',
+                        ),
+                        o =
+                          '//# sourceURL=' +
+                          (U.call(t, 'sourceURL')
+                            ? (t.sourceURL + '').replace(/\s/g, ' ')
+                            : 'lodash.templateSources[' + ++ys + ']') +
+                          '\n';
+                      if (
+                        (a.replace(e, function (t, e, n, r, i, o) {
+                          return (
+                            (n = n || r),
+                            (c += a.slice(u, o).replace(ds, tl)),
+                            e && ((s = !0), (c += "' +\n__e(" + e + ") +\n'")),
+                            i && ((l = !0), (c += "';\n" + i + ";\n__p += '")),
+                            n && (c += "' +\n((__t = (" + n + ")) == null ? '' : __t) +\n'"),
+                            (u = o + t.length),
+                            t
+                          );
+                        }),
+                        (c += "';\n"),
+                        (n = U.call(t, 'variable') && t.variable))
+                      ) {
+                        if (rs.test(n))
+                          throw new Q('Invalid `variable` option passed into `_.template`');
+                      } else c = 'with (obj) {\n' + c + '\n}\n';
+                      if (
+                        ((c = (l ? c.replace(Na, '') : c).replace(Pa, '$1').replace(La, '$1;')),
+                        (c =
+                          'function(' +
+                          (n || 'obj') +
+                          ') {\n' +
+                          (n ? '' : 'obj || (obj = {});\n') +
+                          "var __t, __p = ''" +
+                          (s ? ', __e = _.escape' : '') +
+                          (l
+                            ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n"
+                            : ';\n') +
+                          c +
+                          'return __p\n}'),
+                        ((e = fo(function () {
+                          return _(r, o + 'return ' + c).apply(Oo, i);
+                        })).source = c),
+                        yi(e))
+                      )
+                        throw e;
+                      return e;
+                    }),
+                    (d.times = function (t, e) {
+                      if ((t = M(t)) < 1 || zo < t) return [];
+                      for (
+                        var n = Ho, r = x(t, Ho), r = ((e = A(e)), (t -= Ho), Vs(r, e));
+                        ++n < t;
+
+                      )
+                        e(n);
+                      return r;
+                    }),
+                    (d.toFinite = Ti),
+                    (d.toInteger = M),
+                    (d.toLength = Ri),
+                    (d.toLower = function (t) {
+                      return p(t).toLowerCase();
+                    }),
+                    (d.toNumber = D),
+                    (d.toSafeInteger = function (t) {
+                      return t ? te(M(t), -zo, zo) : 0 === t ? t : 0;
+                    }),
+                    (d.toString = p),
+                    (d.toUpper = function (t) {
+                      return p(t).toUpperCase();
+                    }),
+                    (d.trim = function (t, e, n) {
+                      return (t = p(t)) && (n || e === Oo)
+                        ? qs(t)
+                        : t && (e = u(e))
+                          ? ((n = ga(t)), (t = ga(e)), ln(n, Ks(n, t), Zs(n, t) + 1).join(''))
+                          : t;
+                    }),
+                    (d.trimEnd = function (t, e, n) {
+                      return (t = p(t)) && (n || e === Oo)
+                        ? t.slice(0, il(t) + 1)
+                        : t && (e = u(e))
+                          ? ln((n = ga(t)), 0, Zs(n, ga(e)) + 1).join('')
+                          : t;
+                    }),
+                    (d.trimStart = function (t, e, n) {
+                      return (t = p(t)) && (n || e === Oo)
+                        ? t.replace(Xa, '')
+                        : t && (e = u(e))
+                          ? ln((n = ga(t)), Ks(n, ga(e))).join('')
+                          : t;
+                    }),
+                    (d.truncate = function (t, e) {
+                      var n,
+                        r = 30,
+                        i = '...',
+                        e =
+                          (w(e) &&
+                            ((n = 'separator' in e ? e.separator : n),
+                            (r = 'length' in e ? M(e.length) : r),
+                            (i = 'omission' in e ? u(e.omission) : i)),
+                          (t = p(t)).length);
+                      if ((e = pa(t) ? (o = ga(t)).length : e) <= r) return t;
+                      if ((e = r - fa(i)) < 1) return i;
+                      var o,
+                        r = o ? ln(o, 0, e).join('') : t.slice(0, e);
+                      if (n !== Oo)
+                        if ((o && (e += r.length - e), Mi(n))) {
+                          if (t.slice(e).search(n)) {
+                            var a,
+                              s = r;
+                            for (
+                              (n = n.global ? n : R(n.source, p(as.exec(n)) + 'g')).lastIndex = 0;
+                              (a = n.exec(s));
+
+                            )
+                              var l = a.index;
+                            r = r.slice(0, l === Oo ? e : l);
+                          }
+                        } else
+                          t.indexOf(u(n), e) == e ||
+                            (-1 < (o = r.lastIndexOf(n)) && (r = r.slice(0, o)));
+                      return r + i;
+                    }),
+                    (d.unescape = function (t) {
+                      return (t = p(t)) && Ga.test(t) ? t.replace(Ya, ol) : t;
+                    }),
+                    (d.uniqueId = function (t) {
+                      var e = ++W;
+                      return p(t) + e;
+                    }),
+                    (d.upperCase = Ao),
+                    (d.upperFirst = ho),
+                    (d.each = Jr),
+                    (d.eachRight = Kr),
+                    (d.first = Dr),
+                    Bo(
+                      d,
+                      ((No = {}),
+                      Ae(d, function (t, e) {
+                        U.call(d.prototype, e) || (No[e] = t);
+                      }),
+                      No),
+                      { chain: !1 },
+                    ),
+                    (d.VERSION = '4.17.21'),
+                    sa(
+                      ['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'],
+                      function (t) {
+                        d[t].placeholder = d;
+                      },
+                    ),
+                    sa(['drop', 'take'], function (n, r) {
+                      (m.prototype[n] = function (t) {
+                        t = t === Oo ? 1 : C(M(t), 0);
+                        var e = this.__filtered__ && !r ? new m(this) : this.clone();
+                        return (
+                          e.__filtered__
+                            ? (e.__takeCount__ = x(t, e.__takeCount__))
+                            : e.__views__.push({
+                                size: x(t, Ho),
+                                type: n + (e.__dir__ < 0 ? 'Right' : ''),
+                              }),
+                          e
+                        );
+                      }),
+                        (m.prototype[n + 'Right'] = function (t) {
+                          return this.reverse()[n](t).reverse();
+                        });
+                    }),
+                    sa(['filter', 'map', 'takeWhile'], function (t, e) {
+                      var n = e + 1,
+                        r = 1 == n || 3 == n;
+                      m.prototype[t] = function (t) {
+                        var e = this.clone();
+                        return (
+                          e.__iteratees__.push({ iteratee: A(t, 3), type: n }),
+                          (e.__filtered__ = e.__filtered__ || r),
+                          e
+                        );
+                      };
+                    }),
+                    sa(['head', 'last'], function (t, e) {
+                      var n = 'take' + (e ? 'Right' : '');
+                      m.prototype[t] = function () {
+                        return this[n](1).value()[0];
+                      };
+                    }),
+                    sa(['initial', 'tail'], function (t, e) {
+                      var n = 'drop' + (e ? '' : 'Right');
+                      m.prototype[t] = function () {
+                        return this.__filtered__ ? new m(this) : this[n](1);
+                      };
+                    }),
+                    (m.prototype.compact = function () {
+                      return this.filter(F);
+                    }),
+                    (m.prototype.find = function (t) {
+                      return this.filter(t).head();
+                    }),
+                    (m.prototype.findLast = function (t) {
+                      return this.reverse().find(t);
+                    }),
+                    (m.prototype.invokeMap = a(function (e, n) {
+                      return 'function' == typeof e
+                        ? new m(this)
+                        : this.map(function (t) {
+                            return ye(t, e, n);
+                          });
+                    })),
+                    (m.prototype.reject = function (t) {
+                      return this.filter(Ai(A(t)));
+                    }),
+                    (m.prototype.slice = function (t, e) {
+                      t = M(t);
+                      var n = this;
+                      return n.__filtered__ && (0 < t || e < 0)
+                        ? new m(n)
+                        : (t < 0 ? (n = n.takeRight(-t)) : t && (n = n.drop(t)),
+                          e !== Oo ? ((e = M(e)) < 0 ? n.dropRight(-e) : n.take(e - t)) : n);
+                    }),
+                    (m.prototype.takeRightWhile = function (t) {
+                      return this.reverse().takeWhile(t).reverse();
+                    }),
+                    (m.prototype.toArray = function () {
+                      return this.take(Ho);
+                    }),
+                    Ae(m.prototype, function (u, t) {
+                      var c = /^(?:filter|find|map|reject)|While$/.test(t),
+                        A = /^(?:head|last)$/.test(t),
+                        h = d[A ? 'take' + ('last' == t ? 'Right' : '') : t],
+                        p = A || /^find/.test(t);
+                      h &&
+                        (d.prototype[t] = function () {
+                          function t(t) {
+                            return (t = h.apply(d, ca([t], r))), A && s ? t[0] : t;
+                          }
+                          var e,
+                            n = this.__wrapped__,
+                            r = A ? [1] : arguments,
+                            i = n instanceof m,
+                            o = r[0],
+                            a = i || Y(n),
+                            s =
+                              (a && c && 'function' == typeof o && 1 != o.length && (i = a = !1),
+                              this.__chain__),
+                            o = !!this.__actions__.length,
+                            l = p && !s,
+                            i = i && !o;
+                          return !p && a
+                            ? ((n = i ? n : new m(this)),
+                              (e = u.apply(n, r)).__actions__.push({
+                                func: Hr,
+                                args: [t],
+                                thisArg: Oo,
+                              }),
+                              new g(e, s))
+                            : l && i
+                              ? u.apply(this, r)
+                              : ((e = this.thru(t)), l ? (A ? e.value()[0] : e.value()) : e);
+                        });
+                    }),
+                    sa(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function (t) {
+                      var n = z[t],
+                        r = /^(?:push|sort|unshift)$/.test(t) ? 'tap' : 'thru',
+                        i = /^(?:pop|shift)$/.test(t);
+                      d.prototype[t] = function () {
+                        var t,
+                          e = arguments;
+                        return i && !this.__chain__
+                          ? ((t = this.value()), n.apply(Y(t) ? t : [], e))
+                          : this[r](function (t) {
+                              return n.apply(Y(t) ? t : [], e);
+                            });
+                      };
+                    }),
+                    Ae(m.prototype, function (t, e) {
+                      var n,
+                        r = d[e];
+                      r &&
+                        ((n = r.name + ''),
+                        U.call(Dt, n) || (Dt[n] = []),
+                        Dt[n].push({ name: e, func: r }));
+                    }),
+                    (Dt[Mn(Oo, 2).name] = [{ name: 'wrapper', func: Oo }]),
+                    (m.prototype.clone = function () {
+                      var t = new m(this.__wrapped__);
+                      return (
+                        (t.__actions__ = I(this.__actions__)),
+                        (t.__dir__ = this.__dir__),
+                        (t.__filtered__ = this.__filtered__),
+                        (t.__iteratees__ = I(this.__iteratees__)),
+                        (t.__takeCount__ = this.__takeCount__),
+                        (t.__views__ = I(this.__views__)),
+                        t
+                      );
+                    }),
+                    (m.prototype.reverse = function () {
+                      var t;
+                      return (
+                        this.__filtered__
+                          ? (((t = new m(this)).__dir__ = -1), (t.__filtered__ = !0))
+                          : ((t = this.clone()).__dir__ *= -1),
+                        t
+                      );
+                    }),
+                    (m.prototype.value = function () {
+                      var t = this.__wrapped__.value(),
+                        e = this.__dir__,
+                        n = Y(t),
+                        r = e < 0,
+                        i = n ? t.length : 0,
+                        o = (function (t, e, n) {
+                          var r = -1,
+                            i = n.length;
+                          for (; ++r < i; ) {
+                            var o = n[r],
+                              a = o.size;
+                            switch (o.type) {
+                              case 'drop':
+                                t += a;
+                                break;
+                              case 'dropRight':
+                                e -= a;
+                                break;
+                              case 'take':
+                                e = x(e, t + a);
+                                break;
+                              case 'takeRight':
+                                t = C(t, e - a);
+                            }
+                          }
+                          return { start: t, end: e };
+                        })(0, i, this.__views__),
+                        a = o.start,
+                        s = (o = o.end) - a,
+                        l = r ? o : a - 1,
+                        u = this.__iteratees__,
+                        c = u.length,
+                        A = 0,
+                        h = x(s, this.__takeCount__);
+                      if (!n || (!r && i == s && h == s)) return tn(t, this.__actions__);
+                      var p = [];
+                      t: for (; s-- && A < h; ) {
+                        for (var d = -1, f = t[(l += e)]; ++d < c; ) {
+                          var g = u[d],
+                            m = g.iteratee,
+                            g = g.type,
+                            m = m(f);
+                          if (2 == g) f = m;
+                          else if (!m) {
+                            if (1 == g) continue t;
+                            break t;
+                          }
+                        }
+                        p[A++] = f;
+                      }
+                      return p;
+                    }),
+                    (d.prototype.at = jr),
+                    (d.prototype.chain = function () {
+                      return zr(this);
+                    }),
+                    (d.prototype.commit = function () {
+                      return new g(this.value(), this.__chain__);
+                    }),
+                    (d.prototype.next = function () {
+                      this.__values__ === Oo && (this.__values__ = _i(this.value()));
+                      var t = this.__index__ >= this.__values__.length;
+                      return { done: t, value: t ? Oo : this.__values__[this.__index__++] };
+                    }),
+                    (d.prototype.plant = function (t) {
+                      for (var e, n = this; n instanceof Pt; )
+                        var r = Cr(n),
+                          i =
+                            ((r.__index__ = 0),
+                            (r.__values__ = Oo),
+                            e ? (i.__wrapped__ = r) : (e = r),
+                            r),
+                          n = n.__wrapped__;
+                      return (i.__wrapped__ = t), e;
+                    }),
+                    (d.prototype.reverse = function () {
+                      var t = this.__wrapped__;
+                      return t instanceof m
+                        ? ((t = t),
+                          (t = (t = this.__actions__.length
+                            ? new m(this)
+                            : t).reverse()).__actions__.push({ func: Hr, args: [Fr], thisArg: Oo }),
+                          new g(t, this.__chain__))
+                        : this.thru(Fr);
+                    }),
+                    (d.prototype.toJSON =
+                      d.prototype.valueOf =
+                      d.prototype.value =
+                        function () {
+                          return tn(this.__wrapped__, this.__actions__);
+                        }),
+                    (d.prototype.first = d.prototype.head),
+                    st &&
+                      (d.prototype[st] = function () {
+                        return this;
+                      }),
+                    d
+                  );
+                })();
+                i ? (((i.exports = ma)._ = ma), (r._ = ma)) : (oa._ = ma);
+              }.call(this);
+            }.call(this);
+          }.call(
+            this,
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+          );
+        },
+        {},
+      ],
+      45: [
+        function (t, e, n) {
+          !function (s) {
+            !function () {
+              'use strict';
+              void 0 === s ||
+              !s.version ||
+              0 === s.version.indexOf('v0.') ||
+              (0 === s.version.indexOf('v1.') && 0 !== s.version.indexOf('v1.8.'))
+                ? (e.exports = {
+                    nextTick: function (t, e, n, r) {
+                      if ('function' != typeof t)
+                        throw new TypeError('"callback" argument must be a function');
+                      var i,
+                        o,
+                        a = arguments.length;
+                      switch (a) {
+                        case 0:
+                        case 1:
+                          return s.nextTick(t);
+                        case 2:
+                          return s.nextTick(function () {
+                            t.call(null, e);
+                          });
+                        case 3:
+                          return s.nextTick(function () {
+                            t.call(null, e, n);
+                          });
+                        case 4:
+                          return s.nextTick(function () {
+                            t.call(null, e, n, r);
+                          });
+                        default:
+                          for (i = new Array(a - 1), o = 0; o < i.length; ) i[o++] = arguments[o];
+                          return s.nextTick(function () {
+                            t.apply(null, i);
+                          });
+                      }
+                    },
+                  })
+                : (e.exports = s);
+            }.call(this);
+          }.call(this, t('_process'));
+        },
+        { _process: 46 },
+      ],
+      46: [
+        function (t, e, n) {
+          var r,
+            i,
+            e = (e.exports = {});
+          function o() {
+            throw new Error('setTimeout has not been defined');
+          }
+          function a() {
+            throw new Error('clearTimeout has not been defined');
+          }
+          try {
+            r = 'function' == typeof setTimeout ? setTimeout : o;
+          } catch (t) {
+            r = o;
+          }
+          try {
+            i = 'function' == typeof clearTimeout ? clearTimeout : a;
+          } catch (t) {
+            i = a;
+          }
+          function s(e) {
+            if (r === setTimeout) return setTimeout(e, 0);
+            if ((r === o || !r) && setTimeout) return (r = setTimeout)(e, 0);
+            try {
+              return r(e, 0);
+            } catch (t) {
+              try {
+                return r.call(null, e, 0);
+              } catch (t) {
+                return r.call(this, e, 0);
+              }
+            }
+          }
+          var l,
+            u = [],
+            c = !1,
+            A = -1;
+          function h() {
+            c && l && ((c = !1), l.length ? (u = l.concat(u)) : (A = -1), u.length && p());
+          }
+          function p() {
+            if (!c) {
+              for (var t = s(h), e = ((c = !0), u.length); e; ) {
+                for (l = u, u = []; ++A < e; ) l && l[A].run();
+                (A = -1), (e = u.length);
+              }
+              (l = null),
+                (c = !1),
+                !(function (e) {
+                  if (i === clearTimeout) return clearTimeout(e);
+                  if ((i === a || !i) && clearTimeout) return (i = clearTimeout)(e);
+                  try {
+                    i(e);
+                  } catch (t) {
+                    try {
+                      return i.call(null, e);
+                    } catch (t) {
+                      return i.call(this, e);
+                    }
+                  }
+                })(t);
+            }
+          }
+          function d(t, e) {
+            (this.fun = t), (this.array = e);
+          }
+          function f() {}
+          (e.nextTick = function (t) {
+            var e = new Array(arguments.length - 1);
+            if (1 < arguments.length)
+              for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
+            u.push(new d(t, e)), 1 !== u.length || c || s(p);
+          }),
+            (d.prototype.run = function () {
+              this.fun.apply(null, this.array);
+            }),
+            (e.title = 'browser'),
+            (e.browser = !0),
+            (e.env = {}),
+            (e.argv = []),
+            (e.version = ''),
+            (e.versions = {}),
+            (e.on = f),
+            (e.addListener = f),
+            (e.once = f),
+            (e.off = f),
+            (e.removeListener = f),
+            (e.removeAllListeners = f),
+            (e.emit = f),
+            (e.prependListener = f),
+            (e.prependOnceListener = f),
+            (e.listeners = function (t) {
+              return [];
+            }),
+            (e.binding = function (t) {
+              throw new Error('process.binding is not supported');
+            }),
+            (e.cwd = function () {
+              return '/';
+            }),
+            (e.chdir = function (t) {
+              throw new Error('process.chdir is not supported');
+            }),
+            (e.umask = function () {
+              return 0;
+            });
+        },
+        {},
+      ],
+      47: [
+        function (t, D, S) {
+          !function (M) {
+            !function () {
+              var t = this,
+                e = 'object' == typeof S && S && !S.nodeType && S,
+                n = 'object' == typeof D && D && !D.nodeType && D,
+                r = 'object' == typeof M && M;
+              (r.global !== r && r.window !== r && r.self !== r) || (t = r);
+              var i,
+                o,
+                g = 2147483647,
+                m = 36,
+                v = 26,
+                a = 38,
+                s = 700,
+                l = /^xn--/,
+                u = /[^\x20-\x7E]/,
+                c = /[\x2E\u3002\uFF0E\uFF61]/g,
+                A = {
+                  overflow: 'Overflow: input needs wider integers to process',
+                  'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
+                  'invalid-input': 'Invalid input',
+                },
+                h = m - 1,
+                b = Math.floor,
+                y = String.fromCharCode;
+              function w(t) {
+                throw new RangeError(A[t]);
+              }
+              function p(t, e) {
+                for (var n = t.length, r = []; n--; ) r[n] = e(t[n]);
+                return r;
+              }
+              function d(t, e) {
+                var n = t.split('@'),
+                  r = '',
+                  n =
+                    (1 < n.length && ((r = n[0] + '@'), (t = n[1])),
+                    (t = t.replace(c, '.')).split('.'));
+                return r + p(n, e).join('.');
+              }
+              function E(t) {
+                for (var e, n, r = [], i = 0, o = t.length; i < o; )
+                  55296 <= (e = t.charCodeAt(i++)) && e <= 56319 && i < o
+                    ? 56320 == (64512 & (n = t.charCodeAt(i++)))
+                      ? r.push(((1023 & e) << 10) + (1023 & n) + 65536)
+                      : (r.push(e), i--)
+                    : r.push(e);
+                return r;
+              }
+              function f(t) {
+                return p(t, function (t) {
+                  var e = '';
+                  return (
+                    65535 < t &&
+                      ((e += y((((t -= 65536) >>> 10) & 1023) | 55296)), (t = 56320 | (1023 & t))),
+                    (e += y(t))
+                  );
+                }).join('');
+              }
+              function B(t, e) {
+                return t + 22 + 75 * (t < 26) - ((0 != e) << 5);
+              }
+              function C(t, e, n) {
+                var r = 0;
+                for (t = n ? b(t / s) : t >> 1, t += b(t / e); (h * v) >> 1 < t; r += m)
+                  t = b(t / h);
+                return b(r + ((h + 1) * t) / (t + a));
+              }
+              function x(t) {
+                var e,
+                  n,
+                  r,
+                  i,
+                  o,
+                  a,
+                  s,
+                  l = [],
+                  u = t.length,
+                  c = 0,
+                  A = 128,
+                  h = 72,
+                  p = t.lastIndexOf('-');
+                for (p < 0 && (p = 0), n = 0; n < p; ++n)
+                  128 <= t.charCodeAt(n) && w('not-basic'), l.push(t.charCodeAt(n));
+                for (r = 0 < p ? p + 1 : 0; r < u; ) {
+                  for (
+                    i = c, o = 1, a = m;
+                    u <= r && w('invalid-input'),
+                      (s = t.charCodeAt(r++)),
+                      (m <=
+                        (s =
+                          s - 48 < 10 ? s - 22 : s - 65 < 26 ? s - 65 : s - 97 < 26 ? s - 97 : m) ||
+                        s > b((g - c) / o)) &&
+                        w('overflow'),
+                      (c += s * o),
+                      !(s < (s = a <= h ? 1 : h + v <= a ? v : a - h));
+                    a += m
+                  )
+                    o > b(g / (s = m - s)) && w('overflow'), (o *= s);
+                  (h = C(c - i, (e = l.length + 1), 0 == i)),
+                    b(c / e) > g - A && w('overflow'),
+                    (A += b(c / e)),
+                    (c %= e),
+                    l.splice(c++, 0, A);
+                }
+                return f(l);
+              }
+              function I(t) {
+                for (
+                  var e,
+                    n,
+                    r,
+                    i,
+                    o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c,
+                    A = [],
+                    h = (t = E(t)).length,
+                    p = 128,
+                    d = 72,
+                    f = (e = 0);
+                  f < h;
+                  ++f
+                )
+                  (s = t[f]) < 128 && A.push(y(s));
+                for (n = r = A.length, r && A.push('-'); n < h; ) {
+                  for (i = g, f = 0; f < h; ++f) p <= (s = t[f]) && s < i && (i = s);
+                  for (
+                    i - p > b((g - e) / (l = n + 1)) && w('overflow'),
+                      e += (i - p) * l,
+                      p = i,
+                      f = 0;
+                    f < h;
+                    ++f
+                  )
+                    if (((s = t[f]) < p && ++e > g && w('overflow'), s == p)) {
+                      for (o = e, a = m; !(o < (u = a <= d ? 1 : d + v <= a ? v : a - d)); a += m)
+                        A.push(y(B(u + ((c = o - u) % (u = m - u)), 0))), (o = b(c / u));
+                      A.push(y(B(o, 0))), (d = C(e, l, n == r)), (e = 0), ++n;
+                    }
+                  ++e, ++p;
+                }
+                return A.join('');
+              }
+              if (
+                ((i = {
+                  version: '1.4.1',
+                  ucs2: { decode: E, encode: f },
+                  decode: x,
+                  encode: I,
+                  toASCII: function (t) {
+                    return d(t, function (t) {
+                      return u.test(t) ? 'xn--' + I(t) : t;
+                    });
+                  },
+                  toUnicode: function (t) {
+                    return d(t, function (t) {
+                      return l.test(t) ? x(t.slice(4).toLowerCase()) : t;
+                    });
+                  },
+                }),
+                e && n)
+              )
+                if (D.exports == e) n.exports = i;
+                else for (o in i) i.hasOwnProperty(o) && (e[o] = i[o]);
+              else t.punycode = i;
+            }.call(this);
+          }.call(
+            this,
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+          );
+        },
+        {},
+      ],
+      48: [
+        function (t, e, n) {
+          'use strict';
+          e.exports = function (t, e, n, r) {
+            (e = e || '&'), (n = n || '=');
+            var i = {};
+            if ('string' == typeof t && 0 !== t.length) {
+              var o = /\+/g,
+                e = ((t = t.split(e)), 1e3),
+                a = (r && 'number' == typeof r.maxKeys && (e = r.maxKeys), t.length);
+              0 < e && e < a && (a = e);
+              for (var s = 0; s < a; ++s) {
+                var l,
+                  u = t[s].replace(o, '%20'),
+                  c = u.indexOf(n),
+                  c = 0 <= c ? ((l = u.substr(0, c)), u.substr(c + 1)) : ((l = u), ''),
+                  u = decodeURIComponent(l),
+                  c = decodeURIComponent(c);
+                Object.prototype.hasOwnProperty.call(i, u)
+                  ? A(i[u])
+                    ? i[u].push(c)
+                    : (i[u] = [i[u], c])
+                  : (i[u] = c);
+              }
+            }
+            return i;
+          };
+          var A =
+            Array.isArray ||
+            function (t) {
+              return '[object Array]' === Object.prototype.toString.call(t);
+            };
+        },
+        {},
+      ],
+      49: [
+        function (t, e, n) {
+          'use strict';
+          function o(t) {
+            switch (typeof t) {
+              case 'string':
+                return t;
+              case 'boolean':
+                return t ? 'true' : 'false';
+              case 'number':
+                return isFinite(t) ? t : '';
+              default:
+                return '';
+            }
+          }
+          e.exports = function (n, r, i, t) {
+            return (
+              (r = r || '&'),
+              (i = i || '='),
+              'object' == typeof (n = null === n ? void 0 : n)
+                ? s(l(n), function (t) {
+                    var e = encodeURIComponent(o(t)) + i;
+                    return a(n[t])
+                      ? s(n[t], function (t) {
+                          return e + encodeURIComponent(o(t));
+                        }).join(r)
+                      : e + encodeURIComponent(o(n[t]));
+                  }).join(r)
+                : t
+                  ? encodeURIComponent(o(t)) + i + encodeURIComponent(o(n))
+                  : ''
+            );
+          };
+          var a =
+            Array.isArray ||
+            function (t) {
+              return '[object Array]' === Object.prototype.toString.call(t);
+            };
+          function s(t, e) {
+            if (t.map) return t.map(e);
+            for (var n = [], r = 0; r < t.length; r++) n.push(e(t[r], r));
+            return n;
+          }
+          var l =
+            Object.keys ||
+            function (t) {
+              var e,
+                n = [];
+              for (e in t) Object.prototype.hasOwnProperty.call(t, e) && n.push(e);
+              return n;
+            };
+        },
+        {},
+      ],
+      50: [
+        function (t, e, n) {
+          'use strict';
+          (n.decode = n.parse = t('./decode')), (n.encode = n.stringify = t('./encode'));
+        },
+        { './decode': 48, './encode': 49 },
+      ],
+      51: [
+        function (t, e, n) {
+          'use strict';
+          var r = t('process-nextick-args'),
+            i =
+              Object.keys ||
+              function (t) {
+                var e,
+                  n = [];
+                for (e in t) n.push(e);
+                return n;
+              },
+            e = ((e.exports = c), Object.create(t('core-util-is'))),
+            o = ((e.inherits = t('inherits')), t('./_stream_readable')),
+            a = t('./_stream_writable');
+          e.inherits(c, o);
+          for (var s = i(a.prototype), l = 0; l < s.length; l++) {
+            var u = s[l];
+            c.prototype[u] || (c.prototype[u] = a.prototype[u]);
+          }
+          function c(t) {
+            if (!(this instanceof c)) return new c(t);
+            o.call(this, t),
+              a.call(this, t),
+              t && !1 === t.readable && (this.readable = !1),
+              t && !1 === t.writable && (this.writable = !1),
+              (this.allowHalfOpen = !0),
+              t && !1 === t.allowHalfOpen && (this.allowHalfOpen = !1),
+              this.once('end', A);
+          }
+          function A() {
+            this.allowHalfOpen || this._writableState.ended || r.nextTick(h, this);
+          }
+          function h(t) {
+            t.end();
+          }
+          Object.defineProperty(c.prototype, 'writableHighWaterMark', {
+            enumerable: !1,
+            get: function () {
+              return this._writableState.highWaterMark;
+            },
+          }),
+            Object.defineProperty(c.prototype, 'destroyed', {
+              get: function () {
+                return (
+                  void 0 !== this._readableState &&
+                  void 0 !== this._writableState &&
+                  this._readableState.destroyed &&
+                  this._writableState.destroyed
+                );
+              },
+              set: function (t) {
+                void 0 !== this._readableState &&
+                  void 0 !== this._writableState &&
+                  ((this._readableState.destroyed = t), (this._writableState.destroyed = t));
+              },
+            }),
+            (c.prototype._destroy = function (t, e) {
+              this.push(null), this.end(), r.nextTick(e, t);
+            });
+        },
+        {
+          './_stream_readable': 53,
+          './_stream_writable': 55,
+          'core-util-is': 32,
+          inherits: 38,
+          'process-nextick-args': 45,
+        },
+      ],
+      52: [
+        function (t, e, n) {
+          'use strict';
+          e.exports = i;
+          var r = t('./_stream_transform'),
+            e = Object.create(t('core-util-is'));
+          function i(t) {
+            if (!(this instanceof i)) return new i(t);
+            r.call(this, t);
+          }
+          (e.inherits = t('inherits')),
+            e.inherits(i, r),
+            (i.prototype._transform = function (t, e, n) {
+              n(null, t);
+            });
+        },
+        { './_stream_transform': 54, 'core-util-is': 32, inherits: 38 },
+      ],
+      53: [
+        function (Q, _, t) {
+          !function (k, F) {
+            !function () {
+              'use strict';
+              function f(t, e) {
+                return t.listeners(e).length;
+              }
+              var o,
+                g = Q('process-nextick-args'),
+                m = ((_.exports = i), Q('isarray')),
+                n =
+                  ((i.ReadableState = r), Q('events').EventEmitter, Q('./internal/streams/stream')),
+                c = Q('safe-buffer').Buffer,
+                A = F.Uint8Array || function () {};
+              var a,
+                t = Object.create(Q('core-util-is')),
+                e = ((t.inherits = Q('inherits')), Q('util')),
+                v = void 0,
+                v = e && e.debuglog ? e.debuglog('stream') : function () {},
+                s = Q('./internal/streams/BufferList'),
+                e = Q('./internal/streams/destroy'),
+                l = (t.inherits(i, n), ['error', 'close', 'destroy', 'pause', 'resume']);
+              function r(t, e) {
+                t = t || {};
+                var e = e instanceof (o = o || Q('./_stream_duplex')),
+                  n =
+                    ((this.objectMode = !!t.objectMode),
+                    e && (this.objectMode = this.objectMode || !!t.readableObjectMode),
+                    t.highWaterMark),
+                  r = t.readableHighWaterMark,
+                  i = this.objectMode ? 16 : 16384;
+                (this.highWaterMark = n || 0 === n ? n : e && (r || 0 === r) ? r : i),
+                  (this.highWaterMark = Math.floor(this.highWaterMark)),
+                  (this.buffer = new s()),
+                  (this.length = 0),
+                  (this.pipes = null),
+                  (this.pipesCount = 0),
+                  (this.flowing = null),
+                  (this.ended = !1),
+                  (this.endEmitted = !1),
+                  (this.reading = !1),
+                  (this.sync = !0),
+                  (this.needReadable = !1),
+                  (this.emittedReadable = !1),
+                  (this.readableListening = !1),
+                  (this.resumeScheduled = !1),
+                  (this.destroyed = !1),
+                  (this.defaultEncoding = t.defaultEncoding || 'utf8'),
+                  (this.awaitDrain = 0),
+                  (this.readingMore = !1),
+                  (this.decoder = null),
+                  (this.encoding = null),
+                  t.encoding &&
+                    ((a = a || Q('string_decoder/').StringDecoder),
+                    (this.decoder = new a(t.encoding)),
+                    (this.encoding = t.encoding));
+              }
+              function i(t) {
+                if (((o = o || Q('./_stream_duplex')), !(this instanceof i))) return new i(t);
+                (this._readableState = new r(t, this)),
+                  (this.readable = !0),
+                  t &&
+                    ('function' == typeof t.read && (this._read = t.read),
+                    'function' == typeof t.destroy && (this._destroy = t.destroy)),
+                  n.call(this);
+              }
+              function u(t, e, n, r, i) {
+                var o,
+                  a,
+                  s,
+                  l,
+                  u = t._readableState;
+                return (
+                  null === e
+                    ? ((u.reading = !1),
+                      (a = t),
+                      (l = u).ended ||
+                        (l.decoder &&
+                          (s = l.decoder.end()) &&
+                          s.length &&
+                          (l.buffer.push(s), (l.length += l.objectMode ? 1 : s.length)),
+                        (l.ended = !0),
+                        b(a)))
+                    : (o = i
+                          ? o
+                          : (function (t, e) {
+                              var n;
+                              !(function (t) {
+                                return c.isBuffer(t) || t instanceof A;
+                              })(e) &&
+                                'string' != typeof e &&
+                                void 0 !== e &&
+                                !t.objectMode &&
+                                (n = new TypeError('Invalid non-string/buffer chunk'));
+                              return n;
+                            })(u, e))
+                      ? t.emit('error', o)
+                      : u.objectMode || (e && 0 < e.length)
+                        ? ('string' == typeof e ||
+                            u.objectMode ||
+                            Object.getPrototypeOf(e) === c.prototype ||
+                            ((s = e), (e = c.from(s))),
+                          r
+                            ? u.endEmitted
+                              ? t.emit('error', new Error('stream.unshift() after end event'))
+                              : h(t, u, e, !0)
+                            : u.ended
+                              ? t.emit('error', new Error('stream.push() after EOF'))
+                              : ((u.reading = !1),
+                                u.decoder && !n
+                                  ? ((e = u.decoder.write(e)),
+                                    u.objectMode || 0 !== e.length ? h(t, u, e, !1) : w(t, u))
+                                  : h(t, u, e, !1)))
+                        : r || (u.reading = !1),
+                  !(l = u).ended && (l.needReadable || l.length < l.highWaterMark || 0 === l.length)
+                );
+              }
+              function h(t, e, n, r) {
+                e.flowing && 0 === e.length && !e.sync
+                  ? (t.emit('data', n), t.read(0))
+                  : ((e.length += e.objectMode ? 1 : n.length),
+                    r ? e.buffer.unshift(n) : e.buffer.push(n),
+                    e.needReadable && b(t)),
+                  w(t, e);
+              }
+              Object.defineProperty(i.prototype, 'destroyed', {
+                get: function () {
+                  return void 0 !== this._readableState && this._readableState.destroyed;
+                },
+                set: function (t) {
+                  this._readableState && (this._readableState.destroyed = t);
+                },
+              }),
+                (i.prototype.destroy = e.destroy),
+                (i.prototype._undestroy = e.undestroy),
+                (i.prototype._destroy = function (t, e) {
+                  this.push(null), e(t);
+                }),
+                (i.prototype.push = function (t, e) {
+                  var n,
+                    r = this._readableState;
+                  return (
+                    r.objectMode
+                      ? (n = !0)
+                      : 'string' == typeof t &&
+                        ((e = e || r.defaultEncoding) !== r.encoding &&
+                          ((t = c.from(t, e)), (e = '')),
+                        (n = !0)),
+                    u(this, t, e, !1, n)
+                  );
+                }),
+                (i.prototype.unshift = function (t) {
+                  return u(this, t, null, !0, !1);
+                }),
+                (i.prototype.isPaused = function () {
+                  return !1 === this._readableState.flowing;
+                }),
+                (i.prototype.setEncoding = function (t) {
+                  return (
+                    (a = a || Q('string_decoder/').StringDecoder),
+                    (this._readableState.decoder = new a(t)),
+                    (this._readableState.encoding = t),
+                    this
+                  );
+                });
+              var p = 8388608;
+              function d(t, e) {
+                return t <= 0 || (0 === e.length && e.ended)
+                  ? 0
+                  : e.objectMode
+                    ? 1
+                    : t != t
+                      ? (e.flowing && e.length ? e.buffer.head.data : e).length
+                      : (t > e.highWaterMark &&
+                          (e.highWaterMark =
+                            (p <= (n = t)
+                              ? (n = p)
+                              : (n--,
+                                (n =
+                                  (n =
+                                    (n = (n = (n |= n >>> 1) | (n >>> 2)) | (n >>> 4)) |
+                                    (n >>> 8)) |
+                                  (n >>> 16)),
+                                n++),
+                            n)),
+                        t <= e.length ? t : e.ended ? e.length : ((e.needReadable = !0), 0));
+                var n;
+              }
+              function b(t) {
+                var e = t._readableState;
+                (e.needReadable = !1),
+                  e.emittedReadable ||
+                    (v('emitReadable', e.flowing),
+                    (e.emittedReadable = !0),
+                    e.sync ? g.nextTick(y, t) : y(t));
+              }
+              function y(t) {
+                v('emit readable'), t.emit('readable'), x(t);
+              }
+              function w(t, e) {
+                e.readingMore || ((e.readingMore = !0), g.nextTick(E, t, e));
+              }
+              function E(t, e) {
+                for (
+                  var n = e.length;
+                  !e.reading &&
+                  !e.flowing &&
+                  !e.ended &&
+                  e.length < e.highWaterMark &&
+                  (v('maybeReadMore read 0'), t.read(0), n !== e.length);
+
+                )
+                  n = e.length;
+                e.readingMore = !1;
+              }
+              function B(t) {
+                v('readable nexttick read 0'), t.read(0);
+              }
+              function C(t, e) {
+                e.reading || (v('resume read 0'), t.read(0)),
+                  (e.resumeScheduled = !1),
+                  (e.awaitDrain = 0),
+                  t.emit('resume'),
+                  x(t),
+                  e.flowing && !e.reading && t.read(0);
+              }
+              function x(t) {
+                var e = t._readableState;
+                for (v('flow', e.flowing); e.flowing && null !== t.read(); );
+              }
+              function I(t, e) {
+                return 0 === e.length
+                  ? null
+                  : (e.objectMode
+                      ? (n = e.buffer.shift())
+                      : !t || t >= e.length
+                        ? ((n = e.decoder
+                            ? e.buffer.join('')
+                            : 1 === e.buffer.length
+                              ? e.buffer.head.data
+                              : e.buffer.concat(e.length)),
+                          e.buffer.clear())
+                        : (n = (function (t, e, n) {
+                            var r;
+                            t < e.head.data.length
+                              ? ((r = e.head.data.slice(0, t)),
+                                (e.head.data = e.head.data.slice(t)))
+                              : (r =
+                                  t === e.head.data.length
+                                    ? e.shift()
+                                    : (n
+                                        ? function (t, e) {
+                                            var n = e.head,
+                                              r = 1,
+                                              i = n.data;
+                                            t -= i.length;
+                                            for (; (n = n.next); ) {
+                                              var o = n.data,
+                                                a = t > o.length ? o.length : t;
+                                              if (
+                                                (a === o.length ? (i += o) : (i += o.slice(0, t)),
+                                                0 === (t -= a))
+                                              ) {
+                                                a === o.length
+                                                  ? (++r,
+                                                    n.next
+                                                      ? (e.head = n.next)
+                                                      : (e.head = e.tail = null))
+                                                  : ((e.head = n).data = o.slice(a));
+                                                break;
+                                              }
+                                              ++r;
+                                            }
+                                            return (e.length -= r), i;
+                                          }
+                                        : function (t, e) {
+                                            var n = c.allocUnsafe(t),
+                                              r = e.head,
+                                              i = 1;
+                                            r.data.copy(n), (t -= r.data.length);
+                                            for (; (r = r.next); ) {
+                                              var o = r.data,
+                                                a = t > o.length ? o.length : t;
+                                              if ((o.copy(n, n.length - t, 0, a), 0 === (t -= a))) {
+                                                a === o.length
+                                                  ? (++i,
+                                                    r.next
+                                                      ? (e.head = r.next)
+                                                      : (e.head = e.tail = null))
+                                                  : ((e.head = r).data = o.slice(a));
+                                                break;
+                                              }
+                                              ++i;
+                                            }
+                                            return (e.length -= i), n;
+                                          })(t, e));
+                            return r;
+                          })(t, e.buffer, e.decoder)),
+                    n);
+                var n;
+              }
+              function M(t) {
+                var e = t._readableState;
+                if (0 < e.length) throw new Error('"endReadable()" called on non-empty stream');
+                e.endEmitted || ((e.ended = !0), g.nextTick(D, e, t));
+              }
+              function D(t, e) {
+                t.endEmitted ||
+                  0 !== t.length ||
+                  ((t.endEmitted = !0), (e.readable = !1), e.emit('end'));
+              }
+              function S(t, e) {
+                for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n;
+                return -1;
+              }
+              (i.prototype.read = function (t) {
+                v('read', t), (t = parseInt(t, 10));
+                var e = this._readableState,
+                  n = t;
+                if (
+                  (0 !== t && (e.emittedReadable = !1),
+                  0 === t && e.needReadable && (e.length >= e.highWaterMark || e.ended))
+                )
+                  return (
+                    v('read: emitReadable', e.length, e.ended),
+                    (0 === e.length && e.ended ? M : b)(this),
+                    null
+                  );
+                if (0 === (t = d(t, e)) && e.ended) return 0 === e.length && M(this), null;
+                var r = e.needReadable;
+                return (
+                  v('need readable', r),
+                  (0 === e.length || e.length - t < e.highWaterMark) &&
+                    v('length less than watermark', (r = !0)),
+                  e.ended || e.reading
+                    ? v('reading or ended', (r = !1))
+                    : r &&
+                      (v('do read'),
+                      (e.reading = !0),
+                      (e.sync = !0),
+                      0 === e.length && (e.needReadable = !0),
+                      this._read(e.highWaterMark),
+                      (e.sync = !1),
+                      e.reading || (t = d(n, e))),
+                  null === (r = 0 < t ? I(t, e) : null)
+                    ? ((e.needReadable = !0), (t = 0))
+                    : (e.length -= t),
+                  0 === e.length &&
+                    (e.ended || (e.needReadable = !0), n !== t && e.ended && M(this)),
+                  null !== r && this.emit('data', r),
+                  r
+                );
+              }),
+                (i.prototype._read = function (t) {
+                  this.emit('error', new Error('_read() is not implemented'));
+                }),
+                (i.prototype.pipe = function (n, t) {
+                  var r = this,
+                    i = this._readableState;
+                  switch (i.pipesCount) {
+                    case 0:
+                      i.pipes = n;
+                      break;
+                    case 1:
+                      i.pipes = [i.pipes, n];
+                      break;
+                    default:
+                      i.pipes.push(n);
+                  }
+                  (i.pipesCount += 1), v('pipe count=%d opts=%j', i.pipesCount, t);
+                  t = (!t || !1 !== t.end) && n !== k.stdout && n !== k.stderr ? a : d;
+                  function o(t, e) {
+                    v('onunpipe'),
+                      t === r &&
+                        e &&
+                        !1 === e.hasUnpiped &&
+                        ((e.hasUnpiped = !0),
+                        v('cleanup'),
+                        n.removeListener('close', h),
+                        n.removeListener('finish', p),
+                        n.removeListener('drain', s),
+                        n.removeListener('error', A),
+                        n.removeListener('unpipe', o),
+                        r.removeListener('end', a),
+                        r.removeListener('end', d),
+                        r.removeListener('data', c),
+                        (l = !0),
+                        !i.awaitDrain || (n._writableState && !n._writableState.needDrain) || s());
+                  }
+                  function a() {
+                    v('onend'), n.end();
+                  }
+                  i.endEmitted ? g.nextTick(t) : r.once('end', t), n.on('unpipe', o);
+                  e = r;
+                  var e,
+                    s = function () {
+                      var t = e._readableState;
+                      v('pipeOnDrain', t.awaitDrain),
+                        t.awaitDrain && t.awaitDrain--,
+                        0 === t.awaitDrain && f(e, 'data') && ((t.flowing = !0), x(e));
+                    },
+                    l = (n.on('drain', s), !1);
+                  var u = !1;
+                  function c(t) {
+                    v('ondata'),
+                      (u = !1) !== n.write(t) ||
+                        u ||
+                        (((1 === i.pipesCount && i.pipes === n) ||
+                          (1 < i.pipesCount && -1 !== S(i.pipes, n))) &&
+                          !l &&
+                          (v('false write response, pause', r._readableState.awaitDrain),
+                          r._readableState.awaitDrain++,
+                          (u = !0)),
+                        r.pause());
+                  }
+                  function A(t) {
+                    v('onerror', t),
+                      d(),
+                      n.removeListener('error', A),
+                      0 === f(n, 'error') && n.emit('error', t);
+                  }
+                  function h() {
+                    n.removeListener('finish', p), d();
+                  }
+                  function p() {
+                    v('onfinish'), n.removeListener('close', h), d();
+                  }
+                  function d() {
+                    v('unpipe'), r.unpipe(n);
+                  }
+                  return (
+                    r.on('data', c),
+                    (function (t, e, n) {
+                      if ('function' == typeof t.prependListener) return t.prependListener(e, n);
+                      t._events && t._events[e]
+                        ? m(t._events[e])
+                          ? t._events[e].unshift(n)
+                          : (t._events[e] = [n, t._events[e]])
+                        : t.on(e, n);
+                    })(n, 'error', A),
+                    n.once('close', h),
+                    n.once('finish', p),
+                    n.emit('pipe', r),
+                    i.flowing || (v('pipe resume'), r.resume()),
+                    n
+                  );
+                }),
+                (i.prototype.unpipe = function (t) {
+                  var e = this._readableState,
+                    n = { hasUnpiped: !1 };
+                  if (0 !== e.pipesCount) {
+                    if (1 === e.pipesCount)
+                      return (
+                        (t && t !== e.pipes) ||
+                          ((t = t || e.pipes),
+                          (e.pipes = null),
+                          (e.pipesCount = 0),
+                          (e.flowing = !1),
+                          t && t.emit('unpipe', this, n)),
+                        this
+                      );
+                    if (t) {
+                      var r = S(e.pipes, t);
+                      -1 !== r &&
+                        (e.pipes.splice(r, 1),
+                        --e.pipesCount,
+                        1 === e.pipesCount && (e.pipes = e.pipes[0]),
+                        t.emit('unpipe', this, n));
+                    } else {
+                      var i = e.pipes,
+                        o = e.pipesCount;
+                      (e.pipes = null), (e.pipesCount = 0), (e.flowing = !1);
+                      for (var a = 0; a < o; a++) i[a].emit('unpipe', this, n);
+                    }
+                  }
+                  return this;
+                }),
+                (i.prototype.addListener = i.prototype.on =
+                  function (t, e) {
+                    e = n.prototype.on.call(this, t, e);
+                    return (
+                      'data' === t
+                        ? !1 !== this._readableState.flowing && this.resume()
+                        : 'readable' !== t ||
+                          (t = this._readableState).endEmitted ||
+                          t.readableListening ||
+                          ((t.readableListening = t.needReadable = !0),
+                          (t.emittedReadable = !1),
+                          t.reading ? t.length && b(this) : g.nextTick(B, this)),
+                      e
+                    );
+                  }),
+                (i.prototype.resume = function () {
+                  var t,
+                    e = this._readableState;
+                  return (
+                    e.flowing ||
+                      (v('resume'),
+                      (e.flowing = !0),
+                      (t = this),
+                      (e = e).resumeScheduled || ((e.resumeScheduled = !0), g.nextTick(C, t, e))),
+                    this
+                  );
+                }),
+                (i.prototype.pause = function () {
+                  return (
+                    v('call pause flowing=%j', this._readableState.flowing),
+                    !1 !== this._readableState.flowing &&
+                      (v('pause'), (this._readableState.flowing = !1), this.emit('pause')),
+                    this
+                  );
+                }),
+                (i.prototype.wrap = function (e) {
+                  var t,
+                    n = this,
+                    r = this._readableState,
+                    i = !1;
+                  for (t in (e.on('end', function () {
+                    var t;
+                    v('wrapped end'),
+                      r.decoder && !r.ended && (t = r.decoder.end()) && t.length && n.push(t),
+                      n.push(null);
+                  }),
+                  e.on('data', function (t) {
+                    v('wrapped data'),
+                      r.decoder && (t = r.decoder.write(t)),
+                      (r.objectMode && null == t) ||
+                        ((r.objectMode || (t && t.length)) && !n.push(t) && ((i = !0), e.pause()));
+                  }),
+                  e))
+                    void 0 === this[t] &&
+                      'function' == typeof e[t] &&
+                      (this[t] = (function (t) {
+                        return function () {
+                          return e[t].apply(e, arguments);
+                        };
+                      })(t));
+                  for (var o = 0; o < l.length; o++) e.on(l[o], this.emit.bind(this, l[o]));
+                  return (
+                    (this._read = function (t) {
+                      v('wrapped _read', t), i && ((i = !1), e.resume());
+                    }),
+                    this
+                  );
+                }),
+                Object.defineProperty(i.prototype, 'readableHighWaterMark', {
+                  enumerable: !1,
+                  get: function () {
+                    return this._readableState.highWaterMark;
+                  },
+                }),
+                (i._fromList = I);
+            }.call(this);
+          }.call(
+            this,
+            Q('_process'),
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+          );
+        },
+        {
+          './_stream_duplex': 51,
+          './internal/streams/BufferList': 56,
+          './internal/streams/destroy': 57,
+          './internal/streams/stream': 58,
+          _process: 46,
+          'core-util-is': 32,
+          events: 35,
+          inherits: 38,
+          isarray: 39,
+          'process-nextick-args': 45,
+          'safe-buffer': 59,
+          'string_decoder/': 60,
+          util: 23,
+        },
+      ],
+      54: [
+        function (t, e, n) {
+          'use strict';
+          e.exports = i;
+          var r = t('./_stream_duplex'),
+            e = Object.create(t('core-util-is'));
+          function i(t) {
+            if (!(this instanceof i)) return new i(t);
+            r.call(this, t),
+              (this._transformState = {
+                afterTransform: function (t, e) {
+                  var n = this._transformState,
+                    r = ((n.transforming = !1), n.writecb);
+                  if (!r)
+                    return this.emit('error', new Error('write callback called multiple times'));
+                  (n.writechunk = null),
+                    (n.writecb = null) != e && this.push(e),
+                    r(t),
+                    ((n = this._readableState).reading = !1),
+                    (n.needReadable || n.length < n.highWaterMark) && this._read(n.highWaterMark);
+                }.bind(this),
+                needTransform: !1,
+                transforming: !1,
+                writecb: null,
+                writechunk: null,
+                writeencoding: null,
+              }),
+              (this._readableState.needReadable = !0),
+              (this._readableState.sync = !1),
+              t &&
+                ('function' == typeof t.transform && (this._transform = t.transform),
+                'function' == typeof t.flush && (this._flush = t.flush)),
+              this.on('prefinish', o);
+          }
+          function o() {
+            var n = this;
+            'function' == typeof this._flush
+              ? this._flush(function (t, e) {
+                  a(n, t, e);
+                })
+              : a(this, null, null);
+          }
+          function a(t, e, n) {
+            if (e) return t.emit('error', e);
+            if ((null != n && t.push(n), t._writableState.length))
+              throw new Error('Calling transform done when ws.length != 0');
+            if (t._transformState.transforming)
+              throw new Error('Calling transform done when still transforming');
+            t.push(null);
+          }
+          (e.inherits = t('inherits')),
+            e.inherits(i, r),
+            (i.prototype.push = function (t, e) {
+              return (this._transformState.needTransform = !1), r.prototype.push.call(this, t, e);
+            }),
+            (i.prototype._transform = function (t, e, n) {
+              throw new Error('_transform() is not implemented');
+            }),
+            (i.prototype._write = function (t, e, n) {
+              var r = this._transformState;
+              (r.writecb = n),
+                (r.writechunk = t),
+                (r.writeencoding = e),
+                r.transforming ||
+                  ((n = this._readableState),
+                  (r.needTransform || n.needReadable || n.length < n.highWaterMark) &&
+                    this._read(n.highWaterMark));
+            }),
+            (i.prototype._read = function (t) {
+              var e = this._transformState;
+              null !== e.writechunk && e.writecb && !e.transforming
+                ? ((e.transforming = !0),
+                  this._transform(e.writechunk, e.writeencoding, e.afterTransform))
+                : (e.needTransform = !0);
+            }),
+            (i.prototype._destroy = function (t, e) {
+              var n = this;
+              r.prototype._destroy.call(this, t, function (t) {
+                e(t), n.emit('close');
+              });
+            });
+        },
+        { './_stream_duplex': 51, 'core-util-is': 32, inherits: 38 },
+      ],
+      55: [
+        function (B, C, t) {
+          !function (u, c, E) {
+            !function () {
+              'use strict';
+              var p = B('process-nextick-args');
+              function A(o) {
+                var a = this;
+                (this.next = null),
+                  (this.entry = null),
+                  (this.finish = function () {
+                    var t = a,
+                      e = o,
+                      n = void 0,
+                      r = t.entry;
+                    for (t.entry = null; r; ) {
+                      var i = r.callback;
+                      e.pendingcb--, i(n), (r = r.next);
+                    }
+                    e.corkedRequestsFree
+                      ? (e.corkedRequestsFree.next = t)
+                      : (e.corkedRequestsFree = t);
+                  });
+              }
+              C.exports = s;
+              var o,
+                h =
+                  !u.browser && -1 < ['v0.10', 'v0.9.'].indexOf(u.version.slice(0, 5))
+                    ? E
+                    : p.nextTick,
+                t = ((s.WritableState = a), Object.create(B('core-util-is'))),
+                e = ((t.inherits = B('inherits')), { deprecate: B('util-deprecate') }),
+                n = B('./internal/streams/stream'),
+                d = B('safe-buffer').Buffer,
+                f = c.Uint8Array || function () {};
+              var r,
+                i = B('./internal/streams/destroy');
+              function g() {}
+              function a(t, c) {
+                (o = o || B('./_stream_duplex')), (t = t || {});
+                var e = c instanceof o,
+                  n =
+                    ((this.objectMode = !!t.objectMode),
+                    e && (this.objectMode = this.objectMode || !!t.writableObjectMode),
+                    t.highWaterMark),
+                  r = t.writableHighWaterMark,
+                  i = this.objectMode ? 16 : 16384,
+                  n =
+                    ((this.highWaterMark = n || 0 === n ? n : e && (r || 0 === r) ? r : i),
+                    (this.highWaterMark = Math.floor(this.highWaterMark)),
+                    (this.finalCalled = !1),
+                    (this.needDrain = !1),
+                    (this.ending = !1),
+                    (this.ended = !1),
+                    (this.finished = !1),
+                    (this.destroyed = !1) === t.decodeStrings);
+                (this.decodeStrings = !n),
+                  (this.defaultEncoding = t.defaultEncoding || 'utf8'),
+                  (this.length = 0),
+                  (this.writing = !1),
+                  (this.corked = 0),
+                  (this.sync = !0),
+                  (this.bufferProcessing = !1),
+                  (this.onwrite = function (t) {
+                    (t = t), (n = (e = c)._writableState), (r = n.sync), (i = n.writecb);
+                    var e,
+                      n,
+                      r,
+                      i,
+                      o = n;
+                    {
+                      var a, s, l, u;
+                      ((o.writing = !1),
+                      (o.writecb = null),
+                      (o.length -= o.writelen),
+                      (o.writelen = 0),
+                      t)
+                        ? ((o = e),
+                          (s = r),
+                          (l = t),
+                          (u = i),
+                          --(a = n).pendingcb,
+                          s
+                            ? (p.nextTick(u, l),
+                              p.nextTick(w, o, a),
+                              (o._writableState.errorEmitted = !0),
+                              o.emit('error', l))
+                            : (u(l),
+                              (o._writableState.errorEmitted = !0),
+                              o.emit('error', l),
+                              w(o, a)))
+                        : ((t = y(n)) ||
+                            n.corked ||
+                            n.bufferProcessing ||
+                            !n.bufferedRequest ||
+                            b(e, n),
+                          r ? h(v, e, n, t, i) : v(e, n, t, i));
+                    }
+                  }),
+                  (this.writecb = null),
+                  (this.writelen = 0),
+                  (this.bufferedRequest = null),
+                  (this.lastBufferedRequest = null),
+                  (this.pendingcb = 0),
+                  (this.prefinished = !1),
+                  (this.errorEmitted = !1),
+                  (this.bufferedRequestCount = 0),
+                  (this.corkedRequestsFree = new A(this));
+              }
+              t.inherits(s, n),
+                (a.prototype.getBuffer = function () {
+                  for (var t = this.bufferedRequest, e = []; t; ) e.push(t), (t = t.next);
+                  return e;
+                });
+              try {
+                Object.defineProperty(a.prototype, 'buffer', {
+                  get: e.deprecate(
+                    function () {
+                      return this.getBuffer();
+                    },
+                    '_writableState.buffer is deprecated. Use _writableState.getBuffer instead.',
+                    'DEP0003',
+                  ),
+                });
+              } catch (t) {}
+              function s(t) {
+                if (((o = o || B('./_stream_duplex')), !(r.call(s, this) || this instanceof o)))
+                  return new s(t);
+                (this._writableState = new a(t, this)),
+                  (this.writable = !0),
+                  t &&
+                    ('function' == typeof t.write && (this._write = t.write),
+                    'function' == typeof t.writev && (this._writev = t.writev),
+                    'function' == typeof t.destroy && (this._destroy = t.destroy),
+                    'function' == typeof t.final && (this._final = t.final)),
+                  n.call(this);
+              }
+              function m(t, e, n, r, i, o, a) {
+                (e.writelen = r),
+                  (e.writecb = a),
+                  (e.writing = !0),
+                  (e.sync = !0),
+                  n ? t._writev(i, e.onwrite) : t._write(i, o, e.onwrite),
+                  (e.sync = !1);
+              }
+              function v(t, e, n, r) {
+                var i;
+                n ||
+                  ((n = t),
+                  0 === (i = e).length && i.needDrain && ((i.needDrain = !1), n.emit('drain'))),
+                  e.pendingcb--,
+                  r(),
+                  w(t, e);
+              }
+              function b(t, e) {
+                e.bufferProcessing = !0;
+                var n = e.bufferedRequest;
+                if (t._writev && n && n.next) {
+                  for (
+                    var r = e.bufferedRequestCount,
+                      i = new Array(r),
+                      r = e.corkedRequestsFree,
+                      o = ((r.entry = n), 0),
+                      a = !0;
+                    n;
+
+                  )
+                    (i[o] = n).isBuf || (a = !1), (n = n.next), (o += 1);
+                  (i.allBuffers = a),
+                    m(t, e, !0, e.length, i, '', r.finish),
+                    e.pendingcb++,
+                    (e.lastBufferedRequest = null),
+                    r.next
+                      ? ((e.corkedRequestsFree = r.next), (r.next = null))
+                      : (e.corkedRequestsFree = new A(e)),
+                    (e.bufferedRequestCount = 0);
+                } else {
+                  for (; n; ) {
+                    var s = n.chunk,
+                      l = n.encoding,
+                      u = n.callback;
+                    if (
+                      (m(t, e, !1, e.objectMode ? 1 : s.length, s, l, u),
+                      (n = n.next),
+                      e.bufferedRequestCount--,
+                      e.writing)
+                    )
+                      break;
+                  }
+                  null === n && (e.lastBufferedRequest = null);
+                }
+                (e.bufferedRequest = n), (e.bufferProcessing = !1);
+              }
+              function y(t) {
+                return (
+                  t.ending &&
+                  0 === t.length &&
+                  null === t.bufferedRequest &&
+                  !t.finished &&
+                  !t.writing
+                );
+              }
+              function l(e, n) {
+                e._final(function (t) {
+                  n.pendingcb--,
+                    t && e.emit('error', t),
+                    (n.prefinished = !0),
+                    e.emit('prefinish'),
+                    w(e, n);
+                });
+              }
+              function w(t, e) {
+                var n,
+                  r,
+                  i = y(e);
+                return (
+                  i &&
+                    ((n = t),
+                    (r = e).prefinished ||
+                      r.finalCalled ||
+                      ('function' == typeof n._final
+                        ? (r.pendingcb++, (r.finalCalled = !0), p.nextTick(l, n, r))
+                        : ((r.prefinished = !0), n.emit('prefinish'))),
+                    0 === e.pendingcb && ((e.finished = !0), t.emit('finish'))),
+                  i
+                );
+              }
+              'function' == typeof Symbol &&
+              Symbol.hasInstance &&
+              'function' == typeof Function.prototype[Symbol.hasInstance]
+                ? ((r = Function.prototype[Symbol.hasInstance]),
+                  Object.defineProperty(s, Symbol.hasInstance, {
+                    value: function (t) {
+                      return (
+                        !!r.call(this, t) || (this === s && t && t._writableState instanceof a)
+                      );
+                    },
+                  }))
+                : (r = function (t) {
+                    return t instanceof this;
+                  }),
+                (s.prototype.pipe = function () {
+                  this.emit('error', new Error('Cannot pipe, not readable'));
+                }),
+                (s.prototype.write = function (t, e, n) {
+                  var r,
+                    i,
+                    o,
+                    a,
+                    s,
+                    l,
+                    u,
+                    c = this._writableState,
+                    A = !1,
+                    h = !c.objectMode && ((h = t), d.isBuffer(h) || h instanceof f);
+                  return (
+                    h && !d.isBuffer(t) && ((s = t), (t = d.from(s))),
+                    'function' == typeof e && ((n = e), (e = null)),
+                    (e = h ? 'buffer' : e || c.defaultEncoding),
+                    'function' != typeof n && (n = g),
+                    c.ended
+                      ? ((s = this),
+                        (l = n),
+                        (u = new Error('write after end')),
+                        s.emit('error', u),
+                        p.nextTick(l, u))
+                      : (h ||
+                          ((l = this),
+                          (u = c),
+                          (i = n),
+                          (a = !(o = !0)),
+                          null === (r = t)
+                            ? (a = new TypeError('May not write null values to stream'))
+                            : 'string' == typeof r ||
+                              void 0 === r ||
+                              u.objectMode ||
+                              (a = new TypeError('Invalid non-string/buffer chunk')),
+                          a && (l.emit('error', a), p.nextTick(i, a), (o = !1)),
+                          o)) &&
+                        (c.pendingcb++,
+                        (A = (function (t, e, n, r, i, o) {
+                          n ||
+                            ((a = (function (t, e, n) {
+                              t.objectMode ||
+                                !1 === t.decodeStrings ||
+                                'string' != typeof e ||
+                                (e = d.from(e, n));
+                              return e;
+                            })(e, r, i)),
+                            r !== a && ((n = !0), (i = 'buffer'), (r = a)));
+                          var a = e.objectMode ? 1 : r.length,
+                            s = ((e.length += a), e.length < e.highWaterMark);
+                          s || (e.needDrain = !0);
+                          {
+                            var l;
+                            e.writing || e.corked
+                              ? ((l = e.lastBufferedRequest),
+                                (e.lastBufferedRequest = {
+                                  chunk: r,
+                                  encoding: i,
+                                  isBuf: n,
+                                  callback: o,
+                                  next: null,
+                                }),
+                                l
+                                  ? (l.next = e.lastBufferedRequest)
+                                  : (e.bufferedRequest = e.lastBufferedRequest),
+                                (e.bufferedRequestCount += 1))
+                              : m(t, e, !1, a, r, i, o);
+                          }
+                          return s;
+                        })(this, c, h, t, e, n))),
+                    A
+                  );
+                }),
+                (s.prototype.cork = function () {
+                  this._writableState.corked++;
+                }),
+                (s.prototype.uncork = function () {
+                  var t = this._writableState;
+                  t.corked &&
+                    (t.corked--,
+                    t.writing ||
+                      t.corked ||
+                      t.finished ||
+                      t.bufferProcessing ||
+                      !t.bufferedRequest ||
+                      b(this, t));
+                }),
+                (s.prototype.setDefaultEncoding = function (t) {
+                  if (
+                    ('string' == typeof t && (t = t.toLowerCase()),
+                    -1 <
+                      [
+                        'hex',
+                        'utf8',
+                        'utf-8',
+                        'ascii',
+                        'binary',
+                        'base64',
+                        'ucs2',
+                        'ucs-2',
+                        'utf16le',
+                        'utf-16le',
+                        'raw',
+                      ].indexOf((t + '').toLowerCase()))
+                  )
+                    return (this._writableState.defaultEncoding = t), this;
+                  throw new TypeError('Unknown encoding: ' + t);
+                }),
+                Object.defineProperty(s.prototype, 'writableHighWaterMark', {
+                  enumerable: !1,
+                  get: function () {
+                    return this._writableState.highWaterMark;
+                  },
+                }),
+                (s.prototype._write = function (t, e, n) {
+                  n(new Error('_write() is not implemented'));
+                }),
+                (s.prototype._writev = null),
+                (s.prototype.end = function (t, e, n) {
+                  var r = this._writableState;
+                  if (
+                    ('function' == typeof t
+                      ? ((n = t), (e = t = null))
+                      : 'function' == typeof e && ((n = e), (e = null)),
+                    null != t && this.write(t, e),
+                    r.corked && ((r.corked = 1), this.uncork()),
+                    !r.ending && !r.finished)
+                  ) {
+                    (t = this), (e = r), (r = n);
+                    (e.ending = !0),
+                      w(t, e),
+                      r && (e.finished ? p.nextTick(r) : t.once('finish', r)),
+                      (e.ended = !0),
+                      (t.writable = !1);
+                  }
+                }),
+                Object.defineProperty(s.prototype, 'destroyed', {
+                  get: function () {
+                    return void 0 !== this._writableState && this._writableState.destroyed;
+                  },
+                  set: function (t) {
+                    this._writableState && (this._writableState.destroyed = t);
+                  },
+                }),
+                (s.prototype.destroy = i.destroy),
+                (s.prototype._undestroy = i.undestroy),
+                (s.prototype._destroy = function (t, e) {
+                  this.end(), e(t);
+                });
+            }.call(this);
+          }.call(
+            this,
+            B('_process'),
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+            B('timers').setImmediate,
+          );
+        },
+        {
+          './_stream_duplex': 51,
+          './internal/streams/destroy': 57,
+          './internal/streams/stream': 58,
+          _process: 46,
+          'core-util-is': 32,
+          inherits: 38,
+          'process-nextick-args': 45,
+          'safe-buffer': 59,
+          timers: 68,
+          'util-deprecate': 73,
+        },
+      ],
+      56: [
+        function (t, e, n) {
+          'use strict';
+          var a = t('safe-buffer').Buffer,
+            r = t('util');
+          function i() {
+            if (!(this instanceof i)) throw new TypeError('Cannot call a class as a function');
+            (this.head = null), (this.tail = null), (this.length = 0);
+          }
+          (e.exports =
+            ((i.prototype.push = function (t) {
+              t = { data: t, next: null };
+              0 < this.length ? (this.tail.next = t) : (this.head = t),
+                (this.tail = t),
+                ++this.length;
+            }),
+            (i.prototype.unshift = function (t) {
+              t = { data: t, next: this.head };
+              0 === this.length && (this.tail = t), (this.head = t), ++this.length;
+            }),
+            (i.prototype.shift = function () {
+              var t;
+              if (0 !== this.length)
+                return (
+                  (t = this.head.data),
+                  1 === this.length ? (this.head = this.tail = null) : (this.head = this.head.next),
+                  --this.length,
+                  t
+                );
+            }),
+            (i.prototype.clear = function () {
+              (this.head = this.tail = null), (this.length = 0);
+            }),
+            (i.prototype.join = function (t) {
+              if (0 === this.length) return '';
+              for (var e = this.head, n = '' + e.data; (e = e.next); ) n += t + e.data;
+              return n;
+            }),
+            (i.prototype.concat = function (t) {
+              if (0 === this.length) return a.alloc(0);
+              if (1 === this.length) return this.head.data;
+              for (var e, n, r = a.allocUnsafe(t >>> 0), i = this.head, o = 0; i; )
+                (e = i.data), (n = o), e.copy(r, n), (o += i.data.length), (i = i.next);
+              return r;
+            }),
+            i)),
+            r &&
+              r.inspect &&
+              r.inspect.custom &&
+              (e.exports.prototype[r.inspect.custom] = function () {
+                var t = r.inspect({ length: this.length });
+                return this.constructor.name + ' ' + t;
+              });
+        },
+        { 'safe-buffer': 59, util: 23 },
+      ],
+      57: [
+        function (t, e, n) {
+          'use strict';
+          var o = t('process-nextick-args');
+          function a(t, e) {
+            t.emit('error', e);
+          }
+          e.exports = {
+            destroy: function (t, e) {
+              var n = this,
+                r = this._readableState && this._readableState.destroyed,
+                i = this._writableState && this._writableState.destroyed;
+              return (
+                r || i
+                  ? e
+                    ? e(t)
+                    : !t ||
+                      (this._writableState && this._writableState.errorEmitted) ||
+                      o.nextTick(a, this, t)
+                  : (this._readableState && (this._readableState.destroyed = !0),
+                    this._writableState && (this._writableState.destroyed = !0),
+                    this._destroy(t || null, function (t) {
+                      !e && t
+                        ? (o.nextTick(a, n, t),
+                          n._writableState && (n._writableState.errorEmitted = !0))
+                        : e && e(t);
+                    })),
+                this
+              );
+            },
+            undestroy: function () {
+              this._readableState &&
+                ((this._readableState.destroyed = !1),
+                (this._readableState.reading = !1),
+                (this._readableState.ended = !1),
+                (this._readableState.endEmitted = !1)),
+                this._writableState &&
+                  ((this._writableState.destroyed = !1),
+                  (this._writableState.ended = !1),
+                  (this._writableState.ending = !1),
+                  (this._writableState.finished = !1),
+                  (this._writableState.errorEmitted = !1));
+            },
+          };
+        },
+        { 'process-nextick-args': 45 },
+      ],
+      58: [
+        function (t, e, n) {
+          e.exports = t('events').EventEmitter;
+        },
+        { events: 35 },
+      ],
+      59: [
+        function (t, e, n) {
+          var r = t('buffer'),
+            i = r.Buffer;
+          function o(t, e) {
+            for (var n in t) e[n] = t[n];
+          }
+          function a(t, e, n) {
+            return i(t, e, n);
+          }
+          i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow
+            ? (e.exports = r)
+            : (o(r, n), (n.Buffer = a)),
+            o(i, a),
+            (a.from = function (t, e, n) {
+              if ('number' == typeof t) throw new TypeError('Argument must not be a number');
+              return i(t, e, n);
+            }),
+            (a.alloc = function (t, e, n) {
+              if ('number' != typeof t) throw new TypeError('Argument must be a number');
+              t = i(t);
+              return (
+                void 0 !== e ? ('string' == typeof n ? t.fill(e, n) : t.fill(e)) : t.fill(0), t
+              );
+            }),
+            (a.allocUnsafe = function (t) {
+              if ('number' != typeof t) throw new TypeError('Argument must be a number');
+              return i(t);
+            }),
+            (a.allocUnsafeSlow = function (t) {
+              if ('number' != typeof t) throw new TypeError('Argument must be a number');
+              return r.SlowBuffer(t);
+            });
+        },
+        { buffer: 26 },
+      ],
+      60: [
+        function (t, e, n) {
+          'use strict';
+          var r = t('safe-buffer').Buffer,
+            i =
+              r.isEncoding ||
+              function (t) {
+                switch ((t = '' + t) && t.toLowerCase()) {
+                  case 'hex':
+                  case 'utf8':
+                  case 'utf-8':
+                  case 'ascii':
+                  case 'binary':
+                  case 'base64':
+                  case 'ucs2':
+                  case 'ucs-2':
+                  case 'utf16le':
+                  case 'utf-16le':
+                  case 'raw':
+                    return !0;
+                  default:
+                    return !1;
+                }
+              };
+          function o(t) {
+            var e = (function (t) {
+              if (!t) return 'utf8';
+              for (var e; ; )
+                switch (t) {
+                  case 'utf8':
+                  case 'utf-8':
+                    return 'utf8';
+                  case 'ucs2':
+                  case 'ucs-2':
+                  case 'utf16le':
+                  case 'utf-16le':
+                    return 'utf16le';
+                  case 'latin1':
+                  case 'binary':
+                    return 'latin1';
+                  case 'base64':
+                  case 'ascii':
+                  case 'hex':
+                    return t;
+                  default:
+                    if (e) return;
+                    (t = ('' + t).toLowerCase()), (e = !0);
+                }
+            })(t);
+            if ('string' == typeof e || (r.isEncoding !== i && i(t))) return e || t;
+            throw new Error('Unknown encoding: ' + t);
+          }
+          function a(t) {
+            var e;
+            switch (((this.encoding = o(t)), this.encoding)) {
+              case 'utf16le':
+                (this.text = u), (this.end = c), (e = 4);
+                break;
+              case 'utf8':
+                (this.fillLast = l), (e = 4);
+                break;
+              case 'base64':
+                (this.text = A), (this.end = h), (e = 3);
+                break;
+              default:
+                return (this.write = p), void (this.end = d);
+            }
+            (this.lastNeed = 0), (this.lastTotal = 0), (this.lastChar = r.allocUnsafe(e));
+          }
+          function s(t) {
+            return t <= 127
+              ? 0
+              : t >> 5 == 6
+                ? 2
+                : t >> 4 == 14
+                  ? 3
+                  : t >> 3 == 30
+                    ? 4
+                    : t >> 6 == 2
+                      ? -1
+                      : -2;
+          }
+          function l(t) {
+            var e,
+              n = this.lastTotal - this.lastNeed,
+              r =
+                ((e = this),
+                128 != (192 & (r = t)[0])
+                  ? ((e.lastNeed = 0), '�')
+                  : 1 < e.lastNeed && 1 < r.length
+                    ? 128 != (192 & r[1])
+                      ? ((e.lastNeed = 1), '�')
+                      : 2 < e.lastNeed && 2 < r.length && 128 != (192 & r[2])
+                        ? ((e.lastNeed = 2), '�')
+                        : void 0
+                    : void 0);
+            return void 0 !== r
+              ? r
+              : this.lastNeed <= t.length
+                ? (t.copy(this.lastChar, n, 0, this.lastNeed),
+                  this.lastChar.toString(this.encoding, 0, this.lastTotal))
+                : (t.copy(this.lastChar, n, 0, t.length), void (this.lastNeed -= t.length));
+          }
+          function u(t, e) {
+            if ((t.length - e) % 2 != 0)
+              return (
+                (this.lastNeed = 1),
+                (this.lastTotal = 2),
+                (this.lastChar[0] = t[t.length - 1]),
+                t.toString('utf16le', e, t.length - 1)
+              );
+            e = t.toString('utf16le', e);
+            if (e) {
+              var n = e.charCodeAt(e.length - 1);
+              if (55296 <= n && n <= 56319)
+                return (
+                  (this.lastNeed = 2),
+                  (this.lastTotal = 4),
+                  (this.lastChar[0] = t[t.length - 2]),
+                  (this.lastChar[1] = t[t.length - 1]),
+                  e.slice(0, -1)
+                );
+            }
+            return e;
+          }
+          function c(t) {
+            var e,
+              t = t && t.length ? this.write(t) : '';
+            return this.lastNeed
+              ? ((e = this.lastTotal - this.lastNeed), t + this.lastChar.toString('utf16le', 0, e))
+              : t;
+          }
+          function A(t, e) {
+            var n = (t.length - e) % 3;
+            return 0 == n
+              ? t.toString('base64', e)
+              : ((this.lastNeed = 3 - n),
+                (this.lastTotal = 3),
+                1 == n
+                  ? (this.lastChar[0] = t[t.length - 1])
+                  : ((this.lastChar[0] = t[t.length - 2]), (this.lastChar[1] = t[t.length - 1])),
+                t.toString('base64', e, t.length - n));
+          }
+          function h(t) {
+            t = t && t.length ? this.write(t) : '';
+            return this.lastNeed ? t + this.lastChar.toString('base64', 0, 3 - this.lastNeed) : t;
+          }
+          function p(t) {
+            return t.toString(this.encoding);
+          }
+          function d(t) {
+            return t && t.length ? this.write(t) : '';
+          }
+          ((n.StringDecoder = a).prototype.write = function (t) {
+            if (0 === t.length) return '';
+            var e, n;
+            if (this.lastNeed) {
+              if (void 0 === (e = this.fillLast(t))) return '';
+              (n = this.lastNeed), (this.lastNeed = 0);
+            } else n = 0;
+            return n < t.length ? (e ? e + this.text(t, n) : this.text(t, n)) : e || '';
+          }),
+            (a.prototype.end = function (t) {
+              t = t && t.length ? this.write(t) : '';
+              return this.lastNeed ? t + '�' : t;
+            }),
+            (a.prototype.text = function (t, e) {
+              var n = (function (t, e, n) {
+                var r = e.length - 1;
+                if (!(r < n)) {
+                  var i = s(e[r]);
+                  if (0 <= i) return 0 < i && (t.lastNeed = i - 1), i;
+                  if (!(--r < n || -2 === i)) {
+                    if (0 <= (i = s(e[r]))) return 0 < i && (t.lastNeed = i - 2), i;
+                    if (!(--r < n || -2 === i) && 0 <= (i = s(e[r])))
+                      return 0 < i && (2 === i ? (i = 0) : (t.lastNeed = i - 3)), i;
+                  }
+                }
+                return 0;
+              })(this, t, e);
+              if (!this.lastNeed) return t.toString('utf8', e);
+              this.lastTotal = n;
+              n = t.length - (n - this.lastNeed);
+              return t.copy(this.lastChar, 0, n), t.toString('utf8', e, n);
+            }),
+            (a.prototype.fillLast = function (t) {
+              if (this.lastNeed <= t.length)
+                return (
+                  t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed),
+                  this.lastChar.toString(this.encoding, 0, this.lastTotal)
+                );
+              t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t.length),
+                (this.lastNeed -= t.length);
+            });
+        },
+        { 'safe-buffer': 59 },
+      ],
+      61: [
+        function (t, e, n) {
+          ((((n = e.exports = t('./lib/_stream_readable.js')).Stream = n).Readable = n).Writable =
+            t('./lib/_stream_writable.js')),
+            (n.Duplex = t('./lib/_stream_duplex.js')),
+            (n.Transform = t('./lib/_stream_transform.js')),
+            (n.PassThrough = t('./lib/_stream_passthrough.js'));
+        },
+        {
+          './lib/_stream_duplex.js': 51,
+          './lib/_stream_passthrough.js': 52,
+          './lib/_stream_readable.js': 53,
+          './lib/_stream_transform.js': 54,
+          './lib/_stream_writable.js': 55,
+        },
+      ],
+      62: [
+        function (t, e, n) {
+          !(function (W, J, K) {
+            'use strict';
+            (J =
+              void 0 !== J && J.Math == Math
+                ? J
+                : 'undefined' != typeof self && self.Math == Math
+                  ? self
+                  : Function('return this')()),
+              (W.fn.dropdown = function (N) {
+                var P,
+                  L = W(this),
+                  Y = W(K),
+                  O = L.selector || '',
+                  G = 'ontouchstart' in K.documentElement,
+                  z = new Date().getTime(),
+                  H = [],
+                  j = N,
+                  V = 'string' == typeof j,
+                  q = [].slice.call(arguments, 1);
+                return (
+                  L.each(function (n) {
+                    var t,
+                      e,
+                      r,
+                      i,
+                      o,
+                      a,
+                      s,
+                      h = W.isPlainObject(N)
+                        ? W.extend(!0, {}, W.fn.dropdown.settings, N)
+                        : W.extend({}, W.fn.dropdown.settings),
+                      p = h.className,
+                      u = h.message,
+                      l = h.fields,
+                      d = h.keys,
+                      f = h.metadata,
+                      c = h.namespace,
+                      A = h.regExp,
+                      g = h.selector,
+                      m = h.error,
+                      v = h.templates,
+                      b = '.' + c,
+                      y = 'module-' + c,
+                      w = W(this),
+                      E = W(h.context),
+                      B = w.find(g.text),
+                      C = w.find(g.search),
+                      x = w.find(g.sizer),
+                      I = w.find(g.input),
+                      U = w.find(g.icon),
+                      M = 0 < w.prev().find(g.text).length ? w.prev().find(g.text) : w.prev(),
+                      D = w.children(g.menu),
+                      S = D.find(g.item),
+                      k = !1,
+                      F = !1,
+                      Q = !1,
+                      _ = this,
+                      T = w.data(y),
+                      R = {
+                        initialize: function () {
+                          R.debug('Initializing dropdown', h),
+                            R.is.alreadySetup()
+                              ? R.setup.reference()
+                              : (R.setup.layout(),
+                                h.values && R.change.values(h.values),
+                                R.refreshData(),
+                                R.save.defaults(),
+                                R.restore.selected(),
+                                R.create.id(),
+                                R.bind.events(),
+                                R.observeChanges(),
+                                R.instantiate());
+                        },
+                        instantiate: function () {
+                          R.verbose('Storing instance of dropdown', R), (T = R), w.data(y, R);
+                        },
+                        destroy: function () {
+                          R.verbose('Destroying previous dropdown', w),
+                            R.remove.tabbable(),
+                            w.off(b).removeData(y),
+                            D.off(b),
+                            Y.off(i),
+                            R.disconnect.menuObserver(),
+                            R.disconnect.selectObserver();
+                        },
+                        observeChanges: function () {
+                          'MutationObserver' in J &&
+                            ((a = new MutationObserver(R.event.select.mutation)),
+                            (s = new MutationObserver(R.event.menu.mutation)),
+                            R.debug('Setting up mutation observer', a, s),
+                            R.observe.select(),
+                            R.observe.menu());
+                        },
+                        disconnect: {
+                          menuObserver: function () {
+                            s && s.disconnect();
+                          },
+                          selectObserver: function () {
+                            a && a.disconnect();
+                          },
+                        },
+                        observe: {
+                          select: function () {
+                            R.has.input() && a.observe(w[0], { childList: !0, subtree: !0 });
+                          },
+                          menu: function () {
+                            R.has.menu() && s.observe(D[0], { childList: !0, subtree: !0 });
+                          },
+                        },
+                        create: {
+                          id: function () {
+                            (o = (Math.random().toString(16) + '000000000').substr(2, 8)),
+                              (i = '.' + o),
+                              R.verbose('Creating unique id for element', o);
+                          },
+                          userChoice: function (t) {
+                            var n, r;
+                            return (
+                              !!(t = t || R.get.userValues()) &&
+                              ((t = W.isArray(t) ? t : [t]),
+                              W.each(t, function (t, e) {
+                                !1 === R.get.item(e) &&
+                                  ((r = h.templates.addition(R.add.variables(u.addResult, e))),
+                                  (r = W('<div />')
+                                    .html(r)
+                                    .attr('data-' + f.value, e)
+                                    .attr('data-' + f.text, e)
+                                    .addClass(p.addition)
+                                    .addClass(p.item)),
+                                  h.hideAdditions && r.addClass(p.hidden),
+                                  (n = void 0 === n ? r : n.add(r)),
+                                  R.verbose('Creating user choices for value', e, r));
+                              }),
+                              n)
+                            );
+                          },
+                          userLabels: function (t) {
+                            var e = R.get.userValues();
+                            e &&
+                              (R.debug('Adding user labels', e),
+                              W.each(e, function (t, e) {
+                                R.verbose('Adding custom user value'), R.add.label(e, e);
+                              }));
+                          },
+                          menu: function () {
+                            D = W('<div />').addClass(p.menu).appendTo(w);
+                          },
+                          sizer: function () {
+                            x = W('<span />').addClass(p.sizer).insertAfter(C);
+                          },
+                        },
+                        search: function (t) {
+                          (t = void 0 !== t ? t : R.get.query()),
+                            R.verbose('Searching for query', t),
+                            R.has.minCharacters(t) ? R.filter(t) : R.hide();
+                        },
+                        select: {
+                          firstUnfiltered: function () {
+                            R.verbose('Selecting first non-filtered element'),
+                              R.remove.selectedItem(),
+                              S.not(g.unselectable)
+                                .not(g.addition + g.hidden)
+                                .eq(0)
+                                .addClass(p.selected);
+                          },
+                          nextAvailable: function (t) {
+                            var e = (t = t.eq(0)).nextAll(g.item).not(g.unselectable).eq(0),
+                              t = t.prevAll(g.item).not(g.unselectable).eq(0);
+                            0 < e.length
+                              ? (R.verbose('Moving selection to', e), e.addClass(p.selected))
+                              : (R.verbose('Moving selection to', t), t.addClass(p.selected));
+                          },
+                        },
+                        setup: {
+                          api: function () {
+                            var t = {
+                              debug: h.debug,
+                              urlData: { value: R.get.value(), query: R.get.query() },
+                              on: !1,
+                            };
+                            R.verbose('First request, initializing API'), w.api(t);
+                          },
+                          layout: function () {
+                            w.is('select') && (R.setup.select(), R.setup.returnedObject()),
+                              R.has.menu() || R.create.menu(),
+                              R.is.search() &&
+                                !R.has.search() &&
+                                (R.verbose('Adding search input'),
+                                (C = W('<input />')
+                                  .addClass(p.search)
+                                  .prop('autocomplete', 'off')
+                                  .insertBefore(B))),
+                              R.is.multiple() &&
+                                R.is.searchSelection() &&
+                                !R.has.sizer() &&
+                                R.create.sizer(),
+                              h.allowTab && R.set.tabbable();
+                          },
+                          select: function () {
+                            var t = R.get.selectValues();
+                            R.debug('Dropdown initialized on a select', t),
+                              0 < (I = w.is('select') ? w : I).parent(g.dropdown).length
+                                ? (R.debug(
+                                    'UI dropdown already exists. Creating dropdown menu only',
+                                  ),
+                                  (w = I.closest(g.dropdown)),
+                                  R.has.menu() || R.create.menu(),
+                                  (D = w.children(g.menu)),
+                                  R.setup.menu(t))
+                                : (R.debug('Creating entire dropdown from select'),
+                                  (w = W('<div />')
+                                    .attr('class', I.attr('class'))
+                                    .addClass(p.selection)
+                                    .addClass(p.dropdown)
+                                    .html(v.dropdown(t))
+                                    .insertBefore(I)),
+                                  I.hasClass(p.multiple) &&
+                                    !1 === I.prop('multiple') &&
+                                    (R.error(m.missingMultiple), I.prop('multiple', !0)),
+                                  I.is('[multiple]') && R.set.multiple(),
+                                  I.prop('disabled') &&
+                                    (R.debug('Disabling dropdown'), w.addClass(p.disabled)),
+                                  I.removeAttr('class').detach().prependTo(w)),
+                              R.refresh();
+                          },
+                          menu: function (t) {
+                            D.html(v.menu(t, l)), (S = D.find(g.item));
+                          },
+                          reference: function () {
+                            R.debug(
+                              'Dropdown behavior was called on select, replacing with closest dropdown',
+                            ),
+                              (w = w.parent(g.dropdown)),
+                              (T = w.data(y)),
+                              (_ = w.get(0)),
+                              R.refresh(),
+                              R.setup.returnedObject();
+                          },
+                          returnedObject: function () {
+                            var t = L.slice(0, n),
+                              e = L.slice(n + 1);
+                            L = t.add(w).add(e);
+                          },
+                        },
+                        refresh: function () {
+                          R.refreshSelectors(), R.refreshData();
+                        },
+                        refreshItems: function () {
+                          S = D.find(g.item);
+                        },
+                        refreshSelectors: function () {
+                          R.verbose('Refreshing selector cache'),
+                            (B = w.find(g.text)),
+                            (C = w.find(g.search)),
+                            (I = w.find(g.input)),
+                            (U = w.find(g.icon)),
+                            (M =
+                              0 < w.prev().find(g.text).length ? w.prev().find(g.text) : w.prev()),
+                            (D = w.children(g.menu)),
+                            (S = D.find(g.item));
+                        },
+                        refreshData: function () {
+                          R.verbose('Refreshing cached metadata'),
+                            S.removeData(f.text).removeData(f.value);
+                        },
+                        clearData: function () {
+                          R.verbose('Clearing metadata'),
+                            S.removeData(f.text).removeData(f.value),
+                            w
+                              .removeData(f.defaultText)
+                              .removeData(f.defaultValue)
+                              .removeData(f.placeholderText);
+                        },
+                        toggle: function () {
+                          R.verbose('Toggling menu visibility'),
+                            R.is.active() ? R.hide() : R.show();
+                        },
+                        show: function (t) {
+                          if (
+                            ((t = W.isFunction(t) ? t : function () {}),
+                            !R.can.show() &&
+                              R.is.remote() &&
+                              (R.debug('No API results retrieved, searching before show'),
+                              R.queryRemote(R.get.query(), R.show)),
+                            R.can.show() && !R.is.active())
+                          ) {
+                            if (
+                              (R.debug('Showing dropdown'),
+                              !R.has.message() ||
+                                R.has.maxSelections() ||
+                                R.has.allResultsFiltered() ||
+                                R.remove.message(),
+                              R.is.allFiltered())
+                            )
+                              return !0;
+                            !1 !== h.onShow.call(_) &&
+                              R.animate.show(function () {
+                                R.can.click() && R.bind.intent(),
+                                  R.has.menuSearch() && R.focusSearch(),
+                                  R.set.visible(),
+                                  t.call(_);
+                              });
+                          }
+                        },
+                        hide: function (t) {
+                          (t = W.isFunction(t) ? t : function () {}),
+                            R.is.active() &&
+                              (R.debug('Hiding dropdown'),
+                              !1 !== h.onHide.call(_) &&
+                                R.animate.hide(function () {
+                                  R.remove.visible(), t.call(_);
+                                }));
+                        },
+                        hideOthers: function () {
+                          R.verbose('Finding other dropdowns to hide'),
+                            L.not(w)
+                              .has(g.menu + '.' + p.visible)
+                              .dropdown('hide');
+                        },
+                        hideMenu: function () {
+                          R.verbose('Hiding menu  instantaneously'),
+                            R.remove.active(),
+                            R.remove.visible(),
+                            D.transition('hide');
+                        },
+                        hideSubMenus: function () {
+                          var t = D.children(g.item).find(g.menu);
+                          R.verbose('Hiding sub menus', t), t.transition('hide');
+                        },
+                        bind: {
+                          events: function () {
+                            G && R.bind.touchEvents(),
+                              R.bind.keyboardEvents(),
+                              R.bind.inputEvents(),
+                              R.bind.mouseEvents();
+                          },
+                          touchEvents: function () {
+                            R.debug('Touch device detected binding additional touch events'),
+                              R.is.searchSelection() ||
+                                (R.is.single() && w.on('touchstart' + b, R.event.test.toggle)),
+                              D.on('touchstart' + b, g.item, R.event.item.mouseenter);
+                          },
+                          keyboardEvents: function () {
+                            R.verbose('Binding keyboard events'),
+                              w.on('keydown' + b, R.event.keydown),
+                              R.has.search() &&
+                                w.on(R.get.inputEvent() + b, g.search, R.event.input),
+                              R.is.multiple() && Y.on('keydown' + i, R.event.document.keydown);
+                          },
+                          inputEvents: function () {
+                            R.verbose('Binding input change events'),
+                              w.on('change' + b, g.input, R.event.change);
+                          },
+                          mouseEvents: function () {
+                            R.verbose('Binding mouse events'),
+                              R.is.multiple() &&
+                                w
+                                  .on('click' + b, g.label, R.event.label.click)
+                                  .on('click' + b, g.remove, R.event.remove.click),
+                              R.is.searchSelection()
+                                ? (w
+                                    .on('mousedown' + b, R.event.mousedown)
+                                    .on('mouseup' + b, R.event.mouseup)
+                                    .on('mousedown' + b, g.menu, R.event.menu.mousedown)
+                                    .on('mouseup' + b, g.menu, R.event.menu.mouseup)
+                                    .on('click' + b, g.icon, R.event.icon.click)
+                                    .on('focus' + b, g.search, R.event.search.focus)
+                                    .on('click' + b, g.search, R.event.search.focus)
+                                    .on('blur' + b, g.search, R.event.search.blur)
+                                    .on('click' + b, g.text, R.event.text.focus),
+                                  R.is.multiple() && w.on('click' + b, R.event.click))
+                                : ('click' == h.on
+                                    ? w
+                                        .on('click' + b, g.icon, R.event.icon.click)
+                                        .on('click' + b, R.event.test.toggle)
+                                    : 'hover' == h.on
+                                      ? w
+                                          .on('mouseenter' + b, R.delay.show)
+                                          .on('mouseleave' + b, R.delay.hide)
+                                      : w.on(h.on + b, R.toggle),
+                                  w
+                                    .on('mousedown' + b, R.event.mousedown)
+                                    .on('mouseup' + b, R.event.mouseup)
+                                    .on('focus' + b, R.event.focus),
+                                  R.has.menuSearch()
+                                    ? w.on('blur' + b, g.search, R.event.search.blur)
+                                    : w.on('blur' + b, R.event.blur)),
+                              D.on('mouseenter' + b, g.item, R.event.item.mouseenter)
+                                .on('mouseleave' + b, g.item, R.event.item.mouseleave)
+                                .on('click' + b, g.item, R.event.item.click);
+                          },
+                          intent: function () {
+                            R.verbose('Binding hide intent event to document'),
+                              G &&
+                                Y.on('touchstart' + i, R.event.test.touch).on(
+                                  'touchmove' + i,
+                                  R.event.test.touch,
+                                ),
+                              Y.on('click' + i, R.event.test.hide);
+                          },
+                        },
+                        unbind: {
+                          intent: function () {
+                            R.verbose('Removing hide intent event from document'),
+                              G && Y.off('touchstart' + i).off('touchmove' + i),
+                              Y.off('click' + i);
+                          },
+                        },
+                        filter: function (t) {
+                          function e() {
+                            R.is.multiple() && R.filterActive(),
+                              (t || (!t && 0 == R.get.activeItem().length)) &&
+                                R.select.firstUnfiltered(),
+                              R.has.allResultsFiltered()
+                                ? h.onNoResults.call(_, n)
+                                  ? h.allowAdditions
+                                    ? h.hideAdditions &&
+                                      (R.verbose('User addition with no menu, setting empty style'),
+                                      R.set.empty(),
+                                      R.hideMenu())
+                                    : (R.verbose('All items filtered, showing message', n),
+                                      R.add.message(u.noResults))
+                                  : (R.verbose('All items filtered, hiding dropdown', n),
+                                    R.hideMenu())
+                                : (R.remove.empty(), R.remove.message()),
+                              h.allowAdditions && R.add.userSuggestion(t),
+                              R.is.searchSelection() &&
+                                R.can.show() &&
+                                R.is.focusedOnSearch() &&
+                                R.show();
+                          }
+                          var n = void 0 !== t ? t : R.get.query();
+                          (h.useLabels && R.has.maxSelections()) ||
+                            (h.apiSettings
+                              ? R.can.useAPI()
+                                ? R.queryRemote(n, function () {
+                                    h.filterRemoteData && R.filterItems(n), e();
+                                  })
+                                : R.error(m.noAPI)
+                              : (R.filterItems(n), e()));
+                        },
+                        queryRemote: function (t, e) {
+                          t = {
+                            errorDuration: !1,
+                            cache: 'local',
+                            throttle: h.throttle,
+                            urlData: { query: t },
+                            onError: function () {
+                              R.add.message(u.serverError), e();
+                            },
+                            onFailure: function () {
+                              R.add.message(u.serverError), e();
+                            },
+                            onSuccess: function (t) {
+                              R.remove.message(), R.setup.menu({ values: t[l.remoteValues] }), e();
+                            },
+                          };
+                          w.api('get request') || R.setup.api(),
+                            (t = W.extend(!0, {}, t, h.apiSettings)),
+                            w.api('setting', t).api('query');
+                        },
+                        filterItems: function (t) {
+                          var n = void 0 !== t ? t : R.get.query(),
+                            r = null,
+                            t = R.escape.string(n),
+                            i = new RegExp('^' + t, 'igm');
+                          R.has.query() &&
+                            ((r = []),
+                            R.verbose('Searching for matching values', n),
+                            S.each(function () {
+                              var t,
+                                e = W(this);
+                              if ('both' == h.match || 'text' == h.match) {
+                                if (-1 !== (t = String(R.get.choiceText(e, !1))).search(i))
+                                  return r.push(this), !0;
+                                if ('exact' === h.fullTextSearch && R.exactSearch(n, t))
+                                  return r.push(this), !0;
+                                if (!0 === h.fullTextSearch && R.fuzzySearch(n, t))
+                                  return r.push(this), !0;
+                              }
+                              if ('both' == h.match || 'value' == h.match)
+                                return -1 !== (e = String(R.get.choiceValue(e, t))).search(i) ||
+                                  ('exact' === h.fullTextSearch && R.exactSearch(n, e)) ||
+                                  (!0 === h.fullTextSearch && R.fuzzySearch(n, e))
+                                  ? (r.push(this), !0)
+                                  : void 0;
+                            })),
+                            R.debug('Showing only matched items', n),
+                            R.remove.filteredItem(),
+                            r && S.not(r).addClass(p.filtered);
+                        },
+                        fuzzySearch: function (t, e) {
+                          var n = e.length,
+                            r = t.length;
+                          if (((t = t.toLowerCase()), (e = e.toLowerCase()), n < r)) return !1;
+                          if (r === n) return t === e;
+                          t: for (var i = 0, o = 0; i < r; i++) {
+                            for (var a = t.charCodeAt(i); o < n; )
+                              if (e.charCodeAt(o++) === a) continue t;
+                            return !1;
+                          }
+                          return !0;
+                        },
+                        exactSearch: function (t, e) {
+                          return (t = t.toLowerCase()), -1 < (e = e.toLowerCase()).indexOf(t);
+                        },
+                        filterActive: function () {
+                          h.useLabels && S.filter('.' + p.active).addClass(p.filtered);
+                        },
+                        focusSearch: function (t) {
+                          R.has.search() &&
+                            !R.is.focusedOnSearch() &&
+                            (t
+                              ? (w.off('focus' + b, g.search),
+                                C.focus(),
+                                w.on('focus' + b, g.search, R.event.search.focus))
+                              : C.focus());
+                        },
+                        forceSelection: function () {
+                          var t = S.not(p.filtered)
+                              .filter('.' + p.selected)
+                              .eq(0),
+                            e = S.not(p.filtered)
+                              .filter('.' + p.active)
+                              .eq(0),
+                            t = 0 < t.length ? t : e;
+                          if (0 < t.length && !R.is.multiple())
+                            return (
+                              R.debug('Forcing partial selection to selected item', t),
+                              void R.event.item.click.call(t, {}, !0)
+                            );
+                          h.allowAdditions && R.set.selected(R.get.query()), R.remove.searchTerm();
+                        },
+                        change: {
+                          values: function (t) {
+                            h.allowAdditions || R.clear(),
+                              R.debug('Creating dropdown with specified values', t),
+                              R.setup.menu({ values: t }),
+                              W.each(t, function (t, e) {
+                                if (1 == e.selected)
+                                  return (
+                                    R.debug('Setting initial selection to', e.value),
+                                    R.set.selected(e.value),
+                                    !0
+                                  );
+                              });
+                          },
+                        },
+                        event: {
+                          change: function () {
+                            Q || (R.debug('Input changed, updating selection'), R.set.selected());
+                          },
+                          focus: function () {
+                            h.showOnFocus && !k && R.is.hidden() && !e && R.show();
+                          },
+                          blur: function (t) {
+                            (e = K.activeElement === this),
+                              k || e || (R.remove.activeLabel(), R.hide());
+                          },
+                          mousedown: function () {
+                            R.is.searchSelection() ? (r = !0) : (k = !0);
+                          },
+                          mouseup: function () {
+                            R.is.searchSelection() ? (r = !1) : (k = !1);
+                          },
+                          click: function (t) {
+                            W(t.target).is(w) &&
+                              (R.is.focusedOnSearch() ? R.show() : R.focusSearch());
+                          },
+                          search: {
+                            focus: function () {
+                              (k = !0),
+                                R.is.multiple() && R.remove.activeLabel(),
+                                h.showOnFocus && R.search();
+                            },
+                            blur: function (t) {
+                              (e = K.activeElement === this),
+                                !R.is.searchSelection() ||
+                                  r ||
+                                  F ||
+                                  e ||
+                                  (h.forceSelection && R.forceSelection(), R.hide()),
+                                (r = !1);
+                            },
+                          },
+                          icon: {
+                            click: function (t) {
+                              R.toggle();
+                            },
+                          },
+                          text: {
+                            focus: function (t) {
+                              (k = !0), R.focusSearch();
+                            },
+                          },
+                          input: function (t) {
+                            (R.is.multiple() || R.is.searchSelection()) && R.set.filtered(),
+                              clearTimeout(R.timer),
+                              (R.timer = setTimeout(R.search, h.delay.search));
+                          },
+                          label: {
+                            click: function (t) {
+                              var e = W(this),
+                                n = w.find(g.label),
+                                r = n.filter('.' + p.active),
+                                i = e.nextAll('.' + p.active),
+                                o = e.prevAll('.' + p.active),
+                                i = (0 < i.length ? e.nextUntil(i) : e.prevUntil(o)).add(r).add(e);
+                              t.shiftKey
+                                ? (r.removeClass(p.active), i.addClass(p.active))
+                                : t.ctrlKey
+                                  ? e.toggleClass(p.active)
+                                  : (r.removeClass(p.active), e.addClass(p.active)),
+                                h.onLabelSelect.apply(this, n.filter('.' + p.active));
+                            },
+                          },
+                          remove: {
+                            click: function () {
+                              var t = W(this).parent();
+                              t.hasClass(p.active)
+                                ? R.remove.activeLabels()
+                                : R.remove.activeLabels(t);
+                            },
+                          },
+                          test: {
+                            toggle: function (t) {
+                              var e = R.is.multiple() ? R.show : R.toggle;
+                              R.is.bubbledLabelClick(t) ||
+                                R.is.bubbledIconClick(t) ||
+                                (R.determine.eventOnElement(t, e) && t.preventDefault());
+                            },
+                            touch: function (t) {
+                              R.determine.eventOnElement(t, function () {
+                                'touchstart' == t.type
+                                  ? (R.timer = setTimeout(function () {
+                                      R.hide();
+                                    }, h.delay.touch))
+                                  : 'touchmove' == t.type && clearTimeout(R.timer);
+                              }),
+                                t.stopPropagation();
+                            },
+                            hide: function (t) {
+                              R.determine.eventInModule(t, R.hide);
+                            },
+                          },
+                          select: {
+                            mutation: function (t) {
+                              R.debug('<select> modified, recreating menu');
+                              var n = !1;
+                              W.each(t, function (t, e) {
+                                if (W(e.target).is('select') || W(e.addedNodes).is('select'))
+                                  return (n = !0);
+                              }),
+                                n &&
+                                  (R.disconnect.selectObserver(),
+                                  R.refresh(),
+                                  R.setup.select(),
+                                  R.set.selected(),
+                                  R.observe.select());
+                            },
+                          },
+                          menu: {
+                            mutation: function (t) {
+                              var t = t[0],
+                                e = W(!!t.addedNodes && t.addedNodes[0]),
+                                t = W(!!t.removedNodes && t.removedNodes[0]),
+                                e = e.add(t),
+                                t = e.is(g.addition) || 0 < e.closest(g.addition).length,
+                                e = e.is(g.message) || 0 < e.closest(g.message).length;
+                              t || e
+                                ? (R.debug('Updating item selector cache'), R.refreshItems())
+                                : (R.debug('Menu modified, updating selector cache'), R.refresh());
+                            },
+                            mousedown: function () {
+                              F = !0;
+                            },
+                            mouseup: function () {
+                              F = !1;
+                            },
+                          },
+                          item: {
+                            mouseenter: function (t) {
+                              var e = W(t.target),
+                                n = W(this),
+                                r = n.children(g.menu),
+                                i = n.siblings(g.item).children(g.menu),
+                                n = 0 < r.length;
+                              0 < r.find(e).length ||
+                                !n ||
+                                (clearTimeout(R.itemTimer),
+                                (R.itemTimer = setTimeout(function () {
+                                  R.verbose('Showing sub-menu', r),
+                                    W.each(i, function () {
+                                      R.animate.hide(!1, W(this));
+                                    }),
+                                    R.animate.show(!1, r);
+                                }, h.delay.show)),
+                                t.preventDefault());
+                            },
+                            mouseleave: function (t) {
+                              var e = W(this).children(g.menu);
+                              0 < e.length &&
+                                (clearTimeout(R.itemTimer),
+                                (R.itemTimer = setTimeout(function () {
+                                  R.verbose('Hiding sub-menu', e), R.animate.hide(!1, e);
+                                }, h.delay.hide)));
+                            },
+                            click: function (t, e) {
+                              var n = W(this),
+                                t = W(t ? t.target : ''),
+                                r = n.find(g.menu),
+                                i = R.get.choiceText(n),
+                                o = R.get.choiceValue(n, i),
+                                a = 0 < r.length,
+                                r = 0 < r.find(t).length;
+                              R.has.menuSearch() && W(K.activeElement).blur(),
+                                r ||
+                                  (a && !h.allowCategorySelection) ||
+                                  (R.is.searchSelection() &&
+                                    (h.allowAdditions && R.remove.userAddition(),
+                                    R.remove.searchTerm(),
+                                    R.is.focusedOnSearch() || 1 == e || R.focusSearch(!0)),
+                                  h.useLabels || (R.remove.filteredItem(), R.set.scrollPosition(n)),
+                                  R.determine.selectAction.call(this, i, o));
+                            },
+                          },
+                          document: {
+                            keydown: function (t) {
+                              var e,
+                                n,
+                                r,
+                                i,
+                                o,
+                                a,
+                                s,
+                                l,
+                                u,
+                                c,
+                                A = t.which;
+                              R.is.inObject(A, d) &&
+                                ((n = (e = w.find(g.label)).filter('.' + p.active)).data(f.value),
+                                (a = e.index(n)),
+                                (s = e.length),
+                                (r = 0 < n.length),
+                                (i = 1 < n.length),
+                                (o = 0 === a),
+                                (a = a + 1 == s),
+                                (s = R.is.searchSelection()),
+                                (l = R.is.focusedOnSearch()),
+                                (u = R.is.focused()),
+                                (c = l && 0 === R.get.caretPosition()),
+                                (s && !r && !l) ||
+                                  (A == d.leftArrow
+                                    ? (!u && !c) || r
+                                      ? r &&
+                                        (t.shiftKey
+                                          ? R.verbose('Adding previous label to selection')
+                                          : (R.verbose('Selecting previous label'),
+                                            e.removeClass(p.active)),
+                                        o && !i
+                                          ? n.addClass(p.active)
+                                          : n.prev(g.siblingLabel).addClass(p.active).end(),
+                                        t.preventDefault())
+                                      : (R.verbose('Selecting previous label'),
+                                        e.last().addClass(p.active))
+                                    : A == d.rightArrow
+                                      ? (u && !r && e.first().addClass(p.active),
+                                        r &&
+                                          (t.shiftKey
+                                            ? R.verbose('Adding next label to selection')
+                                            : (R.verbose('Selecting next label'),
+                                              e.removeClass(p.active)),
+                                          a
+                                            ? s
+                                              ? l
+                                                ? e.removeClass(p.active)
+                                                : R.focusSearch()
+                                              : (i ? n.next(g.siblingLabel) : n).addClass(p.active)
+                                            : n.next(g.siblingLabel).addClass(p.active),
+                                          t.preventDefault()))
+                                      : A == d.deleteKey || A == d.backspace
+                                        ? r
+                                          ? (R.verbose('Removing active labels'),
+                                            a && s && !l && R.focusSearch(),
+                                            n.last().next(g.siblingLabel).addClass(p.active),
+                                            R.remove.activeLabels(n),
+                                            t.preventDefault())
+                                          : c &&
+                                            !r &&
+                                            A == d.backspace &&
+                                            (R.verbose('Removing last label on input backspace'),
+                                            (n = e.last().addClass(p.active)),
+                                            R.remove.activeLabels(n))
+                                        : n.removeClass(p.active)));
+                            },
+                          },
+                          keydown: function (t) {
+                            var e = t.which;
+                            if (R.is.inObject(e, d)) {
+                              var n,
+                                r = S.not(g.unselectable)
+                                  .filter('.' + p.selected)
+                                  .eq(0),
+                                i = D.children('.' + p.active).eq(0),
+                                r = 0 < r.length ? r : i,
+                                i =
+                                  0 < r.length
+                                    ? r.siblings(':not(.' + p.filtered + ')').addBack()
+                                    : D.children(':not(.' + p.filtered + ')'),
+                                o = r.children(g.menu),
+                                a = r.closest(g.menu),
+                                s =
+                                  a.hasClass(p.visible) ||
+                                  a.hasClass(p.animating) ||
+                                  0 < a.parent(g.menu).length,
+                                l = 0 < o.length,
+                                u = 0 < r.length,
+                                c = 0 < r.not(g.unselectable).length,
+                                A = e == d.delimiter && h.allowAdditions && R.is.multiple();
+                              if (
+                                (h.allowAdditions &&
+                                  h.hideAdditions &&
+                                  (e == d.enter || A) &&
+                                  c &&
+                                  (R.verbose('Selecting item from keyboard shortcut', r),
+                                  R.event.item.click.call(r, t),
+                                  R.is.searchSelection() && R.remove.searchTerm()),
+                                R.is.visible())
+                              ) {
+                                if (
+                                  ((e != d.enter && !A) ||
+                                    (e == d.enter && u && l && !h.allowCategorySelection
+                                      ? (R.verbose(
+                                          'Pressed enter on unselectable category, opening sub menu',
+                                        ),
+                                        (e = d.rightArrow))
+                                      : c &&
+                                        (R.verbose('Selecting item from keyboard shortcut', r),
+                                        R.event.item.click.call(r, t),
+                                        R.is.searchSelection() && R.remove.searchTerm()),
+                                    t.preventDefault()),
+                                  u &&
+                                    (e == d.leftArrow &&
+                                      a[0] !== D[0] &&
+                                      (R.verbose('Left key pressed, closing sub-menu'),
+                                      R.animate.hide(!1, a),
+                                      r.removeClass(p.selected),
+                                      a.closest(g.item).addClass(p.selected),
+                                      t.preventDefault()),
+                                    e == d.rightArrow &&
+                                      l &&
+                                      (R.verbose('Right key pressed, opening sub-menu'),
+                                      R.animate.show(!1, o),
+                                      r.removeClass(p.selected),
+                                      o.find(g.item).eq(0).addClass(p.selected),
+                                      t.preventDefault())),
+                                  e == d.upArrow)
+                                ) {
+                                  if (
+                                    ((n = (
+                                      u && s
+                                        ? r.prevAll(g.item + ':not(' + g.unselectable + ')')
+                                        : S
+                                    ).eq(0)),
+                                    i.index(n) < 0)
+                                  )
+                                    return (
+                                      R.verbose('Up key pressed but reached top of current menu'),
+                                      void t.preventDefault()
+                                    );
+                                  R.verbose('Up key pressed, changing active item'),
+                                    r.removeClass(p.selected),
+                                    n.addClass(p.selected),
+                                    R.set.scrollPosition(n),
+                                    h.selectOnKeydown && R.is.single() && R.set.selectedItem(n),
+                                    t.preventDefault();
+                                }
+                                if (e == d.downArrow) {
+                                  if (
+                                    0 ===
+                                    (n = (
+                                      u && s
+                                        ? r.nextAll(g.item + ':not(' + g.unselectable + ')')
+                                        : S
+                                    ).eq(0)).length
+                                  )
+                                    return (
+                                      R.verbose(
+                                        'Down key pressed but reached bottom of current menu',
+                                      ),
+                                      void t.preventDefault()
+                                    );
+                                  R.verbose('Down key pressed, changing active item'),
+                                    S.removeClass(p.selected),
+                                    n.addClass(p.selected),
+                                    R.set.scrollPosition(n),
+                                    h.selectOnKeydown && R.is.single() && R.set.selectedItem(n),
+                                    t.preventDefault();
+                                }
+                                e == d.pageUp && (R.scrollPage('up'), t.preventDefault()),
+                                  e == d.pageDown && (R.scrollPage('down'), t.preventDefault()),
+                                  e == d.escape &&
+                                    (R.verbose('Escape key pressed, closing dropdown'), R.hide());
+                              } else
+                                A && t.preventDefault(),
+                                  e != d.downArrow ||
+                                    R.is.visible() ||
+                                    (R.verbose('Down key pressed, showing dropdown'),
+                                    R.show(),
+                                    t.preventDefault());
+                            } else R.has.search() || R.set.selectedLetter(String.fromCharCode(e));
+                          },
+                        },
+                        trigger: {
+                          change: function () {
+                            var t = K.createEvent('HTMLEvents'),
+                              e = I[0];
+                            e &&
+                              (R.verbose('Triggering native change event'),
+                              t.initEvent('change', !0, !1),
+                              e.dispatchEvent(t));
+                          },
+                        },
+                        determine: {
+                          selectAction: function (t, e) {
+                            R.verbose('Determining action', h.action),
+                              W.isFunction(R.action[h.action])
+                                ? (R.verbose('Triggering preset action', h.action, t, e),
+                                  R.action[h.action].call(_, t, e, this))
+                                : W.isFunction(h.action)
+                                  ? (R.verbose('Triggering user action', h.action, t, e),
+                                    h.action.call(_, t, e, this))
+                                  : R.error(m.action, h.action);
+                          },
+                          eventInModule: function (t, e) {
+                            var t = W(t.target),
+                              n = 0 < t.closest(K.documentElement).length,
+                              t = 0 < t.closest(w).length;
+                            return (
+                              (e = W.isFunction(e) ? e : function () {}),
+                              n && !t
+                                ? (R.verbose('Triggering event', e), e(), !0)
+                                : (R.verbose('Event occurred in dropdown, canceling callback'), !1)
+                            );
+                          },
+                          eventOnElement: function (t, e) {
+                            var n = W(t.target),
+                              r = n.closest(g.siblingLabel),
+                              t = K.body.contains(t.target),
+                              r = 0 === w.find(r).length,
+                              n = 0 === n.closest(D).length;
+                            return (
+                              (e = W.isFunction(e) ? e : function () {}),
+                              t && r && n
+                                ? (R.verbose('Triggering event', e), e(), !0)
+                                : (R.verbose('Event occurred in dropdown menu, canceling callback'),
+                                  !1)
+                            );
+                          },
+                        },
+                        action: {
+                          nothing: function () {},
+                          activate: function (t, e, n) {
+                            (e = void 0 !== e ? e : t),
+                              R.can.activate(W(n)) &&
+                                (R.set.selected(e, W(n)),
+                                (R.is.multiple() && !R.is.allFiltered()) || R.hideAndClear());
+                          },
+                          select: function (t, e, n) {
+                            (e = void 0 !== e ? e : t),
+                              R.can.activate(W(n)) &&
+                                (R.set.value(e, W(n)),
+                                (R.is.multiple() && !R.is.allFiltered()) || R.hideAndClear());
+                          },
+                          combo: function (t, e, n) {
+                            R.set.selected((e = void 0 !== e ? e : t), W(n)), R.hideAndClear();
+                          },
+                          hide: function (t, e, n) {
+                            R.set.value(e, t), R.hideAndClear();
+                          },
+                        },
+                        get: {
+                          id: function () {
+                            return o;
+                          },
+                          defaultText: function () {
+                            return w.data(f.defaultText);
+                          },
+                          defaultValue: function () {
+                            return w.data(f.defaultValue);
+                          },
+                          placeholderText: function () {
+                            return 'auto' != h.placeholder && 'string' == typeof h.placeholder
+                              ? h.placeholder
+                              : w.data(f.placeholderText) || '';
+                          },
+                          text: function () {
+                            return B.text();
+                          },
+                          query: function () {
+                            return W.trim(C.val());
+                          },
+                          searchWidth: function (t) {
+                            return (
+                              (t = void 0 !== t ? t : C.val()), x.text(t), Math.ceil(x.width() + 1)
+                            );
+                          },
+                          selectionCount: function () {
+                            var t = R.get.values();
+                            return R.is.multiple()
+                              ? W.isArray(t)
+                                ? t.length
+                                : 0
+                              : '' !== R.get.value()
+                                ? 1
+                                : 0;
+                          },
+                          transition: function (t) {
+                            return 'auto' == h.transition
+                              ? R.is.upward(t)
+                                ? 'slide up'
+                                : 'slide down'
+                              : h.transition;
+                          },
+                          userValues: function () {
+                            var t = R.get.values();
+                            return (
+                              !!t &&
+                              ((t = W.isArray(t) ? t : [t]),
+                              W.grep(t, function (t) {
+                                return !1 === R.get.item(t);
+                              }))
+                            );
+                          },
+                          uniqueArray: function (n) {
+                            return W.grep(n, function (t, e) {
+                              return W.inArray(t, n) === e;
+                            });
+                          },
+                          caretPosition: function () {
+                            var t,
+                              e,
+                              n = C.get(0);
+                            return 'selectionStart' in n
+                              ? n.selectionStart
+                              : K.selection
+                                ? (n.focus(),
+                                  (e = (t = K.selection.createRange()).text.length),
+                                  t.moveStart('character', -n.value.length),
+                                  t.text.length - e)
+                                : void 0;
+                          },
+                          value: function () {
+                            var t = 0 < I.length ? I.val() : w.data(f.value),
+                              e = W.isArray(t) && 1 === t.length && '' === t[0];
+                            return void 0 === t || e ? '' : t;
+                          },
+                          values: function () {
+                            var t = R.get.value();
+                            return '' === t
+                              ? ''
+                              : !R.has.selectInput() && R.is.multiple()
+                                ? 'string' == typeof t
+                                  ? t.split(h.delimiter)
+                                  : ''
+                                : t;
+                          },
+                          remoteValues: function () {
+                            var t = R.get.values(),
+                              r = !1;
+                            return (
+                              t &&
+                                W.each((t = 'string' == typeof t ? [t] : t), function (t, e) {
+                                  var n = R.read.remoteData(e);
+                                  R.verbose('Restoring value from session data', n, e),
+                                    n && ((r = r || {})[e] = n);
+                                }),
+                              r
+                            );
+                          },
+                          choiceText: function (t, e) {
+                            if (((e = void 0 !== e ? e : h.preserveHTML), t))
+                              return (
+                                0 < t.find(g.menu).length &&
+                                  (R.verbose('Retrieving text of element with sub-menu'),
+                                  (t = t.clone()).find(g.menu).remove(),
+                                  t.find(g.menuIcon).remove()),
+                                void 0 !== t.data(f.text)
+                                  ? t.data(f.text)
+                                  : e
+                                    ? W.trim(t.html())
+                                    : W.trim(t.text())
+                              );
+                          },
+                          choiceValue: function (t, e) {
+                            return (
+                              (e = e || R.get.choiceText(t)),
+                              !!t &&
+                                (void 0 !== t.data(f.value)
+                                  ? String(t.data(f.value))
+                                  : 'string' == typeof e
+                                    ? W.trim(e.toLowerCase())
+                                    : String(e))
+                            );
+                          },
+                          inputEvent: function () {
+                            var t = C[0];
+                            return (
+                              !!t &&
+                              (void 0 !== t.oninput
+                                ? 'input'
+                                : void 0 !== t.onpropertychange
+                                  ? 'propertychange'
+                                  : 'keyup')
+                            );
+                          },
+                          selectValues: function () {
+                            var r = { values: [] };
+                            return (
+                              w.find('option').each(function () {
+                                var t = W(this),
+                                  e = t.html(),
+                                  n = t.attr('disabled'),
+                                  t = void 0 !== t.attr('value') ? t.attr('value') : e;
+                                'auto' === h.placeholder && '' === t
+                                  ? (r.placeholder = e)
+                                  : r.values.push({ name: e, value: t, disabled: n });
+                              }),
+                              h.placeholder &&
+                                'auto' !== h.placeholder &&
+                                (R.debug('Setting placeholder value to', h.placeholder),
+                                (r.placeholder = h.placeholder)),
+                              h.sortSelect
+                                ? (r.values.sort(function (t, e) {
+                                    return t.name > e.name ? 1 : -1;
+                                  }),
+                                  R.debug('Retrieved and sorted values from select', r))
+                                : R.debug('Retrieved values from select', r),
+                              r
+                            );
+                          },
+                          activeItem: function () {
+                            return S.filter('.' + p.active);
+                          },
+                          selectedItem: function () {
+                            var t = S.not(g.unselectable).filter('.' + p.selected);
+                            return 0 < t.length ? t : S.eq(0);
+                          },
+                          itemWithAdditions: function (t) {
+                            var e = R.get.item(t),
+                              t = R.create.userChoice(t);
+                            return (e = t && 0 < t.length ? (0 < e.length ? e.add(t) : t) : e);
+                          },
+                          item: function (r, i) {
+                            var o = !1,
+                              t =
+                                null !=
+                                (r =
+                                  void 0 !== r
+                                    ? r
+                                    : void 0 !== R.get.values()
+                                      ? R.get.values()
+                                      : R.get.text()),
+                              a = R.is.multiple() && W.isArray(r);
+                            return (
+                              (i = '' === r || 0 === r || i || !1),
+                              t &&
+                                S.each(function () {
+                                  var t = W(this),
+                                    e = R.get.choiceText(t),
+                                    n = R.get.choiceValue(t, e);
+                                  if (null != n)
+                                    if (a)
+                                      (-1 === W.inArray(String(n), r) && -1 === W.inArray(e, r)) ||
+                                        (o = o ? o.add(t) : t);
+                                    else if (i) {
+                                      if (
+                                        (R.verbose(
+                                          'Ambiguous dropdown value using strict type check',
+                                          t,
+                                          r,
+                                        ),
+                                        n === r || e === r)
+                                      )
+                                        return (o = t), !0;
+                                    } else if (String(n) == String(r) || e == r)
+                                      return (
+                                        R.verbose('Found select item by value', n, r), (o = t), !0
+                                      );
+                                }),
+                              o
+                            );
+                          },
+                        },
+                        check: {
+                          maxSelections: function (t) {
+                            return (
+                              !h.maxSelections ||
+                              ((t = void 0 !== t ? t : R.get.selectionCount()) >= h.maxSelections
+                                ? (R.debug('Maximum selection count reached'),
+                                  h.useLabels &&
+                                    (S.addClass(p.filtered), R.add.message(u.maxSelections)),
+                                  !0)
+                                : (R.verbose('No longer at maximum selection count'),
+                                  R.remove.message(),
+                                  R.remove.filteredItem(),
+                                  R.is.searchSelection() && R.filterItems(),
+                                  !1))
+                            );
+                          },
+                        },
+                        restore: {
+                          defaults: function () {
+                            R.clear(), R.restore.defaultText(), R.restore.defaultValue();
+                          },
+                          defaultText: function () {
+                            var t = R.get.defaultText();
+                            t === R.get.placeholderText
+                              ? (R.debug('Restoring default placeholder text', t),
+                                R.set.placeholderText(t))
+                              : (R.debug('Restoring default text', t), R.set.text(t));
+                          },
+                          placeholderText: function () {
+                            R.set.placeholderText();
+                          },
+                          defaultValue: function () {
+                            var t = R.get.defaultValue();
+                            void 0 !== t &&
+                              (R.debug('Restoring default value', t),
+                              '' !== t
+                                ? (R.set.value(t), R.set.selected())
+                                : (R.remove.activeItem(), R.remove.selectedItem()));
+                          },
+                          labels: function () {
+                            h.allowAdditions &&
+                              (h.useLabels || (R.error(m.labels), (h.useLabels = !0)),
+                              R.debug('Restoring selected values'),
+                              R.create.userLabels()),
+                              R.check.maxSelections();
+                          },
+                          selected: function () {
+                            R.restore.values(),
+                              R.is.multiple()
+                                ? (R.debug('Restoring previously selected values and labels'),
+                                  R.restore.labels())
+                                : R.debug('Restoring previously selected values');
+                          },
+                          values: function () {
+                            R.set.initialLoad(),
+                              h.apiSettings && h.saveRemoteData && R.get.remoteValues()
+                                ? R.restore.remoteValues()
+                                : R.set.selected(),
+                              R.remove.initialLoad();
+                          },
+                          remoteValues: function () {
+                            var t = R.get.remoteValues();
+                            R.debug('Recreating selected from session data', t),
+                              t &&
+                                (R.is.single()
+                                  ? W.each(t, function (t, e) {
+                                      R.set.text(e);
+                                    })
+                                  : W.each(t, function (t, e) {
+                                      R.add.label(t, e);
+                                    }));
+                          },
+                        },
+                        read: {
+                          remoteData: function (t) {
+                            return void 0 === J.Storage
+                              ? void R.error(m.noStorage)
+                              : void 0 !== (t = sessionStorage.getItem(t)) && t;
+                          },
+                        },
+                        save: {
+                          defaults: function () {
+                            R.save.defaultText(), R.save.placeholderText(), R.save.defaultValue();
+                          },
+                          defaultValue: function () {
+                            var t = R.get.value();
+                            R.verbose('Saving default value as', t), w.data(f.defaultValue, t);
+                          },
+                          defaultText: function () {
+                            var t = R.get.text();
+                            R.verbose('Saving default text as', t), w.data(f.defaultText, t);
+                          },
+                          placeholderText: function () {
+                            var t;
+                            !1 !== h.placeholder &&
+                              B.hasClass(p.placeholder) &&
+                              ((t = R.get.text()),
+                              R.verbose('Saving placeholder text as', t),
+                              w.data(f.placeholderText, t));
+                          },
+                          remoteData: function (t, e) {
+                            void 0 === J.Storage
+                              ? R.error(m.noStorage)
+                              : (R.verbose('Saving remote data to session storage', e, t),
+                                sessionStorage.setItem(e, t));
+                          },
+                        },
+                        clear: function () {
+                          R.is.multiple() && h.useLabels
+                            ? R.remove.labels()
+                            : (R.remove.activeItem(), R.remove.selectedItem()),
+                            R.set.placeholderText(),
+                            R.clearValue();
+                        },
+                        clearValue: function () {
+                          R.set.value('');
+                        },
+                        scrollPage: function (t, e) {
+                          var e = e || R.get.selectedItem(),
+                            n = e.closest(g.menu),
+                            r = n.outerHeight(),
+                            i = n.scrollTop(),
+                            o = S.eq(0).outerHeight(),
+                            r = Math.floor(r / o),
+                            i = (n.prop('scrollHeight'), 'up' == t ? i - o * r : i + o * r),
+                            o = S.not(g.unselectable),
+                            r = 'up' == t ? o.index(e) - r : o.index(e) + r,
+                            r = ('up' == t ? 0 <= r : r < o.length)
+                              ? o.eq(r)
+                              : 'up' == t
+                                ? o.first()
+                                : o.last();
+                          0 < r.length &&
+                            (R.debug('Scrolling page', t, r),
+                            e.removeClass(p.selected),
+                            r.addClass(p.selected),
+                            h.selectOnKeydown && R.is.single() && R.set.selectedItem(r),
+                            n.scrollTop(i));
+                        },
+                        set: {
+                          filtered: function () {
+                            var t = R.is.multiple(),
+                              e = R.is.searchSelection(),
+                              n = t && e,
+                              e = e ? R.get.query() : '',
+                              r = 'string' == typeof e && 0 < e.length,
+                              i = R.get.searchWidth(),
+                              e = '' !== e;
+                            t &&
+                              r &&
+                              (R.verbose('Adjusting input width', i, h.glyphWidth),
+                              C.css('width', i)),
+                              r || (n && e)
+                                ? (R.verbose('Hiding placeholder text'), B.addClass(p.filtered))
+                                : (t && (!n || e)) ||
+                                  (R.verbose('Showing placeholder text'),
+                                  B.removeClass(p.filtered));
+                          },
+                          empty: function () {
+                            w.addClass(p.empty);
+                          },
+                          loading: function () {
+                            w.addClass(p.loading);
+                          },
+                          placeholderText: function (t) {
+                            (t = t || R.get.placeholderText()),
+                              R.debug('Setting placeholder text', t),
+                              R.set.text(t),
+                              B.addClass(p.placeholder);
+                          },
+                          tabbable: function () {
+                            R.is.searchSelection()
+                              ? (R.debug('Added tabindex to searchable dropdown'),
+                                C.val('').attr('tabindex', 0),
+                                D.attr('tabindex', -1))
+                              : (R.debug('Added tabindex to dropdown'),
+                                void 0 === w.attr('tabindex') &&
+                                  (w.attr('tabindex', 0), D.attr('tabindex', -1)));
+                          },
+                          initialLoad: function () {
+                            R.verbose('Setting initial load'), (t = !0);
+                          },
+                          activeItem: function (t) {
+                            h.allowAdditions && 0 < t.filter(g.addition).length
+                              ? t.addClass(p.filtered)
+                              : t.addClass(p.active);
+                          },
+                          partialSearch: function (t) {
+                            var e = R.get.query().length;
+                            C.val(t.substr(0, e));
+                          },
+                          scrollPosition: function (t, e) {
+                            var n,
+                              r,
+                              i = (t = t || R.get.selectedItem()).closest(g.menu),
+                              o = t && 0 < t.length;
+                            (e = void 0 !== e && e),
+                              t &&
+                                0 < i.length &&
+                                o &&
+                                (t.position().top,
+                                i.addClass(p.loading),
+                                (t = (o = i.scrollTop()) - i.offset().top + t.offset().top),
+                                e || ((r = o + i.height() < t + 5), (n = t - 5 < o)),
+                                R.debug('Scrolling to active item', t),
+                                (e || n || r) && i.scrollTop(t),
+                                i.removeClass(p.loading));
+                          },
+                          text: function (t) {
+                            'select' !== h.action &&
+                              ('combo' == h.action
+                                ? (R.debug('Changing combo button text', t, M),
+                                  h.preserveHTML ? M.html(t) : M.text(t))
+                                : (t !== R.get.placeholderText() && B.removeClass(p.placeholder),
+                                  R.debug('Changing text', t, B),
+                                  B.removeClass(p.filtered),
+                                  h.preserveHTML ? B.html(t) : B.text(t)));
+                          },
+                          selectedItem: function (t) {
+                            var e = R.get.choiceValue(t),
+                              n = R.get.choiceText(t, !1),
+                              r = R.get.choiceText(t, !0);
+                            R.debug('Setting user selection to item', t),
+                              R.remove.activeItem(),
+                              R.set.partialSearch(n),
+                              R.set.activeItem(t),
+                              R.set.selected(e, t),
+                              R.set.text(r);
+                          },
+                          selectedLetter: function (t) {
+                            var e = S.filter('.' + p.selected),
+                              n = 0 < e.length && R.has.firstLetter(e, t),
+                              r = !1;
+                            n && ((n = e.nextAll(S).eq(0)), R.has.firstLetter(n, t) && (r = n)),
+                              r ||
+                                S.each(function () {
+                                  if (R.has.firstLetter(W(this), t)) return (r = W(this)), !1;
+                                }),
+                              r &&
+                                (R.verbose('Scrolling to next value with letter', t),
+                                R.set.scrollPosition(r),
+                                e.removeClass(p.selected),
+                                r.addClass(p.selected),
+                                h.selectOnKeydown && R.is.single() && R.set.selectedItem(r));
+                          },
+                          direction: function (t) {
+                            'auto' == h.direction
+                              ? (R.remove.upward(),
+                                (R.can.openDownward(t) ? R.remove : R.set).upward(t),
+                                R.is.leftward(t) || R.can.openRightward(t) || R.set.leftward(t))
+                              : 'upward' == h.direction && R.set.upward(t);
+                          },
+                          upward: function (t) {
+                            (t || w).addClass(p.upward);
+                          },
+                          leftward: function (t) {
+                            (t || D).addClass(p.leftward);
+                          },
+                          value: function (t, e, n) {
+                            var r = R.escape.value(t),
+                              i = 0 < I.length,
+                              o = (R.has.value(t), R.get.values()),
+                              a = void 0 !== t ? String(t) : t;
+                            if (i) {
+                              if (
+                                !h.allowReselection &&
+                                a == o &&
+                                (R.verbose('Skipping value update already same value', t, o),
+                                !R.is.initialLoad())
+                              )
+                                return;
+                              R.is.single() &&
+                                R.has.selectInput() &&
+                                R.can.extendSelect() &&
+                                (R.debug('Adding user option', t), R.add.optionValue(t)),
+                                R.debug('Updating input value', r, o),
+                                (Q = !0),
+                                I.val(r),
+                                !1 === h.fireOnInit && R.is.initialLoad()
+                                  ? R.debug('Input native change event ignored on initial load')
+                                  : R.trigger.change(),
+                                (Q = !1);
+                            } else
+                              R.verbose('Storing value in metadata', r, I),
+                                r !== o && w.data(f.value, a);
+                            !1 === h.fireOnInit && R.is.initialLoad()
+                              ? R.verbose('No callback on initial load', h.onChange)
+                              : h.onChange.call(_, t, e, n);
+                          },
+                          active: function () {
+                            w.addClass(p.active);
+                          },
+                          multiple: function () {
+                            w.addClass(p.multiple);
+                          },
+                          visible: function () {
+                            w.addClass(p.visible);
+                          },
+                          exactly: function (t, e) {
+                            R.debug('Setting selected to exact values'),
+                              R.clear(),
+                              R.set.selected(t, e);
+                          },
+                          selected: function (t, s) {
+                            var l = R.is.multiple();
+                            (s = h.allowAdditions
+                              ? s || R.get.itemWithAdditions(t)
+                              : s || R.get.item(t)) &&
+                              (R.debug('Setting selected menu item to', s),
+                              R.is.multiple() && R.remove.searchWidth(),
+                              R.is.single()
+                                ? (R.remove.activeItem(), R.remove.selectedItem())
+                                : h.useLabels && R.remove.selectedItem(),
+                              s.each(function () {
+                                var t = W(this),
+                                  e = R.get.choiceText(t),
+                                  n = R.get.choiceValue(t, e),
+                                  r = t.hasClass(p.filtered),
+                                  i = t.hasClass(p.active),
+                                  o = t.hasClass(p.addition),
+                                  a = l && 1 == s.length;
+                                l
+                                  ? !i || o
+                                    ? (h.apiSettings && h.saveRemoteData && R.save.remoteData(e, n),
+                                      h.useLabels
+                                        ? (R.add.value(n, e, t),
+                                          R.add.label(n, e, a),
+                                          R.set.activeItem(t),
+                                          R.filterActive(),
+                                          R.select.nextAvailable(s))
+                                        : (R.add.value(n, e, t),
+                                          R.set.text(R.add.variables(u.count)),
+                                          R.set.activeItem(t)))
+                                    : r ||
+                                      (R.debug('Selected active value, removing label'),
+                                      R.remove.selected(n))
+                                  : (h.apiSettings && h.saveRemoteData && R.save.remoteData(e, n),
+                                    R.set.text(e),
+                                    R.set.value(n, e, t),
+                                    t.addClass(p.active).addClass(p.selected));
+                              }));
+                          },
+                        },
+                        add: {
+                          label: function (t, e, n) {
+                            var r,
+                              i = R.is.searchSelection() ? C : B,
+                              o = R.escape.value(t);
+                            (r = W('<a />')
+                              .addClass(p.label)
+                              .attr('data-' + f.value, o)
+                              .html(v.label(o, e))),
+                              (r = h.onLabelCreate.call(r, o, e)),
+                              R.has.label(t)
+                                ? R.debug('Label already exists, skipping', o)
+                                : (h.label.variation && r.addClass(h.label.variation),
+                                  !0 === n
+                                    ? (R.debug('Animating in label', r),
+                                      r
+                                        .addClass(p.hidden)
+                                        .insertBefore(i)
+                                        .transition(h.label.transition, h.label.duration))
+                                    : (R.debug('Adding selection label', r), r.insertBefore(i)));
+                          },
+                          message: function (t) {
+                            var e = D.children(g.message),
+                              t = h.templates.message(R.add.variables(t));
+                            0 < e.length
+                              ? e.html(t)
+                              : W('<div/>').html(t).addClass(p.message).appendTo(D);
+                          },
+                          optionValue: function (t) {
+                            var e = R.escape.value(t);
+                            0 < I.find('option[value="' + R.escape.string(e) + '"]').length ||
+                              (R.disconnect.selectObserver(),
+                              R.is.single() &&
+                                (R.verbose('Removing previous user addition'),
+                                I.find('option.' + p.addition).remove()),
+                              W('<option/>')
+                                .prop('value', e)
+                                .addClass(p.addition)
+                                .html(t)
+                                .appendTo(I),
+                              R.verbose('Adding user addition as an <option>', t),
+                              R.observe.select());
+                          },
+                          userSuggestion: function (t) {
+                            var e = D.children(g.addition),
+                              n = R.get.item(t),
+                              n = n && n.not(g.addition).length,
+                              r = 0 < e.length;
+                            (h.useLabels && R.has.maxSelections()) ||
+                              ('' === t || n
+                                ? e.remove()
+                                : (r
+                                    ? (e
+                                        .data(f.value, t)
+                                        .data(f.text, t)
+                                        .attr('data-' + f.value, t)
+                                        .attr('data-' + f.text, t)
+                                        .removeClass(p.filtered),
+                                      h.hideAdditions ||
+                                        ((n = h.templates.addition(
+                                          R.add.variables(u.addResult, t),
+                                        )),
+                                        e.html(n)),
+                                      R.verbose('Replacing user suggestion with new value', e))
+                                    : ((e = R.create.userChoice(t)).prependTo(D),
+                                      R.verbose(
+                                        'Adding item choice to menu corresponding with user choice addition',
+                                        e,
+                                      )),
+                                  (h.hideAdditions && !R.is.allFiltered()) ||
+                                    e.addClass(p.selected).siblings().removeClass(p.selected),
+                                  R.refreshItems()));
+                          },
+                          variables: function (t, e) {
+                            var n,
+                              r = -1 !== t.search('{count}'),
+                              i = -1 !== t.search('{maxCount}'),
+                              o = -1 !== t.search('{term}');
+                            return (
+                              R.verbose('Adding templated variables to message', t),
+                              r && ((n = R.get.selectionCount()), (t = t.replace('{count}', n))),
+                              i &&
+                                ((n = R.get.selectionCount()),
+                                (t = t.replace('{maxCount}', h.maxSelections))),
+                              o && ((r = e || R.get.query()), (t = t.replace('{term}', r))),
+                              t
+                            );
+                          },
+                          value: function (t, e, n) {
+                            var r,
+                              i = R.get.values();
+                            '' === t
+                              ? R.debug('Cannot select blank values from multiselect')
+                              : ((r = W.isArray(i)
+                                  ? ((r = i.concat([t])), R.get.uniqueArray(r))
+                                  : [t]),
+                                R.has.selectInput()
+                                  ? R.can.extendSelect() &&
+                                    (R.debug('Adding value to select', t, r, I),
+                                    R.add.optionValue(t))
+                                  : ((r = r.join(h.delimiter)),
+                                    R.debug('Setting hidden input to delimited value', r, I)),
+                                !1 === h.fireOnInit && R.is.initialLoad()
+                                  ? R.verbose('Skipping onadd callback on initial load', h.onAdd)
+                                  : h.onAdd.call(_, t, e, n),
+                                R.set.value(r, t, e, n),
+                                R.check.maxSelections());
+                          },
+                        },
+                        remove: {
+                          active: function () {
+                            w.removeClass(p.active);
+                          },
+                          activeLabel: function () {
+                            w.find(g.label).removeClass(p.active);
+                          },
+                          empty: function () {
+                            w.removeClass(p.empty);
+                          },
+                          loading: function () {
+                            w.removeClass(p.loading);
+                          },
+                          initialLoad: function () {
+                            t = !1;
+                          },
+                          upward: function (t) {
+                            (t || w).removeClass(p.upward);
+                          },
+                          leftward: function (t) {
+                            (t || D).removeClass(p.leftward);
+                          },
+                          visible: function () {
+                            w.removeClass(p.visible);
+                          },
+                          activeItem: function () {
+                            S.removeClass(p.active);
+                          },
+                          filteredItem: function () {
+                            (h.useLabels && R.has.maxSelections()) ||
+                              ((h.useLabels && R.is.multiple()
+                                ? S.not('.' + p.active)
+                                : S
+                              ).removeClass(p.filtered),
+                              R.remove.empty());
+                          },
+                          optionValue: function (t) {
+                            var t = R.escape.value(t),
+                              e = I.find('option[value="' + R.escape.string(t) + '"]');
+                            0 < e.length &&
+                              e.hasClass(p.addition) &&
+                              (a &&
+                                (a.disconnect(),
+                                R.verbose('Temporarily disconnecting mutation observer')),
+                              e.remove(),
+                              R.verbose('Removing user addition as an <option>', t),
+                              a && a.observe(I[0], { childList: !0, subtree: !0 }));
+                          },
+                          message: function () {
+                            D.children(g.message).remove();
+                          },
+                          searchWidth: function () {
+                            C.css('width', '');
+                          },
+                          searchTerm: function () {
+                            R.verbose('Cleared search term'), C.val(''), R.set.filtered();
+                          },
+                          userAddition: function () {
+                            S.filter(g.addition).remove();
+                          },
+                          selected: function (t, e) {
+                            if (
+                              !(e = h.allowAdditions
+                                ? e || R.get.itemWithAdditions(t)
+                                : e || R.get.item(t))
+                            )
+                              return !1;
+                            e.each(function () {
+                              var t = W(this),
+                                e = R.get.choiceText(t),
+                                n = R.get.choiceValue(t, e);
+                              R.is.multiple()
+                                ? h.useLabels
+                                  ? (R.remove.value(n, e, t), R.remove.label(n))
+                                  : (R.remove.value(n, e, t),
+                                    0 === R.get.selectionCount()
+                                      ? R.set.placeholderText()
+                                      : R.set.text(R.add.variables(u.count)))
+                                : R.remove.value(n, e, t),
+                                t.removeClass(p.filtered).removeClass(p.active),
+                                h.useLabels && t.removeClass(p.selected);
+                            });
+                          },
+                          selectedItem: function () {
+                            S.removeClass(p.selected);
+                          },
+                          value: function (t, e, n) {
+                            var r,
+                              i = R.get.values();
+                            R.has.selectInput()
+                              ? (R.verbose('Input is <select> removing selected option', t),
+                                (r = R.remove.arrayValue(t, i)),
+                                R.remove.optionValue(t))
+                              : (R.verbose('Removing from delimited values', t),
+                                (r = (r = R.remove.arrayValue(t, i)).join(h.delimiter))),
+                              !1 === h.fireOnInit && R.is.initialLoad()
+                                ? R.verbose('No callback on initial load', h.onRemove)
+                                : h.onRemove.call(_, t, e, n),
+                              R.set.value(r, e, n),
+                              R.check.maxSelections();
+                          },
+                          arrayValue: function (e, t) {
+                            return (
+                              W.isArray(t) || (t = [t]),
+                              (t = W.grep(t, function (t) {
+                                return e != t;
+                              })),
+                              R.verbose('Removed value from delimited string', e, t),
+                              t
+                            );
+                          },
+                          label: function (t, e) {
+                            t = w
+                              .find(g.label)
+                              .filter('[data-' + f.value + '="' + R.escape.string(t) + '"]');
+                            R.verbose('Removing label', t), t.remove();
+                          },
+                          activeLabels: function (t) {
+                            (t = t || w.find(g.label).filter('.' + p.active)),
+                              R.verbose('Removing active label selections', t),
+                              R.remove.labels(t);
+                          },
+                          labels: function (t) {
+                            (t = t || w.find(g.label)),
+                              R.verbose('Removing labels', t),
+                              t.each(function () {
+                                var t = W(this),
+                                  e = t.data(f.value),
+                                  n = void 0 !== e ? String(e) : e,
+                                  r = R.is.userValue(n);
+                                !1 === h.onLabelRemove.call(t, e)
+                                  ? R.debug('Label remove callback cancelled removal')
+                                  : (R.remove.message(),
+                                    r
+                                      ? (R.remove.value(n), R.remove.label(n))
+                                      : R.remove.selected(n));
+                              });
+                          },
+                          tabbable: function () {
+                            R.is.searchSelection()
+                              ? (R.debug('Searchable dropdown initialized'),
+                                C.removeAttr('tabindex'))
+                              : (R.debug('Simple selection dropdown initialized'),
+                                w.removeAttr('tabindex')),
+                              D.removeAttr('tabindex');
+                          },
+                        },
+                        has: {
+                          menuSearch: function () {
+                            return R.has.search() && 0 < C.closest(D).length;
+                          },
+                          search: function () {
+                            return 0 < C.length;
+                          },
+                          sizer: function () {
+                            return 0 < x.length;
+                          },
+                          selectInput: function () {
+                            return I.is('select');
+                          },
+                          minCharacters: function (t) {
+                            return (
+                              !h.minCharacters ||
+                              (t = void 0 !== t ? String(t) : String(R.get.query())).length >=
+                                h.minCharacters
+                            );
+                          },
+                          firstLetter: function (t, e) {
+                            return (
+                              !(!t || 0 === t.length || 'string' != typeof e) &&
+                              ((t = R.get.choiceText(t, !1)),
+                              (e = e.toLowerCase()) == String(t).charAt(0).toLowerCase())
+                            );
+                          },
+                          input: function () {
+                            return 0 < I.length;
+                          },
+                          items: function () {
+                            return 0 < S.length;
+                          },
+                          menu: function () {
+                            return 0 < D.length;
+                          },
+                          message: function () {
+                            return 0 !== D.children(g.message).length;
+                          },
+                          label: function (t) {
+                            t = R.escape.value(t);
+                            return (
+                              0 <
+                              w
+                                .find(g.label)
+                                .filter('[data-' + f.value + '="' + R.escape.string(t) + '"]')
+                                .length
+                            );
+                          },
+                          maxSelections: function () {
+                            return h.maxSelections && R.get.selectionCount() >= h.maxSelections;
+                          },
+                          allResultsFiltered: function () {
+                            var t = S.not(g.addition);
+                            return t.filter(g.unselectable).length === t.length;
+                          },
+                          userSuggestion: function () {
+                            return 0 < D.children(g.addition).length;
+                          },
+                          query: function () {
+                            return '' !== R.get.query();
+                          },
+                          value: function (t) {
+                            var e = R.get.values();
+                            return !!(W.isArray(e) ? e && -1 !== W.inArray(t, e) : e == t);
+                          },
+                        },
+                        is: {
+                          active: function () {
+                            return w.hasClass(p.active);
+                          },
+                          bubbledLabelClick: function (t) {
+                            return W(t.target).is('select, input') && 0 < w.closest('label').length;
+                          },
+                          bubbledIconClick: function (t) {
+                            return 0 < W(t.target).closest(U).length;
+                          },
+                          alreadySetup: function () {
+                            return (
+                              w.is('select') &&
+                              void 0 !== w.parent(g.dropdown).data(y) &&
+                              0 === w.prev().length
+                            );
+                          },
+                          animating: function (t) {
+                            return t
+                              ? t.transition && t.transition('is animating')
+                              : D.transition && D.transition('is animating');
+                          },
+                          leftward: function (t) {
+                            return (t || D).hasClass(p.leftward);
+                          },
+                          disabled: function () {
+                            return w.hasClass(p.disabled);
+                          },
+                          focused: function () {
+                            return K.activeElement === w[0];
+                          },
+                          focusedOnSearch: function () {
+                            return K.activeElement === C[0];
+                          },
+                          allFiltered: function () {
+                            return (
+                              (R.is.multiple() || R.has.search()) &&
+                              !(0 == h.hideAdditions && R.has.userSuggestion()) &&
+                              !R.has.message() &&
+                              R.has.allResultsFiltered()
+                            );
+                          },
+                          hidden: function (t) {
+                            return !R.is.visible(t);
+                          },
+                          initialLoad: function () {
+                            return t;
+                          },
+                          inObject: function (n, t) {
+                            var r = !1;
+                            return (
+                              W.each(t, function (t, e) {
+                                if (e == n) return (r = !0);
+                              }),
+                              r
+                            );
+                          },
+                          multiple: function () {
+                            return w.hasClass(p.multiple);
+                          },
+                          remote: function () {
+                            return h.apiSettings && R.can.useAPI();
+                          },
+                          single: function () {
+                            return !R.is.multiple();
+                          },
+                          selectMutation: function (t) {
+                            var n = !1;
+                            return (
+                              W.each(t, function (t, e) {
+                                if (e.target && W(e.target).is('select')) return (n = !0);
+                              }),
+                              n
+                            );
+                          },
+                          search: function () {
+                            return w.hasClass(p.search);
+                          },
+                          searchSelection: function () {
+                            return R.has.search() && 1 === C.parent(g.dropdown).length;
+                          },
+                          selection: function () {
+                            return w.hasClass(p.selection);
+                          },
+                          userValue: function (t) {
+                            return -1 !== W.inArray(t, R.get.userValues());
+                          },
+                          upward: function (t) {
+                            return (t || w).hasClass(p.upward);
+                          },
+                          visible: function (t) {
+                            return (t || D).hasClass(p.visible);
+                          },
+                          verticallyScrollableContext: function () {
+                            var t = E.get(0) !== J && E.css('overflow-y');
+                            return 'auto' == t || 'scroll' == t;
+                          },
+                          horizontallyScrollableContext: function () {
+                            var t = E.get(0) !== J && E.css('overflow-X');
+                            return 'auto' == t || 'scroll' == t;
+                          },
+                        },
+                        can: {
+                          activate: function (t) {
+                            return (
+                              !!h.useLabels ||
+                              !R.has.maxSelections() ||
+                              !(!R.has.maxSelections() || !t.hasClass(p.active))
+                            );
+                          },
+                          openDownward: function (t) {
+                            var e,
+                              t = t || D,
+                              n = !0;
+                            return (
+                              t.addClass(p.loading),
+                              (e = {
+                                context: { scrollTop: E.scrollTop(), height: E.outerHeight() },
+                                menu: { offset: t.offset(), height: t.outerHeight() },
+                              }),
+                              R.is.verticallyScrollableContext() &&
+                                (e.menu.offset.top += e.context.scrollTop),
+                              (n = (e = {
+                                above: e.context.scrollTop <= e.menu.offset.top - e.menu.height,
+                                below:
+                                  e.context.scrollTop + e.context.height >=
+                                  e.menu.offset.top + e.menu.height,
+                              }).below
+                                ? (R.verbose('Dropdown can fit in context downward', e), !0)
+                                : e.above
+                                  ? (R.verbose('Dropdown cannot fit below, opening upward', e), !1)
+                                  : (R.verbose(
+                                      'Dropdown cannot fit in either direction, favoring downward',
+                                      e,
+                                    ),
+                                    !0)),
+                              t.removeClass(p.loading),
+                              n
+                            );
+                          },
+                          openRightward: function (t) {
+                            var e,
+                              t = t || D,
+                              n = !0;
+                            return (
+                              t.addClass(p.loading),
+                              (e = {
+                                context: { scrollLeft: E.scrollLeft(), width: E.outerWidth() },
+                                menu: { offset: t.offset(), width: t.outerWidth() },
+                              }),
+                              R.is.horizontallyScrollableContext() &&
+                                (e.menu.offset.left += e.context.scrollLeft),
+                              (e =
+                                e.menu.offset.left + e.menu.width >=
+                                e.context.scrollLeft + e.context.width) &&
+                                (R.verbose('Dropdown cannot fit in context rightward', e),
+                                (n = !1)),
+                              t.removeClass(p.loading),
+                              n
+                            );
+                          },
+                          click: function () {
+                            return G || 'click' == h.on;
+                          },
+                          extendSelect: function () {
+                            return h.allowAdditions || h.apiSettings;
+                          },
+                          show: function () {
+                            return !R.is.disabled() && (R.has.items() || R.has.message());
+                          },
+                          useAPI: function () {
+                            return void 0 !== W.fn.api;
+                          },
+                        },
+                        animate: {
+                          show: function (t, e) {
+                            var n = e || D,
+                              r = e
+                                ? function () {}
+                                : function () {
+                                    R.hideSubMenus(), R.hideOthers(), R.set.active();
+                                  };
+                            (t = W.isFunction(t) ? t : function () {}),
+                              R.verbose('Doing menu show animation', n),
+                              R.set.direction(e),
+                              (e = R.get.transition(e)),
+                              R.is.selection() && R.set.scrollPosition(R.get.selectedItem(), !0),
+                              (R.is.hidden(n) || R.is.animating(n)) &&
+                                ('none' == e
+                                  ? (r(), n.transition('show'), t.call(_))
+                                  : void 0 !== W.fn.transition && w.transition('is supported')
+                                    ? n.transition({
+                                        animation: e + ' in',
+                                        debug: h.debug,
+                                        verbose: h.verbose,
+                                        duration: h.duration,
+                                        queue: !0,
+                                        onStart: r,
+                                        onComplete: function () {
+                                          t.call(_);
+                                        },
+                                      })
+                                    : R.error(m.noTransition, e));
+                          },
+                          hide: function (t, e) {
+                            var n = e || D,
+                              r =
+                                (h.duration,
+                                e
+                                  ? function () {}
+                                  : function () {
+                                      R.can.click() && R.unbind.intent(), R.remove.active();
+                                    }),
+                              e = R.get.transition(e);
+                            (t = W.isFunction(t) ? t : function () {}),
+                              (R.is.visible(n) || R.is.animating(n)) &&
+                                (R.verbose('Doing menu hide animation', n),
+                                'none' == e
+                                  ? (r(), n.transition('hide'), t.call(_))
+                                  : void 0 !== W.fn.transition && w.transition('is supported')
+                                    ? n.transition({
+                                        animation: e + ' out',
+                                        duration: h.duration,
+                                        debug: h.debug,
+                                        verbose: h.verbose,
+                                        queue: !0,
+                                        onStart: r,
+                                        onComplete: function () {
+                                          t.call(_);
+                                        },
+                                      })
+                                    : R.error(m.transition));
+                          },
+                        },
+                        hideAndClear: function () {
+                          R.remove.searchTerm(),
+                            R.has.maxSelections() ||
+                              (R.has.search()
+                                ? R.hide(function () {
+                                    R.remove.filteredItem();
+                                  })
+                                : R.hide());
+                        },
+                        delay: {
+                          show: function () {
+                            R.verbose('Delaying show event to ensure user intent'),
+                              clearTimeout(R.timer),
+                              (R.timer = setTimeout(R.show, h.delay.show));
+                          },
+                          hide: function () {
+                            R.verbose('Delaying hide event to ensure user intent'),
+                              clearTimeout(R.timer),
+                              (R.timer = setTimeout(R.hide, h.delay.hide));
+                          },
+                        },
+                        escape: {
+                          value: function (t) {
+                            var e = W.isArray(t),
+                              n = 'string' == typeof t,
+                              r = !n && !e,
+                              n = n && -1 !== t.search(A.quote),
+                              i = [];
+                            return r || !n
+                              ? t
+                              : (R.debug('Encoding quote values for use in select', t),
+                                e
+                                  ? (W.each(t, function (t, e) {
+                                      i.push(e.replace(A.quote, '&quot;'));
+                                    }),
+                                    i)
+                                  : t.replace(A.quote, '&quot;'));
+                          },
+                          string: function (t) {
+                            return (t = String(t)).replace(A.escape, '\\$&');
+                          },
+                        },
+                        setting: function (t, e) {
+                          if ((R.debug('Changing setting', t, e), W.isPlainObject(t)))
+                            W.extend(!0, h, t);
+                          else {
+                            if (void 0 === e) return h[t];
+                            W.isPlainObject(h[t]) ? W.extend(!0, h[t], e) : (h[t] = e);
+                          }
+                        },
+                        internal: function (t, e) {
+                          if (W.isPlainObject(t)) W.extend(!0, R, t);
+                          else {
+                            if (void 0 === e) return R[t];
+                            R[t] = e;
+                          }
+                        },
+                        debug: function () {
+                          !h.silent &&
+                            h.debug &&
+                            (h.performance
+                              ? R.performance.log(arguments)
+                              : ((R.debug = Function.prototype.bind.call(
+                                  console.info,
+                                  console,
+                                  h.name + ':',
+                                )),
+                                R.debug.apply(console, arguments)));
+                        },
+                        verbose: function () {
+                          !h.silent &&
+                            h.verbose &&
+                            h.debug &&
+                            (h.performance
+                              ? R.performance.log(arguments)
+                              : ((R.verbose = Function.prototype.bind.call(
+                                  console.info,
+                                  console,
+                                  h.name + ':',
+                                )),
+                                R.verbose.apply(console, arguments)));
+                        },
+                        error: function () {
+                          h.silent ||
+                            ((R.error = Function.prototype.bind.call(
+                              console.error,
+                              console,
+                              h.name + ':',
+                            )),
+                            R.error.apply(console, arguments));
+                        },
+                        performance: {
+                          log: function (t) {
+                            var e, n;
+                            h.performance &&
+                              ((n = (e = new Date().getTime()) - (z || e)),
+                              (z = e),
+                              H.push({
+                                Name: t[0],
+                                Arguments: [].slice.call(t, 1) || '',
+                                Element: _,
+                                'Execution Time': n,
+                              })),
+                              clearTimeout(R.performance.timer),
+                              (R.performance.timer = setTimeout(R.performance.display, 500));
+                          },
+                          display: function () {
+                            var t = h.name + ':',
+                              n = 0;
+                            (z = !1),
+                              clearTimeout(R.performance.timer),
+                              W.each(H, function (t, e) {
+                                n += e['Execution Time'];
+                              }),
+                              (t += ' ' + n + 'ms'),
+                              O && (t += " '" + O + "'"),
+                              (void 0 !== console.group || void 0 !== console.table) &&
+                                0 < H.length &&
+                                (console.groupCollapsed(t),
+                                console.table
+                                  ? console.table(H)
+                                  : W.each(H, function (t, e) {
+                                      console.log(e.Name + ': ' + e['Execution Time'] + 'ms');
+                                    }),
+                                console.groupEnd()),
+                              (H = []);
+                          },
+                        },
+                        invoke: function (r, t, e) {
+                          var i,
+                            o,
+                            n,
+                            a = T;
+                          return (
+                            (t = t || q),
+                            (e = _ || e),
+                            'string' == typeof r &&
+                              void 0 !== a &&
+                              ((r = r.split(/[\. ]/)),
+                              (i = r.length - 1),
+                              W.each(r, function (t, e) {
+                                var n =
+                                  t != i
+                                    ? e + r[t + 1].charAt(0).toUpperCase() + r[t + 1].slice(1)
+                                    : r;
+                                if (!W.isPlainObject(a[n]) || t == i)
+                                  return void 0 !== a[n]
+                                    ? ((o = a[n]), !1)
+                                    : W.isPlainObject(a[e]) && t != i
+                                      ? void (a = a[e])
+                                      : (void 0 !== a[e] ? (o = a[e]) : R.error(m.method, r), !1);
+                                a = a[n];
+                              })),
+                            W.isFunction(o) ? (n = o.apply(e, t)) : void 0 !== o && (n = o),
+                            W.isArray(P)
+                              ? P.push(n)
+                              : void 0 !== P
+                                ? (P = [P, n])
+                                : void 0 !== n && (P = n),
+                            o
+                          );
+                        },
+                      };
+                    V
+                      ? (void 0 === T && R.initialize(), R.invoke(j))
+                      : (void 0 !== T && T.invoke('destroy'), R.initialize());
+                  }),
+                  void 0 !== P ? P : L
+                );
+              }),
+              (W.fn.dropdown.settings = {
+                silent: !1,
+                debug: !1,
+                verbose: !1,
+                performance: !0,
+                on: 'click',
+                action: 'activate',
+                values: !1,
+                apiSettings: !1,
+                selectOnKeydown: !0,
+                minCharacters: 0,
+                filterRemoteData: !1,
+                saveRemoteData: !0,
+                throttle: 200,
+                context: J,
+                direction: 'auto',
+                keepOnScreen: !0,
+                match: 'both',
+                fullTextSearch: !1,
+                placeholder: 'auto',
+                preserveHTML: !0,
+                sortSelect: !1,
+                forceSelection: !0,
+                allowAdditions: !1,
+                hideAdditions: !0,
+                maxSelections: !1,
+                useLabels: !0,
+                delimiter: ',',
+                showOnFocus: !0,
+                allowReselection: !1,
+                allowTab: !0,
+                allowCategorySelection: !1,
+                fireOnInit: !1,
+                transition: 'auto',
+                duration: 200,
+                glyphWidth: 1.037,
+                label: { transition: 'scale', duration: 200, variation: !1 },
+                delay: { hide: 300, show: 200, search: 20, touch: 50 },
+                onChange: function (t, e, n) {},
+                onAdd: function (t, e, n) {},
+                onRemove: function (t, e, n) {},
+                onLabelSelect: function (t) {},
+                onLabelCreate: function (t, e) {
+                  return W(this);
+                },
+                onLabelRemove: function (t) {
+                  return !0;
+                },
+                onNoResults: function (t) {
+                  return !0;
+                },
+                onShow: function () {},
+                onHide: function () {},
+                name: 'Dropdown',
+                namespace: 'dropdown',
+                message: {
+                  addResult: 'Add <b>{term}</b>',
+                  count: '{count} selected',
+                  maxSelections: 'Max {maxCount} selections',
+                  noResults: 'No results found.',
+                  serverError: 'There was an error contacting the server',
+                },
+                error: {
+                  action: 'You called a dropdown action that was not defined',
+                  alreadySetup:
+                    'Once a select has been initialized behaviors must be called on the created ui dropdown',
+                  labels: 'Allowing user additions currently requires the use of labels.',
+                  missingMultiple:
+                    '<select> requires multiple property to be set to correctly preserve multiple values',
+                  method: 'The method you called is not defined.',
+                  noAPI: 'The API module is required to load resources remotely',
+                  noStorage: 'Saving remote data requires session storage',
+                  noTransition:
+                    'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>',
+                },
+                regExp: { escape: /[-[\]{}()*+?.,\\^$|#\s]/g, quote: /"/g },
+                metadata: {
+                  defaultText: 'defaultText',
+                  defaultValue: 'defaultValue',
+                  placeholderText: 'placeholder',
+                  text: 'text',
+                  value: 'value',
+                },
+                fields: {
+                  remoteValues: 'results',
+                  values: 'values',
+                  disabled: 'disabled',
+                  name: 'name',
+                  value: 'value',
+                  text: 'text',
+                },
+                keys: {
+                  backspace: 8,
+                  delimiter: 188,
+                  deleteKey: 46,
+                  enter: 13,
+                  escape: 27,
+                  pageUp: 33,
+                  pageDown: 34,
+                  leftArrow: 37,
+                  upArrow: 38,
+                  rightArrow: 39,
+                  downArrow: 40,
+                },
+                selector: {
+                  addition: '.addition',
+                  dropdown: '.ui.dropdown',
+                  hidden: '.hidden',
+                  icon: '> .dropdown.icon',
+                  input: '> input[type="hidden"], > select',
+                  item: '.item',
+                  label: '> .label',
+                  remove: '> .label > .delete.icon',
+                  siblingLabel: '.label',
+                  menu: '.menu',
+                  message: '.message',
+                  menuIcon: '.dropdown.icon',
+                  search: 'input.search, .menu > .search > input, .menu input.search',
+                  sizer: '> input.sizer',
+                  text: '> .text:not(.icon)',
+                  unselectable: '.disabled, .filtered',
+                },
+                className: {
+                  active: 'active',
+                  addition: 'addition',
+                  animating: 'animating',
+                  disabled: 'disabled',
+                  empty: 'empty',
+                  dropdown: 'ui dropdown',
+                  filtered: 'filtered',
+                  hidden: 'hidden transition',
+                  item: 'item',
+                  label: 'ui label',
+                  loading: 'loading',
+                  menu: 'menu',
+                  message: 'message',
+                  multiple: 'multiple',
+                  placeholder: 'default',
+                  sizer: 'sizer',
+                  search: 'search',
+                  selected: 'selected',
+                  selection: 'selection',
+                  upward: 'upward',
+                  leftward: 'left',
+                  visible: 'visible',
+                },
+              }),
+              (W.fn.dropdown.settings.templates = {
+                dropdown: function (t) {
+                  var e = t.placeholder || !1,
+                    n = (t.values, '');
+                  return (
+                    (n += '<i class="dropdown icon"></i>'),
+                    t.placeholder
+                      ? (n += '<div class="default text">' + e + '</div>')
+                      : (n += '<div class="text"></div>'),
+                    (n += '<div class="menu">'),
+                    W.each(t.values, function (t, e) {
+                      n += e.disabled
+                        ? '<div class="disabled item" data-value="' +
+                          e.value +
+                          '">' +
+                          e.name +
+                          '</div>'
+                        : '<div class="item" data-value="' + e.value + '">' + e.name + '</div>';
+                    }),
+                    (n += '</div>')
+                  );
+                },
+                menu: function (t, i) {
+                  var t = t[i.values] || {},
+                    o = '';
+                  return (
+                    W.each(t, function (t, e) {
+                      var n = e[i.text] ? 'data-text="' + e[i.text] + '"' : '',
+                        r = e[i.disabled] ? 'disabled ' : '';
+                      o =
+                        (o +=
+                          '<div class="' + r + 'item" data-value="' + e[i.value] + '"' + n + '>') +
+                        e[i.name] +
+                        '</div>';
+                    }),
+                    o
+                  );
+                },
+                label: function (t, e) {
+                  return e + '<i class="delete icon"></i>';
+                },
+                message: function (t) {
+                  return t;
+                },
+                addition: function (t) {
+                  return t;
+                },
+              });
+          })(jQuery, window, document);
+        },
+        {},
+      ],
+      63: [
+        function (t, e, n) {
+          !(function (w, t, E) {
+            'use strict';
+            (t =
+              void 0 !== t && t.Math == Math
+                ? t
+                : 'undefined' != typeof self && self.Math == Math
+                  ? self
+                  : Function('return this')()),
+              (w.fn.transition = function () {
+                var p,
+                  a = w(this),
+                  d = a.selector || '',
+                  f = new Date().getTime(),
+                  g = [],
+                  m = arguments,
+                  v = m[0],
+                  b = [].slice.call(arguments, 1),
+                  y = 'string' == typeof v;
+                return (
+                  t.requestAnimationFrame ||
+                    t.mozRequestAnimationFrame ||
+                    t.webkitRequestAnimationFrame ||
+                    t.msRequestAnimationFrame,
+                  a.each(function (n) {
+                    var l,
+                      s,
+                      e,
+                      u,
+                      r,
+                      i,
+                      t,
+                      o,
+                      c = w(this),
+                      A = this,
+                      h = {
+                        initialize: function () {
+                          (l = h.get.settings.apply(A, m)),
+                            (u = l.className),
+                            (e = l.error),
+                            (r = l.metadata),
+                            (o = '.' + l.namespace),
+                            (t = 'module-' + l.namespace),
+                            (s = c.data(t) || h),
+                            (i = h.get.animationEndEvent()),
+                            !1 === (y = y && h.invoke(v)) &&
+                              (h.verbose('Converted arguments into settings object', l),
+                              l.interval ? h.delay(l.animate) : h.animate(),
+                              h.instantiate());
+                        },
+                        instantiate: function () {
+                          h.verbose('Storing instance of module', h), (s = h), c.data(t, s);
+                        },
+                        destroy: function () {
+                          h.verbose('Destroying previous module for', A), c.removeData(t);
+                        },
+                        refresh: function () {
+                          h.verbose('Refreshing display type on next animation'),
+                            delete h.displayType;
+                        },
+                        forceRepaint: function () {
+                          h.verbose('Forcing element repaint');
+                          var t = c.parent(),
+                            e = c.next();
+                          0 === e.length ? c.detach().appendTo(t) : c.detach().insertBefore(e);
+                        },
+                        repaint: function () {
+                          h.verbose('Repainting element'), A.offsetWidth;
+                        },
+                        delay: function (t) {
+                          var e =
+                            (e = h.get.animationDirection()) ||
+                            (h.can.transition() ? h.get.direction() : 'static');
+                          (t = void 0 !== t ? t : l.interval),
+                            (t =
+                              ('auto' == l.reverse && e == u.outward) || 1 == l.reverse
+                                ? (a.length - n) * l.interval
+                                : n * l.interval),
+                            h.debug('Delaying animation by', t),
+                            setTimeout(h.animate, t);
+                        },
+                        animate: function (t) {
+                          if (((l = t || l), !h.is.supported())) return h.error(e.support), !1;
+                          if ((h.debug('Preparing animation', l.animation), h.is.animating())) {
+                            if (l.queue)
+                              return (
+                                !l.allowRepeats &&
+                                h.has.direction() &&
+                                h.is.occurring() &&
+                                !0 !== h.queuing
+                                  ? h.debug(
+                                      'Animation is currently occurring, preventing queueing same animation',
+                                      l.animation,
+                                    )
+                                  : h.queue(l.animation),
+                                !1
+                              );
+                            if (!l.allowRepeats && h.is.occurring())
+                              return (
+                                h.debug(
+                                  'Animation is already occurring, will not execute repeated animation',
+                                  l.animation,
+                                ),
+                                !1
+                              );
+                            h.debug(
+                              'New animation started, completing previous early',
+                              l.animation,
+                            ),
+                              s.complete();
+                          }
+                          h.can.animate()
+                            ? h.set.animating(l.animation)
+                            : h.error(e.noAnimation, l.animation, A);
+                        },
+                        reset: function () {
+                          h.debug('Resetting animation to beginning conditions'),
+                            h.remove.animationCallbacks(),
+                            h.restore.conditions(),
+                            h.remove.animating();
+                        },
+                        queue: function (t) {
+                          h.debug('Queueing animation of', t),
+                            (h.queuing = !0),
+                            c.one(i + '.queue' + o, function () {
+                              (h.queuing = !1), h.repaint(), h.animate.apply(this, l);
+                            });
+                        },
+                        complete: function (t) {
+                          h.debug('Animation complete', l.animation),
+                            h.remove.completeCallback(),
+                            h.remove.failSafe(),
+                            h.is.looping() ||
+                              (h.is.outward()
+                                ? (h.verbose('Animation is outward, hiding element'),
+                                  h.restore.conditions(),
+                                  h.hide())
+                                : h.is.inward()
+                                  ? (h.verbose('Animation is outward, showing element'),
+                                    h.restore.conditions(),
+                                    h.show())
+                                  : (h.verbose('Static animation completed'),
+                                    h.restore.conditions(),
+                                    l.onComplete.call(A)));
+                        },
+                        force: {
+                          visible: function () {
+                            var t = c.attr('style'),
+                              e = h.get.userStyle(),
+                              n = h.get.displayType(),
+                              e = e + 'display: ' + n + ' !important;',
+                              t = void 0 === t || '' === t;
+                            c.css('display') !== n
+                              ? (h.verbose('Overriding default display to show element', n),
+                                c.attr('style', e))
+                              : t && c.removeAttr('style');
+                          },
+                          hidden: function () {
+                            var t = c.attr('style'),
+                              t = void 0 === t || '' === t;
+                            'none' === c.css('display') || h.is.hidden()
+                              ? t && c.removeAttr('style')
+                              : (h.verbose('Overriding default display to hide element'),
+                                c.css('display', 'none'));
+                          },
+                        },
+                        has: {
+                          direction: function (t) {
+                            var n = !1;
+                            return (
+                              'string' == typeof (t = t || l.animation) &&
+                                ((t = t.split(' ')),
+                                w.each(t, function (t, e) {
+                                  (e !== u.inward && e !== u.outward) || (n = !0);
+                                })),
+                              n
+                            );
+                          },
+                          inlineDisplay: function () {
+                            var t = c.attr('style') || '';
+                            return w.isArray(t.match(/display.*?;/, ''));
+                          },
+                        },
+                        set: {
+                          animating: function (t) {
+                            h.remove.completeCallback(),
+                              (t = t || l.animation),
+                              (t = h.get.animationClass(t)),
+                              h.save.animation(t),
+                              h.force.visible(),
+                              h.remove.hidden(),
+                              h.remove.direction(),
+                              h.start.animation(t);
+                          },
+                          duration: function (t, e) {
+                            (!(e = 'number' == typeof (e = e || l.duration) ? e + 'ms' : e) &&
+                              0 !== e) ||
+                              (h.verbose('Setting animation duration', e),
+                              c.css({ 'animation-duration': e }));
+                          },
+                          direction: function (t) {
+                            (t = t || h.get.direction()) == u.inward
+                              ? h.set.inward()
+                              : h.set.outward();
+                          },
+                          looping: function () {
+                            h.debug('Transition set to loop'), c.addClass(u.looping);
+                          },
+                          hidden: function () {
+                            c.addClass(u.transition).addClass(u.hidden);
+                          },
+                          inward: function () {
+                            h.debug('Setting direction to inward'),
+                              c.removeClass(u.outward).addClass(u.inward);
+                          },
+                          outward: function () {
+                            h.debug('Setting direction to outward'),
+                              c.removeClass(u.inward).addClass(u.outward);
+                          },
+                          visible: function () {
+                            c.addClass(u.transition).addClass(u.visible);
+                          },
+                        },
+                        start: {
+                          animation: function (t) {
+                            (t = t || h.get.animationClass()),
+                              h.debug('Starting tween', t),
+                              c.addClass(t).one(i + '.complete' + o, h.complete),
+                              l.useFailSafe && h.add.failSafe(),
+                              h.set.duration(l.duration),
+                              l.onStart.call(A);
+                          },
+                        },
+                        save: {
+                          animation: function (t) {
+                            h.cache || (h.cache = {}), (h.cache.animation = t);
+                          },
+                          displayType: function (t) {
+                            'none' !== t && c.data(r.displayType, t);
+                          },
+                          transitionExists: function (t, e) {
+                            (w.fn.transition.exists[t] = e),
+                              h.verbose('Saving existence of transition', t, e);
+                          },
+                        },
+                        restore: {
+                          conditions: function () {
+                            var t = h.get.currentAnimation();
+                            t && (c.removeClass(t), h.verbose('Removing animation class', h.cache)),
+                              h.remove.duration();
+                          },
+                        },
+                        add: {
+                          failSafe: function () {
+                            var t = h.get.duration();
+                            (h.timer = setTimeout(function () {
+                              c.triggerHandler(i);
+                            }, t + l.failSafeDelay)),
+                              h.verbose('Adding fail safe timer', h.timer);
+                          },
+                        },
+                        remove: {
+                          animating: function () {
+                            c.removeClass(u.animating);
+                          },
+                          animationCallbacks: function () {
+                            h.remove.queueCallback(), h.remove.completeCallback();
+                          },
+                          queueCallback: function () {
+                            c.off('.queue' + o);
+                          },
+                          completeCallback: function () {
+                            c.off('.complete' + o);
+                          },
+                          display: function () {
+                            c.css('display', '');
+                          },
+                          direction: function () {
+                            c.removeClass(u.inward).removeClass(u.outward);
+                          },
+                          duration: function () {
+                            c.css('animation-duration', '');
+                          },
+                          failSafe: function () {
+                            h.verbose('Removing fail safe timer', h.timer),
+                              h.timer && clearTimeout(h.timer);
+                          },
+                          hidden: function () {
+                            c.removeClass(u.hidden);
+                          },
+                          visible: function () {
+                            c.removeClass(u.visible);
+                          },
+                          looping: function () {
+                            h.debug('Transitions are no longer looping'),
+                              h.is.looping() && (h.reset(), c.removeClass(u.looping));
+                          },
+                          transition: function () {
+                            c.removeClass(u.visible).removeClass(u.hidden);
+                          },
+                        },
+                        get: {
+                          settings: function (t, e, n) {
+                            return 'object' == typeof t
+                              ? w.extend(!0, {}, w.fn.transition.settings, t)
+                              : 'function' == typeof n
+                                ? w.extend({}, w.fn.transition.settings, {
+                                    animation: t,
+                                    onComplete: n,
+                                    duration: e,
+                                  })
+                                : 'string' == typeof e || 'number' == typeof e
+                                  ? w.extend({}, w.fn.transition.settings, {
+                                      animation: t,
+                                      duration: e,
+                                    })
+                                  : 'object' == typeof e
+                                    ? w.extend({}, w.fn.transition.settings, e, { animation: t })
+                                    : 'function' == typeof e
+                                      ? w.extend({}, w.fn.transition.settings, {
+                                          animation: t,
+                                          onComplete: e,
+                                        })
+                                      : w.extend({}, w.fn.transition.settings, { animation: t });
+                          },
+                          animationClass: function (t) {
+                            var t = t || l.animation,
+                              e =
+                                h.can.transition() && !h.has.direction()
+                                  ? h.get.direction() + ' '
+                                  : '';
+                            return u.animating + ' ' + u.transition + ' ' + e + t;
+                          },
+                          currentAnimation: function () {
+                            return !(!h.cache || void 0 === h.cache.animation) && h.cache.animation;
+                          },
+                          currentDirection: function () {
+                            return h.is.inward() ? u.inward : u.outward;
+                          },
+                          direction: function () {
+                            return h.is.hidden() || !h.is.visible() ? u.inward : u.outward;
+                          },
+                          animationDirection: function (t) {
+                            var n;
+                            return (
+                              'string' == typeof (t = t || l.animation) &&
+                                ((t = t.split(' ')),
+                                w.each(t, function (t, e) {
+                                  e === u.inward
+                                    ? (n = u.inward)
+                                    : e === u.outward && (n = u.outward);
+                                })),
+                              n || !1
+                            );
+                          },
+                          duration: function (t) {
+                            return 'string' ==
+                              typeof (t =
+                                !1 === (t = t || l.duration) ? c.css('animation-duration') || 0 : t)
+                              ? -1 < t.indexOf('ms')
+                                ? parseFloat(t)
+                                : 1e3 * parseFloat(t)
+                              : t;
+                          },
+                          displayType: function (t) {
+                            return (
+                              (t = void 0 === t || t),
+                              l.displayType ||
+                                (t && void 0 === c.data(r.displayType) && h.can.transition(!0),
+                                c.data(r.displayType))
+                            );
+                          },
+                          userStyle: function (t) {
+                            return (t = t || c.attr('style') || '').replace(/display.*?;/, '');
+                          },
+                          transitionExists: function (t) {
+                            return w.fn.transition.exists[t];
+                          },
+                          animationStartEvent: function () {
+                            var t,
+                              e = E.createElement('div'),
+                              n = {
+                                animation: 'animationstart',
+                                OAnimation: 'oAnimationStart',
+                                MozAnimation: 'mozAnimationStart',
+                                WebkitAnimation: 'webkitAnimationStart',
+                              };
+                            for (t in n) if (void 0 !== e.style[t]) return n[t];
+                            return !1;
+                          },
+                          animationEndEvent: function () {
+                            var t,
+                              e = E.createElement('div'),
+                              n = {
+                                animation: 'animationend',
+                                OAnimation: 'oAnimationEnd',
+                                MozAnimation: 'mozAnimationEnd',
+                                WebkitAnimation: 'webkitAnimationEnd',
+                              };
+                            for (t in n) if (void 0 !== e.style[t]) return n[t];
+                            return !1;
+                          },
+                        },
+                        can: {
+                          transition: function (t) {
+                            var e,
+                              n,
+                              r,
+                              i,
+                              o = l.animation,
+                              a = h.get.transitionExists(o),
+                              s = h.get.displayType(!1);
+                            if (void 0 === a || t) {
+                              if (
+                                (h.verbose('Determining whether animation exists'),
+                                (t = c.attr('class')),
+                                (e = c.prop('tagName')),
+                                (n = (e = w('<' + e + ' />')
+                                  .addClass(t)
+                                  .insertAfter(c))
+                                  .addClass(o)
+                                  .removeClass(u.inward)
+                                  .removeClass(u.outward)
+                                  .addClass(u.animating)
+                                  .addClass(u.transition)
+                                  .css('animationName')),
+                                (r = e.addClass(u.inward).css('animationName')),
+                                s ||
+                                  ((s = e
+                                    .attr('class', t)
+                                    .removeAttr('style')
+                                    .removeClass(u.hidden)
+                                    .removeClass(u.visible)
+                                    .show()
+                                    .css('display')),
+                                  h.verbose('Determining final display state', s),
+                                  h.save.displayType(s)),
+                                e.remove(),
+                                n != r)
+                              )
+                                h.debug('Direction exists for animation', o), (i = !0);
+                              else {
+                                if ('none' == n || !n)
+                                  return void h.debug('No animation defined in css', o);
+                                h.debug('Static animation found', o, s), (i = !1);
+                              }
+                              h.save.transitionExists(o, i);
+                            }
+                            return void 0 !== a ? a : i;
+                          },
+                          animate: function () {
+                            return void 0 !== h.can.transition();
+                          },
+                        },
+                        is: {
+                          animating: function () {
+                            return c.hasClass(u.animating);
+                          },
+                          inward: function () {
+                            return c.hasClass(u.inward);
+                          },
+                          outward: function () {
+                            return c.hasClass(u.outward);
+                          },
+                          looping: function () {
+                            return c.hasClass(u.looping);
+                          },
+                          occurring: function (t) {
+                            return (
+                              (t = '.' + (t = t || l.animation).replace(' ', '.')),
+                              0 < c.filter(t).length
+                            );
+                          },
+                          visible: function () {
+                            return c.is(':visible');
+                          },
+                          hidden: function () {
+                            return 'hidden' === c.css('visibility');
+                          },
+                          supported: function () {
+                            return !1 !== i;
+                          },
+                        },
+                        hide: function () {
+                          h.verbose('Hiding element'),
+                            h.is.animating() && h.reset(),
+                            A.blur(),
+                            h.remove.display(),
+                            h.remove.visible(),
+                            h.set.hidden(),
+                            h.force.hidden(),
+                            l.onHide.call(A),
+                            l.onComplete.call(A);
+                        },
+                        show: function (t) {
+                          h.verbose('Showing element', t),
+                            h.remove.hidden(),
+                            h.set.visible(),
+                            h.force.visible(),
+                            l.onShow.call(A),
+                            l.onComplete.call(A);
+                        },
+                        toggle: function () {
+                          h.is.visible() ? h.hide() : h.show();
+                        },
+                        stop: function () {
+                          h.debug('Stopping current animation'), c.triggerHandler(i);
+                        },
+                        stopAll: function () {
+                          h.debug('Stopping all animation'),
+                            h.remove.queueCallback(),
+                            c.triggerHandler(i);
+                        },
+                        clear: {
+                          queue: function () {
+                            h.debug('Clearing animation queue'), h.remove.queueCallback();
+                          },
+                        },
+                        enable: function () {
+                          h.verbose('Starting animation'), c.removeClass(u.disabled);
+                        },
+                        disable: function () {
+                          h.debug('Stopping animation'), c.addClass(u.disabled);
+                        },
+                        setting: function (t, e) {
+                          if ((h.debug('Changing setting', t, e), w.isPlainObject(t)))
+                            w.extend(!0, l, t);
+                          else {
+                            if (void 0 === e) return l[t];
+                            w.isPlainObject(l[t]) ? w.extend(!0, l[t], e) : (l[t] = e);
+                          }
+                        },
+                        internal: function (t, e) {
+                          if (w.isPlainObject(t)) w.extend(!0, h, t);
+                          else {
+                            if (void 0 === e) return h[t];
+                            h[t] = e;
+                          }
+                        },
+                        debug: function () {
+                          !l.silent &&
+                            l.debug &&
+                            (l.performance
+                              ? h.performance.log(arguments)
+                              : ((h.debug = Function.prototype.bind.call(
+                                  console.info,
+                                  console,
+                                  l.name + ':',
+                                )),
+                                h.debug.apply(console, arguments)));
+                        },
+                        verbose: function () {
+                          !l.silent &&
+                            l.verbose &&
+                            l.debug &&
+                            (l.performance
+                              ? h.performance.log(arguments)
+                              : ((h.verbose = Function.prototype.bind.call(
+                                  console.info,
+                                  console,
+                                  l.name + ':',
+                                )),
+                                h.verbose.apply(console, arguments)));
+                        },
+                        error: function () {
+                          l.silent ||
+                            ((h.error = Function.prototype.bind.call(
+                              console.error,
+                              console,
+                              l.name + ':',
+                            )),
+                            h.error.apply(console, arguments));
+                        },
+                        performance: {
+                          log: function (t) {
+                            var e, n;
+                            l.performance &&
+                              ((n = (e = new Date().getTime()) - (f || e)),
+                              (f = e),
+                              g.push({
+                                Name: t[0],
+                                Arguments: [].slice.call(t, 1) || '',
+                                Element: A,
+                                'Execution Time': n,
+                              })),
+                              clearTimeout(h.performance.timer),
+                              (h.performance.timer = setTimeout(h.performance.display, 500));
+                          },
+                          display: function () {
+                            var t = l.name + ':',
+                              n = 0;
+                            (f = !1),
+                              clearTimeout(h.performance.timer),
+                              w.each(g, function (t, e) {
+                                n += e['Execution Time'];
+                              }),
+                              (t += ' ' + n + 'ms'),
+                              d && (t += " '" + d + "'"),
+                              1 < a.length && (t += ' (' + a.length + ')'),
+                              (void 0 !== console.group || void 0 !== console.table) &&
+                                0 < g.length &&
+                                (console.groupCollapsed(t),
+                                console.table
+                                  ? console.table(g)
+                                  : w.each(g, function (t, e) {
+                                      console.log(e.Name + ': ' + e['Execution Time'] + 'ms');
+                                    }),
+                                console.groupEnd()),
+                              (g = []);
+                          },
+                        },
+                        invoke: function (r, t, e) {
+                          var i,
+                            o,
+                            n,
+                            a = s;
+                          return (
+                            (t = t || b),
+                            (e = A || e),
+                            'string' == typeof r &&
+                              void 0 !== a &&
+                              ((r = r.split(/[\. ]/)),
+                              (i = r.length - 1),
+                              w.each(r, function (t, e) {
+                                var n =
+                                  t != i
+                                    ? e + r[t + 1].charAt(0).toUpperCase() + r[t + 1].slice(1)
+                                    : r;
+                                if (!w.isPlainObject(a[n]) || t == i)
+                                  return void 0 !== a[n]
+                                    ? ((o = a[n]), !1)
+                                    : w.isPlainObject(a[e]) && t != i
+                                      ? void (a = a[e])
+                                      : void 0 !== a[e] && ((o = a[e]), !1);
+                                a = a[n];
+                              })),
+                            w.isFunction(o) ? (n = o.apply(e, t)) : void 0 !== o && (n = o),
+                            w.isArray(p)
+                              ? p.push(n)
+                              : void 0 !== p
+                                ? (p = [p, n])
+                                : void 0 !== n && (p = n),
+                            void 0 !== o && o
+                          );
+                        },
+                      };
+                    h.initialize();
+                  }),
+                  void 0 !== p ? p : this
+                );
+              }),
+              (w.fn.transition.exists = {}),
+              (w.fn.transition.settings = {
+                name: 'Transition',
+                silent: !1,
+                debug: !1,
+                verbose: !1,
+                performance: !0,
+                namespace: 'transition',
+                interval: 0,
+                reverse: 'auto',
+                onStart: function () {},
+                onComplete: function () {},
+                onShow: function () {},
+                onHide: function () {},
+                useFailSafe: !0,
+                failSafeDelay: 100,
+                allowRepeats: !1,
+                displayType: !1,
+                animation: 'fade',
+                duration: !1,
+                queue: !0,
+                metadata: { displayType: 'display' },
+                className: {
+                  animating: 'animating',
+                  disabled: 'disabled',
+                  hidden: 'hidden',
+                  inward: 'in',
+                  loading: 'loading',
+                  looping: 'looping',
+                  outward: 'out',
+                  transition: 'transition',
+                  visible: 'visible',
+                },
+                error: {
+                  noAnimation:
+                    'Element is no longer attached to DOM. Unable to animate.  Use silent setting to surpress this warning in production.',
+                  repeated: 'That animation is already occurring, cancelling repeated animation',
+                  method: 'The method you called is not defined',
+                  support: 'This browser does not support CSS animations',
+                },
+              });
+          })(jQuery, window, document);
+        },
+        {},
+      ],
+      64: [
+        function (r, t, i) {
+          !function (u) {
+            !function () {
+              var a = r('./lib/request'),
+                t = r('./lib/response'),
+                s = r('xtend'),
+                e = r('builtin-status-codes'),
+                l = r('url'),
+                n = i;
+              (n.request = function (t, e) {
+                t = 'string' == typeof t ? l.parse(t) : s(t);
+                var n = -1 === u.location.protocol.search(/^https?:$/) ? 'http:' : '',
+                  n = t.protocol || n,
+                  r = t.hostname || t.host,
+                  i = t.port,
+                  o = t.path || '/',
+                  n =
+                    (r && -1 !== r.indexOf(':') && (r = '[' + r + ']'),
+                    (t.url = (r ? n + '//' + r : '') + (i ? ':' + i : '') + o),
+                    (t.method = (t.method || 'GET').toUpperCase()),
+                    (t.headers = t.headers || {}),
+                    new a(t));
+                return e && n.on('response', e), n;
+              }),
+                (n.get = function (t, e) {
+                  t = n.request(t, e);
+                  return t.end(), t;
+                }),
+                (n.ClientRequest = a),
+                (n.IncomingMessage = t.IncomingMessage),
+                (n.Agent = function () {}),
+                (n.Agent.defaultMaxSockets = 4),
+                (n.globalAgent = new n.Agent()),
+                (n.STATUS_CODES = e),
+                (n.METHODS = [
+                  'CHECKOUT',
+                  'CONNECT',
+                  'COPY',
+                  'DELETE',
+                  'GET',
+                  'HEAD',
+                  'LOCK',
+                  'M-SEARCH',
+                  'MERGE',
+                  'MKACTIVITY',
+                  'MKCOL',
+                  'MOVE',
+                  'NOTIFY',
+                  'OPTIONS',
+                  'PATCH',
+                  'POST',
+                  'PROPFIND',
+                  'PROPPATCH',
+                  'PURGE',
+                  'PUT',
+                  'REPORT',
+                  'SEARCH',
+                  'SUBSCRIBE',
+                  'TRACE',
+                  'UNLOCK',
+                  'UNSUBSCRIBE',
+                ]);
+            }.call(this);
+          }.call(
+            this,
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+          );
+        },
+        {
+          './lib/request': 66,
+          './lib/response': 67,
+          'builtin-status-codes': 27,
+          url: 71,
+          xtend: 74,
+        },
+      ],
+      65: [
+        function (t, e, s) {
+          !function (a) {
+            !function () {
+              (s.fetch = o(a.fetch) && o(a.ReadableStream)),
+                (s.writableStream = o(a.WritableStream)),
+                (s.abortController = o(a.AbortController)),
+                (s.blobConstructor = !1);
+              try {
+                new Blob([new ArrayBuffer(1)]), (s.blobConstructor = !0);
+              } catch (t) {}
+              var e;
+              function n() {
+                if (void 0 === e)
+                  if (a.XMLHttpRequest) {
+                    e = new a.XMLHttpRequest();
+                    try {
+                      e.open('GET', a.XDomainRequest ? '/' : 'https://example.com');
+                    } catch (t) {
+                      e = null;
+                    }
+                  } else e = null;
+                return e;
+              }
+              function t(t) {
+                var e = n();
+                if (e)
+                  try {
+                    return (e.responseType = t), e.responseType === t;
+                  } catch (t) {}
+                return !1;
+              }
+              var r = void 0 !== a.ArrayBuffer,
+                i = r && o(a.ArrayBuffer.prototype.slice);
+              function o(t) {
+                return 'function' == typeof t;
+              }
+              (s.arraybuffer = s.fetch || (r && t('arraybuffer'))),
+                (s.msstream = !s.fetch && i && t('ms-stream')),
+                (s.mozchunkedarraybuffer = !s.fetch && r && t('moz-chunked-arraybuffer')),
+                (s.overrideMimeType = s.fetch || (!!n() && o(n().overrideMimeType))),
+                (s.vbArray = o(a.VBArray)),
+                (e = null);
+            }.call(this);
+          }.call(
+            this,
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+          );
+        },
+        {},
+      ],
+      66: [
+        function (o, a, t) {
+          !function (A, h, p) {
+            !function () {
+              var l = o('./capability'),
+                t = o('inherits'),
+                e = o('./response'),
+                i = o('readable-stream'),
+                u = o('to-arraybuffer'),
+                n = e.IncomingMessage,
+                c = e.readyStates;
+              e = a.exports = function (e) {
+                var t,
+                  n = this,
+                  r =
+                    (i.Writable.call(n),
+                    (n._opts = e),
+                    (n._body = []),
+                    (n._headers = {}),
+                    e.auth &&
+                      n.setHeader('Authorization', 'Basic ' + new p(e.auth).toString('base64')),
+                    Object.keys(e.headers).forEach(function (t) {
+                      n.setHeader(t, e.headers[t]);
+                    }),
+                    !0);
+                if ('disable-fetch' === e.mode || ('requestTimeout' in e && !l.abortController))
+                  t = !(r = !1);
+                else if ('prefer-streaming' === e.mode) t = !1;
+                else if ('allow-wrong-content-type' === e.mode) t = !l.overrideMimeType;
+                else {
+                  if (e.mode && 'default' !== e.mode && 'prefer-fast' !== e.mode)
+                    throw new Error('Invalid value for opts.mode');
+                  t = !0;
+                }
+                (n._mode =
+                  ((t = t),
+                  (r = r),
+                  l.fetch && r
+                    ? 'fetch'
+                    : l.mozchunkedarraybuffer
+                      ? 'moz-chunked-arraybuffer'
+                      : l.msstream
+                        ? 'ms-stream'
+                        : l.arraybuffer && t
+                          ? 'arraybuffer'
+                          : l.vbArray && t
+                            ? 'text:vbarray'
+                            : 'text')),
+                  (n._fetchTimer = null),
+                  n.on('finish', function () {
+                    n._onFinish();
+                  });
+              };
+              t(e, i.Writable),
+                (e.prototype.setHeader = function (t, e) {
+                  var n = t.toLowerCase();
+                  -1 === r.indexOf(n) && (this._headers[n] = { name: t, value: e });
+                }),
+                (e.prototype.getHeader = function (t) {
+                  t = this._headers[t.toLowerCase()];
+                  return t ? t.value : null;
+                }),
+                (e.prototype.removeHeader = function (t) {
+                  delete this._headers[t.toLowerCase()];
+                }),
+                (e.prototype._onFinish = function () {
+                  var e = this;
+                  if (!e._destroyed) {
+                    var t = e._opts,
+                      n = e._headers,
+                      r = null,
+                      i =
+                        ('GET' !== t.method &&
+                          'HEAD' !== t.method &&
+                          (r = l.arraybuffer
+                            ? u(p.concat(e._body))
+                            : l.blobConstructor
+                              ? new h.Blob(
+                                  e._body.map(function (t) {
+                                    return u(t);
+                                  }),
+                                  { type: (n['content-type'] || {}).value || '' },
+                                )
+                              : p.concat(e._body).toString()),
+                        []);
+                    if (
+                      (Object.keys(n).forEach(function (t) {
+                        var e = n[t].name,
+                          t = n[t].value;
+                        Array.isArray(t)
+                          ? t.forEach(function (t) {
+                              i.push([e, t]);
+                            })
+                          : i.push([e, t]);
+                      }),
+                      'fetch' === e._mode)
+                    ) {
+                      var o,
+                        a = null;
+                      l.abortController &&
+                        ((a = (o = new AbortController()).signal),
+                        (e._fetchAbortController = o),
+                        'requestTimeout' in t &&
+                          0 !== t.requestTimeout &&
+                          (e._fetchTimer = h.setTimeout(function () {
+                            e.emit('requestTimeout'),
+                              e._fetchAbortController && e._fetchAbortController.abort();
+                          }, t.requestTimeout))),
+                        h
+                          .fetch(e._opts.url, {
+                            method: e._opts.method,
+                            headers: i,
+                            body: r || void 0,
+                            mode: 'cors',
+                            credentials: t.withCredentials ? 'include' : 'same-origin',
+                            signal: a,
+                          })
+                          .then(
+                            function (t) {
+                              (e._fetchResponse = t), e._connect();
+                            },
+                            function (t) {
+                              h.clearTimeout(e._fetchTimer), e._destroyed || e.emit('error', t);
+                            },
+                          );
+                    } else {
+                      var s = (e._xhr = new h.XMLHttpRequest());
+                      try {
+                        s.open(e._opts.method, e._opts.url, !0);
+                      } catch (t) {
+                        return void A.nextTick(function () {
+                          e.emit('error', t);
+                        });
+                      }
+                      'responseType' in s && (s.responseType = e._mode.split(':')[0]),
+                        'withCredentials' in s && (s.withCredentials = !!t.withCredentials),
+                        'text' === e._mode &&
+                          'overrideMimeType' in s &&
+                          s.overrideMimeType('text/plain; charset=x-user-defined'),
+                        'requestTimeout' in t &&
+                          ((s.timeout = t.requestTimeout),
+                          (s.ontimeout = function () {
+                            e.emit('requestTimeout');
+                          })),
+                        i.forEach(function (t) {
+                          s.setRequestHeader(t[0], t[1]);
+                        }),
+                        (e._response = null),
+                        (s.onreadystatechange = function () {
+                          switch (s.readyState) {
+                            case c.LOADING:
+                            case c.DONE:
+                              e._onXHRProgress();
+                          }
+                        }),
+                        'moz-chunked-arraybuffer' === e._mode &&
+                          (s.onprogress = function () {
+                            e._onXHRProgress();
+                          }),
+                        (s.onerror = function () {
+                          e._destroyed || e.emit('error', new Error('XHR error'));
+                        });
+                      try {
+                        s.send(r);
+                      } catch (t) {
+                        return void A.nextTick(function () {
+                          e.emit('error', t);
+                        });
+                      }
+                    }
+                  }
+                }),
+                (e.prototype._onXHRProgress = function () {
+                  !(function (t) {
+                    try {
+                      var e = t.status;
+                      return null !== e && 0 !== e;
+                    } catch (t) {
+                      return;
+                    }
+                  })(this._xhr) ||
+                    this._destroyed ||
+                    (this._response || this._connect(), this._response._onXHRProgress());
+                }),
+                (e.prototype._connect = function () {
+                  var e = this;
+                  e._destroyed ||
+                    ((e._response = new n(e._xhr, e._fetchResponse, e._mode, e._fetchTimer)),
+                    e._response.on('error', function (t) {
+                      e.emit('error', t);
+                    }),
+                    e.emit('response', e._response));
+                }),
+                (e.prototype._write = function (t, e, n) {
+                  this._body.push(t), n();
+                }),
+                (e.prototype.abort = e.prototype.destroy =
+                  function () {
+                    (this._destroyed = !0),
+                      h.clearTimeout(this._fetchTimer),
+                      this._response && (this._response._destroyed = !0),
+                      this._xhr
+                        ? this._xhr.abort()
+                        : this._fetchAbortController && this._fetchAbortController.abort();
+                  }),
+                (e.prototype.end = function (t, e, n) {
+                  'function' == typeof t && ((n = t), (t = void 0)),
+                    i.Writable.prototype.end.call(this, t, e, n);
+                }),
+                (e.prototype.flushHeaders = function () {}),
+                (e.prototype.setTimeout = function () {}),
+                (e.prototype.setNoDelay = function () {}),
+                (e.prototype.setSocketKeepAlive = function () {});
+              var r = [
+                'accept-charset',
+                'accept-encoding',
+                'access-control-request-headers',
+                'access-control-request-method',
+                'connection',
+                'content-length',
+                'cookie',
+                'cookie2',
+                'date',
+                'dnt',
+                'expect',
+                'host',
+                'keep-alive',
+                'origin',
+                'referer',
+                'te',
+                'trailer',
+                'transfer-encoding',
+                'upgrade',
+                'via',
+              ];
+            }.call(this);
+          }.call(
+            this,
+            o('_process'),
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+            o('buffer').Buffer,
+          );
+        },
+        {
+          './capability': 65,
+          './response': 67,
+          _process: 46,
+          buffer: 26,
+          inherits: 38,
+          'readable-stream': 61,
+          'to-arraybuffer': 69,
+        },
+      ],
+      67: [
+        function (n, t, r) {
+          !function (u, c, A) {
+            !function () {
+              var a = n('./capability'),
+                t = n('inherits'),
+                s = n('readable-stream'),
+                l = (r.readyStates = {
+                  UNSENT: 0,
+                  OPENED: 1,
+                  HEADERS_RECEIVED: 2,
+                  LOADING: 3,
+                  DONE: 4,
+                }),
+                e = (r.IncomingMessage = function (t, e, n, r) {
+                  var i = this;
+                  if (
+                    (s.Readable.call(i),
+                    (i._mode = n),
+                    (i.headers = {}),
+                    (i.rawHeaders = []),
+                    (i.trailers = {}),
+                    (i.rawTrailers = []),
+                    i.on('end', function () {
+                      u.nextTick(function () {
+                        i.emit('close');
+                      });
+                    }),
+                    'fetch' === n)
+                  ) {
+                    if (
+                      ((i._fetchResponse = e),
+                      (i.url = e.url),
+                      (i.statusCode = e.status),
+                      (i.statusMessage = e.statusText),
+                      e.headers.forEach(function (t, e) {
+                        (i.headers[e.toLowerCase()] = t), i.rawHeaders.push(e, t);
+                      }),
+                      a.writableStream)
+                    ) {
+                      var n = new WritableStream({
+                        write: function (n) {
+                          return new Promise(function (t, e) {
+                            i._destroyed ? e() : i.push(new A(n)) ? t() : (i._resumeFetch = t);
+                          });
+                        },
+                        close: function () {
+                          c.clearTimeout(r), i._destroyed || i.push(null);
+                        },
+                        abort: function (t) {
+                          i._destroyed || i.emit('error', t);
+                        },
+                      });
+                      try {
+                        return void e.body.pipeTo(n).catch(function (t) {
+                          c.clearTimeout(r), i._destroyed || i.emit('error', t);
+                        });
+                      } catch (t) {}
+                    }
+                    var o = e.body.getReader();
+                    !(function e() {
+                      o.read()
+                        .then(function (t) {
+                          if (!i._destroyed) {
+                            if (t.done) return c.clearTimeout(r), void i.push(null);
+                            i.push(new A(t.value)), e();
+                          }
+                        })
+                        .catch(function (t) {
+                          c.clearTimeout(r), i._destroyed || i.emit('error', t);
+                        });
+                    })();
+                  } else
+                    (i._xhr = t),
+                      (i._pos = 0),
+                      (i.url = t.responseURL),
+                      (i.statusCode = t.status),
+                      (i.statusMessage = t.statusText),
+                      t
+                        .getAllResponseHeaders()
+                        .split(/\r?\n/)
+                        .forEach(function (t) {
+                          var e,
+                            t = t.match(/^([^:]+):\s*(.*)/);
+                          t &&
+                            ('set-cookie' === (e = t[1].toLowerCase())
+                              ? (void 0 === i.headers[e] && (i.headers[e] = []),
+                                i.headers[e].push(t[2]))
+                              : void 0 !== i.headers[e]
+                                ? (i.headers[e] += ', ' + t[2])
+                                : (i.headers[e] = t[2]),
+                            i.rawHeaders.push(t[1], t[2]));
+                        }),
+                      (i._charset = 'x-user-defined'),
+                      a.overrideMimeType ||
+                        ((n = i.rawHeaders['mime-type']) &&
+                          (e = n.match(/;\s*charset=([^;])(;|$)/)) &&
+                          (i._charset = e[1].toLowerCase()),
+                        i._charset || (i._charset = 'utf-8'));
+                });
+              t(e, s.Readable),
+                (e.prototype._read = function () {
+                  var t = this._resumeFetch;
+                  t && ((this._resumeFetch = null), t());
+                }),
+                (e.prototype._onXHRProgress = function () {
+                  var e = this,
+                    t = e._xhr,
+                    n = null;
+                  switch (e._mode) {
+                    case 'text:vbarray':
+                      if (t.readyState !== l.DONE) break;
+                      try {
+                        n = new c.VBArray(t.responseBody).toArray();
+                      } catch (t) {}
+                      if (null !== n) {
+                        e.push(new A(n));
+                        break;
+                      }
+                    case 'text':
+                      try {
+                        n = t.responseText;
+                      } catch (t) {
+                        e._mode = 'text:vbarray';
+                        break;
+                      }
+                      if (n.length > e._pos) {
+                        var r = n.substr(e._pos);
+                        if ('x-user-defined' === e._charset) {
+                          for (var i = new A(r.length), o = 0; o < r.length; o++)
+                            i[o] = 255 & r.charCodeAt(o);
+                          e.push(i);
+                        } else e.push(r, e._charset);
+                        e._pos = n.length;
+                      }
+                      break;
+                    case 'arraybuffer':
+                      if (t.readyState !== l.DONE || !t.response) break;
+                      (n = t.response), e.push(new A(new Uint8Array(n)));
+                      break;
+                    case 'moz-chunked-arraybuffer':
+                      if (((n = t.response), t.readyState !== l.LOADING || !n)) break;
+                      e.push(new A(new Uint8Array(n)));
+                      break;
+                    case 'ms-stream':
+                      if (((n = t.response), t.readyState !== l.LOADING)) break;
+                      var a = new c.MSStreamReader();
+                      (a.onprogress = function () {
+                        a.result.byteLength > e._pos &&
+                          (e.push(new A(new Uint8Array(a.result.slice(e._pos)))),
+                          (e._pos = a.result.byteLength));
+                      }),
+                        (a.onload = function () {
+                          e.push(null);
+                        }),
+                        a.readAsArrayBuffer(n);
+                  }
+                  e._xhr.readyState === l.DONE && 'ms-stream' !== e._mode && e.push(null);
+                });
+            }.call(this);
+          }.call(
+            this,
+            n('_process'),
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+            n('buffer').Buffer,
+          );
+        },
+        { './capability': 65, _process: 46, buffer: 26, inherits: 38, 'readable-stream': 61 },
+      ],
+      68: [
+        function (l, t, u) {
+          !function (n, s) {
+            !function () {
+              var r = l('process/browser.js').nextTick,
+                t = Function.prototype.apply,
+                i = Array.prototype.slice,
+                o = {},
+                a = 0;
+              function e(t, e) {
+                (this._id = t), (this._clearFn = e);
+              }
+              (u.setTimeout = function () {
+                return new e(t.call(setTimeout, window, arguments), clearTimeout);
+              }),
+                (u.setInterval = function () {
+                  return new e(t.call(setInterval, window, arguments), clearInterval);
+                }),
+                (u.clearTimeout = u.clearInterval =
+                  function (t) {
+                    t.close();
+                  }),
+                (e.prototype.unref = e.prototype.ref = function () {}),
+                (e.prototype.close = function () {
+                  this._clearFn.call(window, this._id);
+                }),
+                (u.enroll = function (t, e) {
+                  clearTimeout(t._idleTimeoutId), (t._idleTimeout = e);
+                }),
+                (u.unenroll = function (t) {
+                  clearTimeout(t._idleTimeoutId), (t._idleTimeout = -1);
+                }),
+                (u._unrefActive = u.active =
+                  function (t) {
+                    clearTimeout(t._idleTimeoutId);
+                    var e = t._idleTimeout;
+                    0 <= e &&
+                      (t._idleTimeoutId = setTimeout(function () {
+                        t._onTimeout && t._onTimeout();
+                      }, e));
+                  }),
+                (u.setImmediate =
+                  'function' == typeof n
+                    ? n
+                    : function (t) {
+                        var e = a++,
+                          n = !(arguments.length < 2) && i.call(arguments, 1);
+                        return (
+                          (o[e] = !0),
+                          r(function () {
+                            o[e] && (n ? t.apply(null, n) : t.call(null), u.clearImmediate(e));
+                          }),
+                          e
+                        );
+                      }),
+                (u.clearImmediate =
+                  'function' == typeof s
+                    ? s
+                    : function (t) {
+                        delete o[t];
+                      });
+            }.call(this);
+          }.call(this, l('timers').setImmediate, l('timers').clearImmediate);
+        },
+        { 'process/browser.js': 46, timers: 68 },
+      ],
+      69: [
+        function (t, e, n) {
+          var i = t('buffer').Buffer;
+          e.exports = function (t) {
+            if (t instanceof Uint8Array) {
+              if (0 === t.byteOffset && t.byteLength === t.buffer.byteLength) return t.buffer;
+              if ('function' == typeof t.buffer.slice)
+                return t.buffer.slice(t.byteOffset, t.byteOffset + t.byteLength);
+            }
+            if (i.isBuffer(t)) {
+              for (var e = new Uint8Array(t.length), n = t.length, r = 0; r < n; r++) e[r] = t[r];
+              return e.buffer;
+            }
+            throw new Error('Argument must be a Buffer');
+          };
+        },
+        { buffer: 26 },
+      ],
+      70: [
+        function (t, i, o) {
+          !function (Ue) {
+            !function () {
+              var t, e, n, r;
+              (t = this),
+                (e = function () {
+                  var t =
+                      ('object' == typeof self && self.self === self && self) ||
+                      ('object' == typeof Ue && Ue.global === Ue && Ue) ||
+                      Function('return this')() ||
+                      {},
+                    r = Array.prototype,
+                    U = Object.prototype,
+                    N = 'undefined' != typeof Symbol ? Symbol.prototype : null,
+                    P = r.push,
+                    l = r.slice,
+                    A = U.toString,
+                    L = U.hasOwnProperty,
+                    e = 'undefined' != typeof ArrayBuffer,
+                    n = 'undefined' != typeof DataView,
+                    Y = Array.isArray,
+                    O = Object.keys,
+                    G = Object.create,
+                    z = e && ArrayBuffer.isView,
+                    H = isNaN,
+                    j = isFinite,
+                    V = !{ toString: null }.propertyIsEnumerable('toString'),
+                    q = [
+                      'valueOf',
+                      'isPrototypeOf',
+                      'toString',
+                      'propertyIsEnumerable',
+                      'hasOwnProperty',
+                      'toLocaleString',
+                    ],
+                    W = Math.pow(2, 53) - 1;
+                  function c(i, o) {
+                    return (
+                      (o = null == o ? i.length - 1 : +o),
+                      function () {
+                        for (
+                          var t = Math.max(arguments.length - o, 0), e = Array(t), n = 0;
+                          n < t;
+                          n++
+                        )
+                          e[n] = arguments[n + o];
+                        switch (o) {
+                          case 0:
+                            return i.call(this, e);
+                          case 1:
+                            return i.call(this, arguments[0], e);
+                          case 2:
+                            return i.call(this, arguments[0], arguments[1], e);
+                        }
+                        for (var r = Array(o + 1), n = 0; n < o; n++) r[n] = arguments[n];
+                        return (r[o] = e), i.apply(this, r);
+                      }
+                    );
+                  }
+                  function o(t) {
+                    var e = typeof t;
+                    return 'function' == e || ('object' == e && !!t);
+                  }
+                  function J(t) {
+                    return void 0 === t;
+                  }
+                  function K(t) {
+                    return !0 === t || !1 === t || '[object Boolean]' === A.call(t);
+                  }
+                  function i(t) {
+                    var e = '[object ' + t + ']';
+                    return function (t) {
+                      return A.call(t) === e;
+                    };
+                  }
+                  var Z = i('String'),
+                    X = i('Number'),
+                    a = i('Date'),
+                    $ = i('RegExp'),
+                    tt = i('Error'),
+                    et = i('Symbol'),
+                    nt = i('ArrayBuffer'),
+                    s = i('Function'),
+                    t = t.document && t.document.childNodes,
+                    h = (s =
+                      'function' != typeof /./ &&
+                      'object' != typeof Int8Array &&
+                      'function' != typeof t
+                        ? function (t) {
+                            return 'function' == typeof t || !1;
+                          }
+                        : s),
+                    t = i('Object'),
+                    rt = n && t(new DataView(new ArrayBuffer(8))),
+                    s = 'undefined' != typeof Map && t(new Map()),
+                    n = i('DataView');
+                  var p = rt
+                      ? function (t) {
+                          return null != t && h(t.getInt8) && nt(t.buffer);
+                        }
+                      : n,
+                    d = Y || i('Array');
+                  function f(t, e) {
+                    return null != t && L.call(t, e);
+                  }
+                  var it = i('Arguments'),
+                    ot =
+                      (!(function () {
+                        it(arguments) ||
+                          (it = function (t) {
+                            return f(t, 'callee');
+                          });
+                      })(),
+                      it);
+                  function at(t) {
+                    return X(t) && H(t);
+                  }
+                  function st(t) {
+                    return function () {
+                      return t;
+                    };
+                  }
+                  function lt(e) {
+                    return function (t) {
+                      t = e(t);
+                      return 'number' == typeof t && 0 <= t && t <= W;
+                    };
+                  }
+                  function ut(e) {
+                    return function (t) {
+                      return null == t ? void 0 : t[e];
+                    };
+                  }
+                  var g = ut('byteLength'),
+                    ct = lt(g),
+                    At =
+                      /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;
+                  var ht = e
+                      ? function (t) {
+                          return z ? z(t) && !p(t) : ct(t) && At.test(A.call(t));
+                        }
+                      : st(!1),
+                    m = ut('length');
+                  function pt(t, e) {
+                    e = (function (e) {
+                      for (var n = {}, t = e.length, r = 0; r < t; ++r) n[e[r]] = !0;
+                      return {
+                        contains: function (t) {
+                          return !0 === n[t];
+                        },
+                        push: function (t) {
+                          return (n[t] = !0), e.push(t);
+                        },
+                      };
+                    })(e);
+                    var n = q.length,
+                      r = t.constructor,
+                      i = (h(r) && r.prototype) || U,
+                      o = 'constructor';
+                    for (f(t, o) && !e.contains(o) && e.push(o); n--; )
+                      (o = q[n]) in t && t[o] !== i[o] && !e.contains(o) && e.push(o);
+                  }
+                  function v(t) {
+                    if (!o(t)) return [];
+                    if (O) return O(t);
+                    var e,
+                      n = [];
+                    for (e in t) f(t, e) && n.push(e);
+                    return V && pt(t, n), n;
+                  }
+                  function dt(t, e) {
+                    var n = v(e),
+                      r = n.length;
+                    if (null == t) return !r;
+                    for (var i = Object(t), o = 0; o < r; o++) {
+                      var a = n[o];
+                      if (e[a] !== i[a] || !(a in i)) return !1;
+                    }
+                    return !0;
+                  }
+                  function b(t) {
+                    return t instanceof b
+                      ? t
+                      : this instanceof b
+                        ? void (this._wrapped = t)
+                        : new b(t);
+                  }
+                  function ft(t) {
+                    return new Uint8Array(t.buffer || t, t.byteOffset || 0, g(t));
+                  }
+                  (b.VERSION = '1.13.4'),
+                    (b.prototype.valueOf =
+                      b.prototype.toJSON =
+                      b.prototype.value =
+                        function () {
+                          return this._wrapped;
+                        }),
+                    (b.prototype.toString = function () {
+                      return String(this._wrapped);
+                    });
+                  var gt = '[object DataView]';
+                  function mt(t, e, n, r) {
+                    if (t === e) return 0 !== t || 1 / t == 1 / e;
+                    if (null == t || null == e) return !1;
+                    if (t != t) return e != e;
+                    var i = typeof t;
+                    return (
+                      ('function' == i || 'object' == i || 'object' == typeof e) &&
+                      (function t(e, n, r, i) {
+                        e instanceof b && (e = e._wrapped);
+                        n instanceof b && (n = n._wrapped);
+                        var o = A.call(e);
+                        if (o !== A.call(n)) return !1;
+                        if (rt && '[object Object]' == o && p(e)) {
+                          if (!p(n)) return !1;
+                          o = gt;
+                        }
+                        switch (o) {
+                          case '[object RegExp]':
+                          case '[object String]':
+                            return '' + e == '' + n;
+                          case '[object Number]':
+                            return +e != +e ? +n != +n : 0 == +e ? 1 / +e == 1 / n : +e == +n;
+                          case '[object Date]':
+                          case '[object Boolean]':
+                            return +e == +n;
+                          case '[object Symbol]':
+                            return N.valueOf.call(e) === N.valueOf.call(n);
+                          case '[object ArrayBuffer]':
+                          case gt:
+                            return t(ft(e), ft(n), r, i);
+                        }
+                        o = '[object Array]' === o;
+                        if (!o && ht(e)) {
+                          var a = g(e);
+                          if (a !== g(n)) return !1;
+                          if (e.buffer === n.buffer && e.byteOffset === n.byteOffset) return !0;
+                          o = !0;
+                        }
+                        if (!o) {
+                          if ('object' != typeof e || 'object' != typeof n) return !1;
+                          var a = e.constructor,
+                            s = n.constructor;
+                          if (
+                            a !== s &&
+                            !(h(a) && a instanceof a && h(s) && s instanceof s) &&
+                            'constructor' in e &&
+                            'constructor' in n
+                          )
+                            return !1;
+                        }
+                        r = r || [];
+                        i = i || [];
+                        var l = r.length;
+                        for (; l--; ) if (r[l] === e) return i[l] === n;
+                        r.push(e);
+                        i.push(n);
+                        if (o) {
+                          if ((l = e.length) !== n.length) return !1;
+                          for (; l--; ) if (!mt(e[l], n[l], r, i)) return !1;
+                        } else {
+                          var u,
+                            c = v(e);
+                          if (((l = c.length), v(n).length !== l)) return !1;
+                          for (; l--; )
+                            if (((u = c[l]), !f(n, u) || !mt(e[u], n[u], r, i))) return !1;
+                        }
+                        r.pop();
+                        i.pop();
+                        return !0;
+                      })(t, e, n, r)
+                    );
+                  }
+                  function u(t) {
+                    if (!o(t)) return [];
+                    var e,
+                      n = [];
+                    for (e in t) n.push(e);
+                    return V && pt(t, n), n;
+                  }
+                  function vt(r) {
+                    var i = m(r);
+                    return function (t) {
+                      if (null == t) return !1;
+                      var e = u(t);
+                      if (m(e)) return !1;
+                      for (var n = 0; n < i; n++) if (!h(t[r[n]])) return !1;
+                      return r !== yt || !h(t[bt]);
+                    };
+                  }
+                  var bt = 'forEach',
+                    t = ['clear', 'delete'],
+                    n = ['get', 'has', 'set'],
+                    Y = t.concat(bt, n),
+                    yt = t.concat(n),
+                    e = ['add'].concat(t, bt, 'has'),
+                    n = s ? vt(Y) : i('Map'),
+                    t = s ? vt(yt) : i('WeakMap'),
+                    Y = s ? vt(e) : i('Set'),
+                    s = i('WeakSet');
+                  function y(t) {
+                    for (var e = v(t), n = e.length, r = Array(n), i = 0; i < n; i++)
+                      r[i] = t[e[i]];
+                    return r;
+                  }
+                  function wt(t) {
+                    for (var e = {}, n = v(t), r = 0, i = n.length; r < i; r++) e[t[n[r]]] = n[r];
+                    return e;
+                  }
+                  function Et(t) {
+                    var e,
+                      n = [];
+                    for (e in t) h(t[e]) && n.push(e);
+                    return n.sort();
+                  }
+                  function Bt(l, u) {
+                    return function (t) {
+                      var e = arguments.length;
+                      if ((u && (t = Object(t)), !(e < 2 || null == t)))
+                        for (var n = 1; n < e; n++)
+                          for (var r = arguments[n], i = l(r), o = i.length, a = 0; a < o; a++) {
+                            var s = i[a];
+                            (u && void 0 !== t[s]) || (t[s] = r[s]);
+                          }
+                      return t;
+                    };
+                  }
+                  var Ct = Bt(u),
+                    w = Bt(v),
+                    xt = Bt(u, !0);
+                  function It(t) {
+                    if (!o(t)) return {};
+                    if (G) return G(t);
+                    var e = function () {},
+                      t = ((e.prototype = t), new e());
+                    return (e.prototype = null), t;
+                  }
+                  function Mt(t) {
+                    return d(t) ? t : [t];
+                  }
+                  function E(t) {
+                    return b.toPath(t);
+                  }
+                  function Dt(t, e) {
+                    for (var n = e.length, r = 0; r < n; r++) {
+                      if (null == t) return;
+                      t = t[e[r]];
+                    }
+                    return n ? t : void 0;
+                  }
+                  function St(t, e, n) {
+                    t = Dt(t, E(e));
+                    return J(t) ? n : t;
+                  }
+                  function kt(t) {
+                    return t;
+                  }
+                  function B(e) {
+                    return (
+                      (e = w({}, e)),
+                      function (t) {
+                        return dt(t, e);
+                      }
+                    );
+                  }
+                  function Ft(e) {
+                    return (
+                      (e = E(e)),
+                      function (t) {
+                        return Dt(t, e);
+                      }
+                    );
+                  }
+                  function C(i, o, t) {
+                    if (void 0 === o) return i;
+                    switch (null == t ? 3 : t) {
+                      case 1:
+                        return function (t) {
+                          return i.call(o, t);
+                        };
+                      case 3:
+                        return function (t, e, n) {
+                          return i.call(o, t, e, n);
+                        };
+                      case 4:
+                        return function (t, e, n, r) {
+                          return i.call(o, t, e, n, r);
+                        };
+                    }
+                    return function () {
+                      return i.apply(o, arguments);
+                    };
+                  }
+                  function Qt(t, e, n) {
+                    return null == t ? kt : h(t) ? C(t, e, n) : (o(t) && !d(t) ? B : Ft)(t);
+                  }
+                  function _t(t, e) {
+                    return Qt(t, e, 1 / 0);
+                  }
+                  function x(t, e, n) {
+                    return b.iteratee !== _t ? b.iteratee(t, e) : Qt(t, e, n);
+                  }
+                  function Tt() {}
+                  function Rt(t, e) {
+                    return (
+                      null == e && ((e = t), (t = 0)), t + Math.floor(Math.random() * (e - t + 1))
+                    );
+                  }
+                  (b.toPath = Mt), (b.iteratee = _t);
+                  var I =
+                    Date.now ||
+                    function () {
+                      return new Date().getTime();
+                    };
+                  function Ut(e) {
+                    function n(t) {
+                      return e[t];
+                    }
+                    var t = '(?:' + v(e).join('|') + ')',
+                      r = RegExp(t),
+                      i = RegExp(t, 'g');
+                    return function (t) {
+                      return r.test((t = null == t ? '' : '' + t)) ? t.replace(i, n) : t;
+                    };
+                  }
+                  var e = {
+                      '&': '&amp;',
+                      '<': '&lt;',
+                      '>': '&gt;',
+                      '"': '&quot;',
+                      "'": '&#x27;',
+                      '`': '&#x60;',
+                    },
+                    Nt = Ut(e),
+                    e = Ut(wt(e)),
+                    Pt = (b.templateSettings = {
+                      evaluate: /<%([\s\S]+?)%>/g,
+                      interpolate: /<%=([\s\S]+?)%>/g,
+                      escape: /<%-([\s\S]+?)%>/g,
+                    }),
+                    Lt = /(.)^/,
+                    Yt = {
+                      "'": "'",
+                      '\\': '\\',
+                      '\r': 'r',
+                      '\n': 'n',
+                      '\u2028': 'u2028',
+                      '\u2029': 'u2029',
+                    },
+                    Ot = /\\|'|\r|\n|\u2028|\u2029/g;
+                  function Gt(t) {
+                    return '\\' + Yt[t];
+                  }
+                  var zt = /^\s*(\w|\$)+\s*$/;
+                  var Ht = 0;
+                  function jt(t, e, n, r, i) {
+                    if (!(r instanceof e)) return t.apply(n, i);
+                    (r = It(t.prototype)), (e = t.apply(r, i));
+                    return o(e) ? e : r;
+                  }
+                  var M = c(function (i, o) {
+                      function a() {
+                        for (var t = 0, e = o.length, n = Array(e), r = 0; r < e; r++)
+                          n[r] = o[r] === s ? arguments[t++] : o[r];
+                        for (; t < arguments.length; ) n.push(arguments[t++]);
+                        return jt(i, a, this, this, n);
+                      }
+                      var s = M.placeholder;
+                      return a;
+                    }),
+                    Vt =
+                      ((M.placeholder = b),
+                      c(function (e, n, r) {
+                        if (!h(e)) throw new TypeError('Bind must be called on a function');
+                        var i = c(function (t) {
+                          return jt(e, i, n, this, r.concat(t));
+                        });
+                        return i;
+                      })),
+                    D = lt(m);
+                  function S(t, e, n, r) {
+                    if (((r = r || []), e || 0 === e)) {
+                      if (e <= 0) return r.concat(t);
+                    } else e = 1 / 0;
+                    for (var i = r.length, o = 0, a = m(t); o < a; o++) {
+                      var s = t[o];
+                      if (D(s) && (d(s) || ot(s)))
+                        if (1 < e) S(s, e - 1, n, r), (i = r.length);
+                        else for (var l = 0, u = s.length; l < u; ) r[i++] = s[l++];
+                      else n || (r[i++] = s);
+                    }
+                    return r;
+                  }
+                  var qt = c(function (t, e) {
+                    var n = (e = S(e, !1, !1)).length;
+                    if (n < 1) throw new Error('bindAll must be passed function names');
+                    for (; n--; ) {
+                      var r = e[n];
+                      t[r] = Vt(t[r], t);
+                    }
+                    return t;
+                  });
+                  var Wt = c(function (t, e, n) {
+                      return setTimeout(function () {
+                        return t.apply(null, n);
+                      }, e);
+                    }),
+                    Jt = M(Wt, b, 1);
+                  function Kt(t) {
+                    return function () {
+                      return !t.apply(this, arguments);
+                    };
+                  }
+                  function Zt(t, e) {
+                    var n;
+                    return function () {
+                      return 0 < --t && (n = e.apply(this, arguments)), t <= 1 && (e = null), n;
+                    };
+                  }
+                  var Xt = M(Zt, 2);
+                  function $t(t, e, n) {
+                    e = x(e, n);
+                    for (var r, i = v(t), o = 0, a = i.length; o < a; o++)
+                      if (e(t[(r = i[o])], r, t)) return r;
+                  }
+                  function te(o) {
+                    return function (t, e, n) {
+                      e = x(e, n);
+                      for (var r = m(t), i = 0 < o ? 0 : r - 1; 0 <= i && i < r; i += o)
+                        if (e(t[i], i, t)) return i;
+                      return -1;
+                    };
+                  }
+                  var ee = te(1),
+                    ne = te(-1);
+                  function re(t, e, n, r) {
+                    for (var i = (n = x(n, r, 1))(e), o = 0, a = m(t); o < a; ) {
+                      var s = Math.floor((o + a) / 2);
+                      n(t[s]) < i ? (o = s + 1) : (a = s);
+                    }
+                    return o;
+                  }
+                  function ie(o, a, s) {
+                    return function (t, e, n) {
+                      var r = 0,
+                        i = m(t);
+                      if ('number' == typeof n)
+                        0 < o
+                          ? (r = 0 <= n ? n : Math.max(n + i, r))
+                          : (i = 0 <= n ? Math.min(n + 1, i) : n + i + 1);
+                      else if (s && n && i) return t[(n = s(t, e))] === e ? n : -1;
+                      if (e != e) return 0 <= (n = a(l.call(t, r, i), at)) ? n + r : -1;
+                      for (n = 0 < o ? r : i - 1; 0 <= n && n < i; n += o) if (t[n] === e) return n;
+                      return -1;
+                    };
+                  }
+                  var oe = ie(1, ee, re),
+                    ae = ie(-1, ne);
+                  function se(t, e, n) {
+                    e = (D(t) ? ee : $t)(t, e, n);
+                    if (void 0 !== e && -1 !== e) return t[e];
+                  }
+                  function k(t, e, n) {
+                    if (((e = C(e, n)), D(t))) for (i = 0, o = t.length; i < o; i++) e(t[i], i, t);
+                    else for (var r = v(t), i = 0, o = r.length; i < o; i++) e(t[r[i]], r[i], t);
+                    return t;
+                  }
+                  function F(t, e, n) {
+                    e = x(e, n);
+                    for (
+                      var r = !D(t) && v(t), i = (r || t).length, o = Array(i), a = 0;
+                      a < i;
+                      a++
+                    ) {
+                      var s = r ? r[a] : a;
+                      o[a] = e(t[s], s, t);
+                    }
+                    return o;
+                  }
+                  function le(h) {
+                    return function (t, e, n, r) {
+                      var i = 3 <= arguments.length,
+                        o = t,
+                        a = C(e, r, 4),
+                        s = n,
+                        l = !D(o) && v(o),
+                        u = (l || o).length,
+                        c = 0 < h ? 0 : u - 1;
+                      for (i || ((s = o[l ? l[c] : c]), (c += h)); 0 <= c && c < u; c += h) {
+                        var A = l ? l[c] : c;
+                        s = a(s, o[A], A, o);
+                      }
+                      return s;
+                    };
+                  }
+                  var ue = le(1),
+                    ce = le(-1);
+                  function Q(t, r, e) {
+                    var i = [];
+                    return (
+                      (r = x(r, e)),
+                      k(t, function (t, e, n) {
+                        r(t, e, n) && i.push(t);
+                      }),
+                      i
+                    );
+                  }
+                  function Ae(t, e, n) {
+                    e = x(e, n);
+                    for (var r = !D(t) && v(t), i = (r || t).length, o = 0; o < i; o++) {
+                      var a = r ? r[o] : o;
+                      if (!e(t[a], a, t)) return !1;
+                    }
+                    return !0;
+                  }
+                  function he(t, e, n) {
+                    e = x(e, n);
+                    for (var r = !D(t) && v(t), i = (r || t).length, o = 0; o < i; o++) {
+                      var a = r ? r[o] : o;
+                      if (e(t[a], a, t)) return !0;
+                    }
+                    return !1;
+                  }
+                  function _(t, e, n, r) {
+                    return (
+                      D(t) || (t = y(t)), 0 <= oe(t, e, (n = 'number' == typeof n && !r ? n : 0))
+                    );
+                  }
+                  var pe = c(function (t, n, r) {
+                    var i, o;
+                    return (
+                      h(n) ? (o = n) : ((n = E(n)), (i = n.slice(0, -1)), (n = n[n.length - 1])),
+                      F(t, function (t) {
+                        var e = o;
+                        if (!e) {
+                          if (null == (t = i && i.length ? Dt(t, i) : t)) return;
+                          e = t[n];
+                        }
+                        return null == e ? e : e.apply(t, r);
+                      })
+                    );
+                  });
+                  function de(t, e) {
+                    return F(t, Ft(e));
+                  }
+                  function fe(t, r, e) {
+                    var n,
+                      i,
+                      o = -1 / 0,
+                      a = -1 / 0;
+                    if (null == r || ('number' == typeof r && 'object' != typeof t[0] && null != t))
+                      for (var s = 0, l = (t = D(t) ? t : y(t)).length; s < l; s++)
+                        null != (n = t[s]) && o < n && (o = n);
+                    else
+                      (r = x(r, e)),
+                        k(t, function (t, e, n) {
+                          (i = r(t, e, n)),
+                            (a < i || (i === -1 / 0 && o === -1 / 0)) && ((o = t), (a = i));
+                        });
+                    return o;
+                  }
+                  var ge = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
+                  function me(t) {
+                    return t
+                      ? d(t)
+                        ? l.call(t)
+                        : Z(t)
+                          ? t.match(ge)
+                          : D(t)
+                            ? F(t, kt)
+                            : y(t)
+                      : [];
+                  }
+                  function ve(t, e, n) {
+                    if (null == e || n) return (t = D(t) ? t : y(t))[Rt(t.length - 1)];
+                    for (
+                      var r = me(t),
+                        n = m(r),
+                        i = ((e = Math.max(Math.min(e, n), 0)), n - 1),
+                        o = 0;
+                      o < e;
+                      o++
+                    ) {
+                      var a = Rt(o, i),
+                        s = r[o];
+                      (r[o] = r[a]), (r[a] = s);
+                    }
+                    return r.slice(0, e);
+                  }
+                  function T(o, e) {
+                    return function (n, r, t) {
+                      var i = e ? [[], []] : {};
+                      return (
+                        (r = x(r, t)),
+                        k(n, function (t, e) {
+                          e = r(t, e, n);
+                          o(i, t, e);
+                        }),
+                        i
+                      );
+                    };
+                  }
+                  var be = T(function (t, e, n) {
+                      f(t, n) ? t[n].push(e) : (t[n] = [e]);
+                    }),
+                    ye = T(function (t, e, n) {
+                      t[n] = e;
+                    }),
+                    we = T(function (t, e, n) {
+                      f(t, n) ? t[n]++ : (t[n] = 1);
+                    }),
+                    Ee = T(function (t, e, n) {
+                      t[n ? 0 : 1].push(e);
+                    }, !0);
+                  function Be(t, e, n) {
+                    return e in n;
+                  }
+                  var Ce = c(function (t, e) {
+                      var n = {},
+                        r = e[0];
+                      if (null != t) {
+                        h(r)
+                          ? (1 < e.length && (r = C(r, e[1])), (e = u(t)))
+                          : ((r = Be), (e = S(e, !1, !1)), (t = Object(t)));
+                        for (var i = 0, o = e.length; i < o; i++) {
+                          var a = e[i],
+                            s = t[a];
+                          r(s, a, t) && (n[a] = s);
+                        }
+                      }
+                      return n;
+                    }),
+                    xe = c(function (t, n) {
+                      var e,
+                        r = n[0];
+                      return (
+                        h(r)
+                          ? ((r = Kt(r)), 1 < n.length && (e = n[1]))
+                          : ((n = F(S(n, !1, !1), String)),
+                            (r = function (t, e) {
+                              return !_(n, e);
+                            })),
+                        Ce(t, r, e)
+                      );
+                    });
+                  function Ie(t, e, n) {
+                    return l.call(t, 0, Math.max(0, t.length - (null == e || n ? 1 : e)));
+                  }
+                  function Me(t, e, n) {
+                    return null == t || t.length < 1
+                      ? null == e || n
+                        ? void 0
+                        : []
+                      : null == e || n
+                        ? t[0]
+                        : Ie(t, t.length - e);
+                  }
+                  function R(t, e, n) {
+                    return l.call(t, null == e || n ? 1 : e);
+                  }
+                  var De = c(function (t, e) {
+                      return (
+                        (e = S(e, !0, !0)),
+                        Q(t, function (t) {
+                          return !_(e, t);
+                        })
+                      );
+                    }),
+                    Se = c(function (t, e) {
+                      return De(t, e);
+                    });
+                  function ke(t, e, n, r) {
+                    K(e) || ((r = n), (n = e), (e = !1)), null != n && (n = x(n, r));
+                    for (var i = [], o = [], a = 0, s = m(t); a < s; a++) {
+                      var l = t[a],
+                        u = n ? n(l, a, t) : l;
+                      e && !n
+                        ? ((a && o === u) || i.push(l), (o = u))
+                        : n
+                          ? _(o, u) || (o.push(u), i.push(l))
+                          : _(i, l) || i.push(l);
+                    }
+                    return i;
+                  }
+                  var Fe = c(function (t) {
+                    return ke(S(t, !0, !0));
+                  });
+                  function Qe(t) {
+                    for (var e = (t && fe(t, m).length) || 0, n = Array(e), r = 0; r < e; r++)
+                      n[r] = de(t, r);
+                    return n;
+                  }
+                  var _e = c(Qe);
+                  function Te(t, e) {
+                    return t._chain ? b(e).chain() : e;
+                  }
+                  function Re(n) {
+                    return (
+                      k(Et(n), function (t) {
+                        var e = (b[t] = n[t]);
+                        b.prototype[t] = function () {
+                          var t = [this._wrapped];
+                          return P.apply(t, arguments), Te(this, e.apply(b, t));
+                        };
+                      }),
+                      b
+                    );
+                  }
+                  k(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function (e) {
+                    var n = r[e];
+                    b.prototype[e] = function () {
+                      var t = this._wrapped;
+                      return (
+                        null != t &&
+                          (n.apply(t, arguments),
+                          ('shift' !== e && 'splice' !== e) || 0 !== t.length || delete t[0]),
+                        Te(this, t)
+                      );
+                    };
+                  }),
+                    k(['concat', 'join', 'slice'], function (t) {
+                      var e = r[t];
+                      b.prototype[t] = function () {
+                        var t = this._wrapped;
+                        return Te(this, (t = null != t ? e.apply(t, arguments) : t));
+                      };
+                    });
+                  a = Re({
+                    __proto__: null,
+                    VERSION: '1.13.4',
+                    restArguments: c,
+                    isObject: o,
+                    isNull: function (t) {
+                      return null === t;
+                    },
+                    isUndefined: J,
+                    isBoolean: K,
+                    isElement: function (t) {
+                      return !(!t || 1 !== t.nodeType);
+                    },
+                    isString: Z,
+                    isNumber: X,
+                    isDate: a,
+                    isRegExp: $,
+                    isError: tt,
+                    isSymbol: et,
+                    isArrayBuffer: nt,
+                    isDataView: p,
+                    isArray: d,
+                    isFunction: h,
+                    isArguments: ot,
+                    isFinite: function (t) {
+                      return !et(t) && j(t) && !isNaN(parseFloat(t));
+                    },
+                    isNaN: at,
+                    isTypedArray: ht,
+                    isEmpty: function (t) {
+                      if (null == t) return !0;
+                      var e = m(t);
+                      return 'number' == typeof e && (d(t) || Z(t) || ot(t))
+                        ? 0 === e
+                        : 0 === m(v(t));
+                    },
+                    isMatch: dt,
+                    isEqual: function (t, e) {
+                      return mt(t, e);
+                    },
+                    isMap: n,
+                    isWeakMap: t,
+                    isSet: Y,
+                    isWeakSet: s,
+                    keys: v,
+                    allKeys: u,
+                    values: y,
+                    pairs: function (t) {
+                      for (var e = v(t), n = e.length, r = Array(n), i = 0; i < n; i++)
+                        r[i] = [e[i], t[e[i]]];
+                      return r;
+                    },
+                    invert: wt,
+                    functions: Et,
+                    methods: Et,
+                    extend: Ct,
+                    extendOwn: w,
+                    assign: w,
+                    defaults: xt,
+                    create: function (t, e) {
+                      return (t = It(t)), e && w(t, e), t;
+                    },
+                    clone: function (t) {
+                      return o(t) ? (d(t) ? t.slice() : Ct({}, t)) : t;
+                    },
+                    tap: function (t, e) {
+                      return e(t), t;
+                    },
+                    get: St,
+                    has: function (t, e) {
+                      for (var n = (e = E(e)).length, r = 0; r < n; r++) {
+                        var i = e[r];
+                        if (!f(t, i)) return !1;
+                        t = t[i];
+                      }
+                      return !!n;
+                    },
+                    mapObject: function (t, e, n) {
+                      e = x(e, n);
+                      for (var r = v(t), i = r.length, o = {}, a = 0; a < i; a++) {
+                        var s = r[a];
+                        o[s] = e(t[s], s, t);
+                      }
+                      return o;
+                    },
+                    identity: kt,
+                    constant: st,
+                    noop: Tt,
+                    toPath: Mt,
+                    property: Ft,
+                    propertyOf: function (e) {
+                      return null == e
+                        ? Tt
+                        : function (t) {
+                            return St(e, t);
+                          };
+                    },
+                    matcher: B,
+                    matches: B,
+                    times: function (t, e, n) {
+                      var r = Array(Math.max(0, t));
+                      e = C(e, n, 1);
+                      for (var i = 0; i < t; i++) r[i] = e(i);
+                      return r;
+                    },
+                    random: Rt,
+                    now: I,
+                    escape: Nt,
+                    unescape: e,
+                    templateSettings: Pt,
+                    template: function (o, t, e) {
+                      t = xt({}, (t = !t && e ? e : t), b.templateSettings);
+                      var n,
+                        e = RegExp(
+                          [
+                            (t.escape || Lt).source,
+                            (t.interpolate || Lt).source,
+                            (t.evaluate || Lt).source,
+                          ].join('|') + '|$',
+                          'g',
+                        ),
+                        a = 0,
+                        s = "__p+='";
+                      if (
+                        (o.replace(e, function (t, e, n, r, i) {
+                          return (
+                            (s += o.slice(a, i).replace(Ot, Gt)),
+                            (a = i + t.length),
+                            e
+                              ? (s += "'+\n((__t=(" + e + "))==null?'':_.escape(__t))+\n'")
+                              : n
+                                ? (s += "'+\n((__t=(" + n + "))==null?'':__t)+\n'")
+                                : r && (s += "';\n" + r + "\n__p+='"),
+                            t
+                          );
+                        }),
+                        (s += "';\n"),
+                        (e = t.variable))
+                      ) {
+                        if (!zt.test(e)) throw new Error('variable is not a bare identifier: ' + e);
+                      } else (s = 'with(obj||{}){\n' + s + '}\n'), (e = 'obj');
+                      s =
+                        "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" +
+                        s +
+                        'return __p;\n';
+                      try {
+                        n = new Function(e, '_', s);
+                      } catch (t) {
+                        throw ((t.source = s), t);
+                      }
+                      function r(t) {
+                        return n.call(this, t, b);
+                      }
+                      return (r.source = 'function(' + e + '){\n' + s + '}'), r;
+                    },
+                    result: function (t, e, n) {
+                      var r = (e = E(e)).length;
+                      if (!r) return h(n) ? n.call(t) : n;
+                      for (var i = 0; i < r; i++) {
+                        var o = null == t ? void 0 : t[e[i]];
+                        void 0 === o && ((o = n), (i = r)), (t = h(o) ? o.call(t) : o);
+                      }
+                      return t;
+                    },
+                    uniqueId: function (t) {
+                      var e = ++Ht + '';
+                      return t ? t + e : e;
+                    },
+                    chain: function (t) {
+                      return ((t = b(t))._chain = !0), t;
+                    },
+                    iteratee: _t,
+                    partial: M,
+                    bind: Vt,
+                    bindAll: qt,
+                    memoize: function (r, i) {
+                      function o(t) {
+                        var e = o.cache,
+                          n = '' + (i ? i.apply(this, arguments) : t);
+                        return f(e, n) || (e[n] = r.apply(this, arguments)), e[n];
+                      }
+                      return (o.cache = {}), o;
+                    },
+                    delay: Wt,
+                    defer: Jt,
+                    throttle: function (n, r, i) {
+                      function o() {
+                        (c = !1 === i.leading ? 0 : I()),
+                          (a = null),
+                          (u = n.apply(s, l)),
+                          a || (s = l = null);
+                      }
+                      function t() {
+                        var t = I(),
+                          e = (c || !1 !== i.leading || (c = t), r - (t - c));
+                        return (
+                          (s = this),
+                          (l = arguments),
+                          e <= 0 || r < e
+                            ? (a && (clearTimeout(a), (a = null)),
+                              (c = t),
+                              (u = n.apply(s, l)),
+                              a || (s = l = null))
+                            : a || !1 === i.trailing || (a = setTimeout(o, e)),
+                          u
+                        );
+                      }
+                      var a,
+                        s,
+                        l,
+                        u,
+                        c = 0;
+                      return (
+                        (i = i || {}),
+                        (t.cancel = function () {
+                          clearTimeout(a), (c = 0), (a = s = l = null);
+                        }),
+                        t
+                      );
+                    },
+                    debounce: function (e, n, r) {
+                      function i() {
+                        var t = I() - a;
+                        t < n
+                          ? (o = setTimeout(i, n - t))
+                          : ((o = null), r || (l = e.apply(u, s)), o || (s = u = null));
+                      }
+                      var o,
+                        a,
+                        s,
+                        l,
+                        u,
+                        t = c(function (t) {
+                          return (
+                            (u = this),
+                            (s = t),
+                            (a = I()),
+                            o || ((o = setTimeout(i, n)), r && (l = e.apply(u, s))),
+                            l
+                          );
+                        });
+                      return (
+                        (t.cancel = function () {
+                          clearTimeout(o), (o = s = u = null);
+                        }),
+                        t
+                      );
+                    },
+                    wrap: function (t, e) {
+                      return M(e, t);
+                    },
+                    negate: Kt,
+                    compose: function () {
+                      var n = arguments,
+                        r = n.length - 1;
+                      return function () {
+                        for (var t = r, e = n[r].apply(this, arguments); t--; )
+                          e = n[t].call(this, e);
+                        return e;
+                      };
+                    },
+                    after: function (t, e) {
+                      return function () {
+                        if (--t < 1) return e.apply(this, arguments);
+                      };
+                    },
+                    before: Zt,
+                    once: Xt,
+                    findKey: $t,
+                    findIndex: ee,
+                    findLastIndex: ne,
+                    sortedIndex: re,
+                    indexOf: oe,
+                    lastIndexOf: ae,
+                    find: se,
+                    detect: se,
+                    findWhere: function (t, e) {
+                      return se(t, B(e));
+                    },
+                    each: k,
+                    forEach: k,
+                    map: F,
+                    collect: F,
+                    reduce: ue,
+                    foldl: ue,
+                    inject: ue,
+                    reduceRight: ce,
+                    foldr: ce,
+                    filter: Q,
+                    select: Q,
+                    reject: function (t, e, n) {
+                      return Q(t, Kt(x(e)), n);
+                    },
+                    every: Ae,
+                    all: Ae,
+                    some: he,
+                    any: he,
+                    contains: _,
+                    includes: _,
+                    include: _,
+                    invoke: pe,
+                    pluck: de,
+                    where: function (t, e) {
+                      return Q(t, B(e));
+                    },
+                    max: fe,
+                    min: function (t, r, e) {
+                      var n,
+                        i,
+                        o = 1 / 0,
+                        a = 1 / 0;
+                      if (
+                        null == r ||
+                        ('number' == typeof r && 'object' != typeof t[0] && null != t)
+                      )
+                        for (var s = 0, l = (t = D(t) ? t : y(t)).length; s < l; s++)
+                          null != (n = t[s]) && n < o && (o = n);
+                      else
+                        (r = x(r, e)),
+                          k(t, function (t, e, n) {
+                            ((i = r(t, e, n)) < a || (i === 1 / 0 && o === 1 / 0)) &&
+                              ((o = t), (a = i));
+                          });
+                      return o;
+                    },
+                    shuffle: function (t) {
+                      return ve(t, 1 / 0);
+                    },
+                    sample: ve,
+                    sortBy: function (t, r, e) {
+                      var i = 0;
+                      return (
+                        (r = x(r, e)),
+                        de(
+                          F(t, function (t, e, n) {
+                            return { value: t, index: i++, criteria: r(t, e, n) };
+                          }).sort(function (t, e) {
+                            var n = t.criteria,
+                              r = e.criteria;
+                            if (n !== r) {
+                              if (r < n || void 0 === n) return 1;
+                              if (n < r || void 0 === r) return -1;
+                            }
+                            return t.index - e.index;
+                          }),
+                          'value',
+                        )
+                      );
+                    },
+                    groupBy: be,
+                    indexBy: ye,
+                    countBy: we,
+                    partition: Ee,
+                    toArray: me,
+                    size: function (t) {
+                      return null == t ? 0 : (D(t) ? t : v(t)).length;
+                    },
+                    pick: Ce,
+                    omit: xe,
+                    first: Me,
+                    head: Me,
+                    take: Me,
+                    initial: Ie,
+                    last: function (t, e, n) {
+                      return null == t || t.length < 1
+                        ? null == e || n
+                          ? void 0
+                          : []
+                        : null == e || n
+                          ? t[t.length - 1]
+                          : R(t, Math.max(0, t.length - e));
+                    },
+                    rest: R,
+                    tail: R,
+                    drop: R,
+                    compact: function (t) {
+                      return Q(t, Boolean);
+                    },
+                    flatten: function (t, e) {
+                      return S(t, e, !1);
+                    },
+                    without: Se,
+                    uniq: ke,
+                    unique: ke,
+                    union: Fe,
+                    intersection: function (t) {
+                      for (var e = [], n = arguments.length, r = 0, i = m(t); r < i; r++) {
+                        var o = t[r];
+                        if (!_(e, o)) {
+                          for (var a = 1; a < n && _(arguments[a], o); a++);
+                          a === n && e.push(o);
+                        }
+                      }
+                      return e;
+                    },
+                    difference: De,
+                    unzip: Qe,
+                    transpose: Qe,
+                    zip: _e,
+                    object: function (t, e) {
+                      for (var n = {}, r = 0, i = m(t); r < i; r++)
+                        e ? (n[t[r]] = e[r]) : (n[t[r][0]] = t[r][1]);
+                      return n;
+                    },
+                    range: function (t, e, n) {
+                      null == e && ((e = t || 0), (t = 0)), (n = n || (e < t ? -1 : 1));
+                      for (
+                        var r = Math.max(Math.ceil((e - t) / n), 0), i = Array(r), o = 0;
+                        o < r;
+                        o++, t += n
+                      )
+                        i[o] = t;
+                      return i;
+                    },
+                    chunk: function (t, e) {
+                      if (null == e || e < 1) return [];
+                      for (var n = [], r = 0, i = t.length; r < i; ) n.push(l.call(t, r, (r += e)));
+                      return n;
+                    },
+                    mixin: Re,
+                    default: b,
+                  });
+                  return (a._ = a);
+                }),
+                'object' == typeof o && void 0 !== i
+                  ? (i.exports = e())
+                  : ((t = 'undefined' != typeof globalThis ? globalThis : t || self),
+                    (n = t._),
+                    ((r = t._ = e()).noConflict = function () {
+                      return (t._ = n), r;
+                    }));
+            }.call(this);
+          }.call(
+            this,
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+          );
+        },
+        {},
+      ],
+      71: [
+        function (t, e, n) {
+          'use strict';
+          var B = t('punycode'),
+            C = t('./util');
+          function w() {
+            (this.protocol = null),
+              (this.slashes = null),
+              (this.auth = null),
+              (this.host = null),
+              (this.port = null),
+              (this.hostname = null),
+              (this.hash = null),
+              (this.search = null),
+              (this.query = null),
+              (this.pathname = null),
+              (this.path = null),
+              (this.href = null);
+          }
+          (n.parse = i),
+            (n.resolve = function (t, e) {
+              return i(t, !1, !0).resolve(e);
+            }),
+            (n.resolveObject = function (t, e) {
+              return t ? i(t, !1, !0).resolveObject(e) : e;
+            }),
+            (n.format = function (t) {
+              C.isString(t) && (t = i(t));
+              return t instanceof w ? t.format() : w.prototype.format.call(t);
+            }),
+            (n.Url = w);
+          var x = /^([a-z0-9.+-]+:)/i,
+            r = /:[0-9]*$/,
+            I = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
+            n = ['{', '}', '|', '\\', '^', '`'].concat(['<', '>', '"', '`', ' ', '\r', '\n', '\t']),
+            M = ["'"].concat(n),
+            D = ['%', '/', '?', ';', '#'].concat(M),
+            S = ['/', '?', '#'],
+            k = /^[+a-z0-9A-Z_-]{0,63}$/,
+            F = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
+            Q = { javascript: !0, 'javascript:': !0 },
+            _ = { javascript: !0, 'javascript:': !0 },
+            T = {
+              http: !0,
+              https: !0,
+              ftp: !0,
+              gopher: !0,
+              file: !0,
+              'http:': !0,
+              'https:': !0,
+              'ftp:': !0,
+              'gopher:': !0,
+              'file:': !0,
+            },
+            R = t('querystring');
+          function i(t, e, n) {
+            if (t && C.isObject(t) && t instanceof w) return t;
+            var r = new w();
+            return r.parse(t, e, n), r;
+          }
+          (w.prototype.parse = function (t, e, n) {
+            if (!C.isString(t))
+              throw new TypeError("Parameter 'url' must be a string, not " + typeof t);
+            var r = t.indexOf('?'),
+              r = -1 !== r && r < t.indexOf('#') ? '?' : '#',
+              i = t.split(r);
+            i[0] = i[0].replace(/\\/g, '/');
+            var o = (o = t = i.join(r)).trim();
+            if (!n && 1 === t.split('#').length) {
+              i = I.exec(o);
+              if (i)
+                return (
+                  (this.path = o),
+                  (this.href = o),
+                  (this.pathname = i[1]),
+                  i[2]
+                    ? ((this.search = i[2]),
+                      (this.query = e ? R.parse(this.search.substr(1)) : this.search.substr(1)))
+                    : e && ((this.search = ''), (this.query = {})),
+                  this
+                );
+            }
+            var a,
+              r = x.exec(o);
+            if (
+              (r && ((a = (r = r[0]).toLowerCase()), (this.protocol = a), (o = o.substr(r.length))),
+              !(n || r || o.match(/^\/\/[^@\/]+@[^@\/]+/)) ||
+                !(y = '//' === o.substr(0, 2)) ||
+                (r && _[r]) ||
+                ((o = o.substr(2)), (this.slashes = !0)),
+              !_[r] && (y || (r && !T[r])))
+            ) {
+              for (var s = -1, l = 0; l < S.length; l++)
+                -1 !== (u = o.indexOf(S[l])) && (-1 === s || u < s) && (s = u);
+              -1 !== (t = -1 === s ? o.lastIndexOf('@') : o.lastIndexOf('@', s)) &&
+                ((i = o.slice(0, t)), (o = o.slice(t + 1)), (this.auth = decodeURIComponent(i)));
+              for (var u, s = -1, l = 0; l < D.length; l++)
+                -1 !== (u = o.indexOf(D[l])) && (-1 === s || u < s) && (s = u);
+              -1 === s && (s = o.length),
+                (this.host = o.slice(0, s)),
+                (o = o.slice(s)),
+                this.parseHost(),
+                (this.hostname = this.hostname || '');
+              n = '[' === this.hostname[0] && ']' === this.hostname[this.hostname.length - 1];
+              if (!n)
+                for (var c = this.hostname.split(/\./), l = 0, A = c.length; l < A; l++) {
+                  var h = c[l];
+                  if (h && !h.match(k)) {
+                    for (var p = '', d = 0, f = h.length; d < f; d++)
+                      127 < h.charCodeAt(d) ? (p += 'x') : (p += h[d]);
+                    if (!p.match(k)) {
+                      var g = c.slice(0, l),
+                        m = c.slice(l + 1),
+                        v = h.match(F);
+                      v && (g.push(v[1]), m.unshift(v[2])),
+                        m.length && (o = '/' + m.join('.') + o),
+                        (this.hostname = g.join('.'));
+                      break;
+                    }
+                  }
+                }
+              255 < this.hostname.length
+                ? (this.hostname = '')
+                : (this.hostname = this.hostname.toLowerCase()),
+                n || (this.hostname = B.toASCII(this.hostname));
+              var b = this.port ? ':' + this.port : '',
+                y = this.hostname || '';
+              (this.host = y + b),
+                (this.href += this.host),
+                n &&
+                  ((this.hostname = this.hostname.substr(1, this.hostname.length - 2)),
+                  '/' !== o[0] && (o = '/' + o));
+            }
+            if (!Q[a])
+              for (l = 0, A = M.length; l < A; l++) {
+                var w,
+                  E = M[l];
+                -1 !== o.indexOf(E) &&
+                  ((w = encodeURIComponent(E)) === E && (w = escape(E)), (o = o.split(E).join(w)));
+              }
+            (r = o.indexOf('#')),
+              -1 !== r && ((this.hash = o.substr(r)), (o = o.slice(0, r))),
+              (t = o.indexOf('?'));
+            return (
+              -1 !== t
+                ? ((this.search = o.substr(t)),
+                  (this.query = o.substr(t + 1)),
+                  e && (this.query = R.parse(this.query)),
+                  (o = o.slice(0, t)))
+                : e && ((this.search = ''), (this.query = {})),
+              o && (this.pathname = o),
+              T[a] && this.hostname && !this.pathname && (this.pathname = '/'),
+              (this.pathname || this.search) &&
+                ((b = this.pathname || ''), (i = this.search || ''), (this.path = b + i)),
+              (this.href = this.format()),
+              this
+            );
+          }),
+            (w.prototype.format = function () {
+              var t = this.auth || '',
+                e =
+                  (t && ((t = (t = encodeURIComponent(t)).replace(/%3A/i, ':')), (t += '@')),
+                  this.protocol || ''),
+                n = this.pathname || '',
+                r = this.hash || '',
+                i = !1,
+                o = '',
+                t =
+                  (this.host
+                    ? (i = t + this.host)
+                    : this.hostname &&
+                      ((i =
+                        t +
+                        (-1 === this.hostname.indexOf(':')
+                          ? this.hostname
+                          : '[' + this.hostname + ']')),
+                      this.port && (i += ':' + this.port)),
+                  this.query &&
+                    C.isObject(this.query) &&
+                    Object.keys(this.query).length &&
+                    (o = R.stringify(this.query)),
+                  this.search || (o && '?' + o) || '');
+              return (
+                e && ':' !== e.substr(-1) && (e += ':'),
+                this.slashes || ((!e || T[e]) && !1 !== i)
+                  ? ((i = '//' + (i || '')), n && '/' !== n.charAt(0) && (n = '/' + n))
+                  : (i = i || ''),
+                r && '#' !== r.charAt(0) && (r = '#' + r),
+                t && '?' !== t.charAt(0) && (t = '?' + t),
+                e +
+                  i +
+                  (n = n.replace(/[?#]/g, function (t) {
+                    return encodeURIComponent(t);
+                  })) +
+                  (t = t.replace('#', '%23')) +
+                  r
+              );
+            }),
+            (w.prototype.resolve = function (t) {
+              return this.resolveObject(i(t, !1, !0)).format();
+            }),
+            (w.prototype.resolveObject = function (t) {
+              C.isString(t) && ((h = new w()).parse(t, !1, !0), (t = h));
+              for (var e = new w(), n = Object.keys(this), r = 0; r < n.length; r++) {
+                var i = n[r];
+                e[i] = this[i];
+              }
+              if (((e.hash = t.hash), '' === t.href)) return (e.href = e.format()), e;
+              if (t.slashes && !t.protocol) {
+                for (var o = Object.keys(t), a = 0; a < o.length; a++) {
+                  var s = o[a];
+                  'protocol' !== s && (e[s] = t[s]);
+                }
+                return (
+                  T[e.protocol] && e.hostname && !e.pathname && (e.path = e.pathname = '/'),
+                  (e.href = e.format()),
+                  e
+                );
+              }
+              if (t.protocol && t.protocol !== e.protocol) {
+                if (!T[t.protocol]) {
+                  for (var l = Object.keys(t), u = 0; u < l.length; u++) {
+                    var c = l[u];
+                    e[c] = t[c];
+                  }
+                  return (e.href = e.format()), e;
+                }
+                if (((e.protocol = t.protocol), t.host || _[t.protocol])) e.pathname = t.pathname;
+                else {
+                  for (var A = (t.pathname || '').split('/'); A.length && !(t.host = A.shift()); );
+                  t.host || (t.host = ''),
+                    t.hostname || (t.hostname = ''),
+                    '' !== A[0] && A.unshift(''),
+                    A.length < 2 && A.unshift(''),
+                    (e.pathname = A.join('/'));
+                }
+                return (
+                  (e.search = t.search),
+                  (e.query = t.query),
+                  (e.host = t.host || ''),
+                  (e.auth = t.auth),
+                  (e.hostname = t.hostname || t.host),
+                  (e.port = t.port),
+                  (e.pathname || e.search) &&
+                    ((h = e.pathname || ''), (p = e.search || ''), (e.path = h + p)),
+                  (e.slashes = e.slashes || t.slashes),
+                  (e.href = e.format()),
+                  e
+                );
+              }
+              var h = e.pathname && '/' === e.pathname.charAt(0),
+                p = t.host || (t.pathname && '/' === t.pathname.charAt(0)),
+                h = p || h || (e.host && t.pathname),
+                d = h,
+                f = (e.pathname && e.pathname.split('/')) || [],
+                A = (t.pathname && t.pathname.split('/')) || [],
+                g = e.protocol && !T[e.protocol];
+              if (
+                (g &&
+                  ((e.hostname = ''),
+                  (e.port = null),
+                  e.host && ('' === f[0] ? (f[0] = e.host) : f.unshift(e.host)),
+                  (e.host = ''),
+                  t.protocol &&
+                    ((t.hostname = null),
+                    (t.port = null),
+                    t.host && ('' === A[0] ? (A[0] = t.host) : A.unshift(t.host)),
+                    (t.host = null)),
+                  (h = h && ('' === A[0] || '' === f[0]))),
+                p)
+              )
+                (e.host = (t.host || '' === t.host ? t : e).host),
+                  (e.hostname = (t.hostname || '' === t.hostname ? t : e).hostname),
+                  (e.search = t.search),
+                  (e.query = t.query),
+                  (f = A);
+              else if (A.length)
+                (f = f || []).pop(), (f = f.concat(A)), (e.search = t.search), (e.query = t.query);
+              else if (!C.isNullOrUndefined(t.search))
+                return (
+                  g &&
+                    ((e.hostname = e.host = f.shift()),
+                    (y = !!(e.host && 0 < e.host.indexOf('@')) && e.host.split('@')) &&
+                      ((e.auth = y.shift()), (e.host = e.hostname = y.shift()))),
+                  (e.search = t.search),
+                  (e.query = t.query),
+                  (C.isNull(e.pathname) && C.isNull(e.search)) ||
+                    (e.path = (e.pathname || '') + (e.search || '')),
+                  (e.href = e.format()),
+                  e
+                );
+              if (!f.length)
+                return (
+                  (e.pathname = null),
+                  e.search ? (e.path = '/' + e.search) : (e.path = null),
+                  (e.href = e.format()),
+                  e
+                );
+              for (
+                var m = f.slice(-1)[0],
+                  p = ((e.host || t.host || 1 < f.length) && ('.' === m || '..' === m)) || '' === m,
+                  v = 0,
+                  b = f.length;
+                0 <= b;
+                b--
+              )
+                '.' === (m = f[b])
+                  ? f.splice(b, 1)
+                  : '..' === m
+                    ? (f.splice(b, 1), v++)
+                    : v && (f.splice(b, 1), v--);
+              if (!h && !d) for (; v--; ) f.unshift('..');
+              !h || '' === f[0] || (f[0] && '/' === f[0].charAt(0)) || f.unshift(''),
+                p && '/' !== f.join('/').substr(-1) && f.push('');
+              var y,
+                d = '' === f[0] || (f[0] && '/' === f[0].charAt(0));
+              return (
+                g &&
+                  ((e.hostname = e.host = !d && f.length ? f.shift() : ''),
+                  (y = !!(e.host && 0 < e.host.indexOf('@')) && e.host.split('@')) &&
+                    ((e.auth = y.shift()), (e.host = e.hostname = y.shift()))),
+                (h = h || (e.host && f.length)) && !d && f.unshift(''),
+                f.length ? (e.pathname = f.join('/')) : ((e.pathname = null), (e.path = null)),
+                (C.isNull(e.pathname) && C.isNull(e.search)) ||
+                  (e.path = (e.pathname || '') + (e.search || '')),
+                (e.auth = t.auth || e.auth),
+                (e.slashes = e.slashes || t.slashes),
+                (e.href = e.format()),
+                e
+              );
+            }),
+            (w.prototype.parseHost = function () {
+              var t = this.host,
+                e = r.exec(t);
+              e &&
+                (':' !== (e = e[0]) && (this.port = e.substr(1)),
+                (t = t.substr(0, t.length - e.length))),
+                t && (this.hostname = t);
+            });
+        },
+        { './util': 72, punycode: 47, querystring: 50 },
+      ],
+      72: [
+        function (t, e, n) {
+          'use strict';
+          e.exports = {
+            isString: function (t) {
+              return 'string' == typeof t;
+            },
+            isObject: function (t) {
+              return 'object' == typeof t && null !== t;
+            },
+            isNull: function (t) {
+              return null === t;
+            },
+            isNullOrUndefined: function (t) {
+              return null == t;
+            },
+          };
+        },
+        {},
+      ],
+      73: [
+        function (t, n, e) {
+          !function (e) {
+            !function () {
+              function r(t) {
+                try {
+                  if (!e.localStorage) return;
+                } catch (t) {
+                  return;
+                }
+                t = e.localStorage[t];
+                return null != t && 'true' === String(t).toLowerCase();
+              }
+              n.exports = function (t, e) {
+                if (r('noDeprecation')) return t;
+                var n = !1;
+                return function () {
+                  if (!n) {
+                    if (r('throwDeprecation')) throw new Error(e);
+                    r('traceDeprecation') ? console.trace(e) : console.warn(e), (n = !0);
+                  }
+                  return t.apply(this, arguments);
+                };
+              };
+            }.call(this);
+          }.call(
+            this,
+            'undefined' != typeof global
+              ? global
+              : 'undefined' != typeof self
+                ? self
+                : 'undefined' != typeof window
+                  ? window
+                  : {},
+          );
+        },
+        {},
+      ],
+      74: [
+        function (t, e, n) {
+          e.exports = function () {
+            for (var t = {}, e = 0; e < arguments.length; e++) {
+              var n,
+                r = arguments[e];
+              for (n in r) i.call(r, n) && (t[n] = r[n]);
+            }
+            return t;
+          };
+          var i = Object.prototype.hasOwnProperty;
+        },
+        {},
+      ],
+      75: [
+        function (t, e, n) {
+          var r =
+            '@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,700");\n/*@import "../../node_modules/protvista/style/main.css";*/\n/*@import "../../node_modules/litemol   /dist/css/LiteMol-plugin-light.css";*/\nsvg {\n  overflow: hidden;\n}\n.up_pftv_buttons {\n  display: table-cell;\n  padding: 0 .5em 0 .5em;\n  width: 198px;\n  text-align: right;\n  vertical-align: bottom;\n  position: relative;\n  box-sizing: border-box;\n}\n.bottom-aa-container {\n  display: table;\n  width: 100%;\n}\n.up_pftv_credit_container {\n  display: table-cell;\n  vertical-align: top;\n  width: 198px;\n  padding: 0 0.5em;\n  box-sizing: border-box;\n}\n.up_pftv_credit {\n  font-size: .9em;\n  color: grey;\n}\n.up_pftv_credit:after {\n  content: "";\n  background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!-- Created with Inkscape (http%3A%2F%2Fwww.inkscape.org%2F) --%3E%3Csvg   xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22   xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22   xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22   xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22   width%3D%2264px%22   height%3D%2264px%22   id%3D%22svg2985%22   version%3D%221.1%22   inkscape%3Aversion%3D%220.48.4 r9939%22%3E  %3Cg     id%3D%22layer1%22     inkscape%3Alabel%3D%22Layer 1%22     inkscape%3Agroupmode%3D%22layer%22%3E    %3Ctext       xml%3Aspace%3D%22preserve%22       style%3D%22font-size%3A77.17918396000000300px%3Bfont-style%3Anormal%3Bfont-weight%3Anormal%3Bline-height%3A125%25%3Bletter-spacing%3A0px%3Bword-spacing%3A0px%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%3Bstroke%3Anone%3Bfont-family%3AScript MT Bold%3B-inkscape-font-specification%3AScript MT Bold%22       x%3D%2223.582533%22       y%3D%2255.973633%22       id%3D%22text3763%22       sodipodi%3Alinespacing%3D%22125%25%22       transform%3D%22scale(0.93289386%2C1.0719333)%22%3E%3Ctspan         sodipodi%3Arole%3D%22line%22         id%3D%22tspan3765%22         x%3D%2223.582533%22         y%3D%2255.973633%22         style%3D%22font-style%3Anormal%3Bfont-variant%3Anormal%3Bfont-weight%3Abold%3Bfont-stretch%3Anormal%3Bfont-family%3ASerif%3B-inkscape-font-specification%3ASerif Bold%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%22%3Ei%3C%2Ftspan%3E%3C%2Ftext%3E  %3C%2Fg%3E%3C%2Fsvg%3E");\n  background-size: .9em .9em;\n  background-repeat: no-repeat;\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n}\n.up_pftv_category-container {\n  position: relative;\n  border-right: 2px solid #b2f5ff;\n  border-top: 1px solid #b2f5ff;\n}\n.up_pftv_category-container svg {\n  cursor: move;\n}\n.up_pftv_container {\n  position: relative;\n  /*width: 960px;*/\n  color: #557071 !important;\n  font-family: \'Helvetica neue\', Helvetica, Arial, sans-serif !important;\n  font-size: 13px !important;\n  line-height: 1.5 !important;\n}\n.up_pftv_container a,\n.up_pftv_container a:link,\n.up_pftv_container a:hover,\n.up_pftv_container a:active,\n.up_pftv_container a:visited {\n  color: #557071 !important;\n  border: none;\n  text-decoration: none !important;\n}\n.up_pftv_container h4 {\n  font-size: 1em !important;\n  font-weight: 500 !important;\n  border-bottom: 1px solid #cacaca;\n  margin-bottom: .7em;\n}\n.up_pftv_keepWithPrevious {\n  margin-top: 0px;\n}\n.up_ptfv_pp-container {\n  display: inline-block;\n  margin: 5em 0 0 0.5em;\n  vertical-align: top;\n}\n.up_pftv_navruler {\n  margin-left: 195px;\n}\n.up_pftv_navruler svg {\n  vertical-align: bottom;\n  font-size: 14px;\n}\n.up_pftv_navruler svg {\n  /*background-color: #FDF7EF;*/\n}\n/*Category and type tracks*/\n.up_pftv_category {\n  margin-bottom: .1em;\n  border-bottom: .1em solid #b2f5ff;\n  display: table;\n  width: 100%;\n}\n.up_pftv_category-name,\n.up_pftv_track-header {\n  font-weight: 400;\n  line-height: 2.1em;\n  width: 198px;\n  max-width: 198px;\n  vertical-align: bottom;\n  padding: .5em;\n  border: none;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  overflow: hidden;\n}\n.up_pftv_category-name {\n  background-color: #b2f5ff;\n  display: table-cell;\n  box-sizing: border-box;\n}\n.up_pftv_category a:hover {\n  background-color: #80EEFF;\n  border-bottom: none;\n  text-decoration: none;\n}\n.up_pftv_track-header {\n  display: table-cell;\n  background-color: #d9faff;\n  box-sizing: border-box;\n  /*line-height: 1.6em;\n    margin: .05em 0;*/\n}\n.up_pftv_category-viewer,\n.up_pftv_track,\n.up_pftv_aaviewer {\n  position: relative;\n  vertical-align: bottom;\n  /*width: 760px;*/\n}\n.up_pftv_track {\n  display: table-cell;\n}\n.up_pftv_aaviewer {\n  display: table-cell;\n}\n.up_pftv_category-viewer {\n  display: table-cell;\n}\n.up_pftv_category-viewer svg,\n.up_pftv_track svg,\n.up_pftv_aaviewer svg {\n  vertical-align: bottom;\n}\n.up_pftv_category-name {\n  cursor: pointer;\n}\n.up_pftv_track-header-container {\n  vertical-align: top;\n  margin-top: 1px;\n  background-color: #D9FAFF;\n}\n.up_pftv_category-tracks {\n  display: table-row;\n}\n.up_pftv_track {\n  border-top: 1px #b2f5ff solid;\n}\n.up_pftv_category-name.up_pftv_arrow-right:before {\n  content: \' \';\n  display: inline-block;\n  width: 0;\n  height: 0;\n  border-top: 5px solid transparent;\n  border-bottom: 5px solid transparent;\n  border-left: 5px solid #333;\n  margin-right: 5px;\n}\n.up_pftv_category-name.up_pftv_arrow-down:before {\n  content: \' \';\n  display: inline-block;\n  width: 0;\n  height: 0;\n  border-left: 5px solid transparent;\n  border-right: 5px solid transparent;\n  border-top: 5px solid #333;\n  margin-right: 5px;\n}\n.up_pftv_category-disabled {\n  opacity: 0;\n  display: none;\n}\n/* Ruler */\n.up_pftv_navruler .axis {\n  font-size: 12px;\n}\n.up_pftv_navruler line,\n.up_pftv_navruler path {\n  fill: none;\n  stroke: black;\n}\n.up_pftv_aaviewer path {\n  display: no;\n}\n.up_pftv_navruler .up_pftv_viewport {\n  fill: #D7DCE0;\n  fill-opacity: 0.4;\n}\n.up_pftv_navruler path.up_pftv_trapezoid {\n  fill: #D7DCE0;\n  stroke: none;\n  fill-opacity: 0.4;\n  stroke: none;\n}\n.up_pftv_highlight,\n.up_pftv_amino_acid_selector {\n  fill: #FFE999;\n  fill-opacity: 1;\n}\n.up_pftv_navruler .handle {\n  fill: #D7DCE0;\n  fill-opacity: 1;\n  stroke: #000;\n  stroke-width: 1px;\n}\n.up_pftv_navruler .handle:hover {\n  fill-opacity: 1;\n}\n.up_pftv_aaviewer text {\n  font-family: "Lucida Console", Monaco, monospace;\n  font-size: 12px;\n}\n.up_pftv_feature {\n  cursor: pointer;\n  fill-opacity: .6;\n}\n.up_pftv_feature:hover {\n  fill-opacity: .9;\n}\n.up_pftv_activeFeature {\n  fill-opacity: .9 !important;\n}\n.up_pftv_variation-chart .up_pftv_block-area {\n  fill: lightgrey;\n  stroke: none;\n}\n.up_pftv_variation-chart .up_pftv_block-area:hover {\n  fill: darkslategrey;\n  cursor: pointer;\n}\n.up_pftv_variation-chart .up_pftv_line {\n  fill: none;\n  stroke: darkgrey;\n  stroke-width: 1px;\n}\n.up_pftv_variation-chart .up_pftv_line:hover,\n.up_pftv_variation-chart .up_pftv_line:hover + .up_pftv_block-area {\n  stroke: darkslategrey;\n  cursor: pointer;\n}\n/* Dialogs */\n.up_pftv_dialog-container {\n  margin: 0;\n  padding: 0;\n}\n.up_pftv_dialog-container li a {\n  display: block;\n  line-height: 2em;\n  padding: 0 .2em;\n  cursor: pointer;\n}\n.up_pftv_legend {\n  vertical-align: sub;\n  width: 1.5em;\n  display: inline-block;\n  height: 1em;\n  border-radius: .4em;\n  border: 2px solid #ABABAB;\n  margin-right: .5em;\n}\n.up_pftv_legend_double {\n  height: 3em !important;\n}\n.up_pftv_legend_text {\n  line-height: 2em;\n  display: inline-block;\n  vertical-align: top;\n}\n/* Close button */\n.up_pftv_tooltip-close {\n  color: #FFF;\n  background-color: #333333;\n  position: absolute;\n  top: -10px;\n  right: -10px;\n  cursor: pointer;\n  border-radius: 20px;\n  width: 20px;\n  height: 20px;\n  font-size: 14px !important;\n  text-align: center;\n  border: 1px solid #fff;\n}\n/* Tooltip */\n.up_pftv_tooltip-pin-container {\n  display: inline-block;\n  float: left;\n  padding: 4px 10px 0 0;\n}\n/*.up_pftv_icon-frame {\n    border-radius: 20px;\n    width: 20px;\n    height: 20px;\n    text-align: center;\n    border: 1px solid;\n    margin: .2em;\n}*/\n.up_pftv_iconContainer-unpinned {\n  background-color: lightgrey !important;\n  color: black !important;\n}\n.up_pftv_iconContainer-unpinned:hover {\n  background-color: grey !important;\n}\n.up_pftv_iconContainer-pinned {\n  background-color: black !important;\n  color: white !important;\n}\n.up_pftv_tooltip-container,\n.up_pftv_popupDialog-container {\n  z-index: 50000;\n  position: absolute;\n  opacity: 0;\n  display: none;\n}\n.up_pftv_tooltip-container {\n  min-width: 220px;\n}\n.up_pftv_popupDialog-container {\n  border: 1px solid #557071;\n  background-color: #ffffff;\n  padding: 0.5em;\n  min-width: 210px;\n  text-align: left;\n  font-size: 13px;\n}\n.up_pftv_popupDialog-container table {\n  border: 0px;\n  background-color: #FFF;\n  width: 100%;\n}\n.up_pftv_popupDialog-container td {\n  padding: .2em;\n  margin: 0;\n}\n.up_pftv_popupDialog-container td:first-child {\n  font-size: small;\n}\n\n.up_pftv_tooltip-container table {\n  font-size: 13px;\n  border: 2px solid #CCC;\n  border-spacing: 0;\n  border-collapse: collapse;\n  background-color: #FFF;\n  -webkit-box-shadow: 5px 5px 2px 0px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 5px 5px 2px 0px rgba(0, 0, 0, 0.1);\n  box-shadow: 5px 5px 2px 0px rgba(0, 0, 0, 0.1);\n  width: 100%;\n}\n.up_pftv_tooltip-container table th {\n  text-transform: capitalize;\n  font-weight: 400;\n  white-space: nowrap;\n  letter-spacing: .05em;\n  font-size: 1.1em;\n  background-color: #595959;\n  line-height: 2em;\n  padding: 0 .7em;\n  color: #FFF;\n  text-align: center;\n}\n.up_pftv_tooltip-container table a {\n  text-decoration: underline !important;\n}\n.up_pftv_tooltip-container table td {\n  padding: .4em;\n  margin: 0;\n  border: 1px solid #CCC;\n}\n.up_pftv_tooltip-container td:first-child {\n  font-weight: bold;\n}\n.up_pftv_tooltip-container .up_pftv_evidence-col {\n  background-color: #FFF;\n}\n.up_pftv_tooltip-container .up_pftv_evidence-source {\n  background-color: #FFF;\n}\n.up_pftv_tooltip-container .up_pftv_section {\n  background-color: #B3B3B3;\n  text-align: center;\n}\n.up_pftv_tooltip-container .up_pftv_subsection {\n  color: black;\n}\n/* Features */\nsvg .up_pftv_chain {\n  stroke: #CC9933;\n  fill: #CC9933;\n}\nsvg .up_pftv_transit {\n  stroke: #009966;\n  fill: #009966;\n}\nsvg .up_pftv_init_met {\n  stroke: #996633;\n  fill: #996633;\n}\nsvg .up_pftv_propep {\n  stroke: #99CCCC;\n  fill: #99CCCC;\n}\nsvg .up_pftv_peptide {\n  stroke: #006699;\n  fill: #006699;\n}\nsvg .up_pftv_signal {\n  stroke: #CC0033;\n  fill: #CC0033;\n}\nsvg .up_pftv_turn {\n  stroke: #0571AF;\n  fill: #0571AF;\n}\nsvg .up_pftv_strand {\n  stroke: #FFCC00;\n  fill: #FFCC00;\n}\nsvg .up_pftv_helix {\n  stroke: #FF0066;\n  fill: #FF0066;\n}\nsvg .up_pftv_crosslnk {\n  stroke: #FF6600;\n  fill: #FF6600;\n}\nsvg .up_pftv_disulfid {\n  stroke: #23B14D;\n  fill: #23B14D;\n}\nsvg .up_pftv_region {\n  stroke: #B33E00;\n  fill: #B33E00;\n}\nsvg .up_pftv_coiled {\n  stroke: #006699;\n  fill: #006699;\n}\nsvg .up_pftv_motif {\n  stroke: #402060;\n  fill: #402060;\n}\nsvg .up_pftv_repeat {\n  stroke: #9900FF;\n  fill: #9900FF;\n}\nsvg .up_pftv_ca_bind {\n  stroke: #FF3399;\n  fill: #FF3399;\n}\nsvg .up_pftv_dna_bind {\n  stroke: #009933;\n  fill: #009933;\n}\nsvg .up_pftv_domain {\n  stroke: #9999FF;\n  fill: #9999FF;\n}\nsvg .up_pftv_zn_fing {\n  stroke: #990066;\n  fill: #990066;\n}\nsvg .up_pftv_np_bind {\n  stroke: #FF9900;\n  fill: #FF9900;\n}\nsvg .up_pftv_metal {\n  stroke: #009900;\n  fill: #009900;\n}\nsvg .up_pftv_site {\n  stroke: #660033;\n  fill: #660033;\n}\nsvg .up_pftv_binding {\n  stroke: #006699;\n  fill: #006699;\n}\nsvg .up_pftv_act_site {\n  stroke: #FF6666;\n  fill: #FF6666;\n}\nsvg .up_pftv_mod_res {\n  stroke: #000066;\n  fill: #000066;\n}\nsvg .up_pftv_lipid {\n  stroke: #99CC33;\n  fill: #99CC33;\n}\nsvg .up_pftv_carbohyd {\n  stroke: #CC3366;\n  fill: #CC3366;\n}\nsvg .up_pftv_variant {\n  stroke-width: 2;\n}\nsvg .up_pftv_compbias {\n  stroke: #FF3366;\n  fill: #FF3366;\n}\nsvg .up_pftv_mutagen {\n  stroke: #FF9900;\n  fill: #FF9900;\n}\nsvg .up_pftv_conflict {\n  stroke: #6633CC;\n  fill: #6633CC;\n}\nsvg .up_pftv_non_cons {\n  stroke: #FF0033;\n  fill: #FF0033;\n}\nsvg .up_pftv_non_ter {\n  stroke: #339933;\n  fill: #339933;\n}\nsvg .up_pftv_unsure {\n  stroke: #33FF00;\n  fill: #33FF00;\n}\nsvg .up_pftv_non_std {\n  stroke: #330066;\n  fill: #330066;\n}\nsvg .up_pftv_topo_dom {\n  stroke: #CC0000;\n  fill: #CC0000;\n}\nsvg .up_pftv_transmem {\n  stroke: #CC00CC;\n  fill: #CC00CC;\n}\nsvg .up_pftv_intramem {\n  stroke: #0000CC;\n  fill: #0000CC;\n}\nsvg .up_pftv_unique {\n  stroke: #fc3133;\n  fill: #fd5a5d;\n}\nsvg .up_pftv_non_unique {\n  stroke: #8585fc;\n  fill: #5a60fb;\n}\nsvg .up_pftv_antigen {\n  stroke: #996699;\n  fill: #996699;\n}\n/* Variation */\n.up_pftv_variants-svg .axis path {\n  display: none;\n}\n.up_pftv_variants-svg .axis text {\n  font-size: 10px;\n  font-family: \'Helvetica neue\', Helvetica, Arial, sans-serif;\n}\n.up_pftv_variants-svg .variation-y.axis line {\n  stroke: #ccc;\n  opacity: .4;\n}\n.up_pftv_variants-svg .variation-x.axis line {\n  stroke: #000;\n}\n.up_pftv_variants-svg circle.main-seq {\n  fill: #fff;\n  stroke: steelblue;\n  stroke-width: 1.5px;\n  /*display: none;*/\n}\n.up_pftv_variants-svg .main-sequence {\n  fill: green;\n}\n.up_pftv_variants-svg circle {\n  cursor: pointer;\n  fill-opacity: .6;\n}\n.up_pftv_variants-svg .up_pftv_variant_hidden {\n  cursor: default;\n  opacity: 0;\n}\n.up_pftv_variants-svg circle:hover {\n  fill-opacity: 0.9;\n}\n.up_pftv_dialog_checkboxLabel {\n  opacity: 0.9;\n}\n.up_pftv_dialog_checkboxLabel:hover {\n  cursor: pointer;\n  opacity: 1;\n}\n.up_pftv_message_wrapper {\n  margin: .7em;\n}\n/*Taken from http://www.karimnassar.com/code/web/css-icons/*/\n.up_pftv_icon,\n.up_pftv_icon::before,\n.up_pftv_icon::after {\n  position: relative;\n  padding: 0;\n  margin: 0;\n}\n.up_pftv_icon {\n  font-size: 20px;\n  color: transparent;\n}\n.up_pftv_icon.up_pftv_warning {\n  display: inline-block;\n  top: 0.225em;\n  width: 1.15em;\n  height: 1.15em;\n  overflow: hidden;\n  border: none;\n  background-color: transparent;\n  border-radius: 0.625em;\n}\n.up_pftv_icon.up_pftv_warning::before {\n  content: "";\n  display: block;\n  top: -0.08em;\n  left: 0.0em;\n  position: absolute;\n  border: transparent 0.6em solid;\n  border-bottom-color: #fd3;\n  border-bottom-width: 1em;\n  border-top-width: 0;\n  box-shadow: #999 0 1px 1px;\n}\n.up_pftv_icon.up_pftv_warning::after {\n  display: block;\n  position: absolute;\n  top: 0.3em;\n  left: 0;\n  width: 100%;\n  padding: 0 1px;\n  text-align: center;\n  content: "!";\n  font-size: 0.65em;\n  font-weight: bold;\n  color: #333;\n}\n/* ICONS */\na.up_pftv_icon-button:hover {\n  border: 1px solid #9CA8B4 !important;\n}\n.up_pftv_icon-button {\n  border: 1px solid #D7DCE0 !important;\n  border-radius: 2.5em;\n  display: inline-block;\n  text-indent: -9999px;\n  width: 2.5em;\n  height: 2.5em;\n  background-size: 1.3em 1.3em !important;\n  background-repeat: no-repeat !important;\n  background-position: .6em .6em !important;\n  margin: .2em;\n}\n.up_pftv_icon-download {\n  background: url("data:image/svg+xml,%3Csvg width%3D%2260px%22 height%3D%2255px%22 viewBox%3D%2220 13 60 55%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E    %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E    %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E    %3Cdefs%3E%3C%2Fdefs%3E    %3Cpath d%3D%22M65.7143402%2C61.142849 C65.7143402%2C62.3928505 64.6786247%2C63.428566 63.4286232%2C63.428566 C62.1786217%2C63.428566 61.1429062%2C62.3928505 61.1429062%2C61.142849 C61.1429062%2C59.8928475 62.1786217%2C58.857132 63.4286232%2C58.857132 C64.6786247%2C58.857132 65.7143402%2C59.8928475 65.7143402%2C61.142849 Z M74.8572083%2C61.142849 C74.8572083%2C62.3928505 73.8214927%2C63.428566 72.5714912%2C63.428566 C71.3214898%2C63.428566 70.2857742%2C62.3928505 70.2857742%2C61.142849 C70.2857742%2C59.8928475 71.3214898%2C58.857132 72.5714912%2C58.857132 C73.8214927%2C58.857132 74.8572083%2C59.8928475 74.8572083%2C61.142849 Z M79.4286423%2C53.1428394 C79.4286423%2C51.24998 77.8929262%2C49.7142639 76.0000668%2C49.7142639 L59.4286184%2C49.7142639 L54.5714698%2C54.5714126 C53.2500396%2C55.8571284 51.5357519%2C56.5714149 49.7143211%2C56.5714149 C47.8928904%2C56.5714149 46.1786026%2C55.8571284 44.8571725%2C54.5714126 L40.0357382%2C49.7142639 L23.4285755%2C49.7142639 C21.5357161%2C49.7142639 20%2C51.24998 20%2C53.1428394 L20%2C64.5714245 C20%2C66.4642839 21.5357161%2C68 23.4285755%2C68 L76.0000668%2C68 C77.8929262%2C68 79.4286423%2C66.4642839 79.4286423%2C64.5714245 L79.4286423%2C53.1428394 Z M67.8214856%2C32.8213866 C67.4643423%2C31.9999571 66.6429127%2C31.4285278 65.7143402%2C31.4285278 L56.5714722%2C31.4285278 L56.5714722%2C15.4285088 C56.5714722%2C14.1785073 55.5357566%2C13.1427917 54.2857552%2C13.1427917 L45.1428871%2C13.1427917 C43.8928856%2C13.1427917 42.8571701%2C14.1785073 42.8571701%2C15.4285088 L42.8571701%2C31.4285278 L33.7143021%2C31.4285278 C32.7857295%2C31.4285278 31.9643%2C31.9999571 31.6071567%2C32.8213866 C31.2500134%2C33.6785305 31.4285851%2C34.6785317 32.1071573%2C35.3213896 L48.1071764%2C51.3214087 C48.5357483%2C51.785695 49.1428919%2C51.9999809 49.7143211%2C51.9999809 C50.2857504%2C51.9999809 50.892894%2C51.785695 51.3214659%2C51.3214087 L67.321485%2C35.3213896 C68.0000572%2C34.6785317 68.1786289%2C33.6785305 67.8214856%2C32.8213866 Z%22 id%3D%22%EF%80%99%22 stroke%3D%22none%22 fill%3D%22%2397A2AE%22 fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-location {\n  background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg width%3D%2237px%22 height%3D%2256px%22 viewBox%3D%220 0 37 56%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E    %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E    %3Ctitle%3E%EF%81%81%3C%2Ftitle%3E    %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E    %3Cdefs%3E%3C%2Fdefs%3E    %3Cg id%3D%22Page-1%22 stroke%3D%22none%22 stroke-width%3D%221%22 fill%3D%22none%22 fill-rule%3D%22evenodd%22%3E        %3Cg id%3D%22Artboard-2-Copy%22 transform%3D%22translate(-32.000000%2C -17.000000)%22 fill%3D%22%2397A2AE%22%3E            %3Cpath d%3D%22M59.4286041%2C35.9999619 C59.4286041%2C41.0356821 55.3214564%2C45.1428299 50.2857361%2C45.1428299 C45.2500158%2C45.1428299 41.142868%2C41.0356821 41.142868%2C35.9999619 C41.142868%2C30.9642416 45.2500158%2C26.8570938 50.2857361%2C26.8570938 C55.3214564%2C26.8570938 59.4286041%2C30.9642416 59.4286041%2C35.9999619 Z M68.5714722%2C35.9999619 C68.5714722%2C25.8928069 60.392891%2C17.7142258 50.2857361%2C17.7142258 C40.1785812%2C17.7142258 32%2C25.8928069 32%2C35.9999619 C32%2C38.1785359 32.2500003%2C40.4285386 33.1785728%2C42.3928266 L46.2143027%2C70.0357167 C46.9285892%2C71.6071472 48.5714483%2C72.571434 50.2857361%2C72.571434 C52.0000238%2C72.571434 53.6428829%2C71.6071472 54.3928838%2C70.0357167 L67.3928993%2C42.3928266 C68.3214719%2C40.4285386 68.5714722%2C38.1785359 68.5714722%2C35.9999619 Z%22 id%3D%22%EF%81%81%22%3E%3C%2Fpath%3E        %3C%2Fg%3E    %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-zoom-in {\n  background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg width%3D%2260px%22 height%3D%2261px%22 viewBox%3D%220 0 60 61%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E    %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E    %3Ctitle%3E%EF%80%8E%3C%2Ftitle%3E    %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E    %3Cdefs%3E%3C%2Fdefs%3E    %3Cg id%3D%22Page-1%22 stroke%3D%22none%22 stroke-width%3D%221%22 fill%3D%22none%22 fill-rule%3D%22evenodd%22%3E        %3Cg id%3D%22Artboard-2-Copy-2%22 transform%3D%22translate(-20.000000%2C -17.000000)%22 fill%3D%22%2397A2AE%22%3E            %3Cpath d%3D%22M56.5714722%2C41.7142544 C56.5714722%2C41.1071108 56.0357572%2C40.5713959 55.4286137%2C40.5713959 L47.4286041%2C40.5713959 L47.4286041%2C32.5713863 C47.4286041%2C31.9642428 46.8928892%2C31.4285278 46.2857456%2C31.4285278 L44.0000286%2C31.4285278 C43.392885%2C31.4285278 42.8571701%2C31.9642428 42.8571701%2C32.5713863 L42.8571701%2C40.5713959 L34.8571606%2C40.5713959 C34.250017%2C40.5713959 33.7143021%2C41.1071108 33.7143021%2C41.7142544 L33.7143021%2C43.9999714 C33.7143021%2C44.607115 34.250017%2C45.1428299 34.8571606%2C45.1428299 L42.8571701%2C45.1428299 L42.8571701%2C53.1428394 C42.8571701%2C53.749983 43.392885%2C54.2856979 44.0000286%2C54.2856979 L46.2857456%2C54.2856979 C46.8928892%2C54.2856979 47.4286041%2C53.749983 47.4286041%2C53.1428394 L47.4286041%2C45.1428299 L55.4286137%2C45.1428299 C56.0357572%2C45.1428299 56.5714722%2C44.607115 56.5714722%2C43.9999714 L56.5714722%2C41.7142544 Z M61.1429062%2C42.8571129 C61.1429062%2C51.678552 53.9643262%2C58.857132 45.1428871%2C58.857132 C36.321448%2C58.857132 29.142868%2C51.678552 29.142868%2C42.8571129 C29.142868%2C34.0356738 36.321448%2C26.8570938 45.1428871%2C26.8570938 C53.9643262%2C26.8570938 61.1429062%2C34.0356738 61.1429062%2C42.8571129 Z M79.4286423%2C72.571434 C79.4286423%2C71.3571469 78.9286417%2C70.178574 78.1072121%2C69.3571445 L65.8571975%2C57.1071299 C68.7500581%2C52.9285535 70.2857742%2C47.9285475 70.2857742%2C42.8571129 C70.2857742%2C28.9642392 59.0357608%2C17.7142258 45.1428871%2C17.7142258 C31.2500134%2C17.7142258 20%2C28.9642392 20%2C42.8571129 C20%2C56.7499866 31.2500134%2C68 45.1428871%2C68 C50.2143217%2C68 55.2143277%2C66.4642839 59.3929041%2C63.5714233 L71.6429187%2C75.7857236 C72.4643483%2C76.6428674 73.6429211%2C77.142868 74.8572083%2C77.142868 C77.3929256%2C77.142868 79.4286423%2C75.1071513 79.4286423%2C72.571434 Z%22 id%3D%22%EF%80%8E%22%3E%3C%2Fpath%3E        %3C%2Fg%3E    %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-zoom-out {\n  background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg width%3D%2260px%22 height%3D%2261px%22 viewBox%3D%220 0 60 61%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E    %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E    %3Ctitle%3E%EF%80%90%3C%2Ftitle%3E    %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E    %3Cdefs%3E%3C%2Fdefs%3E    %3Cg id%3D%22Page-1%22 stroke%3D%22none%22 stroke-width%3D%221%22 fill%3D%22none%22 fill-rule%3D%22evenodd%22%3E        %3Cg id%3D%22Artboard-2-Copy-3%22 transform%3D%22translate(-20.000000%2C -17.000000)%22 fill%3D%22%2397A2AE%22%3E            %3Cpath d%3D%22M56.5714722%2C41.7142544 C56.5714722%2C41.1071108 56.0357572%2C40.5713959 55.4286137%2C40.5713959 L34.8571606%2C40.5713959 C34.250017%2C40.5713959 33.7143021%2C41.1071108 33.7143021%2C41.7142544 L33.7143021%2C43.9999714 C33.7143021%2C44.607115 34.250017%2C45.1428299 34.8571606%2C45.1428299 L55.4286137%2C45.1428299 C56.0357572%2C45.1428299 56.5714722%2C44.607115 56.5714722%2C43.9999714 L56.5714722%2C41.7142544 Z M61.1429062%2C42.8571129 C61.1429062%2C51.678552 53.9643262%2C58.857132 45.1428871%2C58.857132 C36.321448%2C58.857132 29.142868%2C51.678552 29.142868%2C42.8571129 C29.142868%2C34.0356738 36.321448%2C26.8570938 45.1428871%2C26.8570938 C53.9643262%2C26.8570938 61.1429062%2C34.0356738 61.1429062%2C42.8571129 Z M79.4286423%2C72.571434 C79.4286423%2C71.3571469 78.9286417%2C70.178574 78.1072121%2C69.3571445 L65.8571975%2C57.1071299 C68.7500581%2C52.9285535 70.2857742%2C47.9285475 70.2857742%2C42.8571129 C70.2857742%2C28.9642392 59.0357608%2C17.7142258 45.1428871%2C17.7142258 C31.2500134%2C17.7142258 20%2C28.9642392 20%2C42.8571129 C20%2C56.7499866 31.2500134%2C68 45.1428871%2C68 C50.2143217%2C68 55.2143277%2C66.4642839 59.3929041%2C63.5714233 L71.6429187%2C75.7857236 C72.4643483%2C76.6428674 73.6429211%2C77.142868 74.8572083%2C77.142868 C77.3929256%2C77.142868 79.4286423%2C75.1071513 79.4286423%2C72.571434 Z%22 id%3D%22%EF%80%90%22%3E%3C%2Fpath%3E        %3C%2Fg%3E    %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-reset {\n  background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!-- Created with Inkscape (http%3A%2F%2Fwww.inkscape.org%2F) --%3E%3Csvg        xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22        xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22        xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22        xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22        width%3D%2264px%22        height%3D%2264px%22        id%3D%22svg3813%22        version%3D%221.1%22        inkscape%3Aversion%3D%220.48.4 r9939%22%3E  %3Cg          id%3D%22layer1%22          inkscape%3Alabel%3D%22Layer 1%22          inkscape%3Agroupmode%3D%22layer%22%3E    %3Cpath            style%3D%22fill%3A%2397a2ae%3Bfill-opacity%3A1%3Bstroke%3A%23000000%3Bstroke-width%3A0%3Bstroke-miterlimit%3A4%3Bstroke-opacity%3A0%3Bstroke-dasharray%3Anone%22            d%3D%22M 32 1 C 23.252069 1 15.354939 4.6110155 9.71875 10.4375 L 0.5 7.84375 L 11.03125 31.1875 L 31.15625 16.5 L 21.53125 13.78125 C 24.616678 12.019026 28.18814 11 32 11 C 43.648187 11 53.09375 20.40202 53.09375 32 C 53.09375 43.59798 43.648187 53 32 53 C 27.960153 53 24.207801 51.836233 21 49.875 L 21 50 L 6.75 50 C 12.371455 57.87486 21.587074 63 32 63 C 49.120827 63 63 49.120827 63 32 C 63 14.879173 49.120827 1 32 1 z %22            id%3D%22path4899%22 %2F%3E  %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-info {\n  background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!-- Created with Inkscape (http%3A%2F%2Fwww.inkscape.org%2F) --%3E%3Csvg   xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22   xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22   xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22   xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22   width%3D%2264px%22   height%3D%2264px%22   id%3D%22svg2985%22   version%3D%221.1%22   inkscape%3Aversion%3D%220.48.4 r9939%22%3E  %3Cg     id%3D%22layer1%22     inkscape%3Alabel%3D%22Layer 1%22     inkscape%3Agroupmode%3D%22layer%22%3E    %3Ctext       xml%3Aspace%3D%22preserve%22       style%3D%22font-size%3A77.17918396000000300px%3Bfont-style%3Anormal%3Bfont-weight%3Anormal%3Bline-height%3A125%25%3Bletter-spacing%3A0px%3Bword-spacing%3A0px%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%3Bstroke%3Anone%3Bfont-family%3AScript MT Bold%3B-inkscape-font-specification%3AScript MT Bold%22       x%3D%2223.582533%22       y%3D%2255.973633%22       id%3D%22text3763%22       sodipodi%3Alinespacing%3D%22125%25%22       transform%3D%22scale(0.93289386%2C1.0719333)%22%3E%3Ctspan         sodipodi%3Arole%3D%22line%22         id%3D%22tspan3765%22         x%3D%2223.582533%22         y%3D%2255.973633%22         style%3D%22font-style%3Anormal%3Bfont-variant%3Anormal%3Bfont-weight%3Abold%3Bfont-stretch%3Anormal%3Bfont-family%3ASerif%3B-inkscape-font-specification%3ASerif Bold%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%22%3Ei%3C%2Ftspan%3E%3C%2Ftext%3E  %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv-clear {\n  clear: both;\n}\n@font-face {\n  font-family: \'fontello\';\n  src: url("data:application/vnd.ms-fontobject;base64,eMAAANC/AAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAApv+ibQAAAAAAAAAAAAAAAAAAAAAAABAAZgBvAG4AdABlAGwAbABvAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGYAbwBuAHQAZQBsAGwAbwAAAAAAAAEAAAAPAIAAAwBwR1NVQrD+s+0AAAD8AAAAQk9TLzI+MEmlAAABQAAAAFZjbWFwRVKvZgAAAZgAAA1aY3Z0IAbx/uQAALO4AAAAIGZwZ22KkZBZAACz2AAAC3BnYXNwAAAAEAAAs7AAAAAIZ2x5ZrLdNoQAAA70AACTdmhlYWQJpdtdAACibAAAADZoaGVhBzEEFQAAoqQAAAAkaG10eK8A/nMAAKLIAAADZGxvY2FXyX7XAACmLAAAAbRtYXhwAmIMPQAAp+AAAAAgbmFtZcydHB4AAKgAAAACzXBvc3RiqRPEAACq0AAACN1wcmVw5UErvAAAv0gAAACGAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQMqAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADo3gNS/2oAWgNgAKYAAAABAAAAAAAAAAAABQAAAAMAAAAsAAAABAAAAyoAAQAAAAACJAADAAEAAAAsAAMACgAAAyoABAH4AAAADgAIAAIABugA6KPopuis6MDo3v//AADoAOgD6KXoqeiu6ML//wAAAAAAAAAAAAAAAAABAA4ADgFOAVABVgF6AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAACjAAAAAAAAAA2AAA6AAAAOgAAAAAAQAA6AMAAOgDAAAAAgAA6AQAAOgEAAAAAwAA6AUAAOgFAAAABAAA6AYAAOgGAAAABQAA6AcAAOgHAAAABgAA6AgAAOgIAAAABwAA6AkAAOgJAAAACAAA6AoAAOgKAAAACQAA6AsAAOgLAAAACgAA6AwAAOgMAAAACwAA6A0AAOgNAAAADAAA6A4AAOgOAAAADQAA6A8AAOgPAAAADgAA6BAAAOgQAAAADwAA6BEAAOgRAAAAEAAA6BIAAOgSAAAAEQAA6BMAAOgTAAAAEgAA6BQAAOgUAAAAEwAA6BUAAOgVAAAAFAAA6BYAAOgWAAAAFQAA6BcAAOgXAAAAFgAA6BgAAOgYAAAAFwAA6BkAAOgZAAAAGAAA6BoAAOgaAAAAGQAA6BsAAOgbAAAAGgAA6BwAAOgcAAAAGwAA6B0AAOgdAAAAHAAA6B4AAOgeAAAAHQAA6B8AAOgfAAAAHgAA6CAAAOggAAAAHwAA6CEAAOghAAAAIAAA6CIAAOgiAAAAIQAA6CMAAOgjAAAAIgAA6CQAAOgkAAAAIwAA6CUAAOglAAAAJAAA6CYAAOgmAAAAJQAA6CcAAOgnAAAAJgAA6CgAAOgoAAAAJwAA6CkAAOgpAAAAKAAA6CoAAOgqAAAAKQAA6CsAAOgrAAAAKgAA6CwAAOgsAAAAKwAA6C0AAOgtAAAALAAA6C4AAOguAAAALQAA6C8AAOgvAAAALgAA6DAAAOgwAAAALwAA6DEAAOgxAAAAMAAA6DIAAOgyAAAAMQAA6DMAAOgzAAAAMgAA6DQAAOg0AAAAMwAA6DUAAOg1AAAANAAA6DYAAOg2AAAANQAA6DcAAOg3AAAANgAA6DgAAOg4AAAANwAA6DkAAOg5AAAAOAAA6DoAAOg6AAAAOQAA6DsAAOg7AAAAOgAA6DwAAOg8AAAAOwAA6D0AAOg9AAAAPAAA6D4AAOg+AAAAPQAA6D8AAOg/AAAAPgAA6EAAAOhAAAAAPwAA6EEAAOhBAAAAQAAA6EIAAOhCAAAAQQAA6EMAAOhDAAAAQgAA6EQAAOhEAAAAQwAA6EUAAOhFAAAARAAA6EYAAOhGAAAARQAA6EcAAOhHAAAARgAA6EgAAOhIAAAARwAA6EkAAOhJAAAASAAA6EoAAOhKAAAASQAA6EsAAOhLAAAASgAA6EwAAOhMAAAASwAA6E0AAOhNAAAATAAA6E4AAOhOAAAATQAA6E8AAOhPAAAATgAA6FAAAOhQAAAATwAA6FEAAOhRAAAAUAAA6FIAAOhSAAAAUQAA6FMAAOhTAAAAUgAA6FQAAOhUAAAAUwAA6FUAAOhVAAAAVAAA6FYAAOhWAAAAVQAA6FcAAOhXAAAAVgAA6FgAAOhYAAAAVwAA6FkAAOhZAAAAWAAA6FoAAOhaAAAAWQAA6FsAAOhbAAAAWgAA6FwAAOhcAAAAWwAA6F0AAOhdAAAAXAAA6F4AAOheAAAAXQAA6F8AAOhfAAAAXgAA6GAAAOhgAAAAXwAA6GEAAOhhAAAAYAAA6GIAAOhiAAAAYQAA6GMAAOhjAAAAYgAA6GQAAOhkAAAAYwAA6GUAAOhlAAAAZAAA6GYAAOhmAAAAZQAA6GcAAOhnAAAAZgAA6GgAAOhoAAAAZwAA6GkAAOhpAAAAaAAA6GoAAOhqAAAAaQAA6GsAAOhrAAAAagAA6GwAAOhsAAAAawAA6G0AAOhtAAAAbAAA6G4AAOhuAAAAbQAA6G8AAOhvAAAAbgAA6HAAAOhwAAAAbwAA6HEAAOhxAAAAcAAA6HIAAOhyAAAAcQAA6HMAAOhzAAAAcgAA6HQAAOh0AAAAcwAA6HUAAOh1AAAAdAAA6HYAAOh2AAAAdQAA6HcAAOh3AAAAdgAA6HgAAOh4AAAAdwAA6HkAAOh5AAAAeAAA6HoAAOh6AAAAeQAA6HsAAOh7AAAAegAA6HwAAOh8AAAAewAA6H0AAOh9AAAAfAAA6H4AAOh+AAAAfQAA6H8AAOh/AAAAfgAA6IAAAOiAAAAAfwAA6IEAAOiBAAAAgAAA6IIAAOiCAAAAgQAA6IMAAOiDAAAAggAA6IQAAOiEAAAAgwAA6IUAAOiFAAAAhAAA6IYAAOiGAAAAhQAA6IcAAOiHAAAAhgAA6IgAAOiIAAAAhwAA6IkAAOiJAAAAiAAA6IoAAOiKAAAAiQAA6IsAAOiLAAAAigAA6IwAAOiMAAAAiwAA6I0AAOiNAAAAjAAA6I4AAOiOAAAAjQAA6I8AAOiPAAAAjgAA6JAAAOiQAAAAjwAA6JEAAOiRAAAAkAAA6JIAAOiSAAAAkQAA6JMAAOiTAAAAkgAA6JQAAOiUAAAAkwAA6JUAAOiVAAAAlAAA6JYAAOiWAAAAlQAA6JcAAOiXAAAAlgAA6JgAAOiYAAAAlwAA6JkAAOiZAAAAmAAA6JoAAOiaAAAAmQAA6JsAAOibAAAAmgAA6JwAAOicAAAAmwAA6J0AAOidAAAAnAAA6J4AAOieAAAAnQAA6J8AAOifAAAAngAA6KAAAOigAAAAnwAA6KEAAOihAAAAoAAA6KIAAOiiAAAAoQAA6KMAAOijAAAAogAA6KUAAOilAAAAowAA6KYAAOimAAAApAAA6KkAAOipAAAApQAA6KoAAOiqAAAApgAA6KsAAOirAAAApwAA6KwAAOisAAAAqAAA6K4AAOiuAAAAqQAA6K8AAOivAAAAqgAA6LAAAOiwAAAAqwAA6LEAAOixAAAArAAA6LIAAOiyAAAArQAA6LMAAOizAAAArgAA6LQAAOi0AAAArwAA6LUAAOi1AAAAsAAA6LYAAOi2AAAAsQAA6LcAAOi3AAAAsgAA6LgAAOi4AAAAswAA6LkAAOi5AAAAtAAA6LoAAOi6AAAAtQAA6LsAAOi7AAAAtgAA6LwAAOi8AAAAtwAA6L0AAOi9AAAAuAAA6L4AAOi+AAAAuQAA6L8AAOi/AAAAugAA6MAAAOjAAAAAuwAA6MIAAOjCAAAAvAAA6MMAAOjDAAAAvQAA6MQAAOjEAAAAvgAA6MUAAOjFAAAAvwAA6MYAAOjGAAAAwAAA6McAAOjHAAAAwQAA6MgAAOjIAAAAwgAA6MkAAOjJAAAAwwAA6MoAAOjKAAAAxAAA6MsAAOjLAAAAxQAA6MwAAOjMAAAAxgAA6M0AAOjNAAAAxwAA6M4AAOjOAAAAyAAA6M8AAOjPAAAAyQAA6NAAAOjQAAAAygAA6NEAAOjRAAAAywAA6NIAAOjSAAAAzAAA6NMAAOjTAAAAzQAA6NQAAOjUAAAAzgAA6NUAAOjVAAAAzwAA6NYAAOjWAAAA0AAA6NcAAOjXAAAA0QAA6NgAAOjYAAAA0gAA6NkAAOjZAAAA0wAA6NoAAOjaAAAA1AAA6NsAAOjbAAAA1QAA6NwAAOjcAAAA1gAA6N0AAOjdAAAA1wAA6N4AAOjeAAAA2AAAAAL/9//iA9sDEgAXACAAJkAjAAIBAm8DAQEAAAFUAwEBAQBYAAABAEwZGB0cGCAZIC8EBRUrAR4BBgcGJgYHBh4BBw4CIyImNz4BNyQDMjY0JiIGFBYDWUg6EhoQTFQmHhIyAgJEuHy60goIwHgBIkgeLCw+LCwCbjB8VAYEHAgqLjpIDhpKSsqQduoiVP2KLEAqKkAsAAAAAgAA/8IDIgLqABEAGgAsQCkRAQIDBgEAAgJHAAEAAwIBA2AAAgAAAlQAAgIAWAAAAgBMExcTJwQFGCslFg8BBi8BBiMiJhA2IBYVFAclFBYyNjQmIgYDBB4YLiQgvkpSgL60AQDALv4YiLB+iLB+TiIcLiAgviq+AQC2voBYSqpYiH6yhn4AAAP/+f+WA5MDMAAUABwAKQAKtyYgGRYTCQMtKwEeAQ8BDgEnAQYuAjcBJjY/ATYWARY2JyYOAgEeAjYuBAYeAQMnPi4chhBcMv5oEk5IGhIBmAYUEIgYiP5+IF4gDjAoBgFeHkwwBgwoPEguCAooAsI+iBiGEBQG/mgSGEpMEgGYMlwQiBww/iogXCQOCCguARoeKAoILko8KAwIMEwAAAAC//4AAAOQAoAAEQAjACRAIQAAAQBvAAEDAW8AAwICA1QAAwMCWAACAwJMFzkXMwQFGCsTJjc2MyEyBwYHBg8BBiIvASYFNhURFAYjISImNRE0FwUWMjceIAQCGANOJhIIEA6ythA6ErayA0QUIhD84BAiFAGAEjgSAkoSFg4gDggGYGIKCmJgXgoU/pAQICAQAXAUCsgKCgAAAAABAAAAAANcAr4ADwASQA8MBAIARAEBAABmFBkCBRYrARYUBwkBJjQ3NjIfATc2MgMWRkb+mP6YRkY+skA4Oj6wAoRAuEL+tgFKQrhAOjo0NDoAAAACAAAAAANcArwADwAhACRAISEYDAQEAkQBAQACAgBUAQEAAAJYAwECAAJMJCUUGQQFGCsBFhQHCQEmNDc2Mh8BNzYyEzY0JyYjIg8BJyYjIgcGFBcBAxZGRv6Y/phGRkCwPjo4QLAKKiYmQDQ0aGowNkAoJiwBMgKCQLhA/rYBSkC4QDo6NDQ6/sIogiImMFxcMCYkgib+4gAAAAABAAD/pgNwAxYACQAVQBIHBgUEAwUARAEBAABmFhECBRYrARMhBRMlBRMlIQG4eAFA/vpe/vD+8F7++gFAAxb+sMT+pNDQAVzEAAAAAgAA/6YDcAMWAAkAEwA3QDQPCAIARRMSDAsFBAMCAQkCRAQBAgACAgBSBAECAAACVgMBAgACSgAAERAODQAJAAkWBQUVKwEFEyUFEyUhGwEHFyc3BycHJxcHA3D++l7+8P7wXv76AUB4eHiWPpCwODawjj4BxsT+pNDQAVzEAVD+sO58snIEysoEcrIAAAAAAQAA/5wDrAMgACoAG0AYIB4WEgQAAQFHAAEAAW8AAABmGxoTAgUVKyUWHQEhNTQ3PgE1NCYnLgMnNDY/ASYnJjYyFg8BFhUOAwcOARUUFgLgzPxUzF5ELAoCDg4OAgoEBAgEBFrgXAYMEgIODg4CCC5GgEgyamoySCJGPBY2LgwMBB4cEBQCBDImNnR0NlgIIhweBAwMMDQWPEYAAgAA/6YD6AMWACcATgAoQCVGRDw4Fw8FBwABAUcAAwEDbwABAAFvAgEAAGZBQCwrFBMQBAUVKwUjNTQmJzY1NCYnLgEnNDcmJyY2MhYPARYVDgEHDgEVFBYXFhceARclFh0BITU0Nz4BNTQmJy4BJzQ2PwEmJyY2MhYPARYVDgEHDgEVFBYD6OA8fCgaBgIYAgwGAgQ2iDgECAwCGAIGGio4cBIGBgL+GLb9SlRMOCYGAiAEBgQEBgQESrRKBAoOBCACBiY4WpY2Nj4eNhAiIggQIhgGIhomUFAmPAYYIhAIIiIQKjAYLiIIajDWTi6KuCwiIEA4FDAsChgsDhIEAi4kMmpqMlIIHiwYCiwwFDhAAAAAAgAA/5wD6AMgACgANABLQEgeHBQQBAIHBQEABAJHAAEHAW8ABwIHbwAEAwADBABtAAAAbgYBAgMDAlIGAQICA1YFAQMCA0o0MzIxMC8uLSwrKikZGBMIBRUrJRYdASE1Njc+ATU0JicuASc0Nj8BJicmNjIWDwEWFQ4DBw4BFRQWJTMVIxUjNSM1MzUzAmy0/OAkLl5GLggCKgQKBAQIBAZc5FwEDhICDg4OAgouSAFElpZklpZkgEA6asoODCJGPBY0MAwaMBAUAgQyJjZ0dDZYCCIcHgQMDC42FjxG7mSWlmSWAAAAAAIAAAAAA9QCvAAnACoAVkBTKQEDAgFHKgEBKAEEAkYADQwBAAENAF4LAQEKAQIDAQJeCQEDCAEEBQMEXgcBBQYGBVIHAQUFBlgABgUGTCUiHx4dHBsaGRgREzMRERERERAOBR0rASMVMxUjFTMVIxUzFRQGIyEiJj0BMzUjNTM1IzUzNSM1NDYzITIWFQE3JwPUZGRkZGRkGBD8fBAYZGRkZGRkGBADhBAY/aj6+gJYZGRkZGQ8EBgYEDxkZGRkZDwSFhYS/jSWlgAAAAP/+P+EA+gDQgAOAB4AJgBDQEAlJCMhIAgGBAIBRwIBAEUBAQACAG8FAQIEAm8GAQQDAwRSBgEEBANYAAMEA0wfHxAPHyYfJhgVDx4QHSIQBwUWKwEjJwcjIgYdAQMmNyU2FxMyFhURFAYjISImNRE0NjMBNScPAScHFQNYZHzWtDRMbAogAqgkDtAQFhYQ/SwQFhYQApxIpoKKXAIGlpZONKABKCYO+Aoi/owYEP4oEBgYEAHYEBj+PKKgPISq1lYAAAAEAAD/zgPoAu4ACAAkAC0ANwBmQGMKAQAJCAkACG0NAQgBCQgBawABBgkBBmsABQAHCQUHYAQLAgIACQACCWAMAQYDAwZUDAEGBgNYAAMGA0wvLiYlCgkBADQyLjcvNyopJS0mLSAdGhcSDwkkCiMFBAAIAQgOBRQrATIWFAYiJjQ2JTIWFREUBiMhIiY1ETQ2OwEyPwE2MyEyHwEWMwEyNjQmIgYUFgEyNjQmIyIVFBYB9EBWWHxYWAHOKjo6KvzgKDw8KHgcDB4KHgFUHgoeDBz+6GiSktCSkgHWDhQUDiQWAcJYfFhYfFiWOir+Pig8PCgBwio6HlwcHFwe/dqS0JKS0JIBfBYcFCIQFAAAAAQAAAAAAlgCigALABcAIwAvAElARgkCCAMAAwEBBAABYAsGCgMEBQUEVAsGCgMEBAVYBwEFBAVMJSQZGA0MAQArKCQvJS4fHBgjGSITEAwXDRYHBAALAQoMBRQrEzIdARQrASI9ATQzITIdARQrASI9ATQzATIdARQrASI9ATQzITIdARQrASI9ATQzqlBQWlBQAbhQUFpQUP78UFBaUFABuFBQWlBQAopQWlBQWlBQWlBQWlD+olBaUFBaUFBaUFBaUAADAAAAAAK8AlgACwAXACMAQkA/AAMHAQIAAwJgBgEAAAEEAAFgCAEEBQUEVAgBBAQFWAAFBAVMGRgNDAEAHxwYIxkiExAMFw0WBwQACwEKCQUUKwEyFhQGIyEiJjQ2MzUiJjQ2MyEyFhQGIxEyFhQGIyEiJjQ2MwKKFhweFP2oFB4cFhQeHBYCWBYcHhQWHB4U/agUHhwWAZAeKB4eKB5kHigeHige/tQeKB4eKB4AAAH//QAAAp8CwAATABVAEgkBAEUBAQAAZgEAABMBEgIFFCszIi8BJj4BFh8BAT4BFx4BBwEGI/kiFrQQCCw6EnYBKBA2GhgMDv6iFCQc7Bg4JAgYmgHaGAwOEDYa/dAgAAEAAAAAAdYCYgAdAB5AGx0WDgYEAAIBRwMBAgACbwEBAABmFBoUEwQFGCslFhQGIi8BBwYiJyY0PwEnJjQ3NjIfATc2MhYUDwEBxBIkMhKEhBIyEhAQiooQEBIyEoSEEjIkEorCEjIiEJiYEBASMhKcnhIyEhAQmJgQIjISngAAAgAA/7oDSAMCAAgAFAAoQCUUExIREA8ODQwLCgsBAAFHAgEAAQBvAAEBZgEABQQACAEIAwUUKwEyFhAGICYQNgE3JwcnBxcHFzcXNwGkrvb2/qT29gEEmlaamFiamliYmlYDAvb+pPb2AVz2/lyaVpiYVpqYVpiYVgAAAAIAAP/OAyAC7gAPABsAKEAlGxoZGBcWFRQTEhELAQABRwIBAAEAbwABAWYBAAkGAA8BDgMFFCsBMhYVERQGIyEiJjURNDYzATcnNycHJwcXBxc3ArwqOjoq/agoPDwoAcZWmppWmphYmppYmALuOir9qCg8PCgCWCo6/YJWmJpWmJhWmphWmAABAAAAAAJEAoAAEwA1QDIABQAFbwACAQJwBAYCAAEBAFQEBgIAAAFYAwEBAAFMAQAREA4MCwkHBgQCABMBEwcFFCsBMhQrARUUIj0BIyI0OwE1NDIdAQImHh7SZNIeHtJkAZBk0h4e0mTSHh7SAAAAAgAA/7oDSAMCAAgAFABEQEEFAQMEAgQDAm0GAQIHBAIHawgBAAAEAwAEXgAHAQEHUgAHBwFYAAEHAUwBABQTEhEQDw4NDAsKCQUEAAgBCAkFFCsBMhYQBiAmEDYTMzUjNSMVIxUzFTMBpK729v6k9vbiyMhmyspmAwL2/qT29gFc9v4qZsrKZsoAAAACAAD/zgMgAu4ADwAbAElARgQBAgMFAwIFbQkHAgUGAwUGawgBAAADAgADXgAGAQEGUgAGBgFYAAEGAUwQEAEAEBsQGxoZGBcWFRQTEhEJBgAPAQ4KBRQrATIWFREUBiMhIiY1ETQ2MwE1IzUjFSMVMxUzNQK8Kjo6Kv2oKDw8KAImyGTIyGQC7joq/agoPDwoAlgqOv4+ZMjIZMjIAAAAAQAAAAACRAGQAAcAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFAgAHAQYDBRQrATIUIyEiNDMCJh4e/fgeHgGQZGQAAAACAAD/ugNIAwIACAAMACZAIwQBAAIAbwACAwJvAAMBA28AAQFmAQAMCwoJBQQACAEIBQUUKwEyFhAGICYQNgEhFSEBpK729v6k9vYBqv4IAfgDAvb+pPb2AVz2/pBmAAACAAD/zgMgAu4ADwATACtAKAQBAAIAbwACAwJvBQEDAQNvAAEBZhAQAQAQExATEhEJBgAPAQ4GBRQrATIWFREUBiMhIiY1ETQ2MwE1IRUCvCo6Oir9qCg8PCgCJv4MAu46Kv2oKDw8KAJYKjr+PmRkAAAAAAIAAP+cAkQDIAAoADEAQUA+CwEAAgFHAAIBAAECAG0AAAQBAARrAAMAAQIDAWAGAQQFBQRUBgEEBAVYAAUEBUwqKS4tKTEqMSMTLjwHBRgrARYVFAcGDwEGBwYHFCsBIjU2Nz4BPwE2NzY1NCcmIyIHBhUjNjc2MzIDMhYOAS4BPgEB7lYqDEwuKAgGAhCAEAQYEEAYGBYMHBocQEQaHKYGbEZggoQsOgQ8WDoEPALkPnpAPBQ8HiIaEBwODGIaFjQQDhASLBooJiQsKjKiRir9SDxaNgI6XDYAAAAD//z/kAOaAywACAAWAD8AWEBVODYCAwUTAQIDAkcABgQFBAYFbQAFAwQFA2sAAwIEAwJrBwEAAAQGAARgCAECAQECVAgBAgIBWAABAgFMCgkBACcmIiAdGxEOCRYKFgUEAAgBCAkFFCsBNgASAAQAAgATMjY1NiYrASIGBxQWFxM2NTQmIyIHBgcVMzU0NzYyFxYVFAcGDwEGDwEGBwYHFTM1NDc2PwE2Aca+ARAG/vb+hP7uBgEMvB4mAiYeAhwmAiYcqBpqUkAoRARuEBBODBAQCAwWCgoVCwYOBGwEBhYcLgMqAv74/oT+7gYBCgF8ARL9HiYcHiYkHB4mAgFIIixOTBoqaAQEGhwYFBQYEhYMCA8HCBEJCBQ6CAQMEBQQEiIAAgAA/2oBzANSAAoAIAC1QAkeHRMSBAUDAUdLsB9QWEAoAAQBAwEEA20AAwUBAwVrAAUCAQUCawABAQBYBgEAAAxIBwECAg0CSRtLsCRQWEAnAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuAAEBAFgGAQAADAFJG0AtAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuBgEAAQEAVAYBAAABWAABAAFMWVlAFwwLAQAcGhcVEA8LIAwgBwUACgEKCAUUKwEyFhUUBiMiJj4BAyI/ATYiBgcnPgEzMgcDBjMyNxcOAQFgMDROODA0AkaQZC48DhpUHhpaxjROKkYQFixKHlS2A1I2KjJMNFxO/Biy/jgkFCxOYKL+9kA8KFZcAAAAAAP//P+QA5oDLAAIABMAKQBiQF8MAQMCIyIYFwQFBwJHAAcGBQYHBW0ABQQGBQRrCAEACQECAwACYAADAAYHAwZgCgEEAQEEVAoBBAQBWAABBAFMFRQKCQEAJiQgHhsZFCkVKRAOCRMKEwUEAAgBCAsFFCsBNgASAAQAAgAXIgYVBhYzMjY1NAMyNjcnBiMiPwE2IyIGBxc2MzIPAQYBxr4BEAb+9v6E/u4GAQzyKi4CIiAmLrQebDQSMBgOCioaMB52OBA0FgwMJBoDKgL++P6E/u4GAQoBfAESljAaHCAsIDr9rjQ0GCQmoGA6LhoiIphoAAABAAAAAANSAooAEAA5QDYOAQMADQECAwJHDwEARQQBAAADAgADXgACAQECUgACAgFYAAECAUwBAAwLCgkIBgAQARAFBRQrATIWFREUBiMhNSE1IRUnNxUC7ig8PCj9TgKK/gzS0gIcOir+3ig8jNJutLRuAAH//P/MA4gC8gAaACFAHgAFAAVvBAEAAgBvAAIBAm8DAQEBZhQjIREkIgYFGisBFgYrAREUDgErAREjESMiJjURIyImNwE2MhcDeBAKFlQCDhDMzMIcDlQWChABkBAsEAFQEBb+yg4ODAE2/soUFAE2FhABkhAQAAIAAP/OAyAC8gAcADwAPEA5AAYFBm8ABQQFbwAAAwIDAAJtAAQAAwAEA2AAAgEBAlQAAgIBWAABAgFMPDs2NSkoJCIbGhURBwUWKyU2MhcWDwEGIiY0PwE+ARcWFAcGJyYPAQYUFjI3ARYUDwEGIyInJjQ2MhcWPwE2NCcuAQ8BBiInJj8BNhYBJg4oECAgKjiacDiURpQ2EBAkIjJSlBo0ShoB7Dg4nkpMPjIOHCoOMkieHBwYQBwyECgOIiIyNpJ0Dg4iJCg4cJo4lEQSNBAoECAgMFKSGkwyGgJmOJo4nkgyDigeDjBInBxKGBoKGjIODiIkMjYGAAAAAAH//v90A7gDYAAxAB9AHAABAAABVAABAQBYAgEAAQBMAQAqKQAxATEDBRQrFyInLgE3ATYXHgEXFgcBDgEnJjY3ATYWBwEGFxY3NjcBNiYnJgcBBh4CNwE2FgcBBvRmREgEVgHwUF4sRgwaUP4mKGAgHgYsAUwYNBr+tCwYDAwYFgHaMiA8Njb+EkIEZIZKAfAYNBr+EFKMSEbAXgHwUBoMRixgUP4mKAogGGQqAU4aNBj+tCwaCAIEFgHaMnYQDjL+EkyGYgRAAe4YLhr+EFIAAAAAAgAA/7YCvAMIABsAIwA1QDIEAgYDAAUBBQABbQABAW4AAwUFA1QAAwMFWAAFAwVMAQAiIR4dGBcUEgsIABsBGwcFFCsBMhYVERQPAQYjISIvASY1ETQ2OwE1NDYyFh0BJRUzNTQmIgYCgBQoMDwqNv7eOCo8MB4UZGbEZv7UyDZcNgHcJhb+ejASEhAQEhIwAYYWJkZueHhuRlpaWjQ6OgAAAAABAAD/nAK8AyAAIwA7QDgABAMAAwQAbQIGAgABAwABawABAW4ABQMDBVQABQUDWAADBQNMAQAhHxwbGRgWFAwJACMBIwcFFCsBMhYVERQGDwEGIyEiLwEuATURNDYzITU0Ih0BIzU0NjMyHQECgBQoHBQ8NCz+3i40PBQcHhQBkMhkZmLIAcIoFP56FCYGFBAQFAYmFAGGFiaMbm4oFG545ngAAAMAAAAAA+gCdgAUAB0ALABDQEAiAQQFAUcGAQAAAwUAA2AABQAEAgUEYAcBAgEBAlQHAQICAVgAAQIBTBYVAQAqKCUkGhkVHRYdCwoAFAEUCAUUKwEyHgMUDgMiLgM0PgMTMjY0JiIGFBY3Fj4BFxQGIiY0NjMyDgEB9FyqcFYoKFZwqriqcFYoKFZwqlxcgoK4goJcCDoqBEJcQEAuDggQAnYySlA+HDxSSjIySlI8HD5QSjL+En6yfn6yftYIDAoOLD4+Wj4uMAAAAAL//v9aA9QDWgAcAC4AI0AgJx8XAwQBAAFHAAABAQBUAAAAAVgAAQABTCMhFRICBRQrARYGBxcWDwEGBwEGJwMmNjcBNjsBMh8BNicmNzYDNicHBiMiJyY/ASYHDgEXHgEDsCRYVBIQCjAMGP4wKhbSDAYSAdAaHJ4eEhyoNgocINIoBiAIBBIKDBwYMCwcDBQSQgM+arpAGBwanh4Q/rgeIgEwEioMAUgSGiiCnBwMCP4QIDAQBBIeCg4iIhJCHBoMAAABAAD/nAFoAyAACQAXQBQGBQQDAEQBAQAAZgEAAAkBCAIFFCsBMhYVEScHETQzATYWHLS0KAMgHhT8rrS0A1IyAAAAAAIAAP9qAiYDUgAMABYAUrcTEhEFBAUCREuwJFBYQBIEAQIBAnAAAQEAWAMBAAAMAUkbQBgEAQIBAnADAQABAQBUAwEAAAFYAAEAAUxZQBEODQEADRYOFQoIAAwBCwUFFCsBMhYVEScRNCYrATQzBzIWFREnBxE0MwH0FB6WHhRkKCgUHpaWKANSHhT8rrQCbBQeMpYeFPzgtLQDIDIAAAABAAD/tgOIAxIAFgAbQBgLAQABAUcOAQFFAAEAAW8AAABmGBwCBRYrATYWBw4CLgIGBxMjAzc+AR4DNgNqDhAIYIhUPjpEdlBaZLhcWnxIOERaqAJoBg4MipYeGjAgKEL+oALQIkIoIkRKMgoAAAAAAgAA/5wDIAMoABkAKwAeQBsDAQECAW8AAgACbwAAAGYbGiQiGisbKyYEBRUrAR4CFRQCIyIkNRE0PgI/ATY/ATYXFg4BBTIHBhURFBcWIyIuAT0BND4BAkYCcGh6LpD+4B4+LCguMjZVHwowJlD+UA4OMjQKDBo6QkI8AeAGDiIeSP5YVC4BVg4oMiAbHyJCaCYMTHp0Bg4yNv7CMjYKEEo+8j5MEgAAAgAA/5IDIAMgABwALwAeQBsAAAIAbwACAQJvAwEBAWYeHSclHS8eLyYEBRUrNy4CNTQSMzIEFREUDgIPAQYPAQYPAQYnJj4BJSI3NjURNCcmMzIeAR0BFA4C2gJuanwskAEgECIeGykOGyEyNlUfCjAmUAGwDA4wNAoMGjpCJDYq2gYOIh5IAapWLv6qChwgGhMdChIWIkJoJgxMenQGDjI2AT4yNgoQSj7yMEIeDAAC//j/tgPsAwgAHAAjAHe1HgECAQFHS7ALUFhAKQAHBgdvCQgCBgEGbwUBAQIBbwQBAgMDAmMAAwAAA1IAAwMAWQAAAwBNG0AoAAcGB28JCAIGAQZvBQEBAgFvBAECAwJvAAMAAANSAAMDAFkAAAMATVlAER0dHSMdIxETESITERY2CgUcKyUeAQ8BDgEjISImLwEmPwEzBzMyHwEhNzY7ASczJwUlMxEzEQPIEhIGHAQkFvzQFiQEHAoqnmKqsggEKAEsKAgEsqpiMP78/vymvsYKLBKaFBoaFJowGGyCCG5uCILW9PQBAP8AAAL/+P+2A+wDCAAGACMAaUuwC1BYQCgCAQAEAG8IAQQBBG8AAQUBbwcBBQYGBWMABgMDBlIABgYDWQADBgNNG0AnAgEABABvCAEEAQRvAAEFAW8HAQUGBW8ABgMDBlIABgYDWQADBgNNWUAMESITERY3ERERCQUdKwEFIxEjESMBHgEPAQ4BIyEiJi8BJj8BMwczMh8BITc2OwEnMwH0AQSkvqYC2BISBhwEJBb80BYkBBwKKp5iqrIIBCgBLCgIBLKqYgMI9P8AAQD+sgosEpoUGhoUmjAYbIIIbm4IggAAAQAAAAAD6AKkAB0AQUA+CQEFAAFHAAYABm8HAQAFAG8ABQIFbwMBAgEBAlIDAQICAVgEAQECAUwBABoYExEODAsKCAcGBAAdAR0IBRQrATIWFAYrATUzJwczFSMiJjQ2MzIXJjU0NjMyFhc2AvhkjIxkvmqwrmj4SmxqTA4GApxuWowYHAHuiMSIvubmvmiSaAIMGmyYaFIEAAAAAQAAAAADhAKyAA4AJkAjBQEAAQFHBgEBRQQBAEQAAQAAAVQAAQEAWAAAAQBMFBICBRYrJS4BIxUJARUyHgQXA4RW9ND+lgFqWpxqVjQkBgqYWtoBTgFCwDZWaGhWGgAAAgAAAAAD6AKyAAUAEgAtQCoRBAEDAQABRxIFAAMARRAMAwIEAUQAAAEBAFQAAAABWAABAAFMFxYCBRYrAQcXFQkBFzIeAh8BLgEjFQkBAWrU1P6WAWr6aJxKLgQEVqSK/pYBagIsvMSKAU4BQsBkkJAyMppY2gFOAUIAAAEAAAAAA4QCsgAMACdAJAsBAAEBRwoBAUUMAwIARAABAAABVAABAQBYAAABAEwXEAIFFislIgYHPgQzNQkBAhzS9FYEElJuynwBaP6Y/FqYFEKogGrA/r7+sgAAAgAAAAADFAKoABMAJwA/QDwJBAgDAAMAbwcBAwIDbwYBAgEBAlQGAQICAVgFAQECAUwVFAEAJCIeHRwbFCcVJxAOCgkIBwATARMKBRQrEzIXFgcGBwYjNTI3NicmIyImNDYhMhcWBwYHBiM1Mjc2JyYjIiY0NpKSJiZOUJAgInBGNhwQLjxWVgHgkiYmTlCQICJwRjYcEC48VlYCqJKMoqgkCEZsVjwkWHxYkoyiqCQIRmxWPCRYfFgAAAACAAAAAAPoApoADQAZAAi1GRENCQItKwEWFA8BFxYUBwYnCQE2BQkBBicmPwEnJjc2AXwQEPb2EBAeHv7AAUAeAUwBPv7CIB4gIPj4ICAeAnwOJAzg4gwkDh4eASABHh4e/uL+4B4eIB7i4B4gHgAAAgAA/9gD6ALkABUAJABGQEMjAQQCJBkCAQQDBAJHIgEBRQABAAIEAQJeAAUABAMFBGAGAQMAAANSBgEDAwBYAAADAEwAACEgFxYAFQAVFCU1BwUXKyU1NxUUBiMhIiY1ETQ2MyEOAQ8BIxEBIgYHND4FMzUFAQLuZB4U/RIUHhwWASAgNgwKggI4pphUAhAcPFCGUgFM/rQ8OFK8FB4eFAImFhwYMg4M/j4BXFKMCBxUSlxCLpz6/vwAAAACAAD/2AMMAvAACwAZABdAFAQBAEUZFQ0HBABEAAAAZhIRAQUUKwEeAR0BBwEHNwE3NgE3JicuASMnDwEWFxYXAs4gHvz+3u4yASL8Nv5aGAIyFi4MDhYSHBIYDAKoIEAQEPz+4DTwASD8DP04GCwyFhoCGFAQEhgYAAAAAf/g/2ICwANWADIAOEAOEgEAAQFHLSYIBgQFAERLsCFQWEALAAABAHAAAQEMAUkbQAkAAQABbwAAAGZZthkYFxYCBRQrFwYnJjc2NyY3HgI2LgE3PgE3DgEWFzI2NzYWFxYGBw4BBwYXFjcOAgcGFjcOAwc8BhQSAgQuZDAKLCwSEAYcFnQuGBIKEAyQIi6IDgwYHCzMDBAcNno4oGgCBGowHkIqbh6KFAwIGmR+mqIgXEQInq5GLGQULmA8AvACBEIgGG4cLCQGChgwHFBECAYYPBA4OA4IBAAAAAMAAP+2A9QDCAAVACkALQCQS7AJUFhAMgACAQECYwcBBQkICQUIbQMBAQoBAAQBAGELAQQACQUECV4ACAYGCFIACAgGVgAGCAZKG0AxAAIBAm8HAQUJCAkFCG0DAQEKAQAEAQBhCwEEAAkFBAleAAgGBghSAAgIBlYABggGSllAHxcWAQAtLCsqIyEgHx4cFikXKA4MCwoJBwAVARQMBRQrEyI3NjcyPgE7ATUhFTMyHgEzFgcGIxcyFh0BFAYrARchNyMiJj0BNDYzEyEDIUIaBAQIAl5cDCwBfC4MWl4CEgYEEAoUIiIUZCz9CCxiFCQkFJoCMEb+XAIOFgoEIh6Wlh4iCBIKOCYWrhYm+vomFq4WJv5EAUQAAAAAAgAAAAAD6AKKAAsAFwA/QDwJAQdFDgEBRAMBAgYEBgIEbQUBBAAGBABrAAcABgIHBl4AAAEBAFIAAAABWAABAAFMIRESERITIRAIBRwrNyEXISImNREjNxcjBTMHJzMRISchMhYV+gEQgP5AKjpmsK5kAopkrrBm/u6AAcIoPL6MPCgBLsbGysjIAQSMOioADgAAAAAD6AKKAA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwCsQKkcAQAaIA8fCx4HHQgDAgADXiQbDgoGBQIZEAwIBAQFAgReGBENCQQFFhQCEhMFEl4jFyIVIQUTAQETUiMXIhUhBRMTAVgAARMBTEBAODg0NDAwKCggIBgYEBABAEBDQENCQT8+PTw4Ozg7Ojk0NzQ3NjUwMzAzMjEvLi0sKCsoKyopJyYlJCAjICMiIR8eHRwYGxgbGhkXFhUUEBMQExIRCQYADwEOJQUUKwEyFhURFAYjISImNRE0NjMFFTM1FyMVMyUVMzUXIxUzJRUzNRcjFTMlFTM1FyMVMwc1IxUhNSEVITUjFSczNSM3NSMVA6IcKioc/KQcKiocAeBkMmRk/tRkMmRk/tRkMmRk/tRkMmRkMmQCiv4MAopkMmRklsgCiioc/jQeKCgeAcwcKmRkZJZk+mRklmT6ZGSWZPpkZJZklmRkZGRkZJZkMmRkAAEAAAAAAyACvAASAB9AHAkBAUQDAQABAG8CAQEBZgEADAoIBgASAREEBRQrATIWFREUBisBFScjIiY1ETQ2MwK8Kjo6KsjIyCg8PCgCvDoq/qIoPJaWPCgBXio6AAAAAAIAAP+cA+gDIAAUACQAREBBBAEABR4BAQACRwoBAUQHAQQDBG8AAwUDbwYBBQAFbwAAAQEAUgAAAAFYAgEBAAFMFhUgHx0bFSQWIyUiJhAIBRgrJSEyNzMVFAYrAQc1IyImNRE0NjsBJTIWFREUBisBFSchETQ2MwEiAV4CBAQ6KvqWMig8PCi+AmIqOjoqMpb+ojwo8AJcKDyWljwoASwqOvo6Kv7UKDyWlgGQKjoAA//4/5oDMgMeABkAKAAzABlAFjIBAQABRwAAAQBvAAEBZignGBYCBRQrAR4DFxYGBwYkJyY2JyY2Nz4BNzYWNzYWAz4CJy4BDgMXHgE2Nz4BNxcWBgcGJzYCeBAwKi4MFsCcpP72FhRADjgSaBoGGhgsIoSEXFiOOgQIUqbOji4GBFywGggaBAIOPjpgOE4BqiIkCCYkPsY6Oho+NnI2wNhUFjoKCCgCAoj9pCBqTAwWFhRMYkYSDBQMzgIKAgIoVhQkMkQAAAAD//r/tgPHAwgADAAQABQAPEA5AAEEAW8ABAUEbwcBBQACAwUCXgYBAwAAA1IGAQMDAFgAAAMATBERDQ0RFBEUExINEA0QExUyCAUXKwUWBiMhIicmNwE2MhcTNSMVNxEjEQO9ChQU/IQSCg0LAb4ILAgabm5uGBAiEBIQAw4SEv0kZGSuASz+1AAAAAP//f9+A4kDQABOAFIAVgBOQEsvAQQBCAcCAAMCRwABBAFvAAQFBG8GAQMCAAIDAG0AAABuBwEFAgIFUgcBBQUCVgACBQJKU1NPT1NWU1ZVVE9ST1JRUDk4EhEIBRQrJRYGDwEOAR8BFgYvASYGDwEOAS8BJg8BBiY/ATYmLwEuAT8BNjQvASY2PwE+AS8BNDYfARY2PwE2Fh8BHgE/ATYWDwEGFh8BHgEPAQYUFwU1IxU3ESMRA3UUCBhOGCACBAIgFlYWMgouDCIQMiI2ehYUCDYIGBhqGAoUVhQUVhQIGE4YIgIGHhZQGDIMLgwkDDIMLhaIFhAIPAoYGnIaCBRWEhL+1mRkZOoQIgYWBiwaUhgUCiwMEBZYFgIUTjAcRg4QGKQYKAIMBBwQTBAyEEwQIgYWBiwaUhoUCiYKEBZQFgIWVhYODlQOEBiqFiYCDAIcEEwQMhCoaGigAQT+/AAGAAD/zgPoAu4ADwATABcAGwAfADIAcEBtIAEEBQFHDAEAAAIJAAJeCxACCQAIBwkIXg8BBwAGBQcGXg4BBQoBBAMFBF4NAQMBAQNSDQEDAwFYAAEDAUwcHBgYFBQQEAEAKyoiIRwfHB8eHRgbGBsaGRQXFBcWFRATEBMSEQkGAA8BDhEFFCsBMhYVERQGIyEiJjURNDYzAREhESUVIzU3FSM1NxUjNQEXIzQzNjU0JjU0MhUUBhUUFhcDhCo6Oir84Cg8PCgDIPzgAV76+vr6+gJUBPoGVDa0OCoWAu46Kv2oKDw8KAJYKjr9RAJY/ajEWlqWWlqWWlr+wEZGFiwQUDBubjBQEBQgBgAAAgAA/5wD6AMgABsAKgA5QDYGAQAFAG8AAQIBcAADBAIDVAAFAAQCBQRgAAMDAlgAAgMCTAEAKCYlIxgWCwkHBAAbARoHBRQrATIVERQrASI1ESMiJyYvASY0PwE2NzY7ATU0MwUWFA8BBiMGIyEnITIWFwGqFBQuFLAQDAwOeAoKeA4MCBSwFAJiCgp2FgQODv7SKAFWEhQQAyAU/KQUFAG4BgIKUgYUBlIKAgS+FNAGFAZSDAbmCAgAAAACAAD/zgH0Au4ADgAXADBALQYBAUQEAQECAXADAQACAgBUAwEAAAJYAAIAAkwQDwEAFBMPFxAXAA4BDgUFFCsTMhYUAg8BLgQ1NDYTMjY0JiIGFBb6aJJ8QD4KIlZCNpJoOFBQcE5OAu6S0v7uVlQMLoSApkJokv58UHBOTnBQAAUAAP/KA+gC9AAbAB8AIwAnACsAIUAeKyopKCcmJSQjIiEgHx4dHBgNCRMARQAAAGYWAQUVKwEWFREUBwYiLwEHBi8BBwYmNRE0PwE2HwE3NhcBEQcRIREnESERBxEhEScRA9gQEAgQCtjYEhDa2BAiEOoSENjaEBD9/KgBkqgBkqoBkqgCWAoU/bgUCgYGiIgKCoiIChQUAkgUCpIKCoiICgr9rAH6aP4GAfpo/gYB+mj+BgH6aP4GAAAAAgAA/7ADXgMOABMAFgAItRYUEgoCLSsBHgEOAgcGAg8BAyUkNz4DFgcBFwNQCAYKChwKNrpAQjb+hAG6/hQ4FhwSVP7QHAMACBAcGDYWcP6kdnYBfDj2egoeCggGaP7o6gAAAAT//P98A8IDQAALABQAIwAsAEJAPyscAgQDAUcABAMCAwQCbQUBAAADBAADYAYBAgEBAlQGAQICAVgAAQIBTA0MAQAoJxEQDBQNFAcFAAsBCwcFFCsBNgAXFgAHBgAnJgATPgECJgQGEhYnPgQ/AQ4CBw4BBxMGFBYyNzY3BgHaxgEcBAL+7MjG/uICBAEW1JzcBOL+xtoE4EwEEEJYojw8BBBCLCqkPHgWKjoUNCSIAz4C/uzGyP7kBAIBFsbIARz8qALgATzaBOD+xNqcGlCwWEAKChpQsCwqQAoBCBQ4LBY0hiQAAAAC//z/xAKuAvgADwAcADVAMgUBAgMBAwIBbQABAW4EAQADAwBUBAEAAANYAAMAA0wREAEAFxYQHBEcCAcADwEPBgUUKwEyFgcDDgIiLgEnAyY+ARcyPgE0LgEiDgEUHgEBVJjCBkgCQIKQgEICSARQomZIgkJCgpCCQkKCAvhSLv2uDiwoKCwOAlIcOirYHiQYIh4eIhgkHgAAAAADAAD/gAL4A0AACwAfACsAe7UDAQACAUdLsBNQWEAtAAcFBAQHZQAAAgECAAFtAAEBbgADAAUHAwVgBgEEAgIEUgYBBAQCWQACBAJNG0AuAAcFBAUHBG0AAAIBAgABbQABAW4AAwAFBwMFYAYBBAICBFIGAQQEAlkAAgQCTVlACxESMhI4GhURCAUcKxMWIDcDDgIiLgEnAR4BHQEUBiAmPQE0Nj8BNjsBMhcHMy4BKwEiDwEzNzMyegGgejYCQoaUhEQCAbJegOD+yOCAXioWMFw0EgxUXBoSZhYKalRAUgHKRkb+Gg4sKiosDgMSEkoiCjpSUjoKIkoSMBoaoG4gEH5CAAIAAP+cArwDIAAPABMAMUAuBAEAAAIDAAJeBQEDAQEDUgUBAwMBWAABAwFMEBABABATEBMSEQkGAA8BDgYFFCsBMhYVERQGIyEiJjURNDYzAREhEQJYKjo6Kv4MKDw8KAH0/gwDIDoq/UQoPDwoArwqOvzgArz9RAAAAAAD//j/aAPwA1YAFgAaACIACrcdGxoYEwUDLSsBFgcDDgEnJS4BPwEHBicDJjclNhYfASUTJQMBEyUTFg8CA8omCJYEHBD+ahAQBBi0KAqgCiYBxhAcBEL9/JABiJABNoT+1kwKJsQaAeAKJP3UEA4EbgQcDlwwCiQCWiQMegQOEPRa/eJqAhz8sgHsUv7mIgw0ZgAAAgAAAAAD6AK8AA8AEwAiQB8AAAACAwACXgADAQEDUgADAwFYAAEDAUwREzUyBAUYKxE0NjMhMhYVERQGIyEiJjUBIREhPCgDICo6Oir84Cg8A4T84AMgAlgqOjoq/gwoPDwoAfT+DAAFAAD/nAK8AyAAAwATABcAGwAfAGNAYAsBAgAEBwIEXg0BBwAGAAcGXgAACgEBCQABXg4BCQAIBQkIXgwBBQMDBVIMAQUFA1gAAwUDTBwcGBgUFAUEAAAcHxwfHh0YGxgbGhkUFxQXFhUNCgQTBRIAAwADEQ8FFSsTNSEVEzIWFREUBiMhIiY1ETQ2MwERIREBFSE1ARUhNdQBGGwqOjoq/gwoPDwoAfT+DAGG/ugBGP7oATRaWgHsOir9RCg8PCgCvCo6/OACvP1EAlBYWP54WFgAAAQAAP+cArwDIAAPABMAFwAbAFNAUAgBAAkBAwIAA14AAgAGBwIGXgsBBwAEBQcEXgoBBQEBBVIKAQUFAVgAAQUBTBgYFBQQEAEAGBsYGxoZFBcUFxYVEBMQExIRCQYADwEODAUUKwEyFhURFAYjISImNRE0NjMXFSE1ETUhFSU1IRUCWCo6Oir+DCg8PCgoAaT+XAGk/l4DIDoq/UQoPDwoArwqOtBYWP4gWFjEWloACgAA/5wDIAMgAA8AEwAXABsAHwAjACcAKwAvADMAp0CkFAEAAAIIAAJeGQsCCBgBCQcICV4XAQcKAQYNBwZeDhoCDRsPAgwFDQxeEhYCBR0TAgQRBQReHAERABADERBeFQEDAQEDUhUBAwMBWAABAwFMMDAsLCgoJCQgIBwcGBgUFBAQAQAwMzAzMjEsLywvLi0oKygrKikkJyQnJiUgIyAjIiEcHxwfHh0YGxgbGhkUFxQXFhUQExATEhEJBgAPAQ4eBRQrATIWFREUBiMhIiY1ETQ2MwERIRElFSM1JRUjPQIzFScVIzUXFSM1FzUzHQIhNSU1MxUCvCo6Oir9qCg8PCgCWP2oAV76AZDIyPqWZGSW+v5wASxkAyA6Kv1EKDw8KAK8Kjr84AK8/UT6MjLIMjIyZGRkyMj6MjIyMjKWMjIyMjIAAAcAAP+cA4QDKAADAAcAIAAkACgALAAwABNAEC8tKykoJiMhHBEHBQMBBy0rJRUnNTcVJzUBFhURFAcFBiIGIiYjJyUmNRE0NzYXBSU2ARElESERBREBFQc1ExUHNQFUyMjIAuIWIP5yCAQGBAYCCv5yIBYWGAF+AX4Y/jj+wALk/sABBMjIyO5EUESARFBEAQoMHv2AIgygAgICAqAMIgKAHgwQCpqaCvzcAjCA/dACMID90AE6RFBEASBEUEQAAAEAAP98ArwDUAAlABZAExABAEUAAAEAbwABAWYZFyUCBRUrARYVERQGIyI1ETQnJSYHBgcFFhURFAcGIyInJiQnJjUDNDc+ARcCqhIYEC4M/mwgJCwMAZgSEgYKDgYI/nwSGgYOHJQqAlIIFP3ODhYkAgoMBtgKFBQY5AgU/doWBgQEBvIKEhACDBwYLj4WAAL//v/OA+oC7gAOAB4AZEuwDVBYQCMAAwQEA2MFAQACAQIAAW0AAQFuAAQCAgRUAAQEAlcAAgQCSxtAIgADBANvBQEAAgECAAFtAAEBbgAEAgIEVAAEBAJXAAIEAktZQBEBAB0aFxQREAkGAA4BDQYFFCsBMhYHAw4BIyEiJwMmNjMlFyE3PgE7ATIfARYzITIWA7ogEAIqAhQg/No0BCoCECADagr8sg4EIBSkNCIeIDYBVBQkAfQYGP48GBoyAcQYGG4ohBQcIh4kGAAAAAAE//z/zgPYAu4ACgATACoAOACdQAwqJwIAATgrAgkHAkdLsBBQWEA0AAcGCQYHZQAJBAYJBGsABARuCgEDAAIBAwJeAAEAAAUBAF4ABQYGBVIABQUGVggBBgUGShtANQAHBgkGBwltAAkEBgkEawAEBG4KAQMAAgEDAl4AAQAABQEAXgAFBgYFUgAFBQZWCAEGBQZKWUAYCws2MzEwLy4tLCkoHhwLEwsTGBQRCwUXKwEVITU0NjchMh4BJzIeARUhNDY3BRYXFgcDDgEHISInJgInJj4BPwEVITUDNSMVITUjFRQzITI2NQNI/UgaDAJgBhAclAYQHP4OGgwCkiIEBgZMBCAM/To0CAZCBgoOBhIoA0TaRv78RDABLBYaAlgyMhYaAgIagAIaFhYaAsggDhIk/j4WGgIyGgGKHhYsCBAoUFD+1GRQUGQyGAwAAAADAAD/zgOEAu4ACQATABcAQEA9AAQFAwUEA20AAwNuBgEAAAECAAFeAAIFBQJSAAICBVYHAQUCBUoUFAEAFBcUFxYVEg8MCwUEAAkBCAgFFCsBMhYdASE1NDYzExEhERQGIyEiJhMVITUDZgwS/HwSDBQDICoc/WwcKvoBLALuEgx4eAwS/SYCEv3uHigoAcxkZAAAAwAA/+IC+ALaAAcADwAYADhANQAAAAIDAAJgAAMABQYDBWAIAQYBAQZUCAEGBgFWBwQCAQYBShEQFRQQGBEYEhIREhIQCQUaKxEgABEjEAAhFTIAFSM0JiMXMhYUBiImNDYBOgG+dv6I/vbaATJ27qhyLkREXEREAtr+Qv7GAQoBdnb+ztim7rJCXkJCXkIAAf///7QDOQLuACUAD0AMGwEARAAAAGYpAQUVKwE2LwEuATY3PgIyHwEWHwEWAgAELwEmLwEmPwE+ATc+AR4BFxYBzaIsCB4WDioUIiQYERgHExUwbP7U/t4wFxUEEg4BAgEcGCo4NBIeLAEioiwIHiRINBgeAg0SBRQWMP7c/tZuMBYUBRgTDB4SIhQiGhYOHiwAAAIAAP+6A0gDAgAsADUATEBJKRoCAwErGBQCBAIDEgQCAAIDRyUjIB4EAUUPDQoIBABEAAEAAwIBA2AEAQIAAAJUBAECAgBYAAACAEwuLTIxLTUuNSIhGwUFFSsBFBcGByYHBhcGByYiByYnNiYHJic2NTQnNjcWNzYnNjcWMjcWFwYXFjcWFwYBMjY0JiIGFBYC+FAMFkZCNhQoLC6sLiwoFGxSDhRSUhQOSj42FCoqLqwuKioUNkJGFgxQ/qxMamqYamoBXkgyKCoSPjpOFBBSUhAUUG4UGjg0UEg0OBoSPjhQFgxQUAwWTjo+EiooMv8AaphsbJhqAAAAAAT/+v+aA/MDGgArADcAVgBeAB1AGllYQD8EAEQCAQEAAW8AAABmHRwbGhEQAwUUKxMOARQjBwYHBi8BJjc+ATc2Mj4BNzI+ATc2NzIXMgcGBwYXFhcWDwEGJy4BFwEWDwEGJwEmPwE2JRYHBicmDwEnNz4BJjc2NzYWBwYHBhYXFjc+ATc2FgE3FwcGLwEmmwgGAhEPBBAMRgsNAiAEBioeCAYCDiYWhjR6GgwUeCBQLCIECApMDgQqOvgBmhIUMBYQ/mIICEgMAjIQIDJoOCxSREQYDgIGDIAMDAQMIg4EJjomBigCBBL8qP5M9hQSLhYB+ggcFg8NBA4STAwMAhgEBhwwBg4eEFoGAgg0GDg6LgIIBkYIBDAYMv4kFhAqDhIB2AgMPgjAaD5YGgwsTk5GGDpIFjg4BhIGDEQKMhwoPgw6BAoC/UT4VvIUEC4SAAEAAP+cAyADIAAnAERAQSEBBQQUCwICAyYHAgEAA0cABAUEbwAFAwVvAAMCA28AAgACbwYBAAEAbwABAWYBACAeGxoTEQ4MBQQAJwEnBwUUKyUyFhQGIiY1NDY1JQYjIiY0NjMyFyU0JjU0NjIWFAYjIicFFhQHBTYCij5YWHxYAv78KjI+WFg+NiYBBAJYfFhYPjQm/voCAgEGJMhWflhYPgYQBJwgWHxYHpwEEAQ+WFZ+WCCcCCIInB4AAwAA/84D6ALuAAgAHQAyAGJAXwAFBgAGBQBtAAADBgADawABCAoIAQptAAoLCAoLawAEAAYFBAZgAAMAAgcDAmAMAQcACAEHCF4ACwkJC1QACwsJWAAJCwlMHx4vLSsqJSMhIB4yHzIiFSIRIxMSDQUbKwE0NjIWFAYiJicGKwE1Mz4BMzIXFhQHBiInJiMiBgUzFSMOASMiJyY0NzYyFxYzMjY3NgFUXoReXoRecg40oHYo0oSkeBAQEjISTnhkmAJQoHYo0IakdhISEDISUnRkmBYMAV5EXFyGXl5+PHh8nHQSMhIQEFJ8nHh8nHYSMhASElJ+XjwAAAAAAwAA/5wDhAMgAAgAEQAqAD9APB0BBAFGAAgGBAYIBG0ABwAGCAcGXgAEAAUABAVgAgEAAQEAVAIBAAABWAMBAQABTBIyEzIkExQTEgkFHSszNDYyFhQGIiYlNDYyFhQGIiYBBhYzIRUUIyEiPQEDIzU0OwEyHQEhERQHljxSOjpSPAH0PFI6OlI8/r4kBCoCMhT9chRsYhScFALAEig8PFI6OiooPDxSOjoBFgoaTBQUTAH0UBQUVv7uFgQAAAAAA//8/7oDXwMCABUAIQAlAEVAQgAEAwIDBAJtCAECAAMCAGsAAABuAAEABwYBB14ABgMDBlIABgYDVgUBAwYDShcWJSQjIiAfHh0cGxYhFyE5NAkFFisBFgcDBiMhIicCJyY3Nj8BNjMhMhcWATI+AjcjBiInIxIDISchA0McBGIIHv22HAxeAgUbBjA4EiYB4CYSTv6KOFQqEgRcJpQmXC7CAsBu/hwCnBoi/XgeHgJsHCIaBiUrEBA6/jBEbkQgvLz+6gFwdAAEAAD/nAOEAyAAFwAbAB8AIwBgQF0EAgwDAAkICQAIbQ8LDgMJCgEIAwkIXgUBAwAGBwMGXg0BBwEBB1INAQcHAVgAAQcBTCAgHBwYGAEAICMgIyIhHB8cHx4dGBsYGxoZFhUUExIREA4JBgAXARcQBRQrATIWFREUBiMhIiY1ETQ2OwEVMzUhFTM1ExEhERMVIzUhFSM1AyAqOjoq/UQoPDwoLqABIqAs/USgRgIIRgK8Oir9qCg8PCgCWCo6ZGRkZP1EAZD+cAMgqqqqqgAAAgAA/5wDhAMgABcAHgDOQA4dAQcFHgEGBxgBAgYDR0uwCVBYQC8ABQQHBAVlAAIGAwMCZQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTRtLsA1QWEAwAAUEBwQFB20AAgYDAwJlCAEAAAQFAAReAAcABgIHBl4AAwEBA1IAAwMBWQABAwFNG0AxAAUEBwQFB20AAgYDBgIDbQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTVlZQBcBABwbGhkTEhEQDw4NDAkGABcBFgkFFCsBMhYVERQGIyEiJj0BMxUhESEVIzU0NjMTNSE1ITUXAyAqOjoq/j4oOmIBwv4+YjooZP4+AcLIAyA6Kv1EKDw8KGRkAryWlio6/WJ4lnjCAAAAAAIAAP+cA4QDIAAXAB4AyEAKHgEHAxkBAAYCR0uwCVBYQDAAAwQHBANlAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bS7ANUFhAMQADBAcEAwdtAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bQDIAAwQHBAMHbQAABgUGAAVtAAIABAMCBF4ABwAGAAcGXggBBQEBBVIIAQUFAVkAAQUBTVlZQBIAAB0cGxoAFwAXERM1MxEJBRkrITUzFRQGIyEiJjURNDYzITIWHQEjNSERAQc1ITUhNQH2Yjoq/nAoPDwoAZAqOmL+bgMgxv4+AcJkZCg8PCgCvCo6OiqWlv1EAUbEeJZ4AAAAAwAA/2oCgANSACcAMAA4AMW2FQYCAQUBR0uwH1BYQC0ACAkACQgAbQAFBgEGBQFtBwQKAwALAQYFAAZgAAkJDEgDAQEBAlgAAgINAkkbS7AkUFhAKgAICQAJCABtAAUGAQYFAW0HBAoDAAsBBgUABmADAQEAAgECXAAJCQwJSRtAMAAJCAlvAAgACG8ABQYBBgUBbQcECgMACwEGBQAGYAMBAQICAVQDAQEBAlgAAgECTFlZQB8pKAEANzYzMi0sKDApMCIhHRoUEg8MCQcAJwEmDAUUKwEyHQEUBgcVMzIdARQjISI9ATQ7ATUuAT0BNDsBMh0BFBYgNj0BNDMFIiY9ASEVFAYTFSE1NDYyFgJsFIqEghQU/pgUFIKEihQeFHYBCHYU/vJQRgEsRkb+1EagRgHoFIpckAyEFDwUFDwUhAyQXIoUFIpCcnJCihTuMh6enh4yAgjU1B4yMgAAAAMAAP+mA3QDKgALAB0ALAAUQBEmJR8WFQ0GAEUAAABmFQEFFSsBFhQHAQYiJjQ3ATYDNx4BBw4DJwEeAjc2LgElASYSNzYWFwcuAQcGHgEDZBAQ/PISIiIQAw4itDJKNiIYZqCiVAEWLFguCgYILP7M/vIoiEAijlg0Ol4KBAQiAwoQKBD88g4cLA4DDiD+XjJcoCQYQkwOHgEUICwGBAowWGr+8oQBLkAgKkAyJh4KCChMAAX/+P+EA5IDQgANAB0AKQA3AEYAH0AcAAEAAW8DAQACAG8AAgJmHx4/PTc1HikfKQQFFCsTNh4CBw4CLgI+AQE2LgEnLgIHBh4BFx4CEyImND8BNhcWDwEGJy4BPwE2Fx4BDwEGIyIFFgYPAQYjIicmNj8BNhawKtbcXiocgLjMlBROTgHsCBZMOjh8TgoIFkw4OnxOEBIgEF4kJCAgYBDIEgoKNhoqEgoKNg4cDgGqCgwSYBAIHBAKDBJgEigCTCpe3NYqHE5OFJTMuID+PApOfDg6TBYICk58OjhMFgGSHioOYCAgJCReEHwKKBJgLBgKKBJgGpASKAo2CBoSKAo2CgoAAf/8AAADgAJiAAwACrcAAABmMgEFFSslFAYjISImNjcBNhYVA4AwIPz0FhIMEgMiHCi0Ii4KFAoBxBIWIgAAAAMAAP+SA5gDKgAIABEAFwBJQEYWFRQTBAIEAUcHAQQDAgMEAm0FAQAAAwQAA2AGAQIBAQJUBgECAgFYAAECAUwSEgoJAQASFxIXDg0JEQoRBQQACAEICAUUKwEyABAAIAAQABMyNhAmIAYQFhMVFwcnEQHMvgEO/vL+hP7yAQ6+ltLS/tbU1LiWMqoDKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCbPSWMqoBEgADAAD/agIwA1IAGwAoAGIArEAQNTICAgM2AQQCWE0CAAYDR0uwH1BYQCcABQQGBAUGbQAGAAQGAGsAAgAEBQIEYAADAwFYAAEBDEgAAAANAEkbS7AkUFhAJgAFBAYEBQZtAAYABAYAawAAAG4AAgAEBQIEYAADAwFYAAEBDANJG0ArAAUEBgQFBm0ABgAEBgBrAAAAbgABAAMCAQNgAAIEBAJUAAICBFgABAIETFlZQAtTUhobJCcdGgcFGisBFA4BFB4BHQEUBiImPQE0PgE0LgE9ATQ2MhYVBQcGFxYzMjc2JyYjIhM0PgI/ATY1NwYiJxcUHwMWJhYjFA4CDwIGJgY1Bh0BPgI1NDIVFB4BFzU0LwImLwEuAQIwYGJiYKzYrGBiYmCu1K7+HhIECFx8hFgOHmBqeJAIHAwZHVwCZPRkBFotExERDB4MAgoGCAwPDwIiWgh0RDRCegZcKxINBQwHBAJuLGhePFxmLnYiTk4idi5mXDxeaCx2IE5OIAYOCAY0MgoUNv5KEh4kDhgcXB4yNjYyIForExUVAjAKEhIOCg8QEAIiAVogQgQmMCIeHiIwJgRCHlwpEw4IFAwWAAAAAAP/+/9oAr8DUgAGABcAMgCHQAwSDQIEBQMAAgEAAkdLsCFQWEAdAAQAAgAEAl4ABQUDWAADAwxIAAAAAVgAAQENAUkbS7AkUFhAGgAEAAIABAJeAAAAAQABXAAFBQNYAAMDDAVJG0AgAAMABQQDBWAABAACAAQCXgAAAQEAUgAAAAFYAAEAAUxZWUALMjEmJRcRIhEGBRgrFzUhFQYnBjchNC4CNz4BIBYXFg4DAQYWBhYGHwEWHwIWFzM2PwE2PwE+AicmINEBGkZIRs7+8khUQAYIrAFSqgoEKEBCMP6GBAgEDgIJCwILDh9YGFIYWBkVBBENBgYCEP46bmhoKgICzkiIWoZIeKyseDxqVlRsAbQEIAgeBg8TBA8TLHpaXnYjHQcdFhYiEsQAAAoAAAAAArwCvAAIABEAGgAjACwANQA9AEYATgBXAG9AbAALEQEKAAsKYAwBAAADBAADYA8GDgMEBwEFAgQFYA0BAgABCAIBYBABCAkJCFQQAQgICVgACQgJTFBPLi0lJBMSCgkBAFRTT1dQVzIxLTUuNSkoJCwlLBcWEhoTGg4NCREKEQUEAAgBCBIFFCsBMhYUBiImNDYTMjY0JiIGFBYlMhYVFCI1NDYlFgcOASY2NzYXMhYVFCI1NDYBMhYUBiImNDYnNhYHDgEnJhM2Fx4BBwYnJgEmNhceAQcGAyImNDYyFhQGAV5EXFyGXl5CLDo6Vjw8/v4UHmQeAjYcJA4mFgQOJFIUHmIc/ugQGBggGBjeJDgkDiYKHhocJA4ECh4iJAHMIjgkDgQMHtoQGBggGBgB/l6GXFyGXv74PFY8PFY8kBgQKCgQGMwcJA4EGCYOIugYECgoEBj+3h4oHh4oHj4kOCQOBAocAdIcJA4mChwiJP44JDgkDiYKHAIOHigeHigeAAAACgAA/2oD6ANSAAsAFAAdACkANgBDAE0AWgBnAHAA40uwH1BYQDQNAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYA8BCAgJWAAJCQxIEAEKCgtYAAsLDQtJG0uwJFBYQDENAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYBABCgALCgtcDwEICAlYAAkJDAhJG0A4AAkPAQgCCQhgDQECAAUAAgVgBwwCAAYBAQQAAWAOAQQAAwoEA2AQAQoLCwpUEAEKCgtYAAsKC0xZWUAvODcrKhYVDQwBAD49N0M4QzEwKjYrNiglIh8aGRUdFh0REAwUDRQHBAALAQoRBRQrATIWFRQrASI1NDYzJTIWFAYiJjQ2EzI2NCYiBhQWJRQrASI1NDY7ATIWASImPQE0NjIWHQEUBgMyFh0BFAYiJj0BNDYBBwYnJjc2NzYWAT4BFgYPAQ4BJyY3NhMXFgcGJicmJy4BNhYBJjYfARYGJyYDthQeMjAyHhT+bnKiouSgoHJSdnakdnb+9DIyMh4UMhQeAV4QGBggGBgQEBgYIBgYAYAiIh4cJAQeJDj9IA4mFgQOJA4mCh4kBjIkJB4KJg4eBg4EFiYCXCQ4JCIkOCQeAYYYECgoEBjqoOagoOag/iZ0pnZ2pnTIKCgQGBgBTh4UMhQeHhQyFB79RB4UMhQeHhQyFB4ClCIiGhwkBh4iOP2QEAQYJg4kDgQMHCQEAqQkJBwKBA4eBA4mGAT9NCQ4JCIkOCIeAAAKAAD/agPoA1IACwAUABoAJgAzAEAASgBXAGQAbQDjS7AfUFhANA0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgDwEICAlYAAkJDEgQAQoKC1gACwsNC0kbS7AkUFhAMQ0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgEAEKAAsKC1wPAQgICVgACQkMCEkbQDgACQ8BCAIJCGANAQIABAACBGAHDAIABgEBBQABYA4BBQADCgUDYBABCgsLClQQAQoKC1gACwoLTFlZQC81NCgnFRUNDAEAOzo0QDVALi0nMygzJSIfHBUaFRoXFhEQDBQNFAcEAAsBChEFFCsBMhYVFCsBIjU0NjMlMhYUBiImNDYTESIGFBYlFCsBIjU0NjsBMhYBIiY9ATQ2MhYdARQGAzIWHQEUBiImPQE0NgEHBicmNzY3NhYBPgEWBg8BDgEnJjc2ExcWBwYmJyYnLgE2FgEmNh8BFgYnJgO2FB4yMDIeFP5ucqKi5KCgeFZ4eP7yMjIyHhQyFB4BXhAYGCAYGBAQGBggGBgBgCIiHhwkBB4kOP0gDiYWBA4kDiYKHiQGMiQkHgomDh4GDgQWJgJcJDgkIiQ4JB4BhhgQKCgQGOqg5qCg5qD+JgGQdqZ0yCgoEBgYAU4eFDIUHh4UMhQe/UQeFDIUHh4UMhQeApQiIhocJAYeIjj9kBAEGCYOJA4EDBwkBAKkJCQcCgQOHgQOJhgE/TQkOCQiJDgiHgAFAAD/fgPAAz4ACAAJABEAEgAaADpANxkYDQwEAwIBRwQBAAACAwACYAUBAwEBA1QFAQMDAVgAAQMBTBQTAQATGhQaEA4FBAAIAQgGBRQrATIAEAAgABAABQEUFwEmIyIGEwUyNjU0JwEWAeDIARj+6P5y/uYBGgHI/ZJSAgJkhJjUagECmNZS/f5iAz7+6P5y/uYBGgGOARjc/vyEYgICUtb+ZmrWloJm/f5SAAAAAAIAAP/UAxgC6gAGAA0AH0AcDQwJCAYFBAMCCQEAAUcAAAEAbwABAWYZEAIFFisBIREnByc3ARcHFyERFwHcATxkkmSY/qBkmHr+xGQC6v7EfJhkkv6mZJJkATx6AAAAAAIAAP+cA4QDIAAGAA0AH0AcDQwLCAQBRQYFBAMEAEQAAQABbwAAAGYXEQIFFis3JyERJwcnAQcXIREXN5xqAShkkmQDhJpo/tpkkJJk/thqnGQCvJBkASZomgAAAwAA/84DIALuAA8AEwAcAEtASAkBBgIDAgYDbQcBAAACBgACXggBAwABBAMBYAAEBQUEUgAEBAVYAAUEBUwUFBAQAQAUHBQcGRcWFRATEBMSEQkGAA8BDgoFFCsBMhYVERQGIyEiJjURNDYzAREhEScRIRUhIiY1EQK8Kjo6Kv5wKDw6KgGQ/nDIASz+1Cg8Au46Kv5wKDw8KAGSKDr+DAGQ/nBk/tRkPCgBLAAAAAAFAAD/nAPoAyAAFwAgACkALQA0AHhAdQAKBwsHCmUSAQsGBgtjDgEMAwIDDAJtAA0BDXAPAQAJAQcKAAdgEQgQAwYAAwwGA18EAQIBAQJSBAECAgFYBQEBAgFMKioiIRkYAQA0MzIxMC8qLSotLCsmJSEpIikdHBggGSARDw4NDAsKCQgGABcBFhMFFCsBMhYVERQGKwE1MxEhETMVIyImNRE0NjMXMjU0JiIGFBYzMjU0JiIGFBYlNSEVHwEjESMRIwOEKjo6KsbI/N7IyCg8PCgeJhYgFhZ0JhYgFhYCsP2mxvKWuJYDIDwo/agqOmIBzv4yYjoqAlgoPKgmEBQWHhYmEBQWHhYGPj7G8P7UASwAAAAFAAD/zgPoAu4ADwAZACMAJwArAF5AWwAIAgkCCGUNAQkDAwljCgEABQsCAggAAmAEAQMABgcDBl8MAQcBAQdSDAEHBwFYAAEHAUwoKCQkERABACgrKCsqKSQnJCcmJSIhHhwWFBAZERkJBgAPAQ4OBRQrATIWFREUBiMhIiY1ETQ2MxciBhQWMzI1NCYHFBYzMjU0JiIGAREhEQE1IRUDhCo6Oir84Cg8PCiCEBYWECYWmhYQJhYgFgMq/N4DIv2mAu48KP2oKjo6KgJYKDxeFh4WJhAUJBAWJhAUFv24Acz+NAIcPDwAAgAA/2oBzANSAAIABQARQA4AAAEAbwABAWYSEQIFFisbASETAyHm5v405uYBzANS/pT9hAFuAAADAAD/kgOYAyoACAARABgAUkBPFQECBAFHCQEGAwQDBgRtBQEEAgMEAmsHAQAAAwYAA2AIAQIBAQJUCAECAgFYAAECAUwSEgoJAQASGBIYFxYUEw4NCREKEQUEAAgBCAoFFCsBMgAQACAAEAATMjYQJiAGEBYTFTMHJzM1Acy+AQ7+8v6E/vIBDr6U1NT+2NTU7nDKynADKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCKs6+vs4AAAAAAwAA/5IDmAMqAAgAEQAYADpANxYBBQMVAQQFFAECBANHAAEAAwUBA2AABQAEAgUEXgACAAACVAACAgBYAAACAEwUEhMUExIGBRorARQAIAAQACAABRQWIDYQJiAGBSMVJzcVMwOY/vL+hP7yAQ4BfAEO/MzUASjU1P7Y1AIozL6+zAFevv7yAQ4BfgEM/vTAlNTUASrS0vBwysxyAAAAAAMAAP+SA5gDKgAIABEAGAA6QDcUAQQCFQEFBBYBAwUDRwAAAAIEAAJgAAQABQMEBV4AAwEBA1QAAwMBWAABAwFMFBITFBMSBgUaKxE0ACAAEAAgACU0JiAGEBYgNiUzNRcHNSMBDgF8AQ7+8v6E/vIDNNL+1tTUASrS/djMvr7MAV6+AQ7+8v6E/vIBDr6W0tL+1tTU7nLMynAAAAMAAP+SA5gDKgAIABEAGABRQE4VAQQCAUcFAQQCBgIEBm0JAQYDAgYDawABCAECBAECYAADAAADVAADAwBYBwEAAwBMEhIKCQEAEhgSGBcWFBMODQkRChEFBAAIAQgKBRQrBSIAEAAgABAAAyIGEBYgNhAmAzUjNxcjFQHMvv7yAQ4BfAEO/vK+lNTUASrS0vBwyspwbgEOAX4BDP70/oL+8gM00v7W1NQBKtL92MzAwMwAAAEAAAAAAkQCHgAQAA9ADAsBAEUAAABmEgEFFSsBBwYiLwEmNDc2HwE3NhcWFAI06hIsEuoQECYoxMQoJhABpuASEuAQMhAmJry8JiYQMgAAAQAAAAABaAKCABEAF0AUBgEBAAFHAAABAG8AAQFmGBECBRYrEzYyFxYPARcWBwYiLwEmNDc28g4yECYmuromJhAwEOIQEM4CchAQJCzEwiwkEBDsEC4Q1gAAAAAB/+4AAAFUAoIAEAAXQBQLAQABAUcAAQABbwAAAGYYFgIFFisTFxYUDwEGIicmPwEnJjc2MmLiEBDiEDAQJCS6uiQkEDICcuwQLhDsEBAkLMLELCQQAAAAAQAAAAACRAIIABAAD0AMBgEARAAAAGYeAQUVKwEWFAcGLwEHBicmND8BNjIXAjQQECYoxMQoJhAQ6hAwEAEYEDIQJia8vCYmEDIQ4BAQAAAB//MAAAHfAfAADQAGswYBAS0rATYXFg8BBi8BJjc2HwEBlRYaGhrEFhrEGhoYGqoB1hoaFhrAFhbAGhYYGJwAAf/0AAABFgJUAA0ABrMJAwEtKzcWBwYvASY/ATYXFg8B/BoaGhbAGBjAFhoaGpy0GhYaGsIYGsIaGhYarAAAAAH/8wAAARUCVAANAAazCwUBLSs/AScmNzYfARYPAQYnJg2enhoaGhbAGBjAFhoatKqsGhYaGsIaGMIaGhYAAAAB//QAAAHcAfAACwAGswUBAS0rNwYmPwE2HwEWBi8BPhowGMQaFsQYMBqq5hYuGr4aGr4aLhaeAAH/8wAAA28CVAANAAazCAMBLSsTCQE2FxYHAQYnASY3Nj8BcgF0FhoaGv50Fhr+dBoaGAI6/pwBZBoaFhr+eBYWAYgaFhgAAAH/9P+iAd4DHAANAAazCQMBLSsFFgcGJwEmNwE2FxYHAQHEGhoaFv54GBgBiBYaGhr+mhQaFhoaAYoYGgGKGhoWGv6MAAAAAAH/8/+iAd0DHAANAAazCwUBLSsXCQEmNzYXARYHAQYnJg0BZv6aGhoaFgGIGBj+eBYaGhQBcgF0GhYaGv52Ghj+dhoaFgAAAAH/9AAAA2wCVAAMAAazBwMBLSslCQEGJjcBNhcBFgcGAyT+jP6OGjAYAYwaFgGMGBgaggFm/poWLhoBhhoa/noaGBYAAQAA//IClALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERApT+tv62wAEUAW7+hAF8AV7+ogABAAAAAALaAqgABgAfQBwBAQEAAUcCAQBFAAEBRAAAAQBvAAEBZhETAgUWKyUJARUhESEBev6GAXoBYP6gFAFKAUq+/uoAAAABAAAAAALaAqgABgAfQBwBAQABAUcAAQFFAgEARAABAAFvAAAAZhETAgUWKwkCNSERIQFeAXz+hP6iAV4CqP62/rbAARYAAAABAAD/8gKUAswABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEhESMBApTA/uzAAUoBUP6iAV4BfAABAAAAAAHMAiYAAgAVQBIBAQBEAQEAAGYAAAACAAICBRQrAQsBAczm5gIm/nABkAABAAAAAAGQAkQAAgAGswEAAS0rARElAZD+cAJE/jTmAAEAAAAAAZACRAACAAazAgABLSsRDQEBkP5wAkTm5gAAAQAAAAABzAImAAIAFUASAQEARQEBAABmAAAAAgACAgUUKzUbAebmlgGQ/nAAAAAAAQAA//IC+ALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERAvj+hP6EwAF4AW7+hAF8AV7+ogABAAD/4gLaAtoABgAfQBwGAQEAAUcAAQBFBQEBRAAAAQBvAAEBZhERAgUWKwEVIREhFQEBegFg/qD+hgLavv6GwAF8AAEAAP/iAtoC2gAGAB9AHAEBAAEBRwABAUUCAQBEAAEAAW8AAABmERMCBRYrCQI1IREhAV4BfP6E/qIBXgLa/oT+hMABegAAAAEAAP/yAvgCzAAGABdAFAYBAEUCAQABAG8AAQFmEREQAwUXKwEjESERIwEC+MD+iMABfAFQ/qIBXgF8AAEAAP90AfQDSAAGAIqzAQEAREuwCVBYQA0DAgIAAQBwAAEBDAFJG0uwClBYQAsAAQABbwMCAgAAZhtLsA5QWEANAwICAAEAcAABAQwBSRtLsA9QWEALAAEAAW8DAgIAAGYbS7AVUFhADQMCAgABAHAAAQEMAUkbQAsAAQABbwMCAgAAZllZWVlZQAsAAAAGAAYREgQFFislByczETMRAfT6+qKwZPDwAuT9HAABAAAAAAPUAlgABgAmQCMBAQEAAUcCAQBFAAEBRAAAAQEAUgAAAAFWAAEAAUoREwIFFis3JzcVIRUh8PDwAuT9HGT6+qCyAAABAAAAAAPUAlgABgAmQCMGAQABAUcFAQFFAAEARAABAAABUgABAQBWAAABAEoREQIFFislNSE1ITUXAub9GgLm7mSisqD6AAABAAD/dAH0A0gABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEjESM3AfSisKL6Alr9GgLm7gAAAAABAAD/rAOsAuAAFwBDQEATCAICBAcBAQICRwUBBAMCAwQCbQYBAAADBAADYAACAQECVAACAgFYAAECAUwBABUUEhEPDgsJBgQAFwEXBwUUKwEyFhAGIyInNxYzMjYQJiIGBzMHJzM+AQIUqu7uqo5uRlRifrS0+rQCjri4fALwAuDw/qzwWEo8tAEAtK58zMym6gAAAQAA/8QDrAL4ABcAQ0BAEAUCBAERAQUEAkcCAQEDBAMBBG0GAQAAAwEAA2AABAUFBFQABAQFWAAFBAVMAQAUEg8NCgkHBgQDABcBFwcFFCsBMhYXMwcnMy4BIgYUFjMyNxcGIyImEDYBmKjuBHq4uJAEtPq0tH5oTkZujqjw8AL46KbOznystP60PExY8AFU8AAAAAL//v/EAzYC+AAOAB0AJUAiHRwXEQoEAQcAAQFHCQEBRRYBAEQAAQABbwAAAGYcEgIFFis/ARElNyYSNzY3FwYHDgEBBQcWAgcGByc2Nz4BJwe6dP7sWHQEdmSMBGRIWAQBogEUWHQEdmCQAmJIWARWcox0/twQVnoBUHhkEGYQSFj6AfoQVnr+sHhiFGgQSFj6XHQAAAAAAQAAAAAC6AKKAAsANEAxCAECAQkBAAICRwoBAEQAAQIBbwACAAACUgACAgBYAwEAAgBMAQAHBgUEAAsBCwQFFCs3IiY1ETMRITUXBzVkKjqMAWzw8Mg8KAFe/sqW3NyWAAAAAAEAAAAAA1ICTgALADJALwIBAgABAQECAkcDAQBFAAECAXAAAAICAFQAAAACVgMBAgACSgAAAAsACxMkBAUWKxMVJzcVITIWFREjNcjIyAImKDyMAV5aoKpkOir+6PAAAAMAAP+2A+gDCAAZACUANABiQF8hFwIABScYAgIELSgCAQcDRxYBA0UpAQZEAAMIAQAEAwBgAAUABAIFBGAJAQcBBgdUAAIAAQYCAWAJAQcHBlgABgcGTCYmAQAmNCYzLCogHh0bFRMNCwoIABkBGQoFFCsBIg4BBw4DKwE1MzI+ATc+AjsBNRcHNQUmKwE1MzIXDgEHBgE1Fwc1IyInNjc0NjcWMwLyNmY6NjA2ZnBCaGg2aDo2Pk6aViTS0v34SlxoaIxyDi4ECAH40tIkjHguGgwCVFoCBEBERj5AWiqMQERGUlhYeLS0ZFhOjGwQOgQM/vpktLR4dDoiAg4EWAABAAAAAAOEAooAGgA/QDwSAQMAEwEEAwJHEQEARQIGAgAFAQMEAANeAAQBAQRSAAQEAVgAAQQBTAEAGRgXFhUUEA4JBgAaARoHBRQrATIWFREUBiMhIiY1ETQ2OwE1Fwc1IxUhNSM1AyAqOjoq/UQoPDwo+sjI0gJslgIcOir+3ig8PCgBIio6brS0btLSjAACAAAAAAPoArQABgANAD1AOgQBAAENAwIDAAJHBQEBRQgBAkQEAQEAAAMBAF4AAwICA1IAAwMCVgACAwJKAAAMCwoJAAYABhEFBRUrARUhFSc3FQEHNSE1ITUCvP4MyMgDIMj+DAH0AlCMWqCqZP5coFqMZAAAAAABAAAAAAH0ApIACwAGswoFAS0rARYUBwEGJjURNDYXAeYODv5UGCIiGAF4Ch4K/vYQFB4CAh4UEAAAAAABAAAAAAJYAooADAAYQBUCAQABAG8AAQFmAQAHBAAMAQsDBRQrATIVERQjISI1ETQ2MwIOSkr+PkwkKAKKQP4qQkIB1iQcAAACAAAAAAISArwACAARACNAIAUCBAMAAQBvAwEBAWYKCQEADg0JEQoRBQQACAEIBgUUKwEyFREUIjURNCEyFREUIjURNAG4WrT+/Fq0ArxA/cZCQgI6QED9xkJCAjpAAAABAAAAAAK8ArwACAAYQBUCAQABAG8AAQFmAQAFBAAIAQgDBRQrATIWEAYgJhA2AV6SzMz+3MzMArzM/t7OzgEizAAAAAIAAAAAAlgCggALABQAGEAVAgEAAQBvAAEBZg0MERAMFA0UAwUUKwEWFAcFBiY1ETQ2FyUyFREUIjURNAGcDg7+lhYcHBYB3EqWAXYKGgrkDhIaAboaEg4oOv4uOjoB0joAAAACAAAAAAJYAoIADAAUABFADgAAAQBvAAEBZhMeAgUWKxM0NyU2FhURFAYnJSYnNDIVERQiNa4OAWwUHBwU/pQOrpaWAV4OCuQOEhr+RhoSDuQK9jo6/i46OgAAAAIAAAAAA3ACfAALABcACLUWEQoFAi0rARYUBwUGJjURNDYXBxYUBwUGJjURNDYXA2IODv6MFh4eFlIODv6YFCAgFAF2ChwI+A4QHAHiHBAO+AocCPgOEBwB4hwQDgAAAAIAAAAAA3ACfAAMABkACLUWEQkEAi0rETQ3JTYWFREUBiclJiU0NyU2FhURFAYnJSYOAXYUICAU/ooOAcYOAWgUICAU/pgOAV4OCvgOEBz+HhwQDvgIDg4K+A4QHP4eHBAO+AgAAAAAAgAAAAAD6AJYABAAFAApQCYAAQACAwECXgQBAwAAA1IEAQMDAFgAAAMATBERERQRFBQ1MwUFFysBFRQGIyEiJjURNDYzITIWFQMRIRED6Doq/OAoPDwoAyAqOmT84AHC+io6OioBLCg8PCj+1AEs/tQAAAADAAAAAAPoAlgAEAAUABgAOkA3AAEAAgQBAl4ABAcBBQMEBV4GAQMAAANSBgEDAwBYAAADAEwVFRERFRgVGBcWERQRFBQ1MwgFFysBFRQGIyEiJjURNDYzITIWFQMRIRE3NTMVA+g6KvzgKDw8KAMgKjpk/OAyyAHC+io6OioBLCg8PCj+1AEs/tQyxsYAAAAEAAAAAAPoAlgAEAAUABgAHABFQEIAAQACBAECXgYBBAoHCQMFAwQFXggBAwAAA1IIAQMDAFgAAAMATBkZFRURERkcGRwbGhUYFRgXFhEUERQUNTMLBRcrARUUBiMhIiY1ETQ2MyEyFhUDESERNzUzFTM1MxUD6Doq/OAoPDwoAyAqOmT84DLIMsgBwvoqOjoqASwoPDwo/tQBLP7UMsbGxsYAAAUAAAAAA+gCWAAQABQAGAAcACAAS0BIAAEAAgQBAl4IBgIECQwHCwQFAwQFXgoBAwAAA1IKAQMDAFgAAAMATBkZFRURESAfHh0ZHBkcGxoVGBUYFxYRFBEUFDUzDQUXKwEVFAYjISImNRE0NjMhMhYVAxEhETc1MxUzNTMVNzMVIwPoOir84Cg8PCgDICo6ZPzgMsgyyDLIyAHC+io6OioBLCg8PCj+1AEs/tQyxsbGxsbGAAIAAP+wA1wDDAAIACAAUEBNFRICBAAeCQIBBwJHCAEABABvAAQDBG8ABwIBAgcBbQABAW4FAQMCAgNSBQEDAwJWBgECAwJKAQAgHxsaGRgUEw8ODQwFBAAIAQgJBRQrATIWEAYgJhA2Ez4BNyM1My4BJxUjNQ4BBzMVIx4BFzUzAa6y/Pz+nPz81nywDMDADLB8RnyyDMLCDLJ8RgMM/P6c/PwBZPz89g6wfEZ8sA7Cwg6wfEZ8sA7CAAAABgAAAAACvAJYAAsAFwAjAC8AOwBHAGVAYgcOAgQPBgIFAgQFYBAIDQMCCQEDAAIDYBEKDAMAAQEAVBEKDAMAAAFYCwEBAAFMPTwxMCUkGRgNDAEAQ0A8Rz1GNzQwOzE6KygkLyUuHxwYIxkiExAMFw0WBwQACwEKEgUUKzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MxciJjQ2MyEyFhQGIxUyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2M2QUHh4UMhQeHBYyFB4eFDIUHhwWMhQeHhQyFB4cFvoUHh4UAV4WHB4UFhweFP6iFB4eFAFeFhweFP6iFB4eFMgeKB4eKB7IHigeHigeyB4oHh4oHmQeKB4eKB5kHigeHigeyB4oHh4oHgAAAAQAAAAAA+gCWAALABcAKwA3AFlAVg8KAgkACwAJC2AIDgQMBAAHBQIBAgABYA0BAgMDAlQNAQICA1gGAQMCA0wtLBkYDQwBADMwLDctNikoJiQjIR8eHBoYKxkrExAMFw0WBwQACwEKEAUUKwEyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2MyUyFCsBFRQiPQEjIjQ7ATU0Mh0BJTIWFAYjISImNDYzAV4WHB4U/tQUHhwWASwWHB4U/tQUHhwWA5geHqpkpB4epGT+PhYcHhT+1BQeHBYBkB4oHh4oHsgeKB4eKB7IZKoeHqpkqh4eqsgeKB4eKB4AAAAAAwAAAAAD6AKKABQAKwA3ADpANykfAgUEAUcAAgADBAIDYAYBBAAFAAQFYAAAAQEAVAAAAAFYAAEAAUwtLDMwLDctNiIzMiIHBRgrARQWOwEOASMhIiY0NjMhMhYXIyIGBzYnJicuAQYPAicmBhcWFxY2PwEXFiUyFhQGKwEiJjQ2MwMCSCpCHkRU/gyCioqCAfRURB5CKkiIChKIKhAUEAIIFpQaEBCILCIQChiSGgE+FiIiFiYWICAWAV5idi4mvN6+Ji54ugwOhh4KBhAEEjhCDBoOhB4QCho6RAzONlg4OFg2AAAAAAIAAP/EA6wC+AAXAB0AU0BQGgEEBh0cGxMIBQIEBwEBAgNHAAYDBAMGBG0FAQQCAwQCawcBAAADBgADYAACAQECVAACAgFYAAECAUwBABkYFRQSEQ8OCwkGBAAXARcIBRQrATIWEAYjIic3FjMyNjQmIgYHMwcnMz4BFzMVFwcnAhSq7u6qinJGUmR+tLT6sgSOuLh8BO6CRoIylgL48P6s8FhMPLT+tKx8zs6m6L7MgjKWAAIAAP+mA+gDFgAXABsAOEA1DwgCAQMBRwQBAAACAwACXgUBAwEBA1IFAQMDAVgAAQMBTBgYAQAYGxgbGhkNCgAXARYGBRQrATIWFREUBg8BFxYjISI/AScuATURNDYzAREhEQOEKjo6KNpWMkb+DGKCJNwoOjwoAyD84AMWPCj92ipGCCwmHDQOLAhGKgImKDz9egIs/dQAAwAA/3QCRANIAA8AGAAcARBLsAlQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7AKUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsA5QWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7APUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsBVQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbQCQGAQAABAUABF4IAQUAAwIFA2AHAQIBAQJUBwECAgFYAAECAUxZWVlZWUAbGRkREAEAGRwZHBsaFRQQGBEYCQYADwEOCQUUKwEyFhURFAYjISImNRE0NjMTMjY0JiIGFBY3ESERAeAqOjoq/oQoPDwovh4oKDoqKu7+XANIOir89Cg8PCgDDCo6/FQeKhweKB6WApT9bAACAAD/kgOYAyoACAARACtAKAQBAAMAbwADAgNvBQECAQJvAAEBZgoJAQAODQkRChEFBAAIAQgGBRQrATIAEAAgABAAEzI2NCYiBhQWAcy+AQ7+8v6E/vIBDr4+WFZ+WFgDKv7y/oT+8gEOAXwBDv2eWH5WWHxYAAAC//kAAAPvAkAAFwAjAGJLsAxQWEAhBAYCAgMFBQJlAAEAAwIBA14ABQAABVIABQUAWQAABQBNG0AiBAYCAgMFAwIFbQABAAMCAQNeAAUAAAVSAAUFAFkAAAUATVlAERkYISAdHBsaGCMZIzk1BwUWKwEWDwEOASMhIiYvASY3Nj8BNjMhMh8BFgUzJyEHMzIfASE3NgPHKAocBCQW/NAWJAQcCCgIHHgWHgIEHhZ4Hv7+smb91GayCAQoASwoBAGOKh6aFBoaFJogKAocdhYWdR0qcnIIZGQIAAAAAv/6/+gDjALWABoAKgA1QDIUAQUCAUcABQIGAgUGbQQBAQMBAgUBAl4ABgAABlQABgYAWAAABgBMNTQhEhEnNQcFGysBFg8BDgEjISImLwEmNxM2OwEHIxclIyczMhcTNiYjISIGHwEeATMhMjY3A3QYCiICIhb9OBYiAiIIFp4WMmgUhv4BAIgSZjIYWAIYFv18FhgCDgIiFAJQFiICATI0LLgUHh4UuDIuAXYuzNLSzC7+BhYgIBZKFh4eFgAABAAA/34DwAM+AAgAIQBVAGMAg0AVEwwCBAAlAQIEIBwCAwJaVgIFAwRHS7AMUFhAJgYBAAQAbwAEAgRvAAIDAm8AAwUFA2MABQEBBVQABQUBWQABBQFNG0AlBgEABABvAAQCBG8AAgMCbwADBQNvAAUBAQVUAAUFAVkAAQUBTVlAEwEAWVdIRzg2GRgFBAAIAQgHBRQrATIAEAAgABAAATQmJwYXHgE/AhYOARcWMx4BFxYHBhc2AQ4BBzIfAR4CFxYGFBYVFBYVFBYzMjYmNTQ+ATc2LgQjLgEGJjU0PgE3PgI3PgEDFjMyNyYHBg8BBiMOAQHgyAEY/uj+cv7mARoCYJx8EgIEHBAgFBYsLhYiPhweAgoYFiRW/i5wrigGEBwMHBQCBCRMEEgQCgIGGl4IEA4UMCIoAhA0FCIeKAgIEhoOBCpCQj6AYhpcGCkvSgIMHAM+/ub+cv7oARgBjgEa/iCE1ioYCCYaBgwCGC5CLEACRCBQPCwgcAIeDoxoAgMBBgoIDEI6NBQcUAQMVCxACCBUOBIiNiAYCggGAggeDgoiKAoODhIMBBr88BRELAoCDxEQAhgAAAAAAQAAAAAD6AKkABUALEApDAEBAgFHAAMAA28EAQACAG8AAgECbwABAWYBABIQCwoHBAAVARUFBRQrATIWFAYjISImNDYzFyY1NDYzMhYXNgL4ZIyMZP2+SmxqTBQCnG5ajBgcAe6IxIhokmgCDBpsmGhSBAACAAAAAAPoAqQAFQA2ADJALyABAgAtHQwDAQICRwADAANvBAEAAgBvAAIBAm8AAQFmAQASEAsKBwQAFQEVBQUUKwEyFhQGIyEiJjQ2MxcmNTQ2MzIWFzYHNjU0JyMmJzcyNTQnJg8BDgEVFB8BFhcPAQYVFBcWNzYC+GSMjGT9vkpsakwUApxuWowYHLQOHgQaDDIGCBASWyEYHgQIHjQCAggSEGQB7ojEiGiSaAIMGmyYaFIE2BAOFAwOAnQUDgQKEmIkIgwWCAIEDHIICAYKCAoUZAAAAAAB//z/lgGUAyQAEAAGsxAKAS0rFyY/ATYuAScmPgEWAh4CACgEJ08oBLgGBLC4CqAEugj+nGQEWrZcDE4QDNjKCP6UCE4m/mIAAAAAAQAA/8YDNAL4AA4AEEANDAMCAEUAAABmGAEFFSslNhInFhcWEAAgJyYnFiQCDGomSDQsgP8A/pSAKCB8ASbuagEkfBougP6W/wCAKDZGJgABAAD/iAPyAzQAGABEQEESBQIAAwFHAAQCBG8AAgMCbwABAAcAAQdtCAEHB24FAQMAAANSBQEDAwBYBgEAAwBMAAAAGAAYNxERERIREQkFGysFEyMHIzcnMxczAzMTIRceAgcUBg8BIQMBDHy0cGRQUGRwtHxk4AESJCQUNApMJCb+/uB4AZBkqqpkAZD+cAQEDhwUICICAv5wAAACAAD/5AOcAtQAGAAeAAi1HhoIAQItKwE2FgcGAgcOASclNwA3NiYHAS8BJjQ3NgABNRcGBwYDfg4QBAKMBAIYDP7qFgGEBgQKBP3acL4MDAgDYv3CoIIMEgLQBA4MBv2gDA4KBpYaAaQGBAoE/m4sTAQQBAQBMv0qzFJ0DA4AAAH/+P/iA64C8AAfABFADh4NAgBEAAAAZhoYAQUUKxM2BRYXFgcOAwcGJwYHBiY3PgM/ASIOAwcm7LYBRKgcBAZMbDBSNIr0QjAMRgosqraqODYONpqOtkYWAoZqKBYcBgQoin6KJGBcTGQYIhZkunhcFhQCGjJ2UvIAAAAG//z/kAOaAywACAARABoAIwAsADUAckBvEAsCAwIPDAIHAzMyLhoWFQYGByEeAgUGIh0CBAUFRwgBAAkBAgMAAmAAAwAHBgMHYAsBBgAFBAYFYAoBBAEBBFQKAQQEAVgAAQQBTCUkHBsKCQEAKSgkLCUsIB8bIxwjDg0JEQoRBQQACAEIDAUUKwE2ABIABAACABciBxc2Mhc3JgEmNDcnBhUWFwU2NycGIicHFjcyNjQmIgYUFiUXNic0JwcWFAHGvgEQBv72/oT+7gYBDL5eVD44hDg+WP6kHBxmLgIsAWhiUD48fDw+VmJcgIC4gIABWGguAixoHAMqAv74/oT+7gYBCgF8ARI6LGgcHGgu/fQ8fjw+WGZgVNgEKmgeHmgutIK2gIC2gmI+YF5gVD48fgAAAAL/9/9aAkMDYAATABwACLUcGA4EAi0rJRYGBwYmJwMmNjcnJjc2HwE2FhcHPgEuAQ4BHgECJxxaXl6iFmoUNDpgDhweEmJQlBzCHBgSMjgYEjKCUJoiHEpQAYBEhCi6Ig4SIMAWTE5oCjQ4GhI0OBoAAAAAAwAA/7YD6AMIABgAIAAtAKq1JQEJCwFHS7ANUFhAOwYDAgEHBQcBBW0MAQUABwUAawQBAAgHAAhrCgEICwsIYwACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNG0A8BgMCAQcFBwEFbQwBBQAHBQBrBAEACAcACGsKAQgLBwgLawACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNWUAeISEAACEtIS0sKykmIyIgHRsaABgAGBIkNSIRDgUZKwEVIRM2OwE2PwE+ATsBMhYXFhczMhcTITUDByEnJisBIhM1IQYHBiMhIjUnIRUByP44CgRgoBAVFw4SHN4aFAwSKqBgBAr+OqQcASQcDhyYHJYBrgYEBlT9EloKAa4BRmQBJGwaKS0aDA4YIFBs/txkAWI2Nhr9imRYTlRUpmQAAAQAAP+cA+gDIAAJABMAHQAkAFJATxsUAggHIx8CAAgCRwsJBgQCCgYACAEIAAFtBQMCAQFuAAcICAdUAAcHCFgACAcITB4eAQAeJB4kIiAdHBoZGBcWFREPDgwIBgAJAQkMBRQrATIWFREUBisBEQU0NjsBESMiJjUBFTMRIREzNTYyFzUmIyIHFQOEKjo6KjL8rjwoMjIoPAKebv3QbmKQJjQ6NjgCijwo/doqOgLuZCg8/RI6KgLyaP0SAu5oLpZCGBhCAAAAAQAAAAAA3AHMAAgAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFBAAIAQgDBRQrEzIWFAYiJjQ2bi5AQFxAQAHMQFpCQlpAAAAAAgAAAAACOgHMAAgAEQAtQCoFAgQDAAEBAFQFAgQDAAABWAMBAQABTAoJAQAODQkRChEFBAAIAQgGBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWkBAAcxAWkJAXEBAWkJAXEAAAwAAAAADmAHMAAgAEQAaADpANwgEBwIGBQABAQBUCAQHAgYFAAABWAUDAgEAAUwTEgoJAQAXFhIaExoODQkRChEFBAAIAQgJBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWEJAAYwuQEBcQEABzEBaQkJaQEBaQkJaQEBaQkJaQAAAAAL//P9+A9gDSgANAB8ACLUfFAgBAi0rNzYeAgcGBwY3NDc+AQEWAAcGBwYnJicmJyY3Njc2AHYmXlIMJFaOVAQGNBgDbBr+pHYmVggIEh4gIhAIQCh2AcSqIgpQXiRUEgwaBAY8qgKoGv5EdCZCBg4iHiAQBgpUJnQBVgADAAAAAAPoAjoAFQAeACcATUBKJRkTCAQEBQFHAwgCAAcBBQQABWAKBgkDBAEBBFQKBgkDBAQBWAIBAQQBTCAfFxYBACMhHycgJx0bFh4XHhEPDAoGBAAVARULBRQrATIWFAYjIiYnDgEjIiY0NjMyFhc+AQEyNjcuASMiECEyECMiBgceAQMcVHh4VE6ePDqeTlZ4eFZOnjo6oP4APIYuLoQ+cgLAcnI+hiwshgI6auJsUEJCUGziak5CQk7+oEo6Okr++AEISjo6SgAC//IAAAPqArwAEAAcAChAJRwbGhkYFxYVFBMSCwEAAUcCAQABAG8AAQFmAQAJBgAQAQ8DBRQrATIWFREUBiMhIicBJjcBNjMBNyc3JwcnBxcHFzcDhio6Oir+IiYg/qwcHAFUHigBUkiAgEiAgEiAgEiAArw6Kv4MKDwcASgaHAEoGv3aSn6ASH5+SIB+SoAAAAAAAgAA/7oDSAMCAAQAEgAcQBkFAAIARQAAAgBvAAIBAm8AAQFmIigRAwUXKwERIT4BNx4BFRQGIyImJyEyNjUBcP6QEs76nNL2sKDsFgGoFB4DAv6Qks4QFO6grvjSnhwWAAAAAAP/+P+wA/wDEAAGABgAMAAlQCIYEwYDAQABRycUBQMARQAAAQBvAAECAW8AAgJmKyUYAwUXKxMmNzYfAQclNhYXFg8BBiMiJyUnNxcWFwUJAQYjIicuATcBNjc2HwETPgEXFgcDBiciKgoKLGI0AzYOJgwgIvwMEg4O/uI2MiQMBAEI/vT+ogwaDAwQCAoBdggUEhL24gokECYa/BgmARwKLioKGFAEDAIOICDiDArcDlAIBATMAab92hYICiYOAkwQBAYMnAFGEAYMGCb+liQYAAAAAwAA/5wDIAMgAAgAEQAaADZAMwYBAAIAbwcBAgQCbwgBBAEEbwUDAgEBZhMSCgkBABcWEhoTGQ4NCREKEAUEAAgBBwkFFCsBMhYVESMRNDMDMhYVESMRNDMDMhYdASM1NDMC7hYcyCi+FhzIKL4WHMgoAyAeFPyuA1Iy/tQeFP3aAiYy/tQeFPr6MgAB//7/2APUAvIAFAAKtwAAAGYjAQUVKwE2FREhIiY3EzYfARY2PwE2HwEWNwPEEPw8DAYI5hQUSgoWBp4QFnAUEgLcFhr9AA4KASAWFEIIAgruGhZoFBgAAwAAAAAD6AJEABQAHQAmAD9APAIIAgAHAQUDAAVgCQYEAwMBAQNUCQYEAwMDAVgAAQMBTB8eAQAjIh4mHyYcGxgXEA8LCgcEABQBFAoFFCsBMhYUBiMhIiY0NjIWFRQHMyY1NDYFFBYyNjQmIgYFMjY0JiIGFBYDAmCGhmD95F6IiL6GKKAoiP3ATGxMTGxMAp42TExsTEwCRIa+iIi+hoZgSDpAQmCG5jROTmpMTLhOakxMak4AAAMAAP/iA+gC7gAQACoANwAiQB8wLyAVAgEGAAIBRwABAgFvAAIAAm8AAABmIywaAwUXKzcFJQcOAgcOAiIuAScuAQEWFA8BJSYjIgYUFjMyNw0BBiclJjQ3JTYXATYmLwE3HgIHDgEmpgFOARQOAhIeHihQLiAwUChIPgMaGBhO/swWRCg2NigaCgEk/vQ8PP5gGBgBoDw8ASASCg4ORgYMFhIEJCLuqIhSChoUDBIuFhowECBKAT4OJg4sZiQgMCAERJggIOoOJg7qICD9XHSEGBYmCCiidBoIEgAFAAD/4gP6AtoAOQBBAEsAYwBmAGVAYisiAgcBZjUYAwIHFwEDAj0LAggDQgEFCDwGAgQFBkcAAQcBbwAHAgdvBgEEBQAFBABtAAAAbgACAAMIAgNgAAgFBQhSAAgIBVYABQgFSmVkY2BbWlZVUlFIRzg2JyUTCQUVKwEWBgciLwEmNz4BJw4DJy4BNTQ3NjcnDgEnNCY1JjYzNzQnNDMyNzIdATYzNhcUFhUWDwEVMzIWBRY3JwYHBhQ3PgInJiMiBiMlFhIWFCsBIjUnIwYHFCsBIjU2EzY7ATIDMwMD3B5QXgoCIAIEVj4qEC5IZDg0QDwyQAKMDAQKAgYEnAIILgYKngYIAggECLAMVnz+phwiBCIaLKgcPB4IJDwCCAL+PgpWUARWBjKwMAIGVgQKpgIIYAqCkEgBMlK8QgImBgQ8uDgmTFQuCAZGOlRAMhBkGAIGAjYEAgQcbgQIAghoFgQKAioECgIeZkjgBgzWDBwsghYYWEYGEgKyHP7u+AYEpqQCBAQSAhYI/rwBCAAAAwAA/4YDrAMyAAMAIwAnADJALyYjHAEEAwInJQIDAQMTDAMDAAEDRwACAwJvAAMBA28AAQABbwAAAGYmFyYZBAUYKxMBFwkBFhQHAQYiLwE2NTQmIyIHJyY0NwE2Mh8BBhUUFjMyNwkD2AFGsv66AhQODv3aECgQTAw6KhYcShAQAiYOLA5KDDwqGhb+OAGW/v7+aAEQAUay/roBpg4sDv3aEBBMFBwqPA5MECgQAiYODkwWGio6DP2+AZYBAv5qAAAAAAMAAP9qA6wDUAAPACAAMAAqS7AfUFhADAEBAAIAbwACAg0CSRtACgEBAAIAbwACAmZZtisqHxYDBRYrEx4CFRQGIiY1ND4BNzYyBR4CFRQGIiY1ND4CNzYyATYyFR4CFRQGIiY1ND4BqApQQmCEYEJQCgIKAmgKUEJghGAqNjQIAgr+wAIKClBCYIRgQlADTFaKbDpCXl5COmyKVgQEVopsOkJeXkIwWkJ2RAT+QAQEVopsOkJeXkI6bIoAAgAA/34CMAM+ABEAIwAkQCEAAQIBbwACAwJvAAMAAANUAAMDAFgAAAMATCgUGBcEBRgrAR4DFRQGIiY1ND4CNzYyAzYnJiIPAQ4CFRQWMzI1NDcBIg5cXEim5KZIXFwOAhIqAgQGEAQoICAkIhg6KgM2dsp0nFJypKRyUpx0ynYI/nAECgYGOi4wZjIYIkRemAAAAAP/7//sA5sC3AAZADYAVQA2QDMAAwECAQMCbQACBQECBWsABQQBBQRrAAQEbgAAAQEAVAAAAAFYAAEAAUwdLx0sJxoGBRorEwYuATY3PgIeAjY3NhcWBwYjIicuAQ4BBTYWBw4CIyInLgEOAQcGJicmPgMWFx4BPgEXNhcWBgcOAiMiJy4BDgEHBiYnJj4DFhceAT4BVRAoHAQQMD50jrCGQjgmICAmenBkekRmVC4CtCZAJigyXjJgfkRmVC4sDioOIEwsXlKARkRmVC4sJiAOBBAoMl4yYH5EZlQwKg4qDiBMLF5SgEZEZlQuAhYOBB4sDigoKCBkBiYwHiQoIG5GJhwcHpIgTiAiJiZGJhwcHiQOBBAoQiAsAiAoJhwcHtwgJg4sDiImJkYmHBogJA4EEChCICwCICgmHBweAAAACQAAAAAD6AK8AA8AEwAXABsAJwArAC8ANQBBAQFLsCpQWEBSFwEJBwwICWUfGhIDDAgHDGMbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTBtAVBcBCQcMBwkMbR8aEgMMCAcMCGsbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTFlATTY2MDAUFBAQAQA2QTZBQD8+PTw7Ojk4NzA1MDU0MzIxLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFBcUFxYVEBMQExIRCQYADwEOIAUUKwEyFhURFAYjISImNRE0NjMBESERATUhFRMzFSMXMzUzNTMVIxUjFSMzIzUzByM1MzcVIzUzFQcVIzUzNTM1MxUjFQOEKjo6KvzgKDw8KAMg/OADIPzgZB4etB4ePB4ePHgeHpY8PB4ePJY8Hh48HgK8PCj+DCo6OioB9Cg8/agBLP7UAcIyMv8AHh4eHh4eHh4eHh4ePB4eHh4eHh4eAAAAAAMAAP/OAyAC7gANABcAGwBGQEMBAQQFAUcAAwQABAMAbQAAAG4GAQEAAgUBAl4HAQUEBAVSBwEFBQRWAAQFBEoYGAAAGBsYGxoZFhMQDwANAAw0CAUVKwEXERQGIyEiJjURNDYzATUhFRQWMyEyNicVIzUCko46Kv2oKDw8KAH0/nAeFAEsFB4yZALunP3gKDw8KAJYKjr+1Pr6FB4e3MjIAAAAAgAA/2oCvANSABEAGQCES7AfUFhAHgADBAEEAwFtBwUCAwAABAMABF8ABgYMSAABAQ0BSRtLsCRQWEAdAAMEAQQDAW0AAQFuBwUCAwAABAMABF8ABgYMBkkbQCcABgAGbwADBAEEAwFtAAEBbgcFAgMABAQAVAcFAgMAAARXAAQABEtZWUALEREREREVNRAIBRwrATIWFREUBiMhIiY1ETQ2MxchJyEnMzczFzMCdhwqKhz90BwqKhw8Abgo/pgsbCSgJG4C7ioc/QgeKCgeAvgcKpYyZGRkAAAAAAL/+f+UA2QDMgAsADkACLU5MysVAi0rAR4BBwYuAgcOARcWFx4BFxYHBgcGJyYnLgEnBgcGJicmNjc+BTc2FhM+AS4DDgEeAwMYOhIwHEJAhlIcHAgWGAQoBA4kMjQeGCAaBjgSHggiUA4RGB9+rkosBhgYMKQgCAQaOE44EAQYOFA4AfSK8BQMHjIgCAQeFjg0ChgIIgwWEgo0TDgMChoKBAwwJCBeDjRwXlpCNAoUtP5KBESAgnI2CEyGhGouAAMAAP+mArwDFgAQACAALQA/QDwTAQUECQECAwJHBgEEBQRvAAUDBW8AAwACAQMCYAABAAABVAABAQBYAAABAEwiISgnIS0iLRcXGBUHBRgrJTYdARQGICY9ATQ2Fx4BMjYTNhcVFAYgJj0BNBceATI2ATIWHQEUBiAmPQE0NgKuDtD+5tIIBiC67LoiCATM/t7ODh687Lz+zpDOzv7gzs7QFBZkSnp6SmQIBAo0REQBMhAQdERcXER0FBQuOjoBdk42QDpSUjpANk4AAAL/+v/mA44C1AATACMAJEAhAAECAW8AAgMCbwADAAADVAADAwBYAAADAEw1NDc1BAUYKwEWDwEOASMhIiYvASY3EzYzITIXEzYmIyEiBh8BHgEzITI2NwN0GgwiAiIW/TgUJAIiCBaeFjIBmDIYWAIYFv18FhgCDgIiFgJOFiICATAsNLgUHh4UuDQsAXYuLv4GFiAgFkoWHh4WAAP/+P+wA5gDDAAkACoANwBeQFspIAIDBSUYAgIDKAEEAgwBAQQERwACAwQDAgRtAAQBAwQBawABAW4HAQAABgUABmAIAQUDAwVUCAEFBQNYAAMFA0wsKwEAMjErNyw3GxoUExAPCAcAJAEkCQUUKwEyFgcDDgIiLgEvARY2NzI2NCYiBhUUFw4BJy4BJyY3JicmNgEeARcnBiUyPgE0LgEiDgEUHgECCq7gCFwCRpCkjkYCBFKiOhwoKDoqCjCGQGZuBAikEgQI4P7oBEI6IGQByFKWTEyUppRMTJQDDGI4/bQSNDAwNBIeBlJMKDoqKhwUEDo+BApePno+Xiw4Yv4qIDYMzCyWJCocKiQkKhwqJAAAAAIAAP9qAhwDUgASACEAckAJHBkLAAQCAwFHS7AfUFhAFgADAwFYAAEBDEgEAQICAFgAAAANAEkbS7AkUFhAEwQBAgAAAgBcAAMDAVgAAQEMA0kbQBoAAQADAgEDXgQBAgAAAlQEAQICAFgAAAIATFlZQA0UExsaEyEUITcVBQUWKwEeARUUBiImNTQ2NxE0OwEyFhUDMjY1NCYnESMRDgEVFBYBkEBMnuCeTEAoqhQegkZkQDRkNkZkAWQkfExwnp5wTHwkAbwyHhT8rmRGOFgQAXL+kBBaOEZkAAAC//r/cAMaA1YAGQAtABBADRIBAEQAAABmKyoBBRQrARYGBwYnDwIGDwEGJi8BJjcBJicmNjc2Fgc2LgEGBw4BHwEeAR8BHgIyPgEDBhRgZkJAdkZoDiBMDBQCEAgUAQIYDhKOcmqybB4SVGQeCAgDBQIWB0MQDhgOFBACZHTGEgwKwgymHAQOBBAOYh4aAYIyRmqiFBSCvCxqPhQsDBYJEAcUBTEMCBACDgAABAAA/4gCgAM0ACoAMwA8AEUAh0CEFQwCBQslAQcEAkcACwwFDAsFbQADAAwLAwxgAAUQAQkEBQlgAAQABwoEB2AACgAGAAoGYA8BAAAOCAAOYAAIAAINCAJgEQENAQENVBEBDQ0BWAABDQFMPj0sKwEAQkE9RT5FOzo3NjAvKzMsMyknJCIhHxwaGRcREAkHBgQAKgEqEgUUKyUyFhQGIyInIyImNREmNTQ2MhYVFAcVFDsBNjMyFhQGIyInIyInFRQ7ATYTIgYUFjI2NCYBFBYyNjQmIgYBMjY0JiIGFBYCCDJGRjJQHqRYVkhGZEZITqQeUDJGRjJQHqQqJE6kHlAcKio4Kir+Dio4Kio4KgHWHCoqOCoqeEZkRkpsQAHQIkwyRkYyTCJyTkhGZEZKEMJOSAEsKDooKDooARgcKCg6KCj84ig6KCg6KAAEAAD/ugKAAwIALAA1AD4ARwBYQFUmIB8WFQwGBgMBRwoHAgMEBgQDBm0ABgUEBgVrAgEBCAEEAwEEYAkBBQAABVQJAQUFAFgAAAUATEA/NzZEQz9HQEc7OjY+Nz40MzAvKyobGhEQCwUUKwEUBw4DBw4DBxYVFAYiJjU0NxEmNTQ2MhYVFAcVNjc+AjcmNTQ2MhYFFBYyNjQmIgYTMjY0JiIGFBYBMjY0JiIGFBYCgEoGLE46LioqNBgERkZkRkhIRmRGSChiOjQyBEZGZEb9tCg4Kio4KEQcKio4KCgBrBwqKjgoKAKKUB46VjQYDg4QIDAkHlAyRkYyTiIBeiJMMkZGMkwizB4eEhY8LiBMMkZGMhwoKDooKP1GKDooKDooAlgoOigoOigAAAAFAAD/iAOsAzQAQwBMAFUAXgBnAHJAbzwzAgUKGg8CAQUrIhkQCQAGCAEDRwAKCwULCgVtDwwCCAEJAQgJbQAGAAsKBgtgBwEFAwEBCAUBYBAODQMJAAAJVBAODQMJCQBYBAICAAkATGBfZGNfZ2BnXVxZWFRTUE9LShU2FjcYNhY2FBEFHSslFhUUBiImNTQ3NTQrASInFRYVFAYiJjU0NzUGKwEiDgEdARYVFAYiJjU0NzU0NjsBMj0BJjU0NjIWFRQHFRQ7ATIWFQU0JiIGFBYyNhMUFjI2NCYiBhM0JiIGFBYyNgUyNjQmIgYUFgNkSEZkRkhMZCwiSEZkRkgeLmQiJgZIRmRGSFZYZExIRmRGSE5kVlb9Wio4KCg4KtQoOCoqOCiKKjgoKDgqARgcKio4KChwIk4yRkYyTiJyTgzMIk4yRkYyTiLMDCYcDHIiTjJGRjJOInJAbDSMIkwyRkYyTCKMNGxA4h4oKDooKALYHCgoOigo/SYeKCg6KCgoKDooKDooAAMAAP+6APADAgATABwAJQBEQEETCgkABAUCAUcAAgMFAwIFbQAFBAMFBGsAAQADAgEDYAYBBAAABFQGAQQEAFgAAAQATB4dIiEdJR4lExcZFAcFGCs3FhUUBiImNTQ3ESY1NDYyFhUUBycUFjI2NCYiBhMyNjQmIgYUFqhIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCiiIk4yRkYyTiIBeiJMMkZGMkwibhwoKDooKP1GKDooKDooAAAGAAD/ugKAAwIAEwAcACUAOQBCAEsAYEBdOTAvJg0MAwIIAgQBRwgMAgQFAgUEAm0LAQIDBQIDawcBAQkBBQQBBWANCgIDAAADVA0KAgMDAFgGAQADAExEQx4dSEdDS0RLQUA9PDU0KyoiIR0lHiUTFBkXDgUYKxMUBxEWFRQGIiY1NDcRJjU0NjIWAzQmIgYUFjI2AzI2NCYiBhQWARYVFAYiJjU0NxEmNTQ2MhYVFAcnFBYyNjQmIgYTMjY0JiIGFBbwSEhGZEZISEZkRjIqOCgoOCpGHCoqOCgoAdxIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCgCikwi/oYiTjJGRjJOIgF6IkwyRkb9dh4oKDooKAIwKDooKDoo/lwiTjJGRjJOIgF6IkwyRkYyTCJuHCgoOigo/UYoOigoOigAAAL/+f+uA2MDLgApADIAH0AcDAsCAEQAAgECbwABAAFvAAAAZjAvLCsZFwMFFCslHgEOAg8BBiY/AScHBiY/ATY/AT4COwEXPgQXMhcWFxYOAgcTFjI2NCYiBhQCHwYEFAZADZsgGgoogmocHgwfEwgWDhYkFzRHCiZ0eKpQCAYEAgo4YGQkDhZALCxALOwyPjgYKAZEDCAcboQoDBwgTzEQLR0OGgYOMnhYPgwGBApSrIJqHAEMFi5ALi5AAAAAAAMAAP/4A+gCsgAIAB0ALgAxQC4bAQABLBMCAgACRwACAAJwAAEAAAFUAAEBAFgDAQABAEwKCSQjGhgJHQodBAUUKyU2ABcWAgcGJhMiBhUUFxYOASYnNCY1NAAzMhcHJgUWFRQOASsBLgE3NjU0JzY3AZYiAWgODNgeMqyOqOgCAhwoIAICASLSSD5GKAFSigQcFAQWGgICUAYOsjgByAgG/eA2VmQB0v64HhAWHgQcFAgkCuIBOBJWBD6a3iYmGgQgFA4glnYOJQAAAAEAAAABAABtov+mXw889QALA+gAAAAA01VL3wAAAADTVUvf/+D/WgP8A2AAAAAIAAIAAAAAAAAAAQAAA1L/agAAA+v/4P/mA/wAAQAAAAAAAAAAAAAAAAAAANkD6AAAA9T/9wMVAAADhv/5A4T//gNcAAADXAAAA3AAAANwAAADrAAAA+gAAAPoAAAD1AAAA+j/+APoAAACWAAAArwAAAKb//0B1gAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA5j//AHMAAADmP/8A1IAAAOE//wDIAAAA6v//gK8AAACvAAAA+gAAAPA//4BaAAAAiYAAAOEAAADIAAAAyAAAAPo//gD6P/4A+gAAAOEAAAD6AAAA4QAAAL6AAAD6AAAA+gAAAMMAAACuv/gA9QAAAPoAAAD6AAAAyAAAAPoAAADIP/4A8L/+gOF//0D6AAAA+gAAAH0AAAD6AAAA1wAAAPA//wCqf/8AvgAAAK8AAAD6f/4A+gAAAK8AAACvAAAAyAAAAOEAAACvAAAA+n//gPV//wDhAAAAvgAAAMg//8DSAAAA+j/+gMgAAAD6AAAA4QAAANb//wDhAAAA4QAAAOEAAACgAAAA3QAAAOO//gDgP/8A5gAAAIwAAACvP/7ArwAAAPoAAAD6AAAA8AAAAMYAAADhAAAAyAAAAPoAAAD6AAAAcwAAAOYAAADmAAAA5gAAAOYAAACRAAAAVUAAAFU/+4CRAAAAdL/8wEJ//QBCf/zAdD/9ANi//MB0f/0AdH/8wNg//QClAAAAtoAAALaAAAClAAAAcwAAAGQAAABkAAAAcwAAAL4AAAC2gAAAtoAAAL4AAAB9AAAA9QAAAPUAAAB9AAAA6wAAAOsAAADNP/+AugAAANSAAAD6AAAA4QAAAPoAAAB9AAAAlgAAAISAAACvAAAAlgAAAJYAAADcAAAA3AAAAPoAAAD6AAAA+gAAAPoAAADXAAAArwAAAPoAAAD6AAAA6wAAAPoAAACRAAAA5gAAAPn//kDhf/6A8AAAAPoAAAD6AAAAZD//AM0AAAD6AAAA5kAAAOs//gDmP/8AjH/9wPoAAAD6AAAANwAAAI6AAADmAAAA8L//APoAAAD6v/yA0gAAAPr//gDIAAAA9T//gPoAAAD6AAAA+kAAAOsAAADrAAAAjAAAAOJ/+8D6AAAAyAAAAK8AAADXP/5ArwAAAOG//oDkf/4AhwAAAMM//oCgAAAAoAAAAOsAAAA8AAAAoAAAANc//kD6AAAAAAAAABMAJAA4AEuAVgBpgHMAhQCYgLsA2ADxgQoBLAFEgVqBZoF2gYYBlwGlAbaByoHTAd8B7YIJAi2CUgJwgn8CjgKtgsgC3ILxAwqDIwMrgz+DTYNig3iDlgOyA8WD0YPhA+yEBAQSBCmEOQRUhHgEigS5BMUE2wT0BQWFMYVTBWqFeoWSBZ6Fu4XPBe+F/wYRhh6GOQZPBngGkAaiBrwG5gb4hwqHHQc8h2aHfgedh7WHzofoiA6IM4hfiHYIloieiLQI7IkSCUMJionRCecJ8wn+ihSKNwpUClsKcgqGCpmKsAq6CsWK0IraiuKK6oryivmLAosLixSLHQsliy6LN4s/C0ULSQtNC1MLW4tkC20LdIuKC5MLnAuji7YLyIvbi+gL9AwUDCYMNQw8jEWMUYxaDGaMcgx+DIsMmYyrjMAM1ozuDRQNMw1QDWaNeY2njbaN0g3qDiGOMA5LDlSOXo5yDoIOkY64DsaO7g8HDxAPHY8wDz+PWQ9rj3gPko+kD68Pxg/hkBOQLBBDkFYQfhC2EMqQ5hD+EReRKxFNkWkRfpGoEc2R/pIVkj2SVZJuwABAAAA2QBxAA4AAAAAAAIASgBaAHMAAAC9C3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE2IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA2ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAAdwYWxldHRlBnNlYXJjaApmbGFzaGxpZ2h0BG1haWwFaGVhcnQLaGVhcnQtZW1wdHkEc3RhcgpzdGFyLWVtcHR5BHVzZXIFdXNlcnMIdXNlci1hZGQFdmlkZW8HcGljdHVyZQZjYW1lcmEGbGF5b3V0BG1lbnUFY2hlY2sGY2FuY2VsDmNhbmNlbC1jaXJjbGVkDmNhbmNlbC1zcXVhcmVkBHBsdXMMcGx1cy1jaXJjbGVkDHBsdXMtc3F1YXJlZAVtaW51cw1taW51cy1jaXJjbGVkDW1pbnVzLXNxdWFyZWQEaGVscAxoZWxwLWNpcmNsZWQEaW5mbwxpbmZvLWNpcmNsZWQEYmFjawRob21lBGxpbmsGYXR0YWNoBGxvY2sJbG9jay1vcGVuA2V5ZQN0YWcIYm9va21hcmsJYm9va21hcmtzBGZsYWcJdGh1bWJzLXVwC3RodW1icy1kb3duCGRvd25sb2FkBnVwbG9hZAx1cGxvYWQtY2xvdWQFcmVwbHkJcmVwbHktYWxsB2ZvcndhcmQFcXVvdGUEY29kZQZleHBvcnQGcGVuY2lsB2ZlYXRoZXIFcHJpbnQHcmV0d2VldAhrZXlib2FyZAdjb21tZW50BGNoYXQEYmVsbAlhdHRlbnRpb24FYWxlcnQFdmNhcmQHYWRkcmVzcwhsb2NhdGlvbgNtYXAJZGlyZWN0aW9uB2NvbXBhc3MDY3VwBXRyYXNoA2RvYwRkb2NzDWRvYy1sYW5kc2NhcGUIZG9jLXRleHQMZG9jLXRleHQtaW52CW5ld3NwYXBlcglib29rLW9wZW4EYm9vawZmb2xkZXIHYXJjaGl2ZQNib3gDcnNzBXBob25lA2NvZwV0b29scwVzaGFyZQlzaGFyZWFibGUGYmFza2V0A2JhZwhjYWxlbmRhcgVsb2dpbgZsb2dvdXQDbWljBG11dGUFc291bmQGdm9sdW1lBWNsb2NrCWhvdXJnbGFzcwRsYW1wCmxpZ2h0LWRvd24IbGlnaHQtdXAGYWRqdXN0BWJsb2NrC3Jlc2l6ZS1mdWxsDHJlc2l6ZS1zbWFsbAVwb3B1cAdwdWJsaXNoBndpbmRvdwthcnJvdy1jb21ibwxkb3duLWNpcmNsZWQMbGVmdC1jaXJjbGVkDXJpZ2h0LWNpcmNsZWQKdXAtY2lyY2xlZAlkb3duLW9wZW4JbGVmdC1vcGVuCnJpZ2h0LW9wZW4HdXAtb3Blbg5kb3duLW9wZW4tbWluaQ5sZWZ0LW9wZW4tbWluaQ9yaWdodC1vcGVuLW1pbmkMdXAtb3Blbi1taW5pDWRvd24tb3Blbi1iaWcNbGVmdC1vcGVuLWJpZw5yaWdodC1vcGVuLWJpZwt1cC1vcGVuLWJpZwRkb3duBGxlZnQFcmlnaHQCdXAIZG93bi1kaXIIbGVmdC1kaXIJcmlnaHQtZGlyBnVwLWRpcglkb3duLWJvbGQJbGVmdC1ib2xkCnJpZ2h0LWJvbGQHdXAtYm9sZAlkb3duLXRoaW4JbGVmdC10aGluCnJpZ2h0LXRoaW4HdXAtdGhpbgNjY3cCY3cKYXJyb3dzLWNjdwpsZXZlbC1kb3duCGxldmVsLXVwB3NodWZmbGUEbG9vcAZzd2l0Y2gEcGxheQRzdG9wBXBhdXNlBnJlY29yZAZ0by1lbmQIdG8tc3RhcnQMZmFzdC1mb3J3YXJkDWZhc3QtYmFja3dhcmQKcHJvZ3Jlc3MtMApwcm9ncmVzcy0xCnByb2dyZXNzLTIKcHJvZ3Jlc3MtMwZ0YXJnZXQEbGlzdAhsaXN0LWFkZAdiYXR0ZXJ5DGJhY2staW4tdGltZQdtb25pdG9yBm1vYmlsZQJjZAVpbmJveAdpbnN0YWxsBWdsb2JlBWNsb3VkDWNsb3VkLXRodW5kZXIFZmxhc2gEbW9vbgZmbGlnaHQLcGFwZXItcGxhbmUEbGVhZghsaWZlYnVveQVtb3VzZQlicmllZmNhc2UIc3VpdGNhc2UDZG90BWRvdC0yBWRvdC0zBWJydXNoCGluZmluaXR5BWVyYXNlCWNoYXJ0LXBpZQpjaGFydC1saW5lCWNoYXJ0LWJhcgpjaGFydC1hcmVhBHRhcGUOZ3JhZHVhdGlvbi1jYXAIbGFuZ3VhZ2UGdGlja2V0BXdhdGVyB2Ryb3BsZXQDYWlyC2NyZWRpdC1jYXJkBmZsb3BweQljbGlwYm9hcmQJbWVnYXBob25lCGRhdGFiYXNlBWRyaXZlBmJ1Y2tldAt0aGVybW9tZXRlcgNrZXkMZmxvdy1jYXNjYWRlC2Zsb3ctYnJhbmNoCWZsb3ctdHJlZQlmbG93LWxpbmUNZmxvdy1wYXJhbGxlbAZyb2NrZXQFZ2F1Z2UAAAAAAAABAAH//wAPAAAAAAAAAAAAAAAAAAAAAAAYABgAGAAYA2D/WgNg/1qwACwgsABVWEVZICBLuAAOUUuwBlNaWLA0G7AoWWBmIIpVWLACJWG5CAAIAGNjI2IbISGwAFmwAEMjRLIAAQBDYEItsAEssCBgZi2wAiwgZCCwwFCwBCZasigBCkNFY0VSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQpDRWNFYWSwKFBYIbEBCkNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ABK1lZI7AAUFhlWVktsAMsIEUgsAQlYWQgsAVDUFiwBSNCsAYjQhshIVmwAWAtsAQsIyEjISBksQViQiCwBiNCsQEKQ0VjsQEKQ7ABYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZISCwQFNYsAErGyGwQFkjsABQWGVZLbAFLLAHQyuyAAIAQ2BCLbAGLLAHI0IjILAAI0JhsAJiZrABY7ABYLAFKi2wBywgIEUgsAtDY7gEAGIgsABQWLBAYFlmsAFjYESwAWAtsAgssgcLAENFQiohsgABAENgQi2wCSywAEMjRLIAAQBDYEItsAosICBFILABKyOwAEOwBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAssICBFILABKyOwAEOwBCVgIEWKI2EgZLAkUFiwABuwQFkjsABQWGVZsAMlI2FERLABYC2wDCwgsAAjQrILCgNFWCEbIyFZKiEtsA0ssQICRbBkYUQtsA4ssAFgICCwDENKsABQWCCwDCNCWbANQ0qwAFJYILANI0JZLbAPLCCwEGJmsAFjILgEAGOKI2GwDkNgIIpgILAOI0IjLbAQLEtUWLEEZERZJLANZSN4LbARLEtRWEtTWLEEZERZGyFZJLATZSN4LbASLLEAD0NVWLEPD0OwAWFCsA8rWbAAQ7ACJUKxDAIlQrENAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAOKiEjsAFhIIojYbAOKiEbsQEAQ2CwAiVCsAIlYbAOKiFZsAxDR7ANQ0dgsAJiILAAUFiwQGBZZrABYyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wEywAsQACRVRYsA8jQiBFsAsjQrAKI7ABYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wFCyxABMrLbAVLLEBEystsBYssQITKy2wFyyxAxMrLbAYLLEEEystsBkssQUTKy2wGiyxBhMrLbAbLLEHEystsBwssQgTKy2wHSyxCRMrLbAeLACwDSuxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAfLLEAHistsCAssQEeKy2wISyxAh4rLbAiLLEDHistsCMssQQeKy2wJCyxBR4rLbAlLLEGHistsCYssQceKy2wJyyxCB4rLbAoLLEJHistsCksIDywAWAtsCosIGCwEGAgQyOwAWBDsAIlYbABYLApKiEtsCsssCorsCoqLbAsLCAgRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOCMgilVYIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgbIVktsC0sALEAAkVUWLABFrAsKrABFTAbIlktsC4sALANK7EAAkVUWLABFrAsKrABFTAbIlktsC8sIDWwAWAtsDAsALABRWO4BABiILAAUFiwQGBZZrABY7ABK7ALQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixLwEVKi2wMSwgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhOC2wMiwuFzwtsDMsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYbABQ2M4LbA0LLECABYlIC4gR7AAI0KwAiVJiopHI0cjYSBYYhshWbABI0KyMwEBFRQqLbA1LLAAFrAEJbAEJUcjRyNhsAlDK2WKLiMgIDyKOC2wNiywABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyCwCEMgiiNHI0cjYSNGYLAEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBENgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA3LLAAFiAgILAFJiAuRyNHI2EjPDgtsDgssAAWILAII0IgICBGI0ewASsjYTgtsDkssAAWsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA6LLAAFiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wOywjIC5GsAIlRlJYIDxZLrErARQrLbA8LCMgLkawAiVGUFggPFkusSsBFCstsD0sIyAuRrACJUZSWCA8WSMgLkawAiVGUFggPFkusSsBFCstsD4ssDUrIyAuRrACJUZSWCA8WS6xKwEUKy2wPyywNiuKICA8sAQjQoo4IyAuRrACJUZSWCA8WS6xKwEUK7AEQy6wKystsEAssAAWsAQlsAQmIC5HI0cjYbAJQysjIDwgLiM4sSsBFCstsEEssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyBHsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxKwEUKy2wQiywNSsusSsBFCstsEMssDYrISMgIDywBCNCIzixKwEUK7AEQy6wKystsEQssAAVIEewACNCsgABARUUEy6wMSotsEUssAAVIEewACNCsgABARUUEy6wMSotsEYssQABFBOwMiotsEcssDQqLbBILLAAFkUjIC4gRoojYTixKwEUKy2wSSywCCNCsEgrLbBKLLIAAEErLbBLLLIAAUErLbBMLLIBAEErLbBNLLIBAUErLbBOLLIAAEIrLbBPLLIAAUIrLbBQLLIBAEIrLbBRLLIBAUIrLbBSLLIAAD4rLbBTLLIAAT4rLbBULLIBAD4rLbBVLLIBAT4rLbBWLLIAAEArLbBXLLIAAUArLbBYLLIBAEArLbBZLLIBAUArLbBaLLIAAEMrLbBbLLIAAUMrLbBcLLIBAEMrLbBdLLIBAUMrLbBeLLIAAD8rLbBfLLIAAT8rLbBgLLIBAD8rLbBhLLIBAT8rLbBiLLA3Ky6xKwEUKy2wYyywNyuwOystsGQssDcrsDwrLbBlLLAAFrA3K7A9Ky2wZiywOCsusSsBFCstsGcssDgrsDsrLbBoLLA4K7A8Ky2waSywOCuwPSstsGossDkrLrErARQrLbBrLLA5K7A7Ky2wbCywOSuwPCstsG0ssDkrsD0rLbBuLLA6Ky6xKwEUKy2wbyywOiuwOystsHAssDorsDwrLbBxLLA6K7A9Ky2wciyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sAEVMC0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAVCsgABACqxAAVCswoCAQgqsQAFQrMOAAEIKrEABkK6AsAAAQAJKrEAB0K6AEAAAQAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmzDAIBDCq4Af+FsASNsQIARAAA");\n  src: url("data:application/vnd.ms-fontobject;base64,eMAAANC/AAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAApv+ibQAAAAAAAAAAAAAAAAAAAAAAABAAZgBvAG4AdABlAGwAbABvAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGYAbwBuAHQAZQBsAGwAbwAAAAAAAAEAAAAPAIAAAwBwR1NVQrD+s+0AAAD8AAAAQk9TLzI+MEmlAAABQAAAAFZjbWFwRVKvZgAAAZgAAA1aY3Z0IAbx/uQAALO4AAAAIGZwZ22KkZBZAACz2AAAC3BnYXNwAAAAEAAAs7AAAAAIZ2x5ZrLdNoQAAA70AACTdmhlYWQJpdtdAACibAAAADZoaGVhBzEEFQAAoqQAAAAkaG10eK8A/nMAAKLIAAADZGxvY2FXyX7XAACmLAAAAbRtYXhwAmIMPQAAp+AAAAAgbmFtZcydHB4AAKgAAAACzXBvc3RiqRPEAACq0AAACN1wcmVw5UErvAAAv0gAAACGAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQMqAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADo3gNS/2oAWgNgAKYAAAABAAAAAAAAAAAABQAAAAMAAAAsAAAABAAAAyoAAQAAAAACJAADAAEAAAAsAAMACgAAAyoABAH4AAAADgAIAAIABugA6KPopuis6MDo3v//AADoAOgD6KXoqeiu6ML//wAAAAAAAAAAAAAAAAABAA4ADgFOAVABVgF6AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAACjAAAAAAAAAA2AAA6AAAAOgAAAAAAQAA6AMAAOgDAAAAAgAA6AQAAOgEAAAAAwAA6AUAAOgFAAAABAAA6AYAAOgGAAAABQAA6AcAAOgHAAAABgAA6AgAAOgIAAAABwAA6AkAAOgJAAAACAAA6AoAAOgKAAAACQAA6AsAAOgLAAAACgAA6AwAAOgMAAAACwAA6A0AAOgNAAAADAAA6A4AAOgOAAAADQAA6A8AAOgPAAAADgAA6BAAAOgQAAAADwAA6BEAAOgRAAAAEAAA6BIAAOgSAAAAEQAA6BMAAOgTAAAAEgAA6BQAAOgUAAAAEwAA6BUAAOgVAAAAFAAA6BYAAOgWAAAAFQAA6BcAAOgXAAAAFgAA6BgAAOgYAAAAFwAA6BkAAOgZAAAAGAAA6BoAAOgaAAAAGQAA6BsAAOgbAAAAGgAA6BwAAOgcAAAAGwAA6B0AAOgdAAAAHAAA6B4AAOgeAAAAHQAA6B8AAOgfAAAAHgAA6CAAAOggAAAAHwAA6CEAAOghAAAAIAAA6CIAAOgiAAAAIQAA6CMAAOgjAAAAIgAA6CQAAOgkAAAAIwAA6CUAAOglAAAAJAAA6CYAAOgmAAAAJQAA6CcAAOgnAAAAJgAA6CgAAOgoAAAAJwAA6CkAAOgpAAAAKAAA6CoAAOgqAAAAKQAA6CsAAOgrAAAAKgAA6CwAAOgsAAAAKwAA6C0AAOgtAAAALAAA6C4AAOguAAAALQAA6C8AAOgvAAAALgAA6DAAAOgwAAAALwAA6DEAAOgxAAAAMAAA6DIAAOgyAAAAMQAA6DMAAOgzAAAAMgAA6DQAAOg0AAAAMwAA6DUAAOg1AAAANAAA6DYAAOg2AAAANQAA6DcAAOg3AAAANgAA6DgAAOg4AAAANwAA6DkAAOg5AAAAOAAA6DoAAOg6AAAAOQAA6DsAAOg7AAAAOgAA6DwAAOg8AAAAOwAA6D0AAOg9AAAAPAAA6D4AAOg+AAAAPQAA6D8AAOg/AAAAPgAA6EAAAOhAAAAAPwAA6EEAAOhBAAAAQAAA6EIAAOhCAAAAQQAA6EMAAOhDAAAAQgAA6EQAAOhEAAAAQwAA6EUAAOhFAAAARAAA6EYAAOhGAAAARQAA6EcAAOhHAAAARgAA6EgAAOhIAAAARwAA6EkAAOhJAAAASAAA6EoAAOhKAAAASQAA6EsAAOhLAAAASgAA6EwAAOhMAAAASwAA6E0AAOhNAAAATAAA6E4AAOhOAAAATQAA6E8AAOhPAAAATgAA6FAAAOhQAAAATwAA6FEAAOhRAAAAUAAA6FIAAOhSAAAAUQAA6FMAAOhTAAAAUgAA6FQAAOhUAAAAUwAA6FUAAOhVAAAAVAAA6FYAAOhWAAAAVQAA6FcAAOhXAAAAVgAA6FgAAOhYAAAAVwAA6FkAAOhZAAAAWAAA6FoAAOhaAAAAWQAA6FsAAOhbAAAAWgAA6FwAAOhcAAAAWwAA6F0AAOhdAAAAXAAA6F4AAOheAAAAXQAA6F8AAOhfAAAAXgAA6GAAAOhgAAAAXwAA6GEAAOhhAAAAYAAA6GIAAOhiAAAAYQAA6GMAAOhjAAAAYgAA6GQAAOhkAAAAYwAA6GUAAOhlAAAAZAAA6GYAAOhmAAAAZQAA6GcAAOhnAAAAZgAA6GgAAOhoAAAAZwAA6GkAAOhpAAAAaAAA6GoAAOhqAAAAaQAA6GsAAOhrAAAAagAA6GwAAOhsAAAAawAA6G0AAOhtAAAAbAAA6G4AAOhuAAAAbQAA6G8AAOhvAAAAbgAA6HAAAOhwAAAAbwAA6HEAAOhxAAAAcAAA6HIAAOhyAAAAcQAA6HMAAOhzAAAAcgAA6HQAAOh0AAAAcwAA6HUAAOh1AAAAdAAA6HYAAOh2AAAAdQAA6HcAAOh3AAAAdgAA6HgAAOh4AAAAdwAA6HkAAOh5AAAAeAAA6HoAAOh6AAAAeQAA6HsAAOh7AAAAegAA6HwAAOh8AAAAewAA6H0AAOh9AAAAfAAA6H4AAOh+AAAAfQAA6H8AAOh/AAAAfgAA6IAAAOiAAAAAfwAA6IEAAOiBAAAAgAAA6IIAAOiCAAAAgQAA6IMAAOiDAAAAggAA6IQAAOiEAAAAgwAA6IUAAOiFAAAAhAAA6IYAAOiGAAAAhQAA6IcAAOiHAAAAhgAA6IgAAOiIAAAAhwAA6IkAAOiJAAAAiAAA6IoAAOiKAAAAiQAA6IsAAOiLAAAAigAA6IwAAOiMAAAAiwAA6I0AAOiNAAAAjAAA6I4AAOiOAAAAjQAA6I8AAOiPAAAAjgAA6JAAAOiQAAAAjwAA6JEAAOiRAAAAkAAA6JIAAOiSAAAAkQAA6JMAAOiTAAAAkgAA6JQAAOiUAAAAkwAA6JUAAOiVAAAAlAAA6JYAAOiWAAAAlQAA6JcAAOiXAAAAlgAA6JgAAOiYAAAAlwAA6JkAAOiZAAAAmAAA6JoAAOiaAAAAmQAA6JsAAOibAAAAmgAA6JwAAOicAAAAmwAA6J0AAOidAAAAnAAA6J4AAOieAAAAnQAA6J8AAOifAAAAngAA6KAAAOigAAAAnwAA6KEAAOihAAAAoAAA6KIAAOiiAAAAoQAA6KMAAOijAAAAogAA6KUAAOilAAAAowAA6KYAAOimAAAApAAA6KkAAOipAAAApQAA6KoAAOiqAAAApgAA6KsAAOirAAAApwAA6KwAAOisAAAAqAAA6K4AAOiuAAAAqQAA6K8AAOivAAAAqgAA6LAAAOiwAAAAqwAA6LEAAOixAAAArAAA6LIAAOiyAAAArQAA6LMAAOizAAAArgAA6LQAAOi0AAAArwAA6LUAAOi1AAAAsAAA6LYAAOi2AAAAsQAA6LcAAOi3AAAAsgAA6LgAAOi4AAAAswAA6LkAAOi5AAAAtAAA6LoAAOi6AAAAtQAA6LsAAOi7AAAAtgAA6LwAAOi8AAAAtwAA6L0AAOi9AAAAuAAA6L4AAOi+AAAAuQAA6L8AAOi/AAAAugAA6MAAAOjAAAAAuwAA6MIAAOjCAAAAvAAA6MMAAOjDAAAAvQAA6MQAAOjEAAAAvgAA6MUAAOjFAAAAvwAA6MYAAOjGAAAAwAAA6McAAOjHAAAAwQAA6MgAAOjIAAAAwgAA6MkAAOjJAAAAwwAA6MoAAOjKAAAAxAAA6MsAAOjLAAAAxQAA6MwAAOjMAAAAxgAA6M0AAOjNAAAAxwAA6M4AAOjOAAAAyAAA6M8AAOjPAAAAyQAA6NAAAOjQAAAAygAA6NEAAOjRAAAAywAA6NIAAOjSAAAAzAAA6NMAAOjTAAAAzQAA6NQAAOjUAAAAzgAA6NUAAOjVAAAAzwAA6NYAAOjWAAAA0AAA6NcAAOjXAAAA0QAA6NgAAOjYAAAA0gAA6NkAAOjZAAAA0wAA6NoAAOjaAAAA1AAA6NsAAOjbAAAA1QAA6NwAAOjcAAAA1gAA6N0AAOjdAAAA1wAA6N4AAOjeAAAA2AAAAAL/9//iA9sDEgAXACAAJkAjAAIBAm8DAQEAAAFUAwEBAQBYAAABAEwZGB0cGCAZIC8EBRUrAR4BBgcGJgYHBh4BBw4CIyImNz4BNyQDMjY0JiIGFBYDWUg6EhoQTFQmHhIyAgJEuHy60goIwHgBIkgeLCw+LCwCbjB8VAYEHAgqLjpIDhpKSsqQduoiVP2KLEAqKkAsAAAAAgAA/8IDIgLqABEAGgAsQCkRAQIDBgEAAgJHAAEAAwIBA2AAAgAAAlQAAgIAWAAAAgBMExcTJwQFGCslFg8BBi8BBiMiJhA2IBYVFAclFBYyNjQmIgYDBB4YLiQgvkpSgL60AQDALv4YiLB+iLB+TiIcLiAgviq+AQC2voBYSqpYiH6yhn4AAAP/+f+WA5MDMAAUABwAKQAKtyYgGRYTCQMtKwEeAQ8BDgEnAQYuAjcBJjY/ATYWARY2JyYOAgEeAjYuBAYeAQMnPi4chhBcMv5oEk5IGhIBmAYUEIgYiP5+IF4gDjAoBgFeHkwwBgwoPEguCAooAsI+iBiGEBQG/mgSGEpMEgGYMlwQiBww/iogXCQOCCguARoeKAoILko8KAwIMEwAAAAC//4AAAOQAoAAEQAjACRAIQAAAQBvAAEDAW8AAwICA1QAAwMCWAACAwJMFzkXMwQFGCsTJjc2MyEyBwYHBg8BBiIvASYFNhURFAYjISImNRE0FwUWMjceIAQCGANOJhIIEA6ythA6ErayA0QUIhD84BAiFAGAEjgSAkoSFg4gDggGYGIKCmJgXgoU/pAQICAQAXAUCsgKCgAAAAABAAAAAANcAr4ADwASQA8MBAIARAEBAABmFBkCBRYrARYUBwkBJjQ3NjIfATc2MgMWRkb+mP6YRkY+skA4Oj6wAoRAuEL+tgFKQrhAOjo0NDoAAAACAAAAAANcArwADwAhACRAISEYDAQEAkQBAQACAgBUAQEAAAJYAwECAAJMJCUUGQQFGCsBFhQHCQEmNDc2Mh8BNzYyEzY0JyYjIg8BJyYjIgcGFBcBAxZGRv6Y/phGRkCwPjo4QLAKKiYmQDQ0aGowNkAoJiwBMgKCQLhA/rYBSkC4QDo6NDQ6/sIogiImMFxcMCYkgib+4gAAAAABAAD/pgNwAxYACQAVQBIHBgUEAwUARAEBAABmFhECBRYrARMhBRMlBRMlIQG4eAFA/vpe/vD+8F7++gFAAxb+sMT+pNDQAVzEAAAAAgAA/6YDcAMWAAkAEwA3QDQPCAIARRMSDAsFBAMCAQkCRAQBAgACAgBSBAECAAACVgMBAgACSgAAERAODQAJAAkWBQUVKwEFEyUFEyUhGwEHFyc3BycHJxcHA3D++l7+8P7wXv76AUB4eHiWPpCwODawjj4BxsT+pNDQAVzEAVD+sO58snIEysoEcrIAAAAAAQAA/5wDrAMgACoAG0AYIB4WEgQAAQFHAAEAAW8AAABmGxoTAgUVKyUWHQEhNTQ3PgE1NCYnLgMnNDY/ASYnJjYyFg8BFhUOAwcOARUUFgLgzPxUzF5ELAoCDg4OAgoEBAgEBFrgXAYMEgIODg4CCC5GgEgyamoySCJGPBY2LgwMBB4cEBQCBDImNnR0NlgIIhweBAwMMDQWPEYAAgAA/6YD6AMWACcATgAoQCVGRDw4Fw8FBwABAUcAAwEDbwABAAFvAgEAAGZBQCwrFBMQBAUVKwUjNTQmJzY1NCYnLgEnNDcmJyY2MhYPARYVDgEHDgEVFBYXFhceARclFh0BITU0Nz4BNTQmJy4BJzQ2PwEmJyY2MhYPARYVDgEHDgEVFBYD6OA8fCgaBgIYAgwGAgQ2iDgECAwCGAIGGio4cBIGBgL+GLb9SlRMOCYGAiAEBgQEBgQESrRKBAoOBCACBiY4WpY2Nj4eNhAiIggQIhgGIhomUFAmPAYYIhAIIiIQKjAYLiIIajDWTi6KuCwiIEA4FDAsChgsDhIEAi4kMmpqMlIIHiwYCiwwFDhAAAAAAgAA/5wD6AMgACgANABLQEgeHBQQBAIHBQEABAJHAAEHAW8ABwIHbwAEAwADBABtAAAAbgYBAgMDAlIGAQICA1YFAQMCA0o0MzIxMC8uLSwrKikZGBMIBRUrJRYdASE1Njc+ATU0JicuASc0Nj8BJicmNjIWDwEWFQ4DBw4BFRQWJTMVIxUjNSM1MzUzAmy0/OAkLl5GLggCKgQKBAQIBAZc5FwEDhICDg4OAgouSAFElpZklpZkgEA6asoODCJGPBY0MAwaMBAUAgQyJjZ0dDZYCCIcHgQMDC42FjxG7mSWlmSWAAAAAAIAAAAAA9QCvAAnACoAVkBTKQEDAgFHKgEBKAEEAkYADQwBAAENAF4LAQEKAQIDAQJeCQEDCAEEBQMEXgcBBQYGBVIHAQUFBlgABgUGTCUiHx4dHBsaGRgREzMRERERERAOBR0rASMVMxUjFTMVIxUzFRQGIyEiJj0BMzUjNTM1IzUzNSM1NDYzITIWFQE3JwPUZGRkZGRkGBD8fBAYZGRkZGRkGBADhBAY/aj6+gJYZGRkZGQ8EBgYEDxkZGRkZDwSFhYS/jSWlgAAAAP/+P+EA+gDQgAOAB4AJgBDQEAlJCMhIAgGBAIBRwIBAEUBAQACAG8FAQIEAm8GAQQDAwRSBgEEBANYAAMEA0wfHxAPHyYfJhgVDx4QHSIQBwUWKwEjJwcjIgYdAQMmNyU2FxMyFhURFAYjISImNRE0NjMBNScPAScHFQNYZHzWtDRMbAogAqgkDtAQFhYQ/SwQFhYQApxIpoKKXAIGlpZONKABKCYO+Aoi/owYEP4oEBgYEAHYEBj+PKKgPISq1lYAAAAEAAD/zgPoAu4ACAAkAC0ANwBmQGMKAQAJCAkACG0NAQgBCQgBawABBgkBBmsABQAHCQUHYAQLAgIACQACCWAMAQYDAwZUDAEGBgNYAAMGA0wvLiYlCgkBADQyLjcvNyopJS0mLSAdGhcSDwkkCiMFBAAIAQgOBRQrATIWFAYiJjQ2JTIWFREUBiMhIiY1ETQ2OwEyPwE2MyEyHwEWMwEyNjQmIgYUFgEyNjQmIyIVFBYB9EBWWHxYWAHOKjo6KvzgKDw8KHgcDB4KHgFUHgoeDBz+6GiSktCSkgHWDhQUDiQWAcJYfFhYfFiWOir+Pig8PCgBwio6HlwcHFwe/dqS0JKS0JIBfBYcFCIQFAAAAAQAAAAAAlgCigALABcAIwAvAElARgkCCAMAAwEBBAABYAsGCgMEBQUEVAsGCgMEBAVYBwEFBAVMJSQZGA0MAQArKCQvJS4fHBgjGSITEAwXDRYHBAALAQoMBRQrEzIdARQrASI9ATQzITIdARQrASI9ATQzATIdARQrASI9ATQzITIdARQrASI9ATQzqlBQWlBQAbhQUFpQUP78UFBaUFABuFBQWlBQAopQWlBQWlBQWlBQWlD+olBaUFBaUFBaUFBaUAADAAAAAAK8AlgACwAXACMAQkA/AAMHAQIAAwJgBgEAAAEEAAFgCAEEBQUEVAgBBAQFWAAFBAVMGRgNDAEAHxwYIxkiExAMFw0WBwQACwEKCQUUKwEyFhQGIyEiJjQ2MzUiJjQ2MyEyFhQGIxEyFhQGIyEiJjQ2MwKKFhweFP2oFB4cFhQeHBYCWBYcHhQWHB4U/agUHhwWAZAeKB4eKB5kHigeHige/tQeKB4eKB4AAAH//QAAAp8CwAATABVAEgkBAEUBAQAAZgEAABMBEgIFFCszIi8BJj4BFh8BAT4BFx4BBwEGI/kiFrQQCCw6EnYBKBA2GhgMDv6iFCQc7Bg4JAgYmgHaGAwOEDYa/dAgAAEAAAAAAdYCYgAdAB5AGx0WDgYEAAIBRwMBAgACbwEBAABmFBoUEwQFGCslFhQGIi8BBwYiJyY0PwEnJjQ3NjIfATc2MhYUDwEBxBIkMhKEhBIyEhAQiooQEBIyEoSEEjIkEorCEjIiEJiYEBASMhKcnhIyEhAQmJgQIjISngAAAgAA/7oDSAMCAAgAFAAoQCUUExIREA8ODQwLCgsBAAFHAgEAAQBvAAEBZgEABQQACAEIAwUUKwEyFhAGICYQNgE3JwcnBxcHFzcXNwGkrvb2/qT29gEEmlaamFiamliYmlYDAvb+pPb2AVz2/lyaVpiYVpqYVpiYVgAAAAIAAP/OAyAC7gAPABsAKEAlGxoZGBcWFRQTEhELAQABRwIBAAEAbwABAWYBAAkGAA8BDgMFFCsBMhYVERQGIyEiJjURNDYzATcnNycHJwcXBxc3ArwqOjoq/agoPDwoAcZWmppWmphYmppYmALuOir9qCg8PCgCWCo6/YJWmJpWmJhWmphWmAABAAAAAAJEAoAAEwA1QDIABQAFbwACAQJwBAYCAAEBAFQEBgIAAAFYAwEBAAFMAQAREA4MCwkHBgQCABMBEwcFFCsBMhQrARUUIj0BIyI0OwE1NDIdAQImHh7SZNIeHtJkAZBk0h4e0mTSHh7SAAAAAgAA/7oDSAMCAAgAFABEQEEFAQMEAgQDAm0GAQIHBAIHawgBAAAEAwAEXgAHAQEHUgAHBwFYAAEHAUwBABQTEhEQDw4NDAsKCQUEAAgBCAkFFCsBMhYQBiAmEDYTMzUjNSMVIxUzFTMBpK729v6k9vbiyMhmyspmAwL2/qT29gFc9v4qZsrKZsoAAAACAAD/zgMgAu4ADwAbAElARgQBAgMFAwIFbQkHAgUGAwUGawgBAAADAgADXgAGAQEGUgAGBgFYAAEGAUwQEAEAEBsQGxoZGBcWFRQTEhEJBgAPAQ4KBRQrATIWFREUBiMhIiY1ETQ2MwE1IzUjFSMVMxUzNQK8Kjo6Kv2oKDw8KAImyGTIyGQC7joq/agoPDwoAlgqOv4+ZMjIZMjIAAAAAQAAAAACRAGQAAcAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFAgAHAQYDBRQrATIUIyEiNDMCJh4e/fgeHgGQZGQAAAACAAD/ugNIAwIACAAMACZAIwQBAAIAbwACAwJvAAMBA28AAQFmAQAMCwoJBQQACAEIBQUUKwEyFhAGICYQNgEhFSEBpK729v6k9vYBqv4IAfgDAvb+pPb2AVz2/pBmAAACAAD/zgMgAu4ADwATACtAKAQBAAIAbwACAwJvBQEDAQNvAAEBZhAQAQAQExATEhEJBgAPAQ4GBRQrATIWFREUBiMhIiY1ETQ2MwE1IRUCvCo6Oir9qCg8PCgCJv4MAu46Kv2oKDw8KAJYKjr+PmRkAAAAAAIAAP+cAkQDIAAoADEAQUA+CwEAAgFHAAIBAAECAG0AAAQBAARrAAMAAQIDAWAGAQQFBQRUBgEEBAVYAAUEBUwqKS4tKTEqMSMTLjwHBRgrARYVFAcGDwEGBwYHFCsBIjU2Nz4BPwE2NzY1NCcmIyIHBhUjNjc2MzIDMhYOAS4BPgEB7lYqDEwuKAgGAhCAEAQYEEAYGBYMHBocQEQaHKYGbEZggoQsOgQ8WDoEPALkPnpAPBQ8HiIaEBwODGIaFjQQDhASLBooJiQsKjKiRir9SDxaNgI6XDYAAAAD//z/kAOaAywACAAWAD8AWEBVODYCAwUTAQIDAkcABgQFBAYFbQAFAwQFA2sAAwIEAwJrBwEAAAQGAARgCAECAQECVAgBAgIBWAABAgFMCgkBACcmIiAdGxEOCRYKFgUEAAgBCAkFFCsBNgASAAQAAgATMjY1NiYrASIGBxQWFxM2NTQmIyIHBgcVMzU0NzYyFxYVFAcGDwEGDwEGBwYHFTM1NDc2PwE2Aca+ARAG/vb+hP7uBgEMvB4mAiYeAhwmAiYcqBpqUkAoRARuEBBODBAQCAwWCgoVCwYOBGwEBhYcLgMqAv74/oT+7gYBCgF8ARL9HiYcHiYkHB4mAgFIIixOTBoqaAQEGhwYFBQYEhYMCA8HCBEJCBQ6CAQMEBQQEiIAAgAA/2oBzANSAAoAIAC1QAkeHRMSBAUDAUdLsB9QWEAoAAQBAwEEA20AAwUBAwVrAAUCAQUCawABAQBYBgEAAAxIBwECAg0CSRtLsCRQWEAnAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuAAEBAFgGAQAADAFJG0AtAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuBgEAAQEAVAYBAAABWAABAAFMWVlAFwwLAQAcGhcVEA8LIAwgBwUACgEKCAUUKwEyFhUUBiMiJj4BAyI/ATYiBgcnPgEzMgcDBjMyNxcOAQFgMDROODA0AkaQZC48DhpUHhpaxjROKkYQFixKHlS2A1I2KjJMNFxO/Biy/jgkFCxOYKL+9kA8KFZcAAAAAAP//P+QA5oDLAAIABMAKQBiQF8MAQMCIyIYFwQFBwJHAAcGBQYHBW0ABQQGBQRrCAEACQECAwACYAADAAYHAwZgCgEEAQEEVAoBBAQBWAABBAFMFRQKCQEAJiQgHhsZFCkVKRAOCRMKEwUEAAgBCAsFFCsBNgASAAQAAgAXIgYVBhYzMjY1NAMyNjcnBiMiPwE2IyIGBxc2MzIPAQYBxr4BEAb+9v6E/u4GAQzyKi4CIiAmLrQebDQSMBgOCioaMB52OBA0FgwMJBoDKgL++P6E/u4GAQoBfAESljAaHCAsIDr9rjQ0GCQmoGA6LhoiIphoAAABAAAAAANSAooAEAA5QDYOAQMADQECAwJHDwEARQQBAAADAgADXgACAQECUgACAgFYAAECAUwBAAwLCgkIBgAQARAFBRQrATIWFREUBiMhNSE1IRUnNxUC7ig8PCj9TgKK/gzS0gIcOir+3ig8jNJutLRuAAH//P/MA4gC8gAaACFAHgAFAAVvBAEAAgBvAAIBAm8DAQEBZhQjIREkIgYFGisBFgYrAREUDgErAREjESMiJjURIyImNwE2MhcDeBAKFlQCDhDMzMIcDlQWChABkBAsEAFQEBb+yg4ODAE2/soUFAE2FhABkhAQAAIAAP/OAyAC8gAcADwAPEA5AAYFBm8ABQQFbwAAAwIDAAJtAAQAAwAEA2AAAgEBAlQAAgIBWAABAgFMPDs2NSkoJCIbGhURBwUWKyU2MhcWDwEGIiY0PwE+ARcWFAcGJyYPAQYUFjI3ARYUDwEGIyInJjQ2MhcWPwE2NCcuAQ8BBiInJj8BNhYBJg4oECAgKjiacDiURpQ2EBAkIjJSlBo0ShoB7Dg4nkpMPjIOHCoOMkieHBwYQBwyECgOIiIyNpJ0Dg4iJCg4cJo4lEQSNBAoECAgMFKSGkwyGgJmOJo4nkgyDigeDjBInBxKGBoKGjIODiIkMjYGAAAAAAH//v90A7gDYAAxAB9AHAABAAABVAABAQBYAgEAAQBMAQAqKQAxATEDBRQrFyInLgE3ATYXHgEXFgcBDgEnJjY3ATYWBwEGFxY3NjcBNiYnJgcBBh4CNwE2FgcBBvRmREgEVgHwUF4sRgwaUP4mKGAgHgYsAUwYNBr+tCwYDAwYFgHaMiA8Njb+EkIEZIZKAfAYNBr+EFKMSEbAXgHwUBoMRixgUP4mKAogGGQqAU4aNBj+tCwaCAIEFgHaMnYQDjL+EkyGYgRAAe4YLhr+EFIAAAAAAgAA/7YCvAMIABsAIwA1QDIEAgYDAAUBBQABbQABAW4AAwUFA1QAAwMFWAAFAwVMAQAiIR4dGBcUEgsIABsBGwcFFCsBMhYVERQPAQYjISIvASY1ETQ2OwE1NDYyFh0BJRUzNTQmIgYCgBQoMDwqNv7eOCo8MB4UZGbEZv7UyDZcNgHcJhb+ejASEhAQEhIwAYYWJkZueHhuRlpaWjQ6OgAAAAABAAD/nAK8AyAAIwA7QDgABAMAAwQAbQIGAgABAwABawABAW4ABQMDBVQABQUDWAADBQNMAQAhHxwbGRgWFAwJACMBIwcFFCsBMhYVERQGDwEGIyEiLwEuATURNDYzITU0Ih0BIzU0NjMyHQECgBQoHBQ8NCz+3i40PBQcHhQBkMhkZmLIAcIoFP56FCYGFBAQFAYmFAGGFiaMbm4oFG545ngAAAMAAAAAA+gCdgAUAB0ALABDQEAiAQQFAUcGAQAAAwUAA2AABQAEAgUEYAcBAgEBAlQHAQICAVgAAQIBTBYVAQAqKCUkGhkVHRYdCwoAFAEUCAUUKwEyHgMUDgMiLgM0PgMTMjY0JiIGFBY3Fj4BFxQGIiY0NjMyDgEB9FyqcFYoKFZwqriqcFYoKFZwqlxcgoK4goJcCDoqBEJcQEAuDggQAnYySlA+HDxSSjIySlI8HD5QSjL+En6yfn6yftYIDAoOLD4+Wj4uMAAAAAL//v9aA9QDWgAcAC4AI0AgJx8XAwQBAAFHAAABAQBUAAAAAVgAAQABTCMhFRICBRQrARYGBxcWDwEGBwEGJwMmNjcBNjsBMh8BNicmNzYDNicHBiMiJyY/ASYHDgEXHgEDsCRYVBIQCjAMGP4wKhbSDAYSAdAaHJ4eEhyoNgocINIoBiAIBBIKDBwYMCwcDBQSQgM+arpAGBwanh4Q/rgeIgEwEioMAUgSGiiCnBwMCP4QIDAQBBIeCg4iIhJCHBoMAAABAAD/nAFoAyAACQAXQBQGBQQDAEQBAQAAZgEAAAkBCAIFFCsBMhYVEScHETQzATYWHLS0KAMgHhT8rrS0A1IyAAAAAAIAAP9qAiYDUgAMABYAUrcTEhEFBAUCREuwJFBYQBIEAQIBAnAAAQEAWAMBAAAMAUkbQBgEAQIBAnADAQABAQBUAwEAAAFYAAEAAUxZQBEODQEADRYOFQoIAAwBCwUFFCsBMhYVEScRNCYrATQzBzIWFREnBxE0MwH0FB6WHhRkKCgUHpaWKANSHhT8rrQCbBQeMpYeFPzgtLQDIDIAAAABAAD/tgOIAxIAFgAbQBgLAQABAUcOAQFFAAEAAW8AAABmGBwCBRYrATYWBw4CLgIGBxMjAzc+AR4DNgNqDhAIYIhUPjpEdlBaZLhcWnxIOERaqAJoBg4MipYeGjAgKEL+oALQIkIoIkRKMgoAAAAAAgAA/5wDIAMoABkAKwAeQBsDAQECAW8AAgACbwAAAGYbGiQiGisbKyYEBRUrAR4CFRQCIyIkNRE0PgI/ATY/ATYXFg4BBTIHBhURFBcWIyIuAT0BND4BAkYCcGh6LpD+4B4+LCguMjZVHwowJlD+UA4OMjQKDBo6QkI8AeAGDiIeSP5YVC4BVg4oMiAbHyJCaCYMTHp0Bg4yNv7CMjYKEEo+8j5MEgAAAgAA/5IDIAMgABwALwAeQBsAAAIAbwACAQJvAwEBAWYeHSclHS8eLyYEBRUrNy4CNTQSMzIEFREUDgIPAQYPAQYPAQYnJj4BJSI3NjURNCcmMzIeAR0BFA4C2gJuanwskAEgECIeGykOGyEyNlUfCjAmUAGwDA4wNAoMGjpCJDYq2gYOIh5IAapWLv6qChwgGhMdChIWIkJoJgxMenQGDjI2AT4yNgoQSj7yMEIeDAAC//j/tgPsAwgAHAAjAHe1HgECAQFHS7ALUFhAKQAHBgdvCQgCBgEGbwUBAQIBbwQBAgMDAmMAAwAAA1IAAwMAWQAAAwBNG0AoAAcGB28JCAIGAQZvBQEBAgFvBAECAwJvAAMAAANSAAMDAFkAAAMATVlAER0dHSMdIxETESITERY2CgUcKyUeAQ8BDgEjISImLwEmPwEzBzMyHwEhNzY7ASczJwUlMxEzEQPIEhIGHAQkFvzQFiQEHAoqnmKqsggEKAEsKAgEsqpiMP78/vymvsYKLBKaFBoaFJowGGyCCG5uCILW9PQBAP8AAAL/+P+2A+wDCAAGACMAaUuwC1BYQCgCAQAEAG8IAQQBBG8AAQUBbwcBBQYGBWMABgMDBlIABgYDWQADBgNNG0AnAgEABABvCAEEAQRvAAEFAW8HAQUGBW8ABgMDBlIABgYDWQADBgNNWUAMESITERY3ERERCQUdKwEFIxEjESMBHgEPAQ4BIyEiJi8BJj8BMwczMh8BITc2OwEnMwH0AQSkvqYC2BISBhwEJBb80BYkBBwKKp5iqrIIBCgBLCgIBLKqYgMI9P8AAQD+sgosEpoUGhoUmjAYbIIIbm4IggAAAQAAAAAD6AKkAB0AQUA+CQEFAAFHAAYABm8HAQAFAG8ABQIFbwMBAgEBAlIDAQICAVgEAQECAUwBABoYExEODAsKCAcGBAAdAR0IBRQrATIWFAYrATUzJwczFSMiJjQ2MzIXJjU0NjMyFhc2AvhkjIxkvmqwrmj4SmxqTA4GApxuWowYHAHuiMSIvubmvmiSaAIMGmyYaFIEAAAAAQAAAAADhAKyAA4AJkAjBQEAAQFHBgEBRQQBAEQAAQAAAVQAAQEAWAAAAQBMFBICBRYrJS4BIxUJARUyHgQXA4RW9ND+lgFqWpxqVjQkBgqYWtoBTgFCwDZWaGhWGgAAAgAAAAAD6AKyAAUAEgAtQCoRBAEDAQABRxIFAAMARRAMAwIEAUQAAAEBAFQAAAABWAABAAFMFxYCBRYrAQcXFQkBFzIeAh8BLgEjFQkBAWrU1P6WAWr6aJxKLgQEVqSK/pYBagIsvMSKAU4BQsBkkJAyMppY2gFOAUIAAAEAAAAAA4QCsgAMACdAJAsBAAEBRwoBAUUMAwIARAABAAABVAABAQBYAAABAEwXEAIFFislIgYHPgQzNQkBAhzS9FYEElJuynwBaP6Y/FqYFEKogGrA/r7+sgAAAgAAAAADFAKoABMAJwA/QDwJBAgDAAMAbwcBAwIDbwYBAgEBAlQGAQICAVgFAQECAUwVFAEAJCIeHRwbFCcVJxAOCgkIBwATARMKBRQrEzIXFgcGBwYjNTI3NicmIyImNDYhMhcWBwYHBiM1Mjc2JyYjIiY0NpKSJiZOUJAgInBGNhwQLjxWVgHgkiYmTlCQICJwRjYcEC48VlYCqJKMoqgkCEZsVjwkWHxYkoyiqCQIRmxWPCRYfFgAAAACAAAAAAPoApoADQAZAAi1GRENCQItKwEWFA8BFxYUBwYnCQE2BQkBBicmPwEnJjc2AXwQEPb2EBAeHv7AAUAeAUwBPv7CIB4gIPj4ICAeAnwOJAzg4gwkDh4eASABHh4e/uL+4B4eIB7i4B4gHgAAAgAA/9gD6ALkABUAJABGQEMjAQQCJBkCAQQDBAJHIgEBRQABAAIEAQJeAAUABAMFBGAGAQMAAANSBgEDAwBYAAADAEwAACEgFxYAFQAVFCU1BwUXKyU1NxUUBiMhIiY1ETQ2MyEOAQ8BIxEBIgYHND4FMzUFAQLuZB4U/RIUHhwWASAgNgwKggI4pphUAhAcPFCGUgFM/rQ8OFK8FB4eFAImFhwYMg4M/j4BXFKMCBxUSlxCLpz6/vwAAAACAAD/2AMMAvAACwAZABdAFAQBAEUZFQ0HBABEAAAAZhIRAQUUKwEeAR0BBwEHNwE3NgE3JicuASMnDwEWFxYXAs4gHvz+3u4yASL8Nv5aGAIyFi4MDhYSHBIYDAKoIEAQEPz+4DTwASD8DP04GCwyFhoCGFAQEhgYAAAAAf/g/2ICwANWADIAOEAOEgEAAQFHLSYIBgQFAERLsCFQWEALAAABAHAAAQEMAUkbQAkAAQABbwAAAGZZthkYFxYCBRQrFwYnJjc2NyY3HgI2LgE3PgE3DgEWFzI2NzYWFxYGBw4BBwYXFjcOAgcGFjcOAwc8BhQSAgQuZDAKLCwSEAYcFnQuGBIKEAyQIi6IDgwYHCzMDBAcNno4oGgCBGowHkIqbh6KFAwIGmR+mqIgXEQInq5GLGQULmA8AvACBEIgGG4cLCQGChgwHFBECAYYPBA4OA4IBAAAAAMAAP+2A9QDCAAVACkALQCQS7AJUFhAMgACAQECYwcBBQkICQUIbQMBAQoBAAQBAGELAQQACQUECV4ACAYGCFIACAgGVgAGCAZKG0AxAAIBAm8HAQUJCAkFCG0DAQEKAQAEAQBhCwEEAAkFBAleAAgGBghSAAgIBlYABggGSllAHxcWAQAtLCsqIyEgHx4cFikXKA4MCwoJBwAVARQMBRQrEyI3NjcyPgE7ATUhFTMyHgEzFgcGIxcyFh0BFAYrARchNyMiJj0BNDYzEyEDIUIaBAQIAl5cDCwBfC4MWl4CEgYEEAoUIiIUZCz9CCxiFCQkFJoCMEb+XAIOFgoEIh6Wlh4iCBIKOCYWrhYm+vomFq4WJv5EAUQAAAAAAgAAAAAD6AKKAAsAFwA/QDwJAQdFDgEBRAMBAgYEBgIEbQUBBAAGBABrAAcABgIHBl4AAAEBAFIAAAABWAABAAFMIRESERITIRAIBRwrNyEXISImNREjNxcjBTMHJzMRISchMhYV+gEQgP5AKjpmsK5kAopkrrBm/u6AAcIoPL6MPCgBLsbGysjIAQSMOioADgAAAAAD6AKKAA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwCsQKkcAQAaIA8fCx4HHQgDAgADXiQbDgoGBQIZEAwIBAQFAgReGBENCQQFFhQCEhMFEl4jFyIVIQUTAQETUiMXIhUhBRMTAVgAARMBTEBAODg0NDAwKCggIBgYEBABAEBDQENCQT8+PTw4Ozg7Ojk0NzQ3NjUwMzAzMjEvLi0sKCsoKyopJyYlJCAjICMiIR8eHRwYGxgbGhkXFhUUEBMQExIRCQYADwEOJQUUKwEyFhURFAYjISImNRE0NjMFFTM1FyMVMyUVMzUXIxUzJRUzNRcjFTMlFTM1FyMVMwc1IxUhNSEVITUjFSczNSM3NSMVA6IcKioc/KQcKiocAeBkMmRk/tRkMmRk/tRkMmRk/tRkMmRkMmQCiv4MAopkMmRklsgCiioc/jQeKCgeAcwcKmRkZJZk+mRklmT6ZGSWZPpkZJZklmRkZGRkZJZkMmRkAAEAAAAAAyACvAASAB9AHAkBAUQDAQABAG8CAQEBZgEADAoIBgASAREEBRQrATIWFREUBisBFScjIiY1ETQ2MwK8Kjo6KsjIyCg8PCgCvDoq/qIoPJaWPCgBXio6AAAAAAIAAP+cA+gDIAAUACQAREBBBAEABR4BAQACRwoBAUQHAQQDBG8AAwUDbwYBBQAFbwAAAQEAUgAAAAFYAgEBAAFMFhUgHx0bFSQWIyUiJhAIBRgrJSEyNzMVFAYrAQc1IyImNRE0NjsBJTIWFREUBisBFSchETQ2MwEiAV4CBAQ6KvqWMig8PCi+AmIqOjoqMpb+ojwo8AJcKDyWljwoASwqOvo6Kv7UKDyWlgGQKjoAA//4/5oDMgMeABkAKAAzABlAFjIBAQABRwAAAQBvAAEBZignGBYCBRQrAR4DFxYGBwYkJyY2JyY2Nz4BNzYWNzYWAz4CJy4BDgMXHgE2Nz4BNxcWBgcGJzYCeBAwKi4MFsCcpP72FhRADjgSaBoGGhgsIoSEXFiOOgQIUqbOji4GBFywGggaBAIOPjpgOE4BqiIkCCYkPsY6Oho+NnI2wNhUFjoKCCgCAoj9pCBqTAwWFhRMYkYSDBQMzgIKAgIoVhQkMkQAAAAD//r/tgPHAwgADAAQABQAPEA5AAEEAW8ABAUEbwcBBQACAwUCXgYBAwAAA1IGAQMDAFgAAAMATBERDQ0RFBEUExINEA0QExUyCAUXKwUWBiMhIicmNwE2MhcTNSMVNxEjEQO9ChQU/IQSCg0LAb4ILAgabm5uGBAiEBIQAw4SEv0kZGSuASz+1AAAAAP//f9+A4kDQABOAFIAVgBOQEsvAQQBCAcCAAMCRwABBAFvAAQFBG8GAQMCAAIDAG0AAABuBwEFAgIFUgcBBQUCVgACBQJKU1NPT1NWU1ZVVE9ST1JRUDk4EhEIBRQrJRYGDwEOAR8BFgYvASYGDwEOAS8BJg8BBiY/ATYmLwEuAT8BNjQvASY2PwE+AS8BNDYfARY2PwE2Fh8BHgE/ATYWDwEGFh8BHgEPAQYUFwU1IxU3ESMRA3UUCBhOGCACBAIgFlYWMgouDCIQMiI2ehYUCDYIGBhqGAoUVhQUVhQIGE4YIgIGHhZQGDIMLgwkDDIMLhaIFhAIPAoYGnIaCBRWEhL+1mRkZOoQIgYWBiwaUhgUCiwMEBZYFgIUTjAcRg4QGKQYKAIMBBwQTBAyEEwQIgYWBiwaUhoUCiYKEBZQFgIWVhYODlQOEBiqFiYCDAIcEEwQMhCoaGigAQT+/AAGAAD/zgPoAu4ADwATABcAGwAfADIAcEBtIAEEBQFHDAEAAAIJAAJeCxACCQAIBwkIXg8BBwAGBQcGXg4BBQoBBAMFBF4NAQMBAQNSDQEDAwFYAAEDAUwcHBgYFBQQEAEAKyoiIRwfHB8eHRgbGBsaGRQXFBcWFRATEBMSEQkGAA8BDhEFFCsBMhYVERQGIyEiJjURNDYzAREhESUVIzU3FSM1NxUjNQEXIzQzNjU0JjU0MhUUBhUUFhcDhCo6Oir84Cg8PCgDIPzgAV76+vr6+gJUBPoGVDa0OCoWAu46Kv2oKDw8KAJYKjr9RAJY/ajEWlqWWlqWWlr+wEZGFiwQUDBubjBQEBQgBgAAAgAA/5wD6AMgABsAKgA5QDYGAQAFAG8AAQIBcAADBAIDVAAFAAQCBQRgAAMDAlgAAgMCTAEAKCYlIxgWCwkHBAAbARoHBRQrATIVERQrASI1ESMiJyYvASY0PwE2NzY7ATU0MwUWFA8BBiMGIyEnITIWFwGqFBQuFLAQDAwOeAoKeA4MCBSwFAJiCgp2FgQODv7SKAFWEhQQAyAU/KQUFAG4BgIKUgYUBlIKAgS+FNAGFAZSDAbmCAgAAAACAAD/zgH0Au4ADgAXADBALQYBAUQEAQECAXADAQACAgBUAwEAAAJYAAIAAkwQDwEAFBMPFxAXAA4BDgUFFCsTMhYUAg8BLgQ1NDYTMjY0JiIGFBb6aJJ8QD4KIlZCNpJoOFBQcE5OAu6S0v7uVlQMLoSApkJokv58UHBOTnBQAAUAAP/KA+gC9AAbAB8AIwAnACsAIUAeKyopKCcmJSQjIiEgHx4dHBgNCRMARQAAAGYWAQUVKwEWFREUBwYiLwEHBi8BBwYmNRE0PwE2HwE3NhcBEQcRIREnESERBxEhEScRA9gQEAgQCtjYEhDa2BAiEOoSENjaEBD9/KgBkqgBkqoBkqgCWAoU/bgUCgYGiIgKCoiIChQUAkgUCpIKCoiICgr9rAH6aP4GAfpo/gYB+mj+BgH6aP4GAAAAAgAA/7ADXgMOABMAFgAItRYUEgoCLSsBHgEOAgcGAg8BAyUkNz4DFgcBFwNQCAYKChwKNrpAQjb+hAG6/hQ4FhwSVP7QHAMACBAcGDYWcP6kdnYBfDj2egoeCggGaP7o6gAAAAT//P98A8IDQAALABQAIwAsAEJAPyscAgQDAUcABAMCAwQCbQUBAAADBAADYAYBAgEBAlQGAQICAVgAAQIBTA0MAQAoJxEQDBQNFAcFAAsBCwcFFCsBNgAXFgAHBgAnJgATPgECJgQGEhYnPgQ/AQ4CBw4BBxMGFBYyNzY3BgHaxgEcBAL+7MjG/uICBAEW1JzcBOL+xtoE4EwEEEJYojw8BBBCLCqkPHgWKjoUNCSIAz4C/uzGyP7kBAIBFsbIARz8qALgATzaBOD+xNqcGlCwWEAKChpQsCwqQAoBCBQ4LBY0hiQAAAAC//z/xAKuAvgADwAcADVAMgUBAgMBAwIBbQABAW4EAQADAwBUBAEAAANYAAMAA0wREAEAFxYQHBEcCAcADwEPBgUUKwEyFgcDDgIiLgEnAyY+ARcyPgE0LgEiDgEUHgEBVJjCBkgCQIKQgEICSARQomZIgkJCgpCCQkKCAvhSLv2uDiwoKCwOAlIcOirYHiQYIh4eIhgkHgAAAAADAAD/gAL4A0AACwAfACsAe7UDAQACAUdLsBNQWEAtAAcFBAQHZQAAAgECAAFtAAEBbgADAAUHAwVgBgEEAgIEUgYBBAQCWQACBAJNG0AuAAcFBAUHBG0AAAIBAgABbQABAW4AAwAFBwMFYAYBBAICBFIGAQQEAlkAAgQCTVlACxESMhI4GhURCAUcKxMWIDcDDgIiLgEnAR4BHQEUBiAmPQE0Nj8BNjsBMhcHMy4BKwEiDwEzNzMyegGgejYCQoaUhEQCAbJegOD+yOCAXioWMFw0EgxUXBoSZhYKalRAUgHKRkb+Gg4sKiosDgMSEkoiCjpSUjoKIkoSMBoaoG4gEH5CAAIAAP+cArwDIAAPABMAMUAuBAEAAAIDAAJeBQEDAQEDUgUBAwMBWAABAwFMEBABABATEBMSEQkGAA8BDgYFFCsBMhYVERQGIyEiJjURNDYzAREhEQJYKjo6Kv4MKDw8KAH0/gwDIDoq/UQoPDwoArwqOvzgArz9RAAAAAAD//j/aAPwA1YAFgAaACIACrcdGxoYEwUDLSsBFgcDDgEnJS4BPwEHBicDJjclNhYfASUTJQMBEyUTFg8CA8omCJYEHBD+ahAQBBi0KAqgCiYBxhAcBEL9/JABiJABNoT+1kwKJsQaAeAKJP3UEA4EbgQcDlwwCiQCWiQMegQOEPRa/eJqAhz8sgHsUv7mIgw0ZgAAAgAAAAAD6AK8AA8AEwAiQB8AAAACAwACXgADAQEDUgADAwFYAAEDAUwREzUyBAUYKxE0NjMhMhYVERQGIyEiJjUBIREhPCgDICo6Oir84Cg8A4T84AMgAlgqOjoq/gwoPDwoAfT+DAAFAAD/nAK8AyAAAwATABcAGwAfAGNAYAsBAgAEBwIEXg0BBwAGAAcGXgAACgEBCQABXg4BCQAIBQkIXgwBBQMDBVIMAQUFA1gAAwUDTBwcGBgUFAUEAAAcHxwfHh0YGxgbGhkUFxQXFhUNCgQTBRIAAwADEQ8FFSsTNSEVEzIWFREUBiMhIiY1ETQ2MwERIREBFSE1ARUhNdQBGGwqOjoq/gwoPDwoAfT+DAGG/ugBGP7oATRaWgHsOir9RCg8PCgCvCo6/OACvP1EAlBYWP54WFgAAAQAAP+cArwDIAAPABMAFwAbAFNAUAgBAAkBAwIAA14AAgAGBwIGXgsBBwAEBQcEXgoBBQEBBVIKAQUFAVgAAQUBTBgYFBQQEAEAGBsYGxoZFBcUFxYVEBMQExIRCQYADwEODAUUKwEyFhURFAYjISImNRE0NjMXFSE1ETUhFSU1IRUCWCo6Oir+DCg8PCgoAaT+XAGk/l4DIDoq/UQoPDwoArwqOtBYWP4gWFjEWloACgAA/5wDIAMgAA8AEwAXABsAHwAjACcAKwAvADMAp0CkFAEAAAIIAAJeGQsCCBgBCQcICV4XAQcKAQYNBwZeDhoCDRsPAgwFDQxeEhYCBR0TAgQRBQReHAERABADERBeFQEDAQEDUhUBAwMBWAABAwFMMDAsLCgoJCQgIBwcGBgUFBAQAQAwMzAzMjEsLywvLi0oKygrKikkJyQnJiUgIyAjIiEcHxwfHh0YGxgbGhkUFxQXFhUQExATEhEJBgAPAQ4eBRQrATIWFREUBiMhIiY1ETQ2MwERIRElFSM1JRUjPQIzFScVIzUXFSM1FzUzHQIhNSU1MxUCvCo6Oir9qCg8PCgCWP2oAV76AZDIyPqWZGSW+v5wASxkAyA6Kv1EKDw8KAK8Kjr84AK8/UT6MjLIMjIyZGRkyMj6MjIyMjKWMjIyMjIAAAcAAP+cA4QDKAADAAcAIAAkACgALAAwABNAEC8tKykoJiMhHBEHBQMBBy0rJRUnNTcVJzUBFhURFAcFBiIGIiYjJyUmNRE0NzYXBSU2ARElESERBREBFQc1ExUHNQFUyMjIAuIWIP5yCAQGBAYCCv5yIBYWGAF+AX4Y/jj+wALk/sABBMjIyO5EUESARFBEAQoMHv2AIgygAgICAqAMIgKAHgwQCpqaCvzcAjCA/dACMID90AE6RFBEASBEUEQAAAEAAP98ArwDUAAlABZAExABAEUAAAEAbwABAWYZFyUCBRUrARYVERQGIyI1ETQnJSYHBgcFFhURFAcGIyInJiQnJjUDNDc+ARcCqhIYEC4M/mwgJCwMAZgSEgYKDgYI/nwSGgYOHJQqAlIIFP3ODhYkAgoMBtgKFBQY5AgU/doWBgQEBvIKEhACDBwYLj4WAAL//v/OA+oC7gAOAB4AZEuwDVBYQCMAAwQEA2MFAQACAQIAAW0AAQFuAAQCAgRUAAQEAlcAAgQCSxtAIgADBANvBQEAAgECAAFtAAEBbgAEAgIEVAAEBAJXAAIEAktZQBEBAB0aFxQREAkGAA4BDQYFFCsBMhYHAw4BIyEiJwMmNjMlFyE3PgE7ATIfARYzITIWA7ogEAIqAhQg/No0BCoCECADagr8sg4EIBSkNCIeIDYBVBQkAfQYGP48GBoyAcQYGG4ohBQcIh4kGAAAAAAE//z/zgPYAu4ACgATACoAOACdQAwqJwIAATgrAgkHAkdLsBBQWEA0AAcGCQYHZQAJBAYJBGsABARuCgEDAAIBAwJeAAEAAAUBAF4ABQYGBVIABQUGVggBBgUGShtANQAHBgkGBwltAAkEBgkEawAEBG4KAQMAAgEDAl4AAQAABQEAXgAFBgYFUgAFBQZWCAEGBQZKWUAYCws2MzEwLy4tLCkoHhwLEwsTGBQRCwUXKwEVITU0NjchMh4BJzIeARUhNDY3BRYXFgcDDgEHISInJgInJj4BPwEVITUDNSMVITUjFRQzITI2NQNI/UgaDAJgBhAclAYQHP4OGgwCkiIEBgZMBCAM/To0CAZCBgoOBhIoA0TaRv78RDABLBYaAlgyMhYaAgIagAIaFhYaAsggDhIk/j4WGgIyGgGKHhYsCBAoUFD+1GRQUGQyGAwAAAADAAD/zgOEAu4ACQATABcAQEA9AAQFAwUEA20AAwNuBgEAAAECAAFeAAIFBQJSAAICBVYHAQUCBUoUFAEAFBcUFxYVEg8MCwUEAAkBCAgFFCsBMhYdASE1NDYzExEhERQGIyEiJhMVITUDZgwS/HwSDBQDICoc/WwcKvoBLALuEgx4eAwS/SYCEv3uHigoAcxkZAAAAwAA/+IC+ALaAAcADwAYADhANQAAAAIDAAJgAAMABQYDBWAIAQYBAQZUCAEGBgFWBwQCAQYBShEQFRQQGBEYEhIREhIQCQUaKxEgABEjEAAhFTIAFSM0JiMXMhYUBiImNDYBOgG+dv6I/vbaATJ27qhyLkREXEREAtr+Qv7GAQoBdnb+ztim7rJCXkJCXkIAAf///7QDOQLuACUAD0AMGwEARAAAAGYpAQUVKwE2LwEuATY3PgIyHwEWHwEWAgAELwEmLwEmPwE+ATc+AR4BFxYBzaIsCB4WDioUIiQYERgHExUwbP7U/t4wFxUEEg4BAgEcGCo4NBIeLAEioiwIHiRINBgeAg0SBRQWMP7c/tZuMBYUBRgTDB4SIhQiGhYOHiwAAAIAAP+6A0gDAgAsADUATEBJKRoCAwErGBQCBAIDEgQCAAIDRyUjIB4EAUUPDQoIBABEAAEAAwIBA2AEAQIAAAJUBAECAgBYAAACAEwuLTIxLTUuNSIhGwUFFSsBFBcGByYHBhcGByYiByYnNiYHJic2NTQnNjcWNzYnNjcWMjcWFwYXFjcWFwYBMjY0JiIGFBYC+FAMFkZCNhQoLC6sLiwoFGxSDhRSUhQOSj42FCoqLqwuKioUNkJGFgxQ/qxMamqYamoBXkgyKCoSPjpOFBBSUhAUUG4UGjg0UEg0OBoSPjhQFgxQUAwWTjo+EiooMv8AaphsbJhqAAAAAAT/+v+aA/MDGgArADcAVgBeAB1AGllYQD8EAEQCAQEAAW8AAABmHRwbGhEQAwUUKxMOARQjBwYHBi8BJjc+ATc2Mj4BNzI+ATc2NzIXMgcGBwYXFhcWDwEGJy4BFwEWDwEGJwEmPwE2JRYHBicmDwEnNz4BJjc2NzYWBwYHBhYXFjc+ATc2FgE3FwcGLwEmmwgGAhEPBBAMRgsNAiAEBioeCAYCDiYWhjR6GgwUeCBQLCIECApMDgQqOvgBmhIUMBYQ/mIICEgMAjIQIDJoOCxSREQYDgIGDIAMDAQMIg4EJjomBigCBBL8qP5M9hQSLhYB+ggcFg8NBA4STAwMAhgEBhwwBg4eEFoGAgg0GDg6LgIIBkYIBDAYMv4kFhAqDhIB2AgMPgjAaD5YGgwsTk5GGDpIFjg4BhIGDEQKMhwoPgw6BAoC/UT4VvIUEC4SAAEAAP+cAyADIAAnAERAQSEBBQQUCwICAyYHAgEAA0cABAUEbwAFAwVvAAMCA28AAgACbwYBAAEAbwABAWYBACAeGxoTEQ4MBQQAJwEnBwUUKyUyFhQGIiY1NDY1JQYjIiY0NjMyFyU0JjU0NjIWFAYjIicFFhQHBTYCij5YWHxYAv78KjI+WFg+NiYBBAJYfFhYPjQm/voCAgEGJMhWflhYPgYQBJwgWHxYHpwEEAQ+WFZ+WCCcCCIInB4AAwAA/84D6ALuAAgAHQAyAGJAXwAFBgAGBQBtAAADBgADawABCAoIAQptAAoLCAoLawAEAAYFBAZgAAMAAgcDAmAMAQcACAEHCF4ACwkJC1QACwsJWAAJCwlMHx4vLSsqJSMhIB4yHzIiFSIRIxMSDQUbKwE0NjIWFAYiJicGKwE1Mz4BMzIXFhQHBiInJiMiBgUzFSMOASMiJyY0NzYyFxYzMjY3NgFUXoReXoRecg40oHYo0oSkeBAQEjISTnhkmAJQoHYo0IakdhISEDISUnRkmBYMAV5EXFyGXl5+PHh8nHQSMhIQEFJ8nHh8nHYSMhASElJ+XjwAAAAAAwAA/5wDhAMgAAgAEQAqAD9APB0BBAFGAAgGBAYIBG0ABwAGCAcGXgAEAAUABAVgAgEAAQEAVAIBAAABWAMBAQABTBIyEzIkExQTEgkFHSszNDYyFhQGIiYlNDYyFhQGIiYBBhYzIRUUIyEiPQEDIzU0OwEyHQEhERQHljxSOjpSPAH0PFI6OlI8/r4kBCoCMhT9chRsYhScFALAEig8PFI6OiooPDxSOjoBFgoaTBQUTAH0UBQUVv7uFgQAAAAAA//8/7oDXwMCABUAIQAlAEVAQgAEAwIDBAJtCAECAAMCAGsAAABuAAEABwYBB14ABgMDBlIABgYDVgUBAwYDShcWJSQjIiAfHh0cGxYhFyE5NAkFFisBFgcDBiMhIicCJyY3Nj8BNjMhMhcWATI+AjcjBiInIxIDISchA0McBGIIHv22HAxeAgUbBjA4EiYB4CYSTv6KOFQqEgRcJpQmXC7CAsBu/hwCnBoi/XgeHgJsHCIaBiUrEBA6/jBEbkQgvLz+6gFwdAAEAAD/nAOEAyAAFwAbAB8AIwBgQF0EAgwDAAkICQAIbQ8LDgMJCgEIAwkIXgUBAwAGBwMGXg0BBwEBB1INAQcHAVgAAQcBTCAgHBwYGAEAICMgIyIhHB8cHx4dGBsYGxoZFhUUExIREA4JBgAXARcQBRQrATIWFREUBiMhIiY1ETQ2OwEVMzUhFTM1ExEhERMVIzUhFSM1AyAqOjoq/UQoPDwoLqABIqAs/USgRgIIRgK8Oir9qCg8PCgCWCo6ZGRkZP1EAZD+cAMgqqqqqgAAAgAA/5wDhAMgABcAHgDOQA4dAQcFHgEGBxgBAgYDR0uwCVBYQC8ABQQHBAVlAAIGAwMCZQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTRtLsA1QWEAwAAUEBwQFB20AAgYDAwJlCAEAAAQFAAReAAcABgIHBl4AAwEBA1IAAwMBWQABAwFNG0AxAAUEBwQFB20AAgYDBgIDbQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTVlZQBcBABwbGhkTEhEQDw4NDAkGABcBFgkFFCsBMhYVERQGIyEiJj0BMxUhESEVIzU0NjMTNSE1ITUXAyAqOjoq/j4oOmIBwv4+YjooZP4+AcLIAyA6Kv1EKDw8KGRkAryWlio6/WJ4lnjCAAAAAAIAAP+cA4QDIAAXAB4AyEAKHgEHAxkBAAYCR0uwCVBYQDAAAwQHBANlAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bS7ANUFhAMQADBAcEAwdtAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bQDIAAwQHBAMHbQAABgUGAAVtAAIABAMCBF4ABwAGAAcGXggBBQEBBVIIAQUFAVkAAQUBTVlZQBIAAB0cGxoAFwAXERM1MxEJBRkrITUzFRQGIyEiJjURNDYzITIWHQEjNSERAQc1ITUhNQH2Yjoq/nAoPDwoAZAqOmL+bgMgxv4+AcJkZCg8PCgCvCo6OiqWlv1EAUbEeJZ4AAAAAwAA/2oCgANSACcAMAA4AMW2FQYCAQUBR0uwH1BYQC0ACAkACQgAbQAFBgEGBQFtBwQKAwALAQYFAAZgAAkJDEgDAQEBAlgAAgINAkkbS7AkUFhAKgAICQAJCABtAAUGAQYFAW0HBAoDAAsBBgUABmADAQEAAgECXAAJCQwJSRtAMAAJCAlvAAgACG8ABQYBBgUBbQcECgMACwEGBQAGYAMBAQICAVQDAQEBAlgAAgECTFlZQB8pKAEANzYzMi0sKDApMCIhHRoUEg8MCQcAJwEmDAUUKwEyHQEUBgcVMzIdARQjISI9ATQ7ATUuAT0BNDsBMh0BFBYgNj0BNDMFIiY9ASEVFAYTFSE1NDYyFgJsFIqEghQU/pgUFIKEihQeFHYBCHYU/vJQRgEsRkb+1EagRgHoFIpckAyEFDwUFDwUhAyQXIoUFIpCcnJCihTuMh6enh4yAgjU1B4yMgAAAAMAAP+mA3QDKgALAB0ALAAUQBEmJR8WFQ0GAEUAAABmFQEFFSsBFhQHAQYiJjQ3ATYDNx4BBw4DJwEeAjc2LgElASYSNzYWFwcuAQcGHgEDZBAQ/PISIiIQAw4itDJKNiIYZqCiVAEWLFguCgYILP7M/vIoiEAijlg0Ol4KBAQiAwoQKBD88g4cLA4DDiD+XjJcoCQYQkwOHgEUICwGBAowWGr+8oQBLkAgKkAyJh4KCChMAAX/+P+EA5IDQgANAB0AKQA3AEYAH0AcAAEAAW8DAQACAG8AAgJmHx4/PTc1HikfKQQFFCsTNh4CBw4CLgI+AQE2LgEnLgIHBh4BFx4CEyImND8BNhcWDwEGJy4BPwE2Fx4BDwEGIyIFFgYPAQYjIicmNj8BNhawKtbcXiocgLjMlBROTgHsCBZMOjh8TgoIFkw4OnxOEBIgEF4kJCAgYBDIEgoKNhoqEgoKNg4cDgGqCgwSYBAIHBAKDBJgEigCTCpe3NYqHE5OFJTMuID+PApOfDg6TBYICk58OjhMFgGSHioOYCAgJCReEHwKKBJgLBgKKBJgGpASKAo2CBoSKAo2CgoAAf/8AAADgAJiAAwACrcAAABmMgEFFSslFAYjISImNjcBNhYVA4AwIPz0FhIMEgMiHCi0Ii4KFAoBxBIWIgAAAAMAAP+SA5gDKgAIABEAFwBJQEYWFRQTBAIEAUcHAQQDAgMEAm0FAQAAAwQAA2AGAQIBAQJUBgECAgFYAAECAUwSEgoJAQASFxIXDg0JEQoRBQQACAEICAUUKwEyABAAIAAQABMyNhAmIAYQFhMVFwcnEQHMvgEO/vL+hP7yAQ6+ltLS/tbU1LiWMqoDKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCbPSWMqoBEgADAAD/agIwA1IAGwAoAGIArEAQNTICAgM2AQQCWE0CAAYDR0uwH1BYQCcABQQGBAUGbQAGAAQGAGsAAgAEBQIEYAADAwFYAAEBDEgAAAANAEkbS7AkUFhAJgAFBAYEBQZtAAYABAYAawAAAG4AAgAEBQIEYAADAwFYAAEBDANJG0ArAAUEBgQFBm0ABgAEBgBrAAAAbgABAAMCAQNgAAIEBAJUAAICBFgABAIETFlZQAtTUhobJCcdGgcFGisBFA4BFB4BHQEUBiImPQE0PgE0LgE9ATQ2MhYVBQcGFxYzMjc2JyYjIhM0PgI/ATY1NwYiJxcUHwMWJhYjFA4CDwIGJgY1Bh0BPgI1NDIVFB4BFzU0LwImLwEuAQIwYGJiYKzYrGBiYmCu1K7+HhIECFx8hFgOHmBqeJAIHAwZHVwCZPRkBFotExERDB4MAgoGCAwPDwIiWgh0RDRCegZcKxINBQwHBAJuLGhePFxmLnYiTk4idi5mXDxeaCx2IE5OIAYOCAY0MgoUNv5KEh4kDhgcXB4yNjYyIForExUVAjAKEhIOCg8QEAIiAVogQgQmMCIeHiIwJgRCHlwpEw4IFAwWAAAAAAP/+/9oAr8DUgAGABcAMgCHQAwSDQIEBQMAAgEAAkdLsCFQWEAdAAQAAgAEAl4ABQUDWAADAwxIAAAAAVgAAQENAUkbS7AkUFhAGgAEAAIABAJeAAAAAQABXAAFBQNYAAMDDAVJG0AgAAMABQQDBWAABAACAAQCXgAAAQEAUgAAAAFYAAEAAUxZWUALMjEmJRcRIhEGBRgrFzUhFQYnBjchNC4CNz4BIBYXFg4DAQYWBhYGHwEWHwIWFzM2PwE2PwE+AicmINEBGkZIRs7+8khUQAYIrAFSqgoEKEBCMP6GBAgEDgIJCwILDh9YGFIYWBkVBBENBgYCEP46bmhoKgICzkiIWoZIeKyseDxqVlRsAbQEIAgeBg8TBA8TLHpaXnYjHQcdFhYiEsQAAAoAAAAAArwCvAAIABEAGgAjACwANQA9AEYATgBXAG9AbAALEQEKAAsKYAwBAAADBAADYA8GDgMEBwEFAgQFYA0BAgABCAIBYBABCAkJCFQQAQgICVgACQgJTFBPLi0lJBMSCgkBAFRTT1dQVzIxLTUuNSkoJCwlLBcWEhoTGg4NCREKEQUEAAgBCBIFFCsBMhYUBiImNDYTMjY0JiIGFBYlMhYVFCI1NDYlFgcOASY2NzYXMhYVFCI1NDYBMhYUBiImNDYnNhYHDgEnJhM2Fx4BBwYnJgEmNhceAQcGAyImNDYyFhQGAV5EXFyGXl5CLDo6Vjw8/v4UHmQeAjYcJA4mFgQOJFIUHmIc/ugQGBggGBjeJDgkDiYKHhocJA4ECh4iJAHMIjgkDgQMHtoQGBggGBgB/l6GXFyGXv74PFY8PFY8kBgQKCgQGMwcJA4EGCYOIugYECgoEBj+3h4oHh4oHj4kOCQOBAocAdIcJA4mChwiJP44JDgkDiYKHAIOHigeHigeAAAACgAA/2oD6ANSAAsAFAAdACkANgBDAE0AWgBnAHAA40uwH1BYQDQNAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYA8BCAgJWAAJCQxIEAEKCgtYAAsLDQtJG0uwJFBYQDENAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYBABCgALCgtcDwEICAlYAAkJDAhJG0A4AAkPAQgCCQhgDQECAAUAAgVgBwwCAAYBAQQAAWAOAQQAAwoEA2AQAQoLCwpUEAEKCgtYAAsKC0xZWUAvODcrKhYVDQwBAD49N0M4QzEwKjYrNiglIh8aGRUdFh0REAwUDRQHBAALAQoRBRQrATIWFRQrASI1NDYzJTIWFAYiJjQ2EzI2NCYiBhQWJRQrASI1NDY7ATIWASImPQE0NjIWHQEUBgMyFh0BFAYiJj0BNDYBBwYnJjc2NzYWAT4BFgYPAQ4BJyY3NhMXFgcGJicmJy4BNhYBJjYfARYGJyYDthQeMjAyHhT+bnKiouSgoHJSdnakdnb+9DIyMh4UMhQeAV4QGBggGBgQEBgYIBgYAYAiIh4cJAQeJDj9IA4mFgQOJA4mCh4kBjIkJB4KJg4eBg4EFiYCXCQ4JCIkOCQeAYYYECgoEBjqoOagoOag/iZ0pnZ2pnTIKCgQGBgBTh4UMhQeHhQyFB79RB4UMhQeHhQyFB4ClCIiGhwkBh4iOP2QEAQYJg4kDgQMHCQEAqQkJBwKBA4eBA4mGAT9NCQ4JCIkOCIeAAAKAAD/agPoA1IACwAUABoAJgAzAEAASgBXAGQAbQDjS7AfUFhANA0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgDwEICAlYAAkJDEgQAQoKC1gACwsNC0kbS7AkUFhAMQ0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgEAEKAAsKC1wPAQgICVgACQkMCEkbQDgACQ8BCAIJCGANAQIABAACBGAHDAIABgEBBQABYA4BBQADCgUDYBABCgsLClQQAQoKC1gACwoLTFlZQC81NCgnFRUNDAEAOzo0QDVALi0nMygzJSIfHBUaFRoXFhEQDBQNFAcEAAsBChEFFCsBMhYVFCsBIjU0NjMlMhYUBiImNDYTESIGFBYlFCsBIjU0NjsBMhYBIiY9ATQ2MhYdARQGAzIWHQEUBiImPQE0NgEHBicmNzY3NhYBPgEWBg8BDgEnJjc2ExcWBwYmJyYnLgE2FgEmNh8BFgYnJgO2FB4yMDIeFP5ucqKi5KCgeFZ4eP7yMjIyHhQyFB4BXhAYGCAYGBAQGBggGBgBgCIiHhwkBB4kOP0gDiYWBA4kDiYKHiQGMiQkHgomDh4GDgQWJgJcJDgkIiQ4JB4BhhgQKCgQGOqg5qCg5qD+JgGQdqZ0yCgoEBgYAU4eFDIUHh4UMhQe/UQeFDIUHh4UMhQeApQiIhocJAYeIjj9kBAEGCYOJA4EDBwkBAKkJCQcCgQOHgQOJhgE/TQkOCQiJDgiHgAFAAD/fgPAAz4ACAAJABEAEgAaADpANxkYDQwEAwIBRwQBAAACAwACYAUBAwEBA1QFAQMDAVgAAQMBTBQTAQATGhQaEA4FBAAIAQgGBRQrATIAEAAgABAABQEUFwEmIyIGEwUyNjU0JwEWAeDIARj+6P5y/uYBGgHI/ZJSAgJkhJjUagECmNZS/f5iAz7+6P5y/uYBGgGOARjc/vyEYgICUtb+ZmrWloJm/f5SAAAAAAIAAP/UAxgC6gAGAA0AH0AcDQwJCAYFBAMCCQEAAUcAAAEAbwABAWYZEAIFFisBIREnByc3ARcHFyERFwHcATxkkmSY/qBkmHr+xGQC6v7EfJhkkv6mZJJkATx6AAAAAAIAAP+cA4QDIAAGAA0AH0AcDQwLCAQBRQYFBAMEAEQAAQABbwAAAGYXEQIFFis3JyERJwcnAQcXIREXN5xqAShkkmQDhJpo/tpkkJJk/thqnGQCvJBkASZomgAAAwAA/84DIALuAA8AEwAcAEtASAkBBgIDAgYDbQcBAAACBgACXggBAwABBAMBYAAEBQUEUgAEBAVYAAUEBUwUFBAQAQAUHBQcGRcWFRATEBMSEQkGAA8BDgoFFCsBMhYVERQGIyEiJjURNDYzAREhEScRIRUhIiY1EQK8Kjo6Kv5wKDw6KgGQ/nDIASz+1Cg8Au46Kv5wKDw8KAGSKDr+DAGQ/nBk/tRkPCgBLAAAAAAFAAD/nAPoAyAAFwAgACkALQA0AHhAdQAKBwsHCmUSAQsGBgtjDgEMAwIDDAJtAA0BDXAPAQAJAQcKAAdgEQgQAwYAAwwGA18EAQIBAQJSBAECAgFYBQEBAgFMKioiIRkYAQA0MzIxMC8qLSotLCsmJSEpIikdHBggGSARDw4NDAsKCQgGABcBFhMFFCsBMhYVERQGKwE1MxEhETMVIyImNRE0NjMXMjU0JiIGFBYzMjU0JiIGFBYlNSEVHwEjESMRIwOEKjo6KsbI/N7IyCg8PCgeJhYgFhZ0JhYgFhYCsP2mxvKWuJYDIDwo/agqOmIBzv4yYjoqAlgoPKgmEBQWHhYmEBQWHhYGPj7G8P7UASwAAAAFAAD/zgPoAu4ADwAZACMAJwArAF5AWwAIAgkCCGUNAQkDAwljCgEABQsCAggAAmAEAQMABgcDBl8MAQcBAQdSDAEHBwFYAAEHAUwoKCQkERABACgrKCsqKSQnJCcmJSIhHhwWFBAZERkJBgAPAQ4OBRQrATIWFREUBiMhIiY1ETQ2MxciBhQWMzI1NCYHFBYzMjU0JiIGAREhEQE1IRUDhCo6Oir84Cg8PCiCEBYWECYWmhYQJhYgFgMq/N4DIv2mAu48KP2oKjo6KgJYKDxeFh4WJhAUJBAWJhAUFv24Acz+NAIcPDwAAgAA/2oBzANSAAIABQARQA4AAAEAbwABAWYSEQIFFisbASETAyHm5v405uYBzANS/pT9hAFuAAADAAD/kgOYAyoACAARABgAUkBPFQECBAFHCQEGAwQDBgRtBQEEAgMEAmsHAQAAAwYAA2AIAQIBAQJUCAECAgFYAAECAUwSEgoJAQASGBIYFxYUEw4NCREKEQUEAAgBCAoFFCsBMgAQACAAEAATMjYQJiAGEBYTFTMHJzM1Acy+AQ7+8v6E/vIBDr6U1NT+2NTU7nDKynADKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCKs6+vs4AAAAAAwAA/5IDmAMqAAgAEQAYADpANxYBBQMVAQQFFAECBANHAAEAAwUBA2AABQAEAgUEXgACAAACVAACAgBYAAACAEwUEhMUExIGBRorARQAIAAQACAABRQWIDYQJiAGBSMVJzcVMwOY/vL+hP7yAQ4BfAEO/MzUASjU1P7Y1AIozL6+zAFevv7yAQ4BfgEM/vTAlNTUASrS0vBwysxyAAAAAAMAAP+SA5gDKgAIABEAGAA6QDcUAQQCFQEFBBYBAwUDRwAAAAIEAAJgAAQABQMEBV4AAwEBA1QAAwMBWAABAwFMFBITFBMSBgUaKxE0ACAAEAAgACU0JiAGEBYgNiUzNRcHNSMBDgF8AQ7+8v6E/vIDNNL+1tTUASrS/djMvr7MAV6+AQ7+8v6E/vIBDr6W0tL+1tTU7nLMynAAAAMAAP+SA5gDKgAIABEAGABRQE4VAQQCAUcFAQQCBgIEBm0JAQYDAgYDawABCAECBAECYAADAAADVAADAwBYBwEAAwBMEhIKCQEAEhgSGBcWFBMODQkRChEFBAAIAQgKBRQrBSIAEAAgABAAAyIGEBYgNhAmAzUjNxcjFQHMvv7yAQ4BfAEO/vK+lNTUASrS0vBwyspwbgEOAX4BDP70/oL+8gM00v7W1NQBKtL92MzAwMwAAAEAAAAAAkQCHgAQAA9ADAsBAEUAAABmEgEFFSsBBwYiLwEmNDc2HwE3NhcWFAI06hIsEuoQECYoxMQoJhABpuASEuAQMhAmJry8JiYQMgAAAQAAAAABaAKCABEAF0AUBgEBAAFHAAABAG8AAQFmGBECBRYrEzYyFxYPARcWBwYiLwEmNDc28g4yECYmuromJhAwEOIQEM4CchAQJCzEwiwkEBDsEC4Q1gAAAAAB/+4AAAFUAoIAEAAXQBQLAQABAUcAAQABbwAAAGYYFgIFFisTFxYUDwEGIicmPwEnJjc2MmLiEBDiEDAQJCS6uiQkEDICcuwQLhDsEBAkLMLELCQQAAAAAQAAAAACRAIIABAAD0AMBgEARAAAAGYeAQUVKwEWFAcGLwEHBicmND8BNjIXAjQQECYoxMQoJhAQ6hAwEAEYEDIQJia8vCYmEDIQ4BAQAAAB//MAAAHfAfAADQAGswYBAS0rATYXFg8BBi8BJjc2HwEBlRYaGhrEFhrEGhoYGqoB1hoaFhrAFhbAGhYYGJwAAf/0AAABFgJUAA0ABrMJAwEtKzcWBwYvASY/ATYXFg8B/BoaGhbAGBjAFhoaGpy0GhYaGsIYGsIaGhYarAAAAAH/8wAAARUCVAANAAazCwUBLSs/AScmNzYfARYPAQYnJg2enhoaGhbAGBjAFhoatKqsGhYaGsIaGMIaGhYAAAAB//QAAAHcAfAACwAGswUBAS0rNwYmPwE2HwEWBi8BPhowGMQaFsQYMBqq5hYuGr4aGr4aLhaeAAH/8wAAA28CVAANAAazCAMBLSsTCQE2FxYHAQYnASY3Nj8BcgF0FhoaGv50Fhr+dBoaGAI6/pwBZBoaFhr+eBYWAYgaFhgAAAH/9P+iAd4DHAANAAazCQMBLSsFFgcGJwEmNwE2FxYHAQHEGhoaFv54GBgBiBYaGhr+mhQaFhoaAYoYGgGKGhoWGv6MAAAAAAH/8/+iAd0DHAANAAazCwUBLSsXCQEmNzYXARYHAQYnJg0BZv6aGhoaFgGIGBj+eBYaGhQBcgF0GhYaGv52Ghj+dhoaFgAAAAH/9AAAA2wCVAAMAAazBwMBLSslCQEGJjcBNhcBFgcGAyT+jP6OGjAYAYwaFgGMGBgaggFm/poWLhoBhhoa/noaGBYAAQAA//IClALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERApT+tv62wAEUAW7+hAF8AV7+ogABAAAAAALaAqgABgAfQBwBAQEAAUcCAQBFAAEBRAAAAQBvAAEBZhETAgUWKyUJARUhESEBev6GAXoBYP6gFAFKAUq+/uoAAAABAAAAAALaAqgABgAfQBwBAQABAUcAAQFFAgEARAABAAFvAAAAZhETAgUWKwkCNSERIQFeAXz+hP6iAV4CqP62/rbAARYAAAABAAD/8gKUAswABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEhESMBApTA/uzAAUoBUP6iAV4BfAABAAAAAAHMAiYAAgAVQBIBAQBEAQEAAGYAAAACAAICBRQrAQsBAczm5gIm/nABkAABAAAAAAGQAkQAAgAGswEAAS0rARElAZD+cAJE/jTmAAEAAAAAAZACRAACAAazAgABLSsRDQEBkP5wAkTm5gAAAQAAAAABzAImAAIAFUASAQEARQEBAABmAAAAAgACAgUUKzUbAebmlgGQ/nAAAAAAAQAA//IC+ALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERAvj+hP6EwAF4AW7+hAF8AV7+ogABAAD/4gLaAtoABgAfQBwGAQEAAUcAAQBFBQEBRAAAAQBvAAEBZhERAgUWKwEVIREhFQEBegFg/qD+hgLavv6GwAF8AAEAAP/iAtoC2gAGAB9AHAEBAAEBRwABAUUCAQBEAAEAAW8AAABmERMCBRYrCQI1IREhAV4BfP6E/qIBXgLa/oT+hMABegAAAAEAAP/yAvgCzAAGABdAFAYBAEUCAQABAG8AAQFmEREQAwUXKwEjESERIwEC+MD+iMABfAFQ/qIBXgF8AAEAAP90AfQDSAAGAIqzAQEAREuwCVBYQA0DAgIAAQBwAAEBDAFJG0uwClBYQAsAAQABbwMCAgAAZhtLsA5QWEANAwICAAEAcAABAQwBSRtLsA9QWEALAAEAAW8DAgIAAGYbS7AVUFhADQMCAgABAHAAAQEMAUkbQAsAAQABbwMCAgAAZllZWVlZQAsAAAAGAAYREgQFFislByczETMRAfT6+qKwZPDwAuT9HAABAAAAAAPUAlgABgAmQCMBAQEAAUcCAQBFAAEBRAAAAQEAUgAAAAFWAAEAAUoREwIFFis3JzcVIRUh8PDwAuT9HGT6+qCyAAABAAAAAAPUAlgABgAmQCMGAQABAUcFAQFFAAEARAABAAABUgABAQBWAAABAEoREQIFFislNSE1ITUXAub9GgLm7mSisqD6AAABAAD/dAH0A0gABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEjESM3AfSisKL6Alr9GgLm7gAAAAABAAD/rAOsAuAAFwBDQEATCAICBAcBAQICRwUBBAMCAwQCbQYBAAADBAADYAACAQECVAACAgFYAAECAUwBABUUEhEPDgsJBgQAFwEXBwUUKwEyFhAGIyInNxYzMjYQJiIGBzMHJzM+AQIUqu7uqo5uRlRifrS0+rQCjri4fALwAuDw/qzwWEo8tAEAtK58zMym6gAAAQAA/8QDrAL4ABcAQ0BAEAUCBAERAQUEAkcCAQEDBAMBBG0GAQAAAwEAA2AABAUFBFQABAQFWAAFBAVMAQAUEg8NCgkHBgQDABcBFwcFFCsBMhYXMwcnMy4BIgYUFjMyNxcGIyImEDYBmKjuBHq4uJAEtPq0tH5oTkZujqjw8AL46KbOznystP60PExY8AFU8AAAAAL//v/EAzYC+AAOAB0AJUAiHRwXEQoEAQcAAQFHCQEBRRYBAEQAAQABbwAAAGYcEgIFFis/ARElNyYSNzY3FwYHDgEBBQcWAgcGByc2Nz4BJwe6dP7sWHQEdmSMBGRIWAQBogEUWHQEdmCQAmJIWARWcox0/twQVnoBUHhkEGYQSFj6AfoQVnr+sHhiFGgQSFj6XHQAAAAAAQAAAAAC6AKKAAsANEAxCAECAQkBAAICRwoBAEQAAQIBbwACAAACUgACAgBYAwEAAgBMAQAHBgUEAAsBCwQFFCs3IiY1ETMRITUXBzVkKjqMAWzw8Mg8KAFe/sqW3NyWAAAAAAEAAAAAA1ICTgALADJALwIBAgABAQECAkcDAQBFAAECAXAAAAICAFQAAAACVgMBAgACSgAAAAsACxMkBAUWKxMVJzcVITIWFREjNcjIyAImKDyMAV5aoKpkOir+6PAAAAMAAP+2A+gDCAAZACUANABiQF8hFwIABScYAgIELSgCAQcDRxYBA0UpAQZEAAMIAQAEAwBgAAUABAIFBGAJAQcBBgdUAAIAAQYCAWAJAQcHBlgABgcGTCYmAQAmNCYzLCogHh0bFRMNCwoIABkBGQoFFCsBIg4BBw4DKwE1MzI+ATc+AjsBNRcHNQUmKwE1MzIXDgEHBgE1Fwc1IyInNjc0NjcWMwLyNmY6NjA2ZnBCaGg2aDo2Pk6aViTS0v34SlxoaIxyDi4ECAH40tIkjHguGgwCVFoCBEBERj5AWiqMQERGUlhYeLS0ZFhOjGwQOgQM/vpktLR4dDoiAg4EWAABAAAAAAOEAooAGgA/QDwSAQMAEwEEAwJHEQEARQIGAgAFAQMEAANeAAQBAQRSAAQEAVgAAQQBTAEAGRgXFhUUEA4JBgAaARoHBRQrATIWFREUBiMhIiY1ETQ2OwE1Fwc1IxUhNSM1AyAqOjoq/UQoPDwo+sjI0gJslgIcOir+3ig8PCgBIio6brS0btLSjAACAAAAAAPoArQABgANAD1AOgQBAAENAwIDAAJHBQEBRQgBAkQEAQEAAAMBAF4AAwICA1IAAwMCVgACAwJKAAAMCwoJAAYABhEFBRUrARUhFSc3FQEHNSE1ITUCvP4MyMgDIMj+DAH0AlCMWqCqZP5coFqMZAAAAAABAAAAAAH0ApIACwAGswoFAS0rARYUBwEGJjURNDYXAeYODv5UGCIiGAF4Ch4K/vYQFB4CAh4UEAAAAAABAAAAAAJYAooADAAYQBUCAQABAG8AAQFmAQAHBAAMAQsDBRQrATIVERQjISI1ETQ2MwIOSkr+PkwkKAKKQP4qQkIB1iQcAAACAAAAAAISArwACAARACNAIAUCBAMAAQBvAwEBAWYKCQEADg0JEQoRBQQACAEIBgUUKwEyFREUIjURNCEyFREUIjURNAG4WrT+/Fq0ArxA/cZCQgI6QED9xkJCAjpAAAABAAAAAAK8ArwACAAYQBUCAQABAG8AAQFmAQAFBAAIAQgDBRQrATIWEAYgJhA2AV6SzMz+3MzMArzM/t7OzgEizAAAAAIAAAAAAlgCggALABQAGEAVAgEAAQBvAAEBZg0MERAMFA0UAwUUKwEWFAcFBiY1ETQ2FyUyFREUIjURNAGcDg7+lhYcHBYB3EqWAXYKGgrkDhIaAboaEg4oOv4uOjoB0joAAAACAAAAAAJYAoIADAAUABFADgAAAQBvAAEBZhMeAgUWKxM0NyU2FhURFAYnJSYnNDIVERQiNa4OAWwUHBwU/pQOrpaWAV4OCuQOEhr+RhoSDuQK9jo6/i46OgAAAAIAAAAAA3ACfAALABcACLUWEQoFAi0rARYUBwUGJjURNDYXBxYUBwUGJjURNDYXA2IODv6MFh4eFlIODv6YFCAgFAF2ChwI+A4QHAHiHBAO+AocCPgOEBwB4hwQDgAAAAIAAAAAA3ACfAAMABkACLUWEQkEAi0rETQ3JTYWFREUBiclJiU0NyU2FhURFAYnJSYOAXYUICAU/ooOAcYOAWgUICAU/pgOAV4OCvgOEBz+HhwQDvgIDg4K+A4QHP4eHBAO+AgAAAAAAgAAAAAD6AJYABAAFAApQCYAAQACAwECXgQBAwAAA1IEAQMDAFgAAAMATBERERQRFBQ1MwUFFysBFRQGIyEiJjURNDYzITIWFQMRIRED6Doq/OAoPDwoAyAqOmT84AHC+io6OioBLCg8PCj+1AEs/tQAAAADAAAAAAPoAlgAEAAUABgAOkA3AAEAAgQBAl4ABAcBBQMEBV4GAQMAAANSBgEDAwBYAAADAEwVFRERFRgVGBcWERQRFBQ1MwgFFysBFRQGIyEiJjURNDYzITIWFQMRIRE3NTMVA+g6KvzgKDw8KAMgKjpk/OAyyAHC+io6OioBLCg8PCj+1AEs/tQyxsYAAAAEAAAAAAPoAlgAEAAUABgAHABFQEIAAQACBAECXgYBBAoHCQMFAwQFXggBAwAAA1IIAQMDAFgAAAMATBkZFRURERkcGRwbGhUYFRgXFhEUERQUNTMLBRcrARUUBiMhIiY1ETQ2MyEyFhUDESERNzUzFTM1MxUD6Doq/OAoPDwoAyAqOmT84DLIMsgBwvoqOjoqASwoPDwo/tQBLP7UMsbGxsYAAAUAAAAAA+gCWAAQABQAGAAcACAAS0BIAAEAAgQBAl4IBgIECQwHCwQFAwQFXgoBAwAAA1IKAQMDAFgAAAMATBkZFRURESAfHh0ZHBkcGxoVGBUYFxYRFBEUFDUzDQUXKwEVFAYjISImNRE0NjMhMhYVAxEhETc1MxUzNTMVNzMVIwPoOir84Cg8PCgDICo6ZPzgMsgyyDLIyAHC+io6OioBLCg8PCj+1AEs/tQyxsbGxsbGAAIAAP+wA1wDDAAIACAAUEBNFRICBAAeCQIBBwJHCAEABABvAAQDBG8ABwIBAgcBbQABAW4FAQMCAgNSBQEDAwJWBgECAwJKAQAgHxsaGRgUEw8ODQwFBAAIAQgJBRQrATIWEAYgJhA2Ez4BNyM1My4BJxUjNQ4BBzMVIx4BFzUzAa6y/Pz+nPz81nywDMDADLB8RnyyDMLCDLJ8RgMM/P6c/PwBZPz89g6wfEZ8sA7Cwg6wfEZ8sA7CAAAABgAAAAACvAJYAAsAFwAjAC8AOwBHAGVAYgcOAgQPBgIFAgQFYBAIDQMCCQEDAAIDYBEKDAMAAQEAVBEKDAMAAAFYCwEBAAFMPTwxMCUkGRgNDAEAQ0A8Rz1GNzQwOzE6KygkLyUuHxwYIxkiExAMFw0WBwQACwEKEgUUKzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MxciJjQ2MyEyFhQGIxUyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2M2QUHh4UMhQeHBYyFB4eFDIUHhwWMhQeHhQyFB4cFvoUHh4UAV4WHB4UFhweFP6iFB4eFAFeFhweFP6iFB4eFMgeKB4eKB7IHigeHigeyB4oHh4oHmQeKB4eKB5kHigeHigeyB4oHh4oHgAAAAQAAAAAA+gCWAALABcAKwA3AFlAVg8KAgkACwAJC2AIDgQMBAAHBQIBAgABYA0BAgMDAlQNAQICA1gGAQMCA0wtLBkYDQwBADMwLDctNikoJiQjIR8eHBoYKxkrExAMFw0WBwQACwEKEAUUKwEyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2MyUyFCsBFRQiPQEjIjQ7ATU0Mh0BJTIWFAYjISImNDYzAV4WHB4U/tQUHhwWASwWHB4U/tQUHhwWA5geHqpkpB4epGT+PhYcHhT+1BQeHBYBkB4oHh4oHsgeKB4eKB7IZKoeHqpkqh4eqsgeKB4eKB4AAAAAAwAAAAAD6AKKABQAKwA3ADpANykfAgUEAUcAAgADBAIDYAYBBAAFAAQFYAAAAQEAVAAAAAFYAAEAAUwtLDMwLDctNiIzMiIHBRgrARQWOwEOASMhIiY0NjMhMhYXIyIGBzYnJicuAQYPAicmBhcWFxY2PwEXFiUyFhQGKwEiJjQ2MwMCSCpCHkRU/gyCioqCAfRURB5CKkiIChKIKhAUEAIIFpQaEBCILCIQChiSGgE+FiIiFiYWICAWAV5idi4mvN6+Ji54ugwOhh4KBhAEEjhCDBoOhB4QCho6RAzONlg4OFg2AAAAAAIAAP/EA6wC+AAXAB0AU0BQGgEEBh0cGxMIBQIEBwEBAgNHAAYDBAMGBG0FAQQCAwQCawcBAAADBgADYAACAQECVAACAgFYAAECAUwBABkYFRQSEQ8OCwkGBAAXARcIBRQrATIWEAYjIic3FjMyNjQmIgYHMwcnMz4BFzMVFwcnAhSq7u6qinJGUmR+tLT6sgSOuLh8BO6CRoIylgL48P6s8FhMPLT+tKx8zs6m6L7MgjKWAAIAAP+mA+gDFgAXABsAOEA1DwgCAQMBRwQBAAACAwACXgUBAwEBA1IFAQMDAVgAAQMBTBgYAQAYGxgbGhkNCgAXARYGBRQrATIWFREUBg8BFxYjISI/AScuATURNDYzAREhEQOEKjo6KNpWMkb+DGKCJNwoOjwoAyD84AMWPCj92ipGCCwmHDQOLAhGKgImKDz9egIs/dQAAwAA/3QCRANIAA8AGAAcARBLsAlQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7AKUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsA5QWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7APUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsBVQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbQCQGAQAABAUABF4IAQUAAwIFA2AHAQIBAQJUBwECAgFYAAECAUxZWVlZWUAbGRkREAEAGRwZHBsaFRQQGBEYCQYADwEOCQUUKwEyFhURFAYjISImNRE0NjMTMjY0JiIGFBY3ESERAeAqOjoq/oQoPDwovh4oKDoqKu7+XANIOir89Cg8PCgDDCo6/FQeKhweKB6WApT9bAACAAD/kgOYAyoACAARACtAKAQBAAMAbwADAgNvBQECAQJvAAEBZgoJAQAODQkRChEFBAAIAQgGBRQrATIAEAAgABAAEzI2NCYiBhQWAcy+AQ7+8v6E/vIBDr4+WFZ+WFgDKv7y/oT+8gEOAXwBDv2eWH5WWHxYAAAC//kAAAPvAkAAFwAjAGJLsAxQWEAhBAYCAgMFBQJlAAEAAwIBA14ABQAABVIABQUAWQAABQBNG0AiBAYCAgMFAwIFbQABAAMCAQNeAAUAAAVSAAUFAFkAAAUATVlAERkYISAdHBsaGCMZIzk1BwUWKwEWDwEOASMhIiYvASY3Nj8BNjMhMh8BFgUzJyEHMzIfASE3NgPHKAocBCQW/NAWJAQcCCgIHHgWHgIEHhZ4Hv7+smb91GayCAQoASwoBAGOKh6aFBoaFJogKAocdhYWdR0qcnIIZGQIAAAAAv/6/+gDjALWABoAKgA1QDIUAQUCAUcABQIGAgUGbQQBAQMBAgUBAl4ABgAABlQABgYAWAAABgBMNTQhEhEnNQcFGysBFg8BDgEjISImLwEmNxM2OwEHIxclIyczMhcTNiYjISIGHwEeATMhMjY3A3QYCiICIhb9OBYiAiIIFp4WMmgUhv4BAIgSZjIYWAIYFv18FhgCDgIiFAJQFiICATI0LLgUHh4UuDIuAXYuzNLSzC7+BhYgIBZKFh4eFgAABAAA/34DwAM+AAgAIQBVAGMAg0AVEwwCBAAlAQIEIBwCAwJaVgIFAwRHS7AMUFhAJgYBAAQAbwAEAgRvAAIDAm8AAwUFA2MABQEBBVQABQUBWQABBQFNG0AlBgEABABvAAQCBG8AAgMCbwADBQNvAAUBAQVUAAUFAVkAAQUBTVlAEwEAWVdIRzg2GRgFBAAIAQgHBRQrATIAEAAgABAAATQmJwYXHgE/AhYOARcWMx4BFxYHBhc2AQ4BBzIfAR4CFxYGFBYVFBYVFBYzMjYmNTQ+ATc2LgQjLgEGJjU0PgE3PgI3PgEDFjMyNyYHBg8BBiMOAQHgyAEY/uj+cv7mARoCYJx8EgIEHBAgFBYsLhYiPhweAgoYFiRW/i5wrigGEBwMHBQCBCRMEEgQCgIGGl4IEA4UMCIoAhA0FCIeKAgIEhoOBCpCQj6AYhpcGCkvSgIMHAM+/ub+cv7oARgBjgEa/iCE1ioYCCYaBgwCGC5CLEACRCBQPCwgcAIeDoxoAgMBBgoIDEI6NBQcUAQMVCxACCBUOBIiNiAYCggGAggeDgoiKAoODhIMBBr88BRELAoCDxEQAhgAAAAAAQAAAAAD6AKkABUALEApDAEBAgFHAAMAA28EAQACAG8AAgECbwABAWYBABIQCwoHBAAVARUFBRQrATIWFAYjISImNDYzFyY1NDYzMhYXNgL4ZIyMZP2+SmxqTBQCnG5ajBgcAe6IxIhokmgCDBpsmGhSBAACAAAAAAPoAqQAFQA2ADJALyABAgAtHQwDAQICRwADAANvBAEAAgBvAAIBAm8AAQFmAQASEAsKBwQAFQEVBQUUKwEyFhQGIyEiJjQ2MxcmNTQ2MzIWFzYHNjU0JyMmJzcyNTQnJg8BDgEVFB8BFhcPAQYVFBcWNzYC+GSMjGT9vkpsakwUApxuWowYHLQOHgQaDDIGCBASWyEYHgQIHjQCAggSEGQB7ojEiGiSaAIMGmyYaFIE2BAOFAwOAnQUDgQKEmIkIgwWCAIEDHIICAYKCAoUZAAAAAAB//z/lgGUAyQAEAAGsxAKAS0rFyY/ATYuAScmPgEWAh4CACgEJ08oBLgGBLC4CqAEugj+nGQEWrZcDE4QDNjKCP6UCE4m/mIAAAAAAQAA/8YDNAL4AA4AEEANDAMCAEUAAABmGAEFFSslNhInFhcWEAAgJyYnFiQCDGomSDQsgP8A/pSAKCB8ASbuagEkfBougP6W/wCAKDZGJgABAAD/iAPyAzQAGABEQEESBQIAAwFHAAQCBG8AAgMCbwABAAcAAQdtCAEHB24FAQMAAANSBQEDAwBYBgEAAwBMAAAAGAAYNxERERIREQkFGysFEyMHIzcnMxczAzMTIRceAgcUBg8BIQMBDHy0cGRQUGRwtHxk4AESJCQUNApMJCb+/uB4AZBkqqpkAZD+cAQEDhwUICICAv5wAAACAAD/5AOcAtQAGAAeAAi1HhoIAQItKwE2FgcGAgcOASclNwA3NiYHAS8BJjQ3NgABNRcGBwYDfg4QBAKMBAIYDP7qFgGEBgQKBP3acL4MDAgDYv3CoIIMEgLQBA4MBv2gDA4KBpYaAaQGBAoE/m4sTAQQBAQBMv0qzFJ0DA4AAAH/+P/iA64C8AAfABFADh4NAgBEAAAAZhoYAQUUKxM2BRYXFgcOAwcGJwYHBiY3PgM/ASIOAwcm7LYBRKgcBAZMbDBSNIr0QjAMRgosqraqODYONpqOtkYWAoZqKBYcBgQoin6KJGBcTGQYIhZkunhcFhQCGjJ2UvIAAAAG//z/kAOaAywACAARABoAIwAsADUAckBvEAsCAwIPDAIHAzMyLhoWFQYGByEeAgUGIh0CBAUFRwgBAAkBAgMAAmAAAwAHBgMHYAsBBgAFBAYFYAoBBAEBBFQKAQQEAVgAAQQBTCUkHBsKCQEAKSgkLCUsIB8bIxwjDg0JEQoRBQQACAEIDAUUKwE2ABIABAACABciBxc2Mhc3JgEmNDcnBhUWFwU2NycGIicHFjcyNjQmIgYUFiUXNic0JwcWFAHGvgEQBv72/oT+7gYBDL5eVD44hDg+WP6kHBxmLgIsAWhiUD48fDw+VmJcgIC4gIABWGguAixoHAMqAv74/oT+7gYBCgF8ARI6LGgcHGgu/fQ8fjw+WGZgVNgEKmgeHmgutIK2gIC2gmI+YF5gVD48fgAAAAL/9/9aAkMDYAATABwACLUcGA4EAi0rJRYGBwYmJwMmNjcnJjc2HwE2FhcHPgEuAQ4BHgECJxxaXl6iFmoUNDpgDhweEmJQlBzCHBgSMjgYEjKCUJoiHEpQAYBEhCi6Ig4SIMAWTE5oCjQ4GhI0OBoAAAAAAwAA/7YD6AMIABgAIAAtAKq1JQEJCwFHS7ANUFhAOwYDAgEHBQcBBW0MAQUABwUAawQBAAgHAAhrCgEICwsIYwACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNG0A8BgMCAQcFBwEFbQwBBQAHBQBrBAEACAcACGsKAQgLBwgLawACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNWUAeISEAACEtIS0sKykmIyIgHRsaABgAGBIkNSIRDgUZKwEVIRM2OwE2PwE+ATsBMhYXFhczMhcTITUDByEnJisBIhM1IQYHBiMhIjUnIRUByP44CgRgoBAVFw4SHN4aFAwSKqBgBAr+OqQcASQcDhyYHJYBrgYEBlT9EloKAa4BRmQBJGwaKS0aDA4YIFBs/txkAWI2Nhr9imRYTlRUpmQAAAQAAP+cA+gDIAAJABMAHQAkAFJATxsUAggHIx8CAAgCRwsJBgQCCgYACAEIAAFtBQMCAQFuAAcICAdUAAcHCFgACAcITB4eAQAeJB4kIiAdHBoZGBcWFREPDgwIBgAJAQkMBRQrATIWFREUBisBEQU0NjsBESMiJjUBFTMRIREzNTYyFzUmIyIHFQOEKjo6KjL8rjwoMjIoPAKebv3QbmKQJjQ6NjgCijwo/doqOgLuZCg8/RI6KgLyaP0SAu5oLpZCGBhCAAAAAQAAAAAA3AHMAAgAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFBAAIAQgDBRQrEzIWFAYiJjQ2bi5AQFxAQAHMQFpCQlpAAAAAAgAAAAACOgHMAAgAEQAtQCoFAgQDAAEBAFQFAgQDAAABWAMBAQABTAoJAQAODQkRChEFBAAIAQgGBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWkBAAcxAWkJAXEBAWkJAXEAAAwAAAAADmAHMAAgAEQAaADpANwgEBwIGBQABAQBUCAQHAgYFAAABWAUDAgEAAUwTEgoJAQAXFhIaExoODQkRChEFBAAIAQgJBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWEJAAYwuQEBcQEABzEBaQkJaQEBaQkJaQEBaQkJaQAAAAAL//P9+A9gDSgANAB8ACLUfFAgBAi0rNzYeAgcGBwY3NDc+AQEWAAcGBwYnJicmJyY3Njc2AHYmXlIMJFaOVAQGNBgDbBr+pHYmVggIEh4gIhAIQCh2AcSqIgpQXiRUEgwaBAY8qgKoGv5EdCZCBg4iHiAQBgpUJnQBVgADAAAAAAPoAjoAFQAeACcATUBKJRkTCAQEBQFHAwgCAAcBBQQABWAKBgkDBAEBBFQKBgkDBAQBWAIBAQQBTCAfFxYBACMhHycgJx0bFh4XHhEPDAoGBAAVARULBRQrATIWFAYjIiYnDgEjIiY0NjMyFhc+AQEyNjcuASMiECEyECMiBgceAQMcVHh4VE6ePDqeTlZ4eFZOnjo6oP4APIYuLoQ+cgLAcnI+hiwshgI6auJsUEJCUGziak5CQk7+oEo6Okr++AEISjo6SgAC//IAAAPqArwAEAAcAChAJRwbGhkYFxYVFBMSCwEAAUcCAQABAG8AAQFmAQAJBgAQAQ8DBRQrATIWFREUBiMhIicBJjcBNjMBNyc3JwcnBxcHFzcDhio6Oir+IiYg/qwcHAFUHigBUkiAgEiAgEiAgEiAArw6Kv4MKDwcASgaHAEoGv3aSn6ASH5+SIB+SoAAAAAAAgAA/7oDSAMCAAQAEgAcQBkFAAIARQAAAgBvAAIBAm8AAQFmIigRAwUXKwERIT4BNx4BFRQGIyImJyEyNjUBcP6QEs76nNL2sKDsFgGoFB4DAv6Qks4QFO6grvjSnhwWAAAAAAP/+P+wA/wDEAAGABgAMAAlQCIYEwYDAQABRycUBQMARQAAAQBvAAECAW8AAgJmKyUYAwUXKxMmNzYfAQclNhYXFg8BBiMiJyUnNxcWFwUJAQYjIicuATcBNjc2HwETPgEXFgcDBiciKgoKLGI0AzYOJgwgIvwMEg4O/uI2MiQMBAEI/vT+ogwaDAwQCAoBdggUEhL24gokECYa/BgmARwKLioKGFAEDAIOICDiDArcDlAIBATMAab92hYICiYOAkwQBAYMnAFGEAYMGCb+liQYAAAAAwAA/5wDIAMgAAgAEQAaADZAMwYBAAIAbwcBAgQCbwgBBAEEbwUDAgEBZhMSCgkBABcWEhoTGQ4NCREKEAUEAAgBBwkFFCsBMhYVESMRNDMDMhYVESMRNDMDMhYdASM1NDMC7hYcyCi+FhzIKL4WHMgoAyAeFPyuA1Iy/tQeFP3aAiYy/tQeFPr6MgAB//7/2APUAvIAFAAKtwAAAGYjAQUVKwE2FREhIiY3EzYfARY2PwE2HwEWNwPEEPw8DAYI5hQUSgoWBp4QFnAUEgLcFhr9AA4KASAWFEIIAgruGhZoFBgAAwAAAAAD6AJEABQAHQAmAD9APAIIAgAHAQUDAAVgCQYEAwMBAQNUCQYEAwMDAVgAAQMBTB8eAQAjIh4mHyYcGxgXEA8LCgcEABQBFAoFFCsBMhYUBiMhIiY0NjIWFRQHMyY1NDYFFBYyNjQmIgYFMjY0JiIGFBYDAmCGhmD95F6IiL6GKKAoiP3ATGxMTGxMAp42TExsTEwCRIa+iIi+hoZgSDpAQmCG5jROTmpMTLhOakxMak4AAAMAAP/iA+gC7gAQACoANwAiQB8wLyAVAgEGAAIBRwABAgFvAAIAAm8AAABmIywaAwUXKzcFJQcOAgcOAiIuAScuAQEWFA8BJSYjIgYUFjMyNw0BBiclJjQ3JTYXATYmLwE3HgIHDgEmpgFOARQOAhIeHihQLiAwUChIPgMaGBhO/swWRCg2NigaCgEk/vQ8PP5gGBgBoDw8ASASCg4ORgYMFhIEJCLuqIhSChoUDBIuFhowECBKAT4OJg4sZiQgMCAERJggIOoOJg7qICD9XHSEGBYmCCiidBoIEgAFAAD/4gP6AtoAOQBBAEsAYwBmAGVAYisiAgcBZjUYAwIHFwEDAj0LAggDQgEFCDwGAgQFBkcAAQcBbwAHAgdvBgEEBQAFBABtAAAAbgACAAMIAgNgAAgFBQhSAAgIBVYABQgFSmVkY2BbWlZVUlFIRzg2JyUTCQUVKwEWBgciLwEmNz4BJw4DJy4BNTQ3NjcnDgEnNCY1JjYzNzQnNDMyNzIdATYzNhcUFhUWDwEVMzIWBRY3JwYHBhQ3PgInJiMiBiMlFhIWFCsBIjUnIwYHFCsBIjU2EzY7ATIDMwMD3B5QXgoCIAIEVj4qEC5IZDg0QDwyQAKMDAQKAgYEnAIILgYKngYIAggECLAMVnz+phwiBCIaLKgcPB4IJDwCCAL+PgpWUARWBjKwMAIGVgQKpgIIYAqCkEgBMlK8QgImBgQ8uDgmTFQuCAZGOlRAMhBkGAIGAjYEAgQcbgQIAghoFgQKAioECgIeZkjgBgzWDBwsghYYWEYGEgKyHP7u+AYEpqQCBAQSAhYI/rwBCAAAAwAA/4YDrAMyAAMAIwAnADJALyYjHAEEAwInJQIDAQMTDAMDAAEDRwACAwJvAAMBA28AAQABbwAAAGYmFyYZBAUYKxMBFwkBFhQHAQYiLwE2NTQmIyIHJyY0NwE2Mh8BBhUUFjMyNwkD2AFGsv66AhQODv3aECgQTAw6KhYcShAQAiYOLA5KDDwqGhb+OAGW/v7+aAEQAUay/roBpg4sDv3aEBBMFBwqPA5MECgQAiYODkwWGio6DP2+AZYBAv5qAAAAAAMAAP9qA6wDUAAPACAAMAAqS7AfUFhADAEBAAIAbwACAg0CSRtACgEBAAIAbwACAmZZtisqHxYDBRYrEx4CFRQGIiY1ND4BNzYyBR4CFRQGIiY1ND4CNzYyATYyFR4CFRQGIiY1ND4BqApQQmCEYEJQCgIKAmgKUEJghGAqNjQIAgr+wAIKClBCYIRgQlADTFaKbDpCXl5COmyKVgQEVopsOkJeXkIwWkJ2RAT+QAQEVopsOkJeXkI6bIoAAgAA/34CMAM+ABEAIwAkQCEAAQIBbwACAwJvAAMAAANUAAMDAFgAAAMATCgUGBcEBRgrAR4DFRQGIiY1ND4CNzYyAzYnJiIPAQ4CFRQWMzI1NDcBIg5cXEim5KZIXFwOAhIqAgQGEAQoICAkIhg6KgM2dsp0nFJypKRyUpx0ynYI/nAECgYGOi4wZjIYIkRemAAAAAP/7//sA5sC3AAZADYAVQA2QDMAAwECAQMCbQACBQECBWsABQQBBQRrAAQEbgAAAQEAVAAAAAFYAAEAAUwdLx0sJxoGBRorEwYuATY3PgIeAjY3NhcWBwYjIicuAQ4BBTYWBw4CIyInLgEOAQcGJicmPgMWFx4BPgEXNhcWBgcOAiMiJy4BDgEHBiYnJj4DFhceAT4BVRAoHAQQMD50jrCGQjgmICAmenBkekRmVC4CtCZAJigyXjJgfkRmVC4sDioOIEwsXlKARkRmVC4sJiAOBBAoMl4yYH5EZlQwKg4qDiBMLF5SgEZEZlQuAhYOBB4sDigoKCBkBiYwHiQoIG5GJhwcHpIgTiAiJiZGJhwcHiQOBBAoQiAsAiAoJhwcHtwgJg4sDiImJkYmHBogJA4EEChCICwCICgmHBweAAAACQAAAAAD6AK8AA8AEwAXABsAJwArAC8ANQBBAQFLsCpQWEBSFwEJBwwICWUfGhIDDAgHDGMbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTBtAVBcBCQcMBwkMbR8aEgMMCAcMCGsbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTFlATTY2MDAUFBAQAQA2QTZBQD8+PTw7Ojk4NzA1MDU0MzIxLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFBcUFxYVEBMQExIRCQYADwEOIAUUKwEyFhURFAYjISImNRE0NjMBESERATUhFRMzFSMXMzUzNTMVIxUjFSMzIzUzByM1MzcVIzUzFQcVIzUzNTM1MxUjFQOEKjo6KvzgKDw8KAMg/OADIPzgZB4etB4ePB4ePHgeHpY8PB4ePJY8Hh48HgK8PCj+DCo6OioB9Cg8/agBLP7UAcIyMv8AHh4eHh4eHh4eHh4ePB4eHh4eHh4eAAAAAAMAAP/OAyAC7gANABcAGwBGQEMBAQQFAUcAAwQABAMAbQAAAG4GAQEAAgUBAl4HAQUEBAVSBwEFBQRWAAQFBEoYGAAAGBsYGxoZFhMQDwANAAw0CAUVKwEXERQGIyEiJjURNDYzATUhFRQWMyEyNicVIzUCko46Kv2oKDw8KAH0/nAeFAEsFB4yZALunP3gKDw8KAJYKjr+1Pr6FB4e3MjIAAAAAgAA/2oCvANSABEAGQCES7AfUFhAHgADBAEEAwFtBwUCAwAABAMABF8ABgYMSAABAQ0BSRtLsCRQWEAdAAMEAQQDAW0AAQFuBwUCAwAABAMABF8ABgYMBkkbQCcABgAGbwADBAEEAwFtAAEBbgcFAgMABAQAVAcFAgMAAARXAAQABEtZWUALEREREREVNRAIBRwrATIWFREUBiMhIiY1ETQ2MxchJyEnMzczFzMCdhwqKhz90BwqKhw8Abgo/pgsbCSgJG4C7ioc/QgeKCgeAvgcKpYyZGRkAAAAAAL/+f+UA2QDMgAsADkACLU5MysVAi0rAR4BBwYuAgcOARcWFx4BFxYHBgcGJyYnLgEnBgcGJicmNjc+BTc2FhM+AS4DDgEeAwMYOhIwHEJAhlIcHAgWGAQoBA4kMjQeGCAaBjgSHggiUA4RGB9+rkosBhgYMKQgCAQaOE44EAQYOFA4AfSK8BQMHjIgCAQeFjg0ChgIIgwWEgo0TDgMChoKBAwwJCBeDjRwXlpCNAoUtP5KBESAgnI2CEyGhGouAAMAAP+mArwDFgAQACAALQA/QDwTAQUECQECAwJHBgEEBQRvAAUDBW8AAwACAQMCYAABAAABVAABAQBYAAABAEwiISgnIS0iLRcXGBUHBRgrJTYdARQGICY9ATQ2Fx4BMjYTNhcVFAYgJj0BNBceATI2ATIWHQEUBiAmPQE0NgKuDtD+5tIIBiC67LoiCATM/t7ODh687Lz+zpDOzv7gzs7QFBZkSnp6SmQIBAo0REQBMhAQdERcXER0FBQuOjoBdk42QDpSUjpANk4AAAL/+v/mA44C1AATACMAJEAhAAECAW8AAgMCbwADAAADVAADAwBYAAADAEw1NDc1BAUYKwEWDwEOASMhIiYvASY3EzYzITIXEzYmIyEiBh8BHgEzITI2NwN0GgwiAiIW/TgUJAIiCBaeFjIBmDIYWAIYFv18FhgCDgIiFgJOFiICATAsNLgUHh4UuDQsAXYuLv4GFiAgFkoWHh4WAAP/+P+wA5gDDAAkACoANwBeQFspIAIDBSUYAgIDKAEEAgwBAQQERwACAwQDAgRtAAQBAwQBawABAW4HAQAABgUABmAIAQUDAwVUCAEFBQNYAAMFA0wsKwEAMjErNyw3GxoUExAPCAcAJAEkCQUUKwEyFgcDDgIiLgEvARY2NzI2NCYiBhUUFw4BJy4BJyY3JicmNgEeARcnBiUyPgE0LgEiDgEUHgECCq7gCFwCRpCkjkYCBFKiOhwoKDoqCjCGQGZuBAikEgQI4P7oBEI6IGQByFKWTEyUppRMTJQDDGI4/bQSNDAwNBIeBlJMKDoqKhwUEDo+BApePno+Xiw4Yv4qIDYMzCyWJCocKiQkKhwqJAAAAAIAAP9qAhwDUgASACEAckAJHBkLAAQCAwFHS7AfUFhAFgADAwFYAAEBDEgEAQICAFgAAAANAEkbS7AkUFhAEwQBAgAAAgBcAAMDAVgAAQEMA0kbQBoAAQADAgEDXgQBAgAAAlQEAQICAFgAAAIATFlZQA0UExsaEyEUITcVBQUWKwEeARUUBiImNTQ2NxE0OwEyFhUDMjY1NCYnESMRDgEVFBYBkEBMnuCeTEAoqhQegkZkQDRkNkZkAWQkfExwnp5wTHwkAbwyHhT8rmRGOFgQAXL+kBBaOEZkAAAC//r/cAMaA1YAGQAtABBADRIBAEQAAABmKyoBBRQrARYGBwYnDwIGDwEGJi8BJjcBJicmNjc2Fgc2LgEGBw4BHwEeAR8BHgIyPgEDBhRgZkJAdkZoDiBMDBQCEAgUAQIYDhKOcmqybB4SVGQeCAgDBQIWB0MQDhgOFBACZHTGEgwKwgymHAQOBBAOYh4aAYIyRmqiFBSCvCxqPhQsDBYJEAcUBTEMCBACDgAABAAA/4gCgAM0ACoAMwA8AEUAh0CEFQwCBQslAQcEAkcACwwFDAsFbQADAAwLAwxgAAUQAQkEBQlgAAQABwoEB2AACgAGAAoGYA8BAAAOCAAOYAAIAAINCAJgEQENAQENVBEBDQ0BWAABDQFMPj0sKwEAQkE9RT5FOzo3NjAvKzMsMyknJCIhHxwaGRcREAkHBgQAKgEqEgUUKyUyFhQGIyInIyImNREmNTQ2MhYVFAcVFDsBNjMyFhQGIyInIyInFRQ7ATYTIgYUFjI2NCYBFBYyNjQmIgYBMjY0JiIGFBYCCDJGRjJQHqRYVkhGZEZITqQeUDJGRjJQHqQqJE6kHlAcKio4Kir+Dio4Kio4KgHWHCoqOCoqeEZkRkpsQAHQIkwyRkYyTCJyTkhGZEZKEMJOSAEsKDooKDooARgcKCg6KCj84ig6KCg6KAAEAAD/ugKAAwIALAA1AD4ARwBYQFUmIB8WFQwGBgMBRwoHAgMEBgQDBm0ABgUEBgVrAgEBCAEEAwEEYAkBBQAABVQJAQUFAFgAAAUATEA/NzZEQz9HQEc7OjY+Nz40MzAvKyobGhEQCwUUKwEUBw4DBw4DBxYVFAYiJjU0NxEmNTQ2MhYVFAcVNjc+AjcmNTQ2MhYFFBYyNjQmIgYTMjY0JiIGFBYBMjY0JiIGFBYCgEoGLE46LioqNBgERkZkRkhIRmRGSChiOjQyBEZGZEb9tCg4Kio4KEQcKio4KCgBrBwqKjgoKAKKUB46VjQYDg4QIDAkHlAyRkYyTiIBeiJMMkZGMkwizB4eEhY8LiBMMkZGMhwoKDooKP1GKDooKDooAlgoOigoOigAAAAFAAD/iAOsAzQAQwBMAFUAXgBnAHJAbzwzAgUKGg8CAQUrIhkQCQAGCAEDRwAKCwULCgVtDwwCCAEJAQgJbQAGAAsKBgtgBwEFAwEBCAUBYBAODQMJAAAJVBAODQMJCQBYBAICAAkATGBfZGNfZ2BnXVxZWFRTUE9LShU2FjcYNhY2FBEFHSslFhUUBiImNTQ3NTQrASInFRYVFAYiJjU0NzUGKwEiDgEdARYVFAYiJjU0NzU0NjsBMj0BJjU0NjIWFRQHFRQ7ATIWFQU0JiIGFBYyNhMUFjI2NCYiBhM0JiIGFBYyNgUyNjQmIgYUFgNkSEZkRkhMZCwiSEZkRkgeLmQiJgZIRmRGSFZYZExIRmRGSE5kVlb9Wio4KCg4KtQoOCoqOCiKKjgoKDgqARgcKio4KChwIk4yRkYyTiJyTgzMIk4yRkYyTiLMDCYcDHIiTjJGRjJOInJAbDSMIkwyRkYyTCKMNGxA4h4oKDooKALYHCgoOigo/SYeKCg6KCgoKDooKDooAAMAAP+6APADAgATABwAJQBEQEETCgkABAUCAUcAAgMFAwIFbQAFBAMFBGsAAQADAgEDYAYBBAAABFQGAQQEAFgAAAQATB4dIiEdJR4lExcZFAcFGCs3FhUUBiImNTQ3ESY1NDYyFhUUBycUFjI2NCYiBhMyNjQmIgYUFqhIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCiiIk4yRkYyTiIBeiJMMkZGMkwibhwoKDooKP1GKDooKDooAAAGAAD/ugKAAwIAEwAcACUAOQBCAEsAYEBdOTAvJg0MAwIIAgQBRwgMAgQFAgUEAm0LAQIDBQIDawcBAQkBBQQBBWANCgIDAAADVA0KAgMDAFgGAQADAExEQx4dSEdDS0RLQUA9PDU0KyoiIR0lHiUTFBkXDgUYKxMUBxEWFRQGIiY1NDcRJjU0NjIWAzQmIgYUFjI2AzI2NCYiBhQWARYVFAYiJjU0NxEmNTQ2MhYVFAcnFBYyNjQmIgYTMjY0JiIGFBbwSEhGZEZISEZkRjIqOCgoOCpGHCoqOCgoAdxIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCgCikwi/oYiTjJGRjJOIgF6IkwyRkb9dh4oKDooKAIwKDooKDoo/lwiTjJGRjJOIgF6IkwyRkYyTCJuHCgoOigo/UYoOigoOigAAAL/+f+uA2MDLgApADIAH0AcDAsCAEQAAgECbwABAAFvAAAAZjAvLCsZFwMFFCslHgEOAg8BBiY/AScHBiY/ATY/AT4COwEXPgQXMhcWFxYOAgcTFjI2NCYiBhQCHwYEFAZADZsgGgoogmocHgwfEwgWDhYkFzRHCiZ0eKpQCAYEAgo4YGQkDhZALCxALOwyPjgYKAZEDCAcboQoDBwgTzEQLR0OGgYOMnhYPgwGBApSrIJqHAEMFi5ALi5AAAAAAAMAAP/4A+gCsgAIAB0ALgAxQC4bAQABLBMCAgACRwACAAJwAAEAAAFUAAEBAFgDAQABAEwKCSQjGhgJHQodBAUUKyU2ABcWAgcGJhMiBhUUFxYOASYnNCY1NAAzMhcHJgUWFRQOASsBLgE3NjU0JzY3AZYiAWgODNgeMqyOqOgCAhwoIAICASLSSD5GKAFSigQcFAQWGgICUAYOsjgByAgG/eA2VmQB0v64HhAWHgQcFAgkCuIBOBJWBD6a3iYmGgQgFA4glnYOJQAAAAEAAAABAABtov+mXw889QALA+gAAAAA01VL3wAAAADTVUvf/+D/WgP8A2AAAAAIAAIAAAAAAAAAAQAAA1L/agAAA+v/4P/mA/wAAQAAAAAAAAAAAAAAAAAAANkD6AAAA9T/9wMVAAADhv/5A4T//gNcAAADXAAAA3AAAANwAAADrAAAA+gAAAPoAAAD1AAAA+j/+APoAAACWAAAArwAAAKb//0B1gAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA5j//AHMAAADmP/8A1IAAAOE//wDIAAAA6v//gK8AAACvAAAA+gAAAPA//4BaAAAAiYAAAOEAAADIAAAAyAAAAPo//gD6P/4A+gAAAOEAAAD6AAAA4QAAAL6AAAD6AAAA+gAAAMMAAACuv/gA9QAAAPoAAAD6AAAAyAAAAPoAAADIP/4A8L/+gOF//0D6AAAA+gAAAH0AAAD6AAAA1wAAAPA//wCqf/8AvgAAAK8AAAD6f/4A+gAAAK8AAACvAAAAyAAAAOEAAACvAAAA+n//gPV//wDhAAAAvgAAAMg//8DSAAAA+j/+gMgAAAD6AAAA4QAAANb//wDhAAAA4QAAAOEAAACgAAAA3QAAAOO//gDgP/8A5gAAAIwAAACvP/7ArwAAAPoAAAD6AAAA8AAAAMYAAADhAAAAyAAAAPoAAAD6AAAAcwAAAOYAAADmAAAA5gAAAOYAAACRAAAAVUAAAFU/+4CRAAAAdL/8wEJ//QBCf/zAdD/9ANi//MB0f/0AdH/8wNg//QClAAAAtoAAALaAAAClAAAAcwAAAGQAAABkAAAAcwAAAL4AAAC2gAAAtoAAAL4AAAB9AAAA9QAAAPUAAAB9AAAA6wAAAOsAAADNP/+AugAAANSAAAD6AAAA4QAAAPoAAAB9AAAAlgAAAISAAACvAAAAlgAAAJYAAADcAAAA3AAAAPoAAAD6AAAA+gAAAPoAAADXAAAArwAAAPoAAAD6AAAA6wAAAPoAAACRAAAA5gAAAPn//kDhf/6A8AAAAPoAAAD6AAAAZD//AM0AAAD6AAAA5kAAAOs//gDmP/8AjH/9wPoAAAD6AAAANwAAAI6AAADmAAAA8L//APoAAAD6v/yA0gAAAPr//gDIAAAA9T//gPoAAAD6AAAA+kAAAOsAAADrAAAAjAAAAOJ/+8D6AAAAyAAAAK8AAADXP/5ArwAAAOG//oDkf/4AhwAAAMM//oCgAAAAoAAAAOsAAAA8AAAAoAAAANc//kD6AAAAAAAAABMAJAA4AEuAVgBpgHMAhQCYgLsA2ADxgQoBLAFEgVqBZoF2gYYBlwGlAbaByoHTAd8B7YIJAi2CUgJwgn8CjgKtgsgC3ILxAwqDIwMrgz+DTYNig3iDlgOyA8WD0YPhA+yEBAQSBCmEOQRUhHgEigS5BMUE2wT0BQWFMYVTBWqFeoWSBZ6Fu4XPBe+F/wYRhh6GOQZPBngGkAaiBrwG5gb4hwqHHQc8h2aHfgedh7WHzofoiA6IM4hfiHYIloieiLQI7IkSCUMJionRCecJ8wn+ihSKNwpUClsKcgqGCpmKsAq6CsWK0IraiuKK6oryivmLAosLixSLHQsliy6LN4s/C0ULSQtNC1MLW4tkC20LdIuKC5MLnAuji7YLyIvbi+gL9AwUDCYMNQw8jEWMUYxaDGaMcgx+DIsMmYyrjMAM1ozuDRQNMw1QDWaNeY2njbaN0g3qDiGOMA5LDlSOXo5yDoIOkY64DsaO7g8HDxAPHY8wDz+PWQ9rj3gPko+kD68Pxg/hkBOQLBBDkFYQfhC2EMqQ5hD+EReRKxFNkWkRfpGoEc2R/pIVkj2SVZJuwABAAAA2QBxAA4AAAAAAAIASgBaAHMAAAC9C3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE2IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA2ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAAdwYWxldHRlBnNlYXJjaApmbGFzaGxpZ2h0BG1haWwFaGVhcnQLaGVhcnQtZW1wdHkEc3RhcgpzdGFyLWVtcHR5BHVzZXIFdXNlcnMIdXNlci1hZGQFdmlkZW8HcGljdHVyZQZjYW1lcmEGbGF5b3V0BG1lbnUFY2hlY2sGY2FuY2VsDmNhbmNlbC1jaXJjbGVkDmNhbmNlbC1zcXVhcmVkBHBsdXMMcGx1cy1jaXJjbGVkDHBsdXMtc3F1YXJlZAVtaW51cw1taW51cy1jaXJjbGVkDW1pbnVzLXNxdWFyZWQEaGVscAxoZWxwLWNpcmNsZWQEaW5mbwxpbmZvLWNpcmNsZWQEYmFjawRob21lBGxpbmsGYXR0YWNoBGxvY2sJbG9jay1vcGVuA2V5ZQN0YWcIYm9va21hcmsJYm9va21hcmtzBGZsYWcJdGh1bWJzLXVwC3RodW1icy1kb3duCGRvd25sb2FkBnVwbG9hZAx1cGxvYWQtY2xvdWQFcmVwbHkJcmVwbHktYWxsB2ZvcndhcmQFcXVvdGUEY29kZQZleHBvcnQGcGVuY2lsB2ZlYXRoZXIFcHJpbnQHcmV0d2VldAhrZXlib2FyZAdjb21tZW50BGNoYXQEYmVsbAlhdHRlbnRpb24FYWxlcnQFdmNhcmQHYWRkcmVzcwhsb2NhdGlvbgNtYXAJZGlyZWN0aW9uB2NvbXBhc3MDY3VwBXRyYXNoA2RvYwRkb2NzDWRvYy1sYW5kc2NhcGUIZG9jLXRleHQMZG9jLXRleHQtaW52CW5ld3NwYXBlcglib29rLW9wZW4EYm9vawZmb2xkZXIHYXJjaGl2ZQNib3gDcnNzBXBob25lA2NvZwV0b29scwVzaGFyZQlzaGFyZWFibGUGYmFza2V0A2JhZwhjYWxlbmRhcgVsb2dpbgZsb2dvdXQDbWljBG11dGUFc291bmQGdm9sdW1lBWNsb2NrCWhvdXJnbGFzcwRsYW1wCmxpZ2h0LWRvd24IbGlnaHQtdXAGYWRqdXN0BWJsb2NrC3Jlc2l6ZS1mdWxsDHJlc2l6ZS1zbWFsbAVwb3B1cAdwdWJsaXNoBndpbmRvdwthcnJvdy1jb21ibwxkb3duLWNpcmNsZWQMbGVmdC1jaXJjbGVkDXJpZ2h0LWNpcmNsZWQKdXAtY2lyY2xlZAlkb3duLW9wZW4JbGVmdC1vcGVuCnJpZ2h0LW9wZW4HdXAtb3Blbg5kb3duLW9wZW4tbWluaQ5sZWZ0LW9wZW4tbWluaQ9yaWdodC1vcGVuLW1pbmkMdXAtb3Blbi1taW5pDWRvd24tb3Blbi1iaWcNbGVmdC1vcGVuLWJpZw5yaWdodC1vcGVuLWJpZwt1cC1vcGVuLWJpZwRkb3duBGxlZnQFcmlnaHQCdXAIZG93bi1kaXIIbGVmdC1kaXIJcmlnaHQtZGlyBnVwLWRpcglkb3duLWJvbGQJbGVmdC1ib2xkCnJpZ2h0LWJvbGQHdXAtYm9sZAlkb3duLXRoaW4JbGVmdC10aGluCnJpZ2h0LXRoaW4HdXAtdGhpbgNjY3cCY3cKYXJyb3dzLWNjdwpsZXZlbC1kb3duCGxldmVsLXVwB3NodWZmbGUEbG9vcAZzd2l0Y2gEcGxheQRzdG9wBXBhdXNlBnJlY29yZAZ0by1lbmQIdG8tc3RhcnQMZmFzdC1mb3J3YXJkDWZhc3QtYmFja3dhcmQKcHJvZ3Jlc3MtMApwcm9ncmVzcy0xCnByb2dyZXNzLTIKcHJvZ3Jlc3MtMwZ0YXJnZXQEbGlzdAhsaXN0LWFkZAdiYXR0ZXJ5DGJhY2staW4tdGltZQdtb25pdG9yBm1vYmlsZQJjZAVpbmJveAdpbnN0YWxsBWdsb2JlBWNsb3VkDWNsb3VkLXRodW5kZXIFZmxhc2gEbW9vbgZmbGlnaHQLcGFwZXItcGxhbmUEbGVhZghsaWZlYnVveQVtb3VzZQlicmllZmNhc2UIc3VpdGNhc2UDZG90BWRvdC0yBWRvdC0zBWJydXNoCGluZmluaXR5BWVyYXNlCWNoYXJ0LXBpZQpjaGFydC1saW5lCWNoYXJ0LWJhcgpjaGFydC1hcmVhBHRhcGUOZ3JhZHVhdGlvbi1jYXAIbGFuZ3VhZ2UGdGlja2V0BXdhdGVyB2Ryb3BsZXQDYWlyC2NyZWRpdC1jYXJkBmZsb3BweQljbGlwYm9hcmQJbWVnYXBob25lCGRhdGFiYXNlBWRyaXZlBmJ1Y2tldAt0aGVybW9tZXRlcgNrZXkMZmxvdy1jYXNjYWRlC2Zsb3ctYnJhbmNoCWZsb3ctdHJlZQlmbG93LWxpbmUNZmxvdy1wYXJhbGxlbAZyb2NrZXQFZ2F1Z2UAAAAAAAABAAH//wAPAAAAAAAAAAAAAAAAAAAAAAAYABgAGAAYA2D/WgNg/1qwACwgsABVWEVZICBLuAAOUUuwBlNaWLA0G7AoWWBmIIpVWLACJWG5CAAIAGNjI2IbISGwAFmwAEMjRLIAAQBDYEItsAEssCBgZi2wAiwgZCCwwFCwBCZasigBCkNFY0VSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQpDRWNFYWSwKFBYIbEBCkNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ABK1lZI7AAUFhlWVktsAMsIEUgsAQlYWQgsAVDUFiwBSNCsAYjQhshIVmwAWAtsAQsIyEjISBksQViQiCwBiNCsQEKQ0VjsQEKQ7ABYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZISCwQFNYsAErGyGwQFkjsABQWGVZLbAFLLAHQyuyAAIAQ2BCLbAGLLAHI0IjILAAI0JhsAJiZrABY7ABYLAFKi2wBywgIEUgsAtDY7gEAGIgsABQWLBAYFlmsAFjYESwAWAtsAgssgcLAENFQiohsgABAENgQi2wCSywAEMjRLIAAQBDYEItsAosICBFILABKyOwAEOwBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAssICBFILABKyOwAEOwBCVgIEWKI2EgZLAkUFiwABuwQFkjsABQWGVZsAMlI2FERLABYC2wDCwgsAAjQrILCgNFWCEbIyFZKiEtsA0ssQICRbBkYUQtsA4ssAFgICCwDENKsABQWCCwDCNCWbANQ0qwAFJYILANI0JZLbAPLCCwEGJmsAFjILgEAGOKI2GwDkNgIIpgILAOI0IjLbAQLEtUWLEEZERZJLANZSN4LbARLEtRWEtTWLEEZERZGyFZJLATZSN4LbASLLEAD0NVWLEPD0OwAWFCsA8rWbAAQ7ACJUKxDAIlQrENAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAOKiEjsAFhIIojYbAOKiEbsQEAQ2CwAiVCsAIlYbAOKiFZsAxDR7ANQ0dgsAJiILAAUFiwQGBZZrABYyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wEywAsQACRVRYsA8jQiBFsAsjQrAKI7ABYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wFCyxABMrLbAVLLEBEystsBYssQITKy2wFyyxAxMrLbAYLLEEEystsBkssQUTKy2wGiyxBhMrLbAbLLEHEystsBwssQgTKy2wHSyxCRMrLbAeLACwDSuxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAfLLEAHistsCAssQEeKy2wISyxAh4rLbAiLLEDHistsCMssQQeKy2wJCyxBR4rLbAlLLEGHistsCYssQceKy2wJyyxCB4rLbAoLLEJHistsCksIDywAWAtsCosIGCwEGAgQyOwAWBDsAIlYbABYLApKiEtsCsssCorsCoqLbAsLCAgRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOCMgilVYIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgbIVktsC0sALEAAkVUWLABFrAsKrABFTAbIlktsC4sALANK7EAAkVUWLABFrAsKrABFTAbIlktsC8sIDWwAWAtsDAsALABRWO4BABiILAAUFiwQGBZZrABY7ABK7ALQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixLwEVKi2wMSwgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhOC2wMiwuFzwtsDMsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYbABQ2M4LbA0LLECABYlIC4gR7AAI0KwAiVJiopHI0cjYSBYYhshWbABI0KyMwEBFRQqLbA1LLAAFrAEJbAEJUcjRyNhsAlDK2WKLiMgIDyKOC2wNiywABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyCwCEMgiiNHI0cjYSNGYLAEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBENgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA3LLAAFiAgILAFJiAuRyNHI2EjPDgtsDgssAAWILAII0IgICBGI0ewASsjYTgtsDkssAAWsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA6LLAAFiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wOywjIC5GsAIlRlJYIDxZLrErARQrLbA8LCMgLkawAiVGUFggPFkusSsBFCstsD0sIyAuRrACJUZSWCA8WSMgLkawAiVGUFggPFkusSsBFCstsD4ssDUrIyAuRrACJUZSWCA8WS6xKwEUKy2wPyywNiuKICA8sAQjQoo4IyAuRrACJUZSWCA8WS6xKwEUK7AEQy6wKystsEAssAAWsAQlsAQmIC5HI0cjYbAJQysjIDwgLiM4sSsBFCstsEEssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyBHsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxKwEUKy2wQiywNSsusSsBFCstsEMssDYrISMgIDywBCNCIzixKwEUK7AEQy6wKystsEQssAAVIEewACNCsgABARUUEy6wMSotsEUssAAVIEewACNCsgABARUUEy6wMSotsEYssQABFBOwMiotsEcssDQqLbBILLAAFkUjIC4gRoojYTixKwEUKy2wSSywCCNCsEgrLbBKLLIAAEErLbBLLLIAAUErLbBMLLIBAEErLbBNLLIBAUErLbBOLLIAAEIrLbBPLLIAAUIrLbBQLLIBAEIrLbBRLLIBAUIrLbBSLLIAAD4rLbBTLLIAAT4rLbBULLIBAD4rLbBVLLIBAT4rLbBWLLIAAEArLbBXLLIAAUArLbBYLLIBAEArLbBZLLIBAUArLbBaLLIAAEMrLbBbLLIAAUMrLbBcLLIBAEMrLbBdLLIBAUMrLbBeLLIAAD8rLbBfLLIAAT8rLbBgLLIBAD8rLbBhLLIBAT8rLbBiLLA3Ky6xKwEUKy2wYyywNyuwOystsGQssDcrsDwrLbBlLLAAFrA3K7A9Ky2wZiywOCsusSsBFCstsGcssDgrsDsrLbBoLLA4K7A8Ky2waSywOCuwPSstsGossDkrLrErARQrLbBrLLA5K7A7Ky2wbCywOSuwPCstsG0ssDkrsD0rLbBuLLA6Ky6xKwEUKy2wbyywOiuwOystsHAssDorsDwrLbBxLLA6K7A9Ky2wciyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sAEVMC0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAVCsgABACqxAAVCswoCAQgqsQAFQrMOAAEIKrEABkK6AsAAAQAJKrEAB0K6AEAAAQAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmzDAIBDCq4Af+FsASNsQIARAAA") format("embedded-opentype"), url("data:font/woff2;base64,d09GMgABAAAAAF1UAA8AAAAAv9AAAFz2AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCaWgggCZZwEQgKgqZ4gflHATYCJAOGZAuDNAAEIAWFTQeRXQyBBhtepidkXgudux0Y01btZoyKmrBo0dkI2+MQKWyY/f//eUnHGMKwIWWaWb7+C+mUHL5CbkWKzhK7V2Ep7YguzTvbybOKNzAyjCvusU8VKoPN8IG0RZrusKcj7ukeDqn61q/Ompp4SI6c7AKvmpt2WZ16kohSsLfEo8A1L/Zr+RJMOqJQuxA7TT/j43KnJWGndQjRWoVoWogoNI9kYdhGfS99LvNS1ULiv/VItsBxXlCMnRCRHDm7+7RKROqIKhWkMunADqxY2fcx7X1Uy5l55f9PSt5ie0u7WtKbFV4cpRmEo2tcXjMACDSXf54/2dmn0ZAnPNFQWyUJJBbgFXsBAI9o6/NJlmwPwdJHuDnALkC0IeiaDFCb9h/F60KuIKcaFREPQERERCSEEIIECUEkIyoYQ61GQumEEkuMsa65lFqklHWNOZraKzHUNSwh56aaapoa67qsS+2VHq9rXZ/Js8TvB/qnW68PQIUtYGInQpbhUrjbdQ/8P9q+WVGCT3PDW7EMZqv5Br4KCZqsFTVFPV11MnjVU/UMfXP+/2x775OZ8jSbRVqOgdeE+tVjxuwMFFqIQPoet5frLW9/dtu/3fZvkw0JUEuIIRWoJYGqICNH5efjDWy3dyQezsHuMd1DMrGFOSulYYFGwOl6hCjcs9Hspl5fYaAPbDf2joTqUH0TCtoIUsf+WvpAqQSJkyrZHZ1Wf3Tz/3NSg9JCQgIJbi1U73W+yurDsjxbN8ZechPcI8BkptqJ8nBYAtHepdUpc/aostYDcrOj1bjmPalzfLXWv90LH7pn9i7oAFCYCEUDd/cAYc10xU1X3AdWAbJhl4qKPqg85veaaXRM0jbXNbX3fu6I+CRBIYj/2Kb2359HsPNVFW0hg2xzJo0kNs2/5azSX6XGXHPAzOwuc99km9JzxnsdUaD/60D//ypJVQJMqcCmhO2mBN2tksBWSW6vkOheIdz7MHNdV1UJYx24hxLYA3a/fsjuOTy9h2f2uu4k3iCZNNxJN402zzcPtxKhhJ6PG2mQ4QeAppmgnQcSFgdyekB0wKdORC2HHeD8k+Q4Tdd2PzLn/3vCcLVeKyBQjSQhkUSIgGwVR/ve/xvBbcx3H0wHm4jYLEbgGFs4fvCxClclRr0BBhzCgax2hgD8eEEB0tH1LgY7znojAcjUSZEA2LEYHtMv1HBSNjVyMiBPoPP0lmC1b5FHSiUc3jRh29YX1Dv+92Fwum3uAaTmf8FlDbzUGQD2JhigAPAAlked1gxZiAt82tGunIf8sY0gKiIdt3u6/v/yTQgczn65F9tUJbxwXR0trXzBq2el+X84nhIwnEgiU1BSUdPQ0tFTk3HLFtJxPT8IozhJs7woq7ppu344HMfpdL5cb/eHx6fnl9e39xkAIRhBMZwgKZphOV4QJVlRNd0wLdtxPT8IozhJs7woq7ppu34Yp3lZt/04r/t5vx8AIRhBMZwgKZphOV4QJVlRNd0wLdtxPT8IozhJs7woq7ppu34Yp3lZt/04r/t5vx+JpdLGOh9iyqW2Puba5woRCwdEdA4sMfff1rbxDDaCPINFEYqwSFgULBoWA4uFxcHiYQmwRFgSLBmWAoPCUmEwGByGgCFhKNh2GBqWBsPAsDAcDA8jwIiwdFgGLBO2A5YFy4blwEiwXBgZlgejwPJhBbBCWBGMCqPB6LBiGANWAmPCSmEsWBmMDSuHcWAVMC6sEsaDVcH4sJ0wAWwXTAjbDRPB9sDEsL0wCawaJoXtg8lgNTA5bD9MATsAU8JqYSpYHUwNOwgDYPUwDawB1ghrgmlhOlgz7BCsBXYYpoe9AmuFvQprg7XDjsA6YAbYUZgR9hrMBHsdBsKOwcywN2AW2HFYJ+xNmBV2AtYFOwnrhp2C9cDegvXC/gTrg52GnYGdhZ2DnYf1wwZgNtjbsEHYOzA7bAjmgL0Lc8Leg7lgf4YNw/4CG4FdgI3CLsIuwa7A3scxPBtj1YfQR4Z3Hw+fPuWka9B1aBy6Yfjm5rzPoAnor9AkdBPyQH+DvNAtyAfdhu5Ad6H70APo79BD6HNoyvDb1jS3egR9Ac1As9Bj6EvoCfQVNAc9heahr6EF6B/QIvRPyA/9C1qC/g0FoG+cfKP5Wtll8Mwe/Xfoh/BQwPdxlKSXf2iXXxL/HyIvzyTTfK5uPaJW/uYG/kh7YseNc8Ae3rVhjwA/Bw9Bgtm5h6ROxccuFnzo75oWfXQy2v8Ynbmm2xJLu9GBqRHN8G2mSZXjLqfcHR7YJYrmNneh5eNUBj5+FGH5xBwRpLOEXxpbB/VoTvTTQHhKBnwVz1LyUJQKjbaSGVdGuxFHICJk3Z6QzEPTdErXafUiiMqfGHkwzjI6ISSONi51gmqNWuzGzsltL+bdpuynaClGw4M4I80ZCamu52GIUas9aLFgw/6lIJiAy1DQ4hwpkQxPPEYqgzlWnfyxRpMSJ3grJ3YsD9G5TOyNY+CPwoor6DXMLHjJosBCuAHv5jYta9Rd5heBKyUVDktS4+ycQdGaRzArQ/mnYz1W4SrBKg7Pa9ECsOhs9tZXI2o8usZcWnEejpVsjfNvGXp4cqVJsHpxLAySCIkGY75huEyPQCEWh6k/dEObZgqtsjrfbXgE84h8eRirVcM0B1fbN4/El3vx5QFBadw8oDylzAqdfhTqujGSBzpP8C5qodYu05jIzpSH+G6sBWdiFrpLi06pJc6OEXdSE4f4YbNHEZxygSe64wmlyGVaysWrUSHbEBG80RPkqunrQOFUDR0/jHQIGlEhUAIiC8pI/rNfTEMSVIXuzzr2MrysNjeSR2WFadVjY1UHH9gsBoJdAMkugcOugMuugcdugM8qIGDV8bBH+LFeMsFEzMXECOFkGOEU4QzhHOEC4RLhCuEaTUeMFLXOpSmBdFqmzzQ4PR2Ud0Iy7mvUTIak3Z+exJOlNFFRJ6w8smFq6bGwqRz25Mo/X3ZkE4jtrTNbli+RIuTpAnVfxw+hyCm8Jb9qxE+IaAlY/4C169+mPaqFpm3FU8rzi6OJjjPwbnmEz1CZ7ZV1T4XPQHTC26DKSjaQ82o1gcs6O/O8+39i0oricO0zIQj9iyZhu7jiqRFYQ9uGY7tSaPWsewxpvVNTVmfF1E6TgkYQiIujlpyNe/G7PmaDTTcJZt0pBBMmqYsIfpA2zpi6yFwWhA/iLqTyqUGpnLIMVWl2JPcuRcXtxSTowMbVhk25MUZty6XwIrNMyfoxjVb2DRgrTlEOqAzlhloGoCft9l8F6SSSp5H/kDgJE0CGrT/yNEkGJgR6aAx0IlRRtFVcKPNCadr5LrZaN9dExDmUVFDcSjRs2fPrKn+RSjZaoVKgfpOeduphXRaSb7tFz0+8jMkOTW2Jfb7xftR6amumqa56uqQb7VboCZaOf9d9UnOJlgGpe3dSVFOgpiXQOaDVknEPNi6xZFHNWmhaV2uPZH10a2vV1ImFevgNMWl4KOtoSFHWrd8orOpRl/Qjw4IQ887qo84sIQ/D58uMSauWqfZ0wU/LhZZS4hmn2SfWKoh6gfLOmFyjugVTdliPTK3GnQaCrU6v1UWFjz4sM2uF6YHWgDFYASbFCLZicYDdD7RhByvApQh7OMDvB5pwgBUQUoQjHBD3Ay04wQpIKcIZDsj7gXZcYAWUFOEKB9T9QDNusAJainCHc1NfgPhiMkwKagVGRqPTL8HG6GCOSJtkwaFrIXSDOtg7ZXIkh56B0AsC7k6FPMmhbyD0gxz3F3wXIsK9glGRR1UrfPMhakd67FZi+imBv0kEOnrbPOsRoXEi4QvZb7e75E932WN8zOEL2xlKPoqDsIG3F3m8sEjnnUpOWq4YEUfx9G9Tf9Gh4aJI1CF8NlxWJBA+lJlATurYQmKU3i+5VNqQB17DH5UvPgcRh4vyIv6ugzWl0VqWx2taruTyCJYzj7x2MnMhm1b+KZE9pYnjkjtvkVCtpKSaHDc7H/ZHPnwHtZjA8WSmzMDayHW2IKUj4I+9Fv5PFsfTxWtiNxVhmpy4/ihN89SY6Sw0IqV4bgP7d1uIWclwyFVHoSdE/+CoaXkSAiaWS/lmBKhwET/SJ6uxoiNuyNDd6y5oD33vHFmL3RUXntsDagWGLdPAiA6MtnmA5RS8sg8CNBP5NXGMNbYQZbhPxMGwoxlH1yY2a7sSBgAZVX8CfX8DZjMTU4w+MTtE+PA36jDug0EIzCMOY2NYFpSrieVpNJLQhnOgWpnX7oVrnwfNgBQE0mZjxfDj23YZw3DYLDRNKRhacSmZfVefWiDyjzdpMEHn3Eocya91g29akEZNaTSdFxhgnw17R8leJaoU3TaSw6icj8FXR/pTLGzA6QrW6EttcM7qXMH2TFzkvjhjMAsqJf2+25m35uySWTYmm/ZcayHE3ZyQpzhIOGhyR1rCZsYib8Iuez2cFbzeWiPnpEYLPJyT62MzpZFIjs96Y2JJXHFHeU++xkOPaZPrczF27QYihjKgSNdgN99QSqkPpJ1Gg5s43C8suux89FH7LIq7dM5b++ZgfhcT77x7SubePqOzYr4f7O0KVrR+1lQf64RiIruOBzmArpWTGUVu18bY3kS1ldS0c7XnpMNfxmlwJ+66vpGbIPEhiLJEiopM1cbGay1trHosvtXVL0fBg5RvZAKk8lt8XZSvCXIAjTywDObUfK3dMQY5QRaUpMVU7391x4t1o9ZuFEJAQEjIyC0BxjvWlIXdnFdoEQJFCqXnLwf2IzFgcDAzAINHjYNX13RScCHMNLgUMA4wuPN3B2vKTWYLS4acRSZekIeXYLNlxFpDk8hqlT6M1i+jX5NHnIKVhxmkXI8DIEHKCgpHwe50lmkTR5pLGdoUPdqJlBc035xbSOL8/L1mPZJ8UJ8+W3k4C5d+NEv1IIpT87EJq4aSx2Scep26lM0mbDj8ODvZ3JQ+eimjWBeg+GgumIppmPrwRiQx9f/qmJAg2QpSthCjrIYlkM7So1SuFRmVHZAJAm6OLUj5VawCy93EwNYIpF/FcVup0q0shLZPWpPLjY2ZmmlF1k/BvHYC0IRKpN3OIlsQS3LZkD9++sM3P33280FnXrk/98dSqjTL9V1oawLmNoYBo9QknaphkCpdX51Bkxp/mbIHLdnYOm84iyAxmJekPGZTet5mTeul9G+PO84gpesYs+p2Cdy5jk5xwdLtyPaWEswvUQkze7fqBdLVmB2tDXtqsIMGQgTtzTikIrkupJIKygmldC1axHPUkHMdTq7ds2ALq51K+VHU9F3b9RzjrLnotA4smh9iBvPHMavgqM8oLVgt+ftNH7q2f25/+zLXbSIEjUh9lq/hOFxiLXm5P1JYbPrUaI5qmdbIsnj9/odhxtkajRSeNYXZX50yKFLbmzPQ5O1v9wxkuhrTpMMBLJbDxJK9EG9M1L1515p+/e3xKQtYwwZAYl1IlS1VN3XLvMnYZYuB29YdGe6s6V8RGn1wVTWZvWQtIx0ZMTjDzcOVOF4Xvrb+QOJ0Y6SAWJvXSZJozHQUa+tcmKs/DRvn9mRZc44bTg5cCe6f6wgKP04teUiCHEm7HfWd1PXxc8FwJ5yNUvK1l/xrlHOQPoH5u8zWXS7u3v2C0mmVM9br+BbOx99HUZjvCwVFPqExIRT5HOm3tJT4tWxTm2vXpxhP+IWUIVu7c3y9j2NI73EAiT2cMdKTunO9ae1qMrabIseq6hXxNuKgP8HzQVRy0S7Agko64CNHPUYuJOTgENDAARlqTNl6cT1jCAFhdQ0UbJBG1QDWMVYfeeUVsmXQZjgp0XYQriz3ODrHDKcgKpWbx2StVBHFAzVKwbqblW3pjxQCfeFjKt9KSd1cGFQi9GtMbbM/LPh8cMXRCahlQeu6WFg+mrsIwC1jGqEPDreOfZy/AZ9+Haebc1V6vGG8RlJBhznPCEGn5e4JdlZ15I6rvGqYNZWYz21+Rhm/mr4433GBzbC6HrvG0xwpEaMFVs7Rt5UufEHLAFIJkm8i5TkFZR71OwMTrTcDanOKHu6wC6g0weoiaOunVoJdMab89CwAoyfgRT/hkKAbBstKEBgpIrGDwohMg3baklUNgU/ILcAq3hMhZraro4fl2fKaiwyz7zZfkq8KSQvnGzPlHZJ3Sz7UnxDMR1WUS+plNHWUvck+lkPRCT0Nf0Izep96BxWCWFLRfjtSh1MT1wgz20DG79YY20w1mXsTp8ZvHXjq0Ew00ozlM6ft89XEKtTr6Qd0PMuPZwFHAU9G8bCMQ2Z9r0yhL+3o3vai7lYhIIzOdg88FDRRRCjigMRAul5vOODKABsq0dgf85OYpVFP8xCjoJ2ak0jBG7DUHdNqj8PNTzCOzQmuUqS9K0b0hFafa/sJTjmKeyPdehrNqDr11L+tdIUtA/C+rb0ZjccvVDIVrgeC39PMk0wmjcN677odnf+A2U9E/Dwk5WfiG/YpJ02w9TfeiDO2p8R+15U1y07rMmUDDl/d7T4deGz+QwkpdUeaEKCVx7v4KdrhMkbM4O2XnuzyMbp/0NkQo3EeUvZhFLmoOo1hqvZXtZeY8gdjCY3imdpDYztCXlrV/3gwdGioK9g5uhVjvvLHrvqfWttd8Z9TioUpWeYWGFxxip7G7sFigQaWoFJ7BdQv6qbCEApSYwg+8QjugkMzuGSYSxAwGsrRt8dN1fW6tswYfHpx/Gg/jZn6QChz7JeLVaeer9bA4ZRBzri0LMxM+DHddq0ykIi4Fd7wu4a8Mis103Kn4QxXdsTvjzxePZBIovaZ/6DJIsvZ2zyJrF43xmfWgvbvTjRHHAWYPfPIdXV4tXiX79/qJj6rTpz2GveDxzqQwCCckqgFZSBH94u2ApqpH6vMUj4vcq4LWKy//nEFffXTKtAfAYmA/q7q52RE7vPnp+RvC8WrTn1ztLm5/MkP3+xryftbElpNcrp1/smjdHP5r6Y+slbgBf3aVmHjK7ukwInNUhFyuYa3L5PiDu7Q2Z3sI04n17Depmp2uXET3gGkutUkpnkFt8UpnNYcr9go33DqnTrWxH5dVqM+7PrnHut9ubo9qer+WIewD/KNjNzfg0mHv1ui5jz1hn0uds/ufPZb747mpY9RHWcb9uUH9V+giKcs/jHEx3eGrCmiGjDv6u1SE4FiBLfbgpyBhDzhMfRhs3K8ZhcwsyMIaMh5sSRvNSadZo5U0vNIlp1Fc8FeCgVp/TPDqAOjKl8KDggFsQLoFKnOyK3ujtu1q7+qHmv19n+QQVbrediR/K2sgcwm8P8D/x5MvYsxDMsuOFM2RQuEHVhUb+FCs7UhQLG+GTRR9Ob6TLFWo/5ZA8JWRF2ceqTtL44B+1CAKPrpOBYIRR/ET0llPpvY8uk9wJQSNgqo1rGUfcPSjGJHO+d7soytkch1Pqt5YyIYFp+3F7n+4XPhewIameexIZF2Kfs8IT5eEtQBzj9a9Ndl5y2NFndOrsUuGR+rodM706O952NgDgyPcPcfqJeNzRq3lMsfTzYaheug1R+P/3DypxM/DznyhDjJjvMe4D8jK89SL4POCelLpeehCrQJzL/sqhwp9VoEzJ1WctprbZXKS0ObvGLqe5ubc7FJmJ5QQj5WcWMlZQjgtpQ9sU/OVcUi+1pi/upYQlcsDAOjq5SiB0bzFNfPMkPrd4e/xtWqqD/vOq6jCd1Q0FqTydPV4uTjSLzTWR7FXZy5GHRyINmKFAZze9yZ/GltXo+Q8LMDsjUyv0hv4s93FfZGR33ZfXN9c8shOfSJBIghrkKarkKL6oV2FA6Sc1hzETuv4BFzAFK2e8sfNh3YU2rJ7/da5xf/5l3NjfhOV3e/17O33ORe8ef9sbHC7N9P+m7sLS/sy398Y66cCRc4GfiTqR9tddvvDDhSEfI3PlBRBEdoWMf6qtJHsi8Ztnj3IJtZ3kppilBYwMXWciohl90CAQ33p6oieTtr5lCQMag04P19Y9HrdsRzRTA3HpKFjc8Pse2vmhlUNM1MdgFhm0jxUz8ea1mIbD8CIUTApRCQeMywRKudkn9E6J1CC3kyffyH/7NJDU6IboWih3DksnbLeGBqfq9OyyFq9niOWt6D9UC3ekhUZc/IkuJHkiglpXnOX/Gp0j6CwY0jPBw1UmjONeFsy4hztlmnuaZvSin3o5RjJvI0O/eZqedKLaSnLwkIM/0kYMOAj/ZURWLNfSwjb/SHk9AI7pj9a7gflbZYWo2AdjJbK2HFlPaIijgPrW11HBhYsVgvzCtTfRGyZa8Bq1BnCRNUcxUDBR1oLpALdtBvwYpqqvRcfpzBTChHRR63GZ6lTeSAw/WQjrvEEaRUf6djp3TFYhSfU3nQCmYsEsD8E8wwkVRKgmlTiXNhK0CdgrRQrapCeJYZwzcX2LOCqpIzJlE1xbbHh2m6e9Pn9tn5lMmdDZan8XsZuejJ2ZJjobteHc/gQVS6GI7xWuWo4dQ9mlGsP+qIoyHZpZQi2lJQJZsWXhWEB57UkXisN/UKRK0PAbJnuywtlHk9MtcQjBGLRFshZvzlM/V4R1b+YdJMalloudoAr0/QqIr0anlJwpvXjgzEO8WMmyIDvXqoOyQlhchjQQDhkOFFxojrCsf3KgFa0o56j9oIBaAGyhd2p7NGW6l9kbJsMc6SOOJfGKYJS6rfI18HbYa9BrErNu76KjeS8bjKd856NVv0dMh5Bv/AkPIl6zKqlUMsVUc3LL5vMdlWrD9SeivdQa6IpwNEl6/0ZORqNFeL1g37mnmdjoXFASZy8F6/rPx8ixNDLKFvpGB3PdaLQvOsGzcuro5nGx/nNnRNI3bkIwys6zqTeRrOPsPg60kOFmukX70/W4Jk1dGc1tiYK7F1t9C3vIpvnNgp/5cx7Kj10XRajTKTg0020tPnFJGyZlnzN65cgbfu1+ZUmZ7XvEyh1OKx9nfyFE5tbWPwRvaxmzalGXnlcXsJlH3BniINcNxPHUX8sSZcmgCpXo3WY58LkpqukXqMooWY8MekjH4S5aM/DMrPyaO9dco3mdvMvw90QUcxIM8D7ttPfk0/qiz0+NZVHe8t4u4XvieLnNafNS/m+xMZPKt7/x9+6Ev1yABvfrMxmL3LCMNxUROk8c479t3D1Vi8gLoHWH/ivEXF4UvWFsLAyAckJQ/ttzGnF8hvSJfEIviiOcgZZoIcEPIDMtY4rLZdch1nLl96/PDCxUcRYKYmiO9v2JDMINZ0VU5HqneuwsH7FZvvQcoHFXssGlkeDPYZRaP63Fa5uqU1PAOumppx4ujKfzC/+QDEXa+l5QAsHagYJleuAErHbvA0O66xtGVp5H7AJez6p1ry22Oa3C9/NkbNRwVhbDT9hXJdyrAjf3tbwHz83/UEzOxXt7hxS+avFItfYZ5srDATSTkHctAziffUby+d3qZjw5tVc213gW7+4Ot0W1QN9B+O75mxMW3Ae5aqond5V9Xrazsmdr2SMumqoF4ArwY89AGhvb0PrnRzTOsqYDOa0WiyO6xqNZoXcd5pHof+UUT+4RV/5Mgbs2sRCGE3m627xq7ZN8R2IYy0WYeDUzA/NB8h1QK9D98OjluNoSdv/Y8U1dU0OsrfF9huGJxh27++gKbkb0YYfb5+XyjSvvwGYa7fOqfc8lAUv3X01XIATPi2ao6Cmz4MWHlvegeZaSqZtCCl/wbMLly8+ym/u5oONPQF3vd7PMTagQZTET18TSd/u+KnJxVZgrmu3m7jqOeoehykRaSNhyP9YYOXrGqLTvkG1HOO4MgKhb0M/EHcRWJb6/D8Mdv3q4kJBlIZqSK0x71y56q8kHym/KC4brI9b5iJEOzakSJvKz3F8J6RnXVKFqXkOteHr6gX10VHfKxKxlt7flxl74JnIM/4xf9+aTIhO0d5C1wVnCUwzjjzT01pK2gg5R500a3k6JmWwSMujHGdR95+agJH9pzbK9CWEksCp7JVFzdFr6ujWx++mdosNsfut6R8M6I2LxvletDlxiLv9KQYWHIZP/xsMPkiI9VTL3JHdi3xQKmaNFf3O686Xokx+fLgu6Ltd6f5y93x9yRz1dVc0h+l/pJAUm+y14V4VVBRe06Gh/nvCQu9XzkYeVZd8Q9Wykh8AJyr9BCvr6TiXwYSb5IGex3jd773CnbH/STRGrlEhKSS42kh2Fo3rqrRnKpHo2kn4w12bExmE0o5foqKJmwVcSsXyHQ7Trp+NEM6Sv3bh9ilobsyy0dNfIaxh1tnZh5OrM5cOVU172/65MnyS3j4D8ceOBgeCCLGKmgC0yzAmW9evhQH0w8sErEqmGEYSNtyDjvzPWmIkXAAVqL6VSZZeqM9Jl7BFe5Wc+DQ899XffDs2Qvxpz6cytdQ4imXtUE/WUTsb7/AT+iOGn1ffpS1deXE9xq687Ma/WIjE102A0kdzs7kq60xRX5G+ha+EkjjOhvJQvouX+MpQjxpVQLj7XZhIcsCldvXxRh5tCqApgpxaL5oUnT8b3OPYvujTXd+BdPT5UIT3lvpqfBUerOLKqvnLAFuyOcT5dacaH/b3LPb7pRP1OaLfh6r7e293tl5o7dncj1SaEfvB/J7J3t6QmoYwuGASlBCEVoMdThkMHWot9fSW9i1EALU64ENEADQAXFOUOnLEXmFOUvgSI44DidaY+C2V2cTOjcWxjUTjcEy9Axul+LKeha8I4WQQnS20gFnWafQpegd1KZTAu5NAa9FpGAHhyfXfyNoHPRfT6U2nSQGuAhmgtf9g8a5H7Ecx0mZorKY26LWq0MllSb5yQkqbgemGwlKKyMfAOrkJwp28HzHSgQz7PMDBZQazit2C2e833ANwnzEeDSi5wwPB+aydUZIe+XjV2jrFyKQzheUIyeGMUvzAUzKIJVuYDBUxm/VRkW8EpWBCcwvYazzyHKBAFNxou7boZIJC6ezJMUmQ1mh2ydkaAZD+iemlGGZ2A61omS2FPIIeCQfqozUE35emJAUnP7rTYo8XUywlsI1avQGO0lGpwLuE+k/2ws1VraIZ2+g1Rp4qZXUanVzy14hfsFZAtIF2szNWzFOrj2gUBt/fAAjsWt44XihgL8ypBtCbyfmVNXq1mZ5CphyyllWHu1ONaWYUpUzQbv2doBxMkpnsS/YPysWS4ovtObYt65usOaeGFOUKf9E8tf+BboeXBSOXGF3dfeNqRcO8NfvVSqUx5Wb3Ty2k53k+yQXmUjyku6TPaRjWB9O7cLvx7vWKT4sKuuwzfYV3PWCJYmBpSftyEiRHxrr27evblJ+c/fiQABiM1FfP9JHCsBr4QGSD6nzaG2knELbj6pghtr92wbodqBMzhz/hnrYOuEHCrk7EA/uQWlUGqHboRBhPfUaba3P1TccJkQ3ptKgfcP4NH74py9eHNxkQS45nQqF08E+pcIJvS6Hw1QoSN6VXDO1TC1Tqz7sFCkh+EmQsvrxOvzTp24lRhp53y1MH5r+4tAXm8o7Jd+SdU83PQ1UpAzHmJWICj7EsSN/HPojO+H/CXquy1v5QcF5o9LlFrMDBrMGk5RyIiUB0mh+sW7t1Ix700h2d+VOl4f2fuRoq0CQ23Cye5LigqgmlGFOiHqCh9WSfWHJ0ZGWWKglEhobaYmHer/DK7A4BT4cK8fgFeNXhTZKtV5cU2nm50JaItoj0jY3qt3r21NfWCbrhxyVHyjnWTGvRiRw5ZrxuVokpKaIQaZJxKVF9DC1QBIL+UWXP87eWkyTZ867VJKHmuLq3FFBbAhJEbEX5YoJ9cTp275mJy+nYQjE7CVimVuGb6XTUevbk+y5I2hNEd7E6gxSkQnjmQ50S9MKhuQhZxRG1o2zp58+b59zq2Y7i9m1L2RH7i9Jwi2lzJbEtb6PnYeX7EfaQ/22ECWUnmUMkLbW1h3ge0eOvAcODgr4g1B5iBTiEggy2aDNuZe6x/lbM/geODwsEu6tgNa+X/jkAEEoHHZ590yagx7oFikAhUEVtsjy9TOH+EKhAHJHAayuSqUA2isQeNEaqdTvBzWxocVIrUcsMdMdYrHXPDluVPj9UILpDiBbWeGJIT3axh6IiLu6AnKcq6syGcG6BDch3ypaGx8pySgdGV8regu5ANftam8G/+5Lbd+Vp6qbritWHVQxrPfgIPwt+ATDzaVkFHDdjAk4n23gbPt0O0kH595K0/RPx9jrpoNj1CMihbQTa1HItj5GvYk/jcyC7VRIU9QrB7s6b5je9PZTvQC6nBwKj3Nwq26rIKkzxGdDKjL1So+ci9p0Fg77rE+Ew7K5wnEVZrTThv0LHj15tYvhcnk35latmpAxItXm83SujY/H89hoXnwmTEtE+uA17nV2DY2EIvBr4IG7Zne/ujV1NFKOHQAxqF9kRBqppuTi4YUti6av1y7H+Uf4BFOOlKfS6CafqNNVPEuOMJ3J54tU1KuxGMEy4khiSzp+t/lqwQBBXnAgaXHuzhvfQBm8/S3PXIXiLLPUeC0yKQAtqaAxnAlpIzxRxf9W8MTjeL8f0ZaoT9RnGaMAxScXt0nwXzzrH42cf4eEwNq+FGXyABe+/MTnaIwM46SzkEVIFh3jHHEMtzaNdd2IYea0UTwORty4zTQVLkDWhd//B7GsIIEfA1m/HL6m70tJolT9xoruTO/f/fWgu337lWvPPnl2+PYfe1pb3ta37E2SYdJedTna6860oGRuXmllnMKxrvrqX3qJnne3zsXQKxQt9JZMhSpbnzfvnX9wmtg0eOewSyvqz++nUhXOS8rTgu3Px2w+XVcpHHQoT3a1zfpIf/xuC69FkmO7+naWLeuMZFR6tT9zI2NXh6CVofCuF5RfE4LjtL9lbJVrsWzt2Hyx/OK7zR1bgQCXwMUFxDiOQoRH3dDW8d3G8lYoELPCLtXKblU2/t35SmQjvUjihsznOnmfqX7fIZOficEkyzEitlrK68mv+bM4KIbsenw1tJySsrmZTlihU1c7eP63oL4yBWKgCn/CnBIqvQMFJ1HsPjkbhYZo8zu1zsLRkTx1Hh+VPBz5CUagNmrnO6Ea11pC/yp0vpe3PIlq83pnMieCkxozhikd4bdEI5h6dmiRxxxui54v5SWmMVjGcCBdjUugDB0fKkhQ4YD0cJSMleKAI5CfIhFwXV7wD2tNcAZ27Rhwp7dIwL88EPSlWM/cJbtIBYeuPfzkoa7vke6TqWtThyJSrWfukzxkblnGaawTO4t3YA9iHfhZe3xZq6NCtbsvdl4w5EA7rXvuCHvtsFN107qPvV6yk1xPcpGnh6bs0yQvqZ7sIRHSV+vDqREHSY99abcP0RiKdrsxyMlQorQhKPUDK20nONb3/aJccAN3HrpYl1ixaIDBNSww70AXW+R2lROchHaHdfeq1UrCOT1LzDbJEFdgj8XnGvMFMrYadi0e/djgpEIXOYpBTaZBwkezv9o+QoUfTx25dw3zQ5KBYkAv6dp1bZ9Q2inlzH3/wzWYJAjTJhoiQzW6S85TE+z5ygnoOlVCUJsFABdkXAJBgz7e6OIqxFyay3HXxKAjZWnzKmmWmTCRL52gyodiIgD0yoEQyB6zm2yGeJtlCa/y58m9elh3WDsSoYuoLq36/QbZQdyYFn6rllgLPKh7WRe0u7uVcyGCl7ui5AhKCkNa1P5ZexFTmgIfUXSkXSLC4QcNCpxuXk+ZGPeDMjvcDhf/uBF+/TYc3vhkv65Jpo5YSCrIeXYglbnBCq6MhOo+tUC5Co7chVN086yMK1WHLi3dpVJph1TSIdnUkhZxTtYG4bvhQVOKfbFXGjro99QgzJj61YYOXuv5e4NBiPzl1ZaXb7vyWLjP6QzItk3jckzYGUc8aq6JZ2JYLEzPiy0zq1M1iZC3FKIwv8bgLlU8DMPAIDCmYJiprU8cIuwhZAqBSeTXusKWliHs7/wsiN9qtuwXu1jJUt41pXKU6/HM+7zOS/sORstLXWUMemZPb2aVfOPdezJAKMNtduUMWHN4eTihjC1ljeY2L+7uwvEyt/PSEw+EIB1kpjCoj8yCC94F4xmOl9eT+053Lj8Ph8lMBaBWUUZc2bKsNMbL4jLeewKgI6qig8Xo+JH96raR1EPIEX3nfi6vxpLVTbxszC3mOXPrq03gE289v0UtH/1WZbTncX3r9rb1TQ5K7S40D46oBtUPzes+Lm8dourH9er7MTBtdfdvuTIx2qZ+QEc3x1U8kic/bwhTpbznRH3KGfP0uu11rb+lY+2R1m6vRfW6K2izYsl5Unu59lvnlEsP6i7WyfMeMDtqIX+dW7W3gCDtJa1/ijZNo3VT16B2emhaG6TpaHYqzTJEG6DlUbGUq/KVnVNSE6vn+F2sGn8iY/PciCFCpmi4bWdvZpzAqzXmTidyzdjuHUVca9GPbgzCSsAS/MLGZCg4LcmUUrAjLmFicDFId086fkD1rG1AyOOS5KbuNbQtJTIeu+gb5NiR7NHnxA1U7gMUi5hdTPXbs0EsudDuqE7spm/CLxdDA+sl++FMXfHJWtpNGtI53hC15hm0Ggryf7Fd26YIHJlcfI8RHP+82KDi9QH2JSUB3Ldznz9Pt2tfxK6voxVRkI6E4ZKm3xOgCcdOHfNMmD+VmDrkgXd2HZzRUXSV/yrz+cpejwNNca//i0r95+vvr6x8YBgv4PPqTQ+ir3zpbProqBcMyBOFg0wcdXuCQZcpCLVm5uWmt4Wa+cWop/G4sHGjzczABbzJG8BuKXVSJYDyOCqYxHgnX/YxatwxwqStbTKYnymj79tdzky/CBpQwqR2V770Y2zPZYdJVDyOAKqalFLlob16/bv61sl1qN/7XhBUI8OT/kPfGheIP5qBbtAV5CWrIjwAaHpUjDdsCUyQviFlenBU0C4WLNJHHBtU5xKCGwTWhhdBi5AzSb2T3LJFVbagLV6ZhK+rKwD9YULFpJU5Mc7wpvP9VLUDUJthLCjj5K2tDbHixRqdEJDh+qYqlIo3H7xOrogiREBcI7QK7OlLAIgrghCBYrMqijWRLlQGamZxdsqBnYD6lAfeAoBTmxk6l4ovHHs9xzLnOnUZND4A5Ulkx3QOi9RFTH/ieuuyyQR9RpqCymSv4S47EYC3aYjkrXHVOGs867mhAw/BYpFpe+Hw857Z27retA/gz/t94G4qEsYtpv3ZQ23s7cTvwfqAVgxvTPH8DUL2t9kECcv0pFTOz22D8rkHs7zvwOVgPuLekbttxh8FA7AwJHfcMgt0F3QZjmued+DWQByE+OGuD2MmhxpokDYVuo+aJF2T7v6t+0NNQ2QnSTt87LTcPzZ178v/I0GmPNDl8AA3ZGe+fYsWtuvhg2nN6daf4fDTB/v6u+NPnYTDy00Pe24nT3XH9/UfPA2H4+OmqkyGmMRVmEPiyj4BFf8Xyl/wyxREf0352gpdGPUelvDjQqRQ0Q9JuAwMZQu+hgjuUahIzRiBgc28EfFoohyHgN1R5i0Mqqx5Sro+MTGnuzc/RDiXq+RS7QDOyWSmi+HXxM4FYGkJWHB6rZJJyQxscBA2YzWz/vbAjJCILQ6zRSxBOOY9Zoe/ZFvqFnkL0HC56+saIDRlQTtsjOGf2zbxY5PG+m2TaA1jIwYbNO4R2kwo3Tbz6hYxAYl2o2npfx83ZcRhH5BvJyYe37jF/1A8NDdPnpsjz092Nz/Z+txuh46NpYoK2yialkagvFGtaS54PeMjyT9jPOP1gptzo7q8EdC0UF4nfiL5GrsnfheJY5rU9OOnlFT/vIbxyrH+idROt693Rq3GQ7WM5/HNgkpUqb7IiIgYX06Ig9oA8+3VVSg0TKUiVhmNWfzCDHwxPoNXaM6SV+HV6g9SHwvdrYyPv2o7nHZYkCsME4Q9fpy0W9grV3F7IoXR4Ecf1Yx9FAuyc/RcBU9e2Gp2063MAOL8RdinT39TmlGqGhSgNJ3cW5LwUCGDJj/4vBfY2qkG3lJ3BjSf4UVTXAcEvC2G9cMXU0g6UsoiY8ZLD8iVjABV9nMUNNkmUekpnaROomMEOHSQZTiX0HM8doZzCUqfmYKB38c8S/7EReIIu/GtZBqtiKYsFW779ejoyE+O/jjSQQw2+GtMxvdNpstBZBjjp0g0moCVBl8EJCmdPkyOjDOSvZjVOgiF+r10nRLg8pHlzEEdnF1LdDn1Ep2+5JQHAjYZSrl6BoWg9WpTAz9k4H+hoH/gAGh6HzQmpu2Gh1RMo1DnUejz6M0VRk0ttUFOyRrDwrSyU+/OL+idYfp3FxaGTsqaw8IaZWVLv5aXay02h1brsGlUnmLWRi7LTHDZ9FoSSau3ubTa0qpbzv4WbXa2tqXfSXjbIQ+08tS3SU5y//oALVNaCkVHMewUcSmfSHaRagVSP2+a/jLjy+mOkTzX4o1wV7OzU+REBV7xWtDoWmRFXcXDh2urQ5SblKFjo0Q+mUwU17qAFB6SIjrhzEwJ/jkQFbSLu2czZmkZ2PK68vokbc2z1tlnlmdts9COpb0zPz+jJEhZyf2y45FP8zq+rGF11XP1vZkY/9B4euXdMGlu5KzOdizeYebobFm9qmP0yttD7fSuyXPzOSuzR30zvkcds2UzbbfVyG+mKXAEnTq3mjPb8eiOHDpmZfQrvy5DKdCZGqKFFKYHXlyuSRGiJa8ZlmkhudrzwHNPLQ8Vhb77LVQQeryAajSEEP1hi0J0tuee5wGbHqKh6KhjcUiWc1Eo+Z0FldPufHBHYS+70w46xlxRm+7IjOrOPdAMxDjZ9VFUgnt4bPgjUq8ZdIjiPLNvmR/4nKr0NG/Zx4ajKlgGrVErPHWmV2EHlBWPegCbdfX2BRNBSrMx6kGzoXlKrxl8bBSt8qQRquo60xOsLDNojxpsE1k0+G49vB5nhplFttsNyAYCcNVCSr9bj6wnDEoZWXdFFtRM1rP+nEL082eXEbWz/5lJhyLaRptlrd2tP5Z8Pf/thjca7potBMBPSL5RT9iQ0rPuWiyodW1wVdaLP17/8fSqNtxC8MKPN37Mfqa9+NONny6sBLPXVeF4/aeLwRUUbPnDldX9dv7wfJtSIJKzm950u7dF1kv3J2GW85MzWfN42JXVX/mOjQ9WfoZceWPycWQPQCzuj1663f8fzm8elrAF4jbl+Q9WV/fHPxjfc8Zo3AFLViqMZojUBGq1Z5IhzdpkoVCphARHg9Rn1jT2w8JaGmsr1AZjlnaK7CLVny15dWh1Ka/WUPEUUDc1MjWmyyZ5yNvP/pe2Bilp5rL4DMGWpll1JLfq8NnDJS0HuRyZROlUHthx7BWbRRetFEkOMjzOGlqX/XTLRqSOdGHHdpwFjX5buA8mV9Y10cKxZCc545rPZEy9bJ9ya932p09ffTp0luuVnn2e8jgt7PIRrXt+/1LqOM9AP97/UawVhg/Hw6xRiX17Kv9Rtef+3qp/7GCTtk966yrLqj6rKquMCBwyAe/bMzMZM493OJQBn9tdJn+aX/8DMJ72t7RxYClnT9nTsiEnb/snQJK/9QcOLcRJ3f/JCwgOH9CS9Nf92EXjBrCM/R67DMg2sIe2bHBCx4c4MfVJfpN5omlj8WFikp8R3AsWYyq67r/sRRgK6pE+TNo8CpGSS3y3oZ9Pf17GwDTnTgmYUepDnDotTvsh4cbmpm7jmKiNsyReuxZvubvr7gzuGUvi/V33gccjEAURGLfv007BA6QAnOa9ej4kda83qKX17+GpDtH6yGpgytCbgX6LUsRX500hjXVi+m22+uGHLnOZXg6X3WNvVVWUXt8kNJGrAvys/c9P9nm/6fOdfL7//cUPVJGFYK/HhevtGQ4yQjCDcpDnCm71dvsIQafZxndxHiMRtShkNnKj9gWyDLbRvrpOG2bFMrbuzW5jvBz/CAKwNfk4Drmy8nOXb9dsVxfUbpeX8pGlqWWTWePz+nmKLMyu501ddM5SHsgSkLPLWqOFvzUzSvGQ3RfgsQkkF/n4X7EEsocU/8PH+E6ypWyYNLxif+fyOyHYbUDxNd6rj76puJt/v3nlhvPm4Td/W7KCZi9oUuAj8ArwtX+H5d5oNlCMXgQCbW0ts4nJoxld6ZMwHHIaiYPtq2UAhk0A7TBs5q2tudDcn6Azh2idyiDCijyFtCISRQgcfB8Sh2DcihX0+Xk3GvXrUbN8yrVgyUWhGJ4Xm1SlL5+nJlSM4/iEWKlFzVUcmcMdSfzkTE5L1NqN6xMsFDuTVyamw7HJ0ogEoTwlDqOJIaLlANOwtsDdQIPhL6hMXFLcHGjuxNmW6M6IzBQerOJEI9+ljjWc/1aUHD4+2f3yUq56Z7mMat4JCut6dC8uJ8GXIobHqcYoeJIxCK1rhBgSkItU4xLdgEJFxYHoda2WlqOlZ6uqJ3LU7EmJhn1tcfKRY6SV6ZGYtMNR8St6fVam0MLyWa2vhELStcEXFkFWVko8aOn/7IhWJx1TSHds4TNLv265P5VO57AHieJ0qiz88V+jnczvv5rfYiPOaNg48wTCruq+pKA76Vm2I3k+sTvFbSxJp3EWZkdkXUYvLua3ngk9P+cqwsuQi3Na+wo7ZX30Ps26micu1E4K0u152jHPBDimNsmTZE70OeqESSBDrEF/53DwserleZwWyynL3I0yXx3vfdPbzMlXHgrT5MlbFhsh0lxOi++4L5wU+Y3ug9auv1qtNx1sly5lYwsnXxMGNIi0meN982h2F0aqcgLpAGZUhJDqrTA+vduh8cz55giNd6SIQTFGcq/FY0ShDc59HTMl0E3HZkJaGy4Ed7/qx2C/SeNMEnKlFxogrbGZn+suNU7smPBj38XaTbpPI5UQSaR8/+91+2OvfKr7sLTqdJdJd5JpvzOIuk6yD7/TSB7y8Nrh9t+Lfm8/3Jg/kGWvYpaVgFU1bTMFoTou76AP1YWIe6GQ8NkQ86JBLMtn86TRWt63sLgeykxjMiBWJo0H6Ar5Oag8nhWhYKPGSu5/4FR7TUaFgmfqhAZChBdmrtxkMj5QxFDvl+0H9d+Drfurh6VsHovXrtUHwNbvQf2B6mEJ66DWiCSkKe8R+f3dooqjMXcdPVrxH/V46qiktOnWG6PUb7I35TkeL1z9JFmWUGTttFqFQo/pZKxA9MuAhIKEd3RAbY8fB5NdsLmVC5++2Lh+4bc5xPAH8CUkNh3jHHZ6GlF0Kb0hYknmCxE2v/OmJvlxSwBVynTTo2firwBZE2kJk0HTsElspSMwL1zfCUYYm0r7pt6ozCr44fcTPD1TfHnht2RPZ/e9nH7Z3pLyqn+/SNt2dwDmZwQGXcRzyFTDK0HFkRY6Kq4oY2dDT8/tnt4GbH1v7+1eK6unYbf5grWq4aVwn/04HHrVA6+Ixa8eGp4sMYJ9jSTcKyuSq7DeRBkaPb9kkOYvEIPSQquQwBFRRys6szslefRm+U6SpkhDShvM5Mc77twZ+ZUWnMH9C55wCWqM7V5cEGQpJxGjUCOLCc3g3KPhZFIvwIuDvkDQFWzOpONFvlgo1+aDDK6gbP8daChMewY1zgi3R0DlES5MOywmpkAWF3N4GBFlRIebI1iGa7hDCQcsQtXyBAaygHF5T15FTLKVOIGJWh5uCL837lJApRtREQd8bahXrhdegkZEHYiIsF1BoGIa4rr4A8Lo5sVkgWB8XCCAXQlQAllZIVJILHZjyS4y0icSY0pWFm3XIvFEGtlDTlNP8ez2sDCHnRbXvTdWIe3jtZZVaYBTOVVVxmu9fxCxClhcC4ToXJSrYvDopmg+LI57p1aKOKY2OTWzJNGkfqQ2Cl01R69c+tEpR2uELrXx++dVogmVmtsPYylSGOatUGYzbTt0e9nO+lzHjv2ILaOPvbWxaMw5R7im7YnkZVmB9Q2Nua1DZxbws5oxckzAbdNwJRoDAsiiNXROzxcYXN4Q8+4AebIwK0GQM/3AeUuaFwH2Fud3Ax0axCUPZLCry89HIeQ5KOG1q2xa2H0akaYN4dnvxuFj5XiPOWax48rx5YE9XG6LRGi8/1CEbeWci/gLdsZ63suBl/BxgEJd+gm83i7TCtaJ/QPvwBZhHfg/dk5s+03D4Tztq5naC96n9lPUruesPujqupeHW+shyKLdPpPSyAKZc2wE1W8kiB1qM/q4DjDSwvlkFLDSSf/kiAjIU0XyjOb1S27ChBHCR1uZXRKDaQMiRvUwu6X6zphPnswjdXuemNPmzHt0MUbVuof/H2wlnWrlvrZzRp3xWL3zNfh8wMv6TzhRTQOPJSWVZY9lxBgvqyy5zeMyeUUu9626G87pMaorvXuF7kZWb2EH8VLCp8uNoFoMFdD7Cy+fK1xfIShHFjkqY4mxYJm5zImFjwR7OOvNsW0AJ9p8iQMF2OByI2qBy2O4CDPavCl7jT1TnIv1scHM9wdDp/p+7brYsrdjePhbRDv2/prrt2ikD4vUR0xmzS6tdlcpV8k9quvQCFSl+/t+tKhJBzNqHjZDefFB0z1BfMuVpXVxopuLS27sZIV1GRIFUP25UQNMDxvvavUu/exGztHCliwmkhQp11UVbS5ak6hbKdEgTSDQ+ey0fTjR5VpFa+VXwvS9h7/BvcL0o9XVl3HCffE6mXt/aZXmYR1ljlJHX0Nh/SAO4bR4wkX1Wvv2iXCqPIWE7ggMj3CtdAFOxhtWC9PfSOEss52NOBsDwxEQ0LSYigXl6SDfY94CloEfKcP3V1tS2SFMr1b0gY9W79VRMLPRT2Z2qUCXoVAnHBX6hJWK1lrd3uKzaZtni6t1B/KtX/kOL/1YqWN+8eRjff7oGCoHXvHo1VGzSE5ehLEt49M7V/v2ipROMEbtU/8AQeFLc+mSeV834H+TcZjKjYfv8TdHXDltXd36HO/SHXw10Xrw3wALVbwrclhmBEHlGEcaH6Ogo2NlzI80XVo9OzFeUen7+hoh2MdRLVOLE4uEBariI+25uQ9+3rqJJyB8xk1YDCzu+3Tm091zAoVRxulzfpPN8MAj5CMwHHFIagIKyKg17HLpAfnv3fU682l+fsLK/Zf1rxG3/f9h6+2EOYsO19P+g05Y7bTcWE243BH3oA4ZGLF+kaPm1utG4PLkYrth3PjGZIR9gOT30IHT3byR+WmweItM1JMEAIMFWn9MaHnsw+2/oVWPsv04jkQI8D0Dwv1sRtSmgksi3UlT9B8ul1f2d1xvOwVjxK7lWURh1XGyX6vzIhr0M/SKX8LfLjN5uK6C/wNtph6XneqlgFjmhTTtNBd6xfersowFeBj3ZPZ+Wnd/2x5ER1m9nYt3vRVBotaAAMetRhzCK4r9Tga+jJ34uPTzZU5RUEtCGiBMtBkBGpG4gbY+CVYt/dHypYwdm6nhk2UOIRBraMZ13lg2YtMBmfabR3Fe1Z+F4cKFAG5mB/uDz7RE7swVTUgYyVV1CATtrwruoIXyJoZbzHvX1KVqZGE3mbuKniY2XRiKC1e+Dl1L8L4E94jeoKE98HzlOuPQNpeQpgdXgJtDl2Fyfuz7se6DMLzM+0xDbKInzHwbsx1npGg8p/w+J0stQfh8L4Urq7ISgzkWgNtIZrrati67dia7fHk+TePxMPRd2ziSKXKuxWoKgjg8AHlfTH/ntyG4xVRhRxk1FazSw3xKIjOuoMXIAxO5v06jMPA915GUnem6fUT358uMsTxLYiW6OCjsBITVybVGbuZXUMPtgN32pxExTm+UKy3jpA9SsinZa3BqgVYb6tKobJVHmI15pCgtymybhAa1uZZmOSKSykDu/smhLLYF8fPT4X68t00xlEMcuMI0irfLSzfEZdWTOFvmCXOpBiMdnKvszCN8DLw9Dkl47K9zRxZJ6x/V+bE4RL7MnJSR3aZZJ0PPbiOlyQBZoWCaI0AWKjH4Abfwg2DydonEbBuR1ULKxY0ETmFUQhVPYOvRIQ41SVprre5yVifdY5yZlBjtdtN3PZoYVOM/whuJHLJGYpUTF7bFW1zk6VriDk9aKaNArIh6ZSmQGH0P8BAQ3Es99qz7VtKFU5jSEVdOY5jLTUuk4irHDHCDTyxZrtjCAyxJCzMrtcxx+d7GBE0WpliKWZEWKWHABBsYMnsmQb7/ngB3PXI+vPZsp/uwZFlVpoSZEUJh5s4SWQqErwqbNK2z6/V4I9EUNsqTHGOOcZUeZKQyNnP6mkAceLQTYQFO+BGDMs5x/IdE7wfNYWimdsrY4WUzfddgvXnDIU5FTQPj4RkLNQ87YrnpmACe8DkTqTH5CxcPUNyXK/FemcaBR/XiQbnuz62br2NmLt04fDqa/7mFSeQ0ui3hFLQ4UjGEVkgcImDzWSJt9Y/DX/7O8YuBCV6Uouw2w7vLfxzOOS54ejsSYxyL1vfb6NhVxDNXWMSoXq/PkqNjVxvc0iHL9NaFFEsvGtiMLH2R8AyXBp+NMmjGyGI5l5z0MfFwHqBzv+L9sem7eRx6Dm+shujFaTn1Cdtn1HUxbAf61g52JmEDIjU8qLw8PF1N3IWe+peFKBS8/rp6vJmzhObp2p8scwtl5Eo9VmAyaCEwuM1MWQRa9bXn27Wp89RzLbrS3Q0vIsAREgcFYi/xYYN+As+W5HaWmoZggAvkLY7QbCC0WpAmbyZhIAU3tYyncPgg3NQE+ZoCDTxmG6hZ9DWs32FTb0S+hzyb7wq8BZdk5xgGCw4RYAGbKVzhcxK+Iam1tQV8WBe561iBHWglzmDO50HBKhILI04EJEZGf+Iysba1m9W1u6nTNAk01u/hL0trbmWhCxGMy0tZi9B17BCkTXJ+RwqCNTQ0RUlviO2DdlVmbNiP27mcmoAcWtyp29jW199n8yyE4oogLZyZp27ndaWOXcODJjrvJKiK4Bgef5H8FIJyYTG9JilUsqzFomSuXh415fs3wncYsCts+BwY/nU4J/nW1ErhnYQChjJNUUZTz7NvW3+21LWDJBY41szpKwyuinn2O8Zso7TY5zitqpUT6daMlep7ZGuI3imJqsDd+qoEODDI9H0IZFSxBvMEJvDxiGHGE8moVlC6ypJ4DseZgMhvGOQQcWdwId8EGpvN/v8rmqZLMYLDuMKw63dBzguJiW3slFJ0HJkS8pQor3dDNu2qVg2GNTHZGmU2EFXH0lYceDsFLhZeWRXRl3my4BQmDbLjTw7dF/pkmfUImN7eYXFzDRey00xOTRRu4XM0XTCJGw6Pr9AevBELG52jc15cN/5wmdWlYLez9slxAXAzUhiYXv60PiqV6AFRZ5ZJa4CgnIxHzKKq7v9rOrQ0tF9G4LmPykikvkui1RZ1CdgRTnxTcbTwNnEy6xWn5jVT8/JwLknxHcafvseAsAFjEZpy6VHo242opzi9FZzDXJ//w3RVKbsWLwKlp3xxjnQcWaRKToDE1TSOn1NT22MJUfzZMv+bAE9i47Q6Scd5HfZx5ellhh73u+we8mk7Fhfm8WDG47Qaf4+I1EpWk8jpNx93NcFP8FQ+ewubD5fLONZ1HEtJCPDnd8egoTZ4e315eB54erzcB27X8ayeJhCs1V19S6nKIo+zVNPEkNWkJ28IVixS9Ow7Ma/axXkgVgUacrqauA+DnRlNixfyHAlnk4vEzVcctkagqmAIVMUara04Cjwrt7MiLYkCBSbtJ1gxedNMv6vkmLvOLUTnSsJX+iFAFpokL2Wg++berAFm7vvEZJ0U6fsNzRbAWItgGoowIhPj9wpzSUhmfR1do9Dlt6uLi6sbq3/NMrq4oozlpdaDSed07D6oGZjaqgZN1ZHstZZWp05BRsmpFR3dwqeGkXb1oIHxAI37I19KzifG+lGbJn7k9zhPNS74bRFl743U1yvPBhRfYZeNuqjAtmsq8X5ZZNLWiuJ4CgcqbDa3Fl5sTiOvws4uEAh0k94QnDFj0wt0whP1DuWA1Axeacy89sUpO4CbNWz2CZub2y1h8KDzsRkHsC6/ycUB5rB5lSHQbTSDeL+iZDc3c3L07Jt1UnklMpp0udXADGPiH3bAsP1AgIc28amvJNzhnXya/LQQSNkwGeTOEe7lByAKEqyHKBZz5JJ1ZdHnyKUBSJ73rRDFF1Ztj9b7eDIfXIsu0PXySwFk0OSjOcRLmsTal8BTB2RlkY8GUC4KjUCnB3Y97WFyjqwEL5KU6YLEemHryAZO7VvXGq1OtTCLKybCFl6I3sTKAAHy3Jd+6iMGu9dpcboEHAUjD5J05VQpGAzbVAoyrpJTggcY3AvnkkSS3VzSzwJAFZp2mtZHUpTapg2kjrkV/7v/1OZpp5vYbqbRxv58wnbPbTqCgbuLof/f1otDVr+Bp2Pf13Wex/Hy4LcprT/2N55qeZXfeHo7Fg77oq54HLqmLrPEpxs3lsm4VSHAbnOx7ESB/VynMPKJIsjc7TsnIU6RfCSu/xO/w/XPwzmMzG1NYe5RAqxtD06JGnHCbV5d2e8thr9ecFEkxIyCan+2dPw8mx+J35aiiWiaIBDEBOaAodp1RqAek2pZXnptYfP36NSqX75AQFKaOvS1SYktp9oGmdFDHhY2TDO7jQAKnFDErmDduE5CcTlzYJi9TKPuw9FY61muCTmY3RFpMWdJ5pg8ZfI6TaLL5UAsTiSVpvqLm0TdNUywLwEF6j2I6WVPp1wc+NGWY5PdN4VsuM7icCm77tZVBzxzJtrsYsJjIjrEPB8Pp2m4Hq5p4q3KMd1/beGAe0yBCITU6JQsVFXTELifVSp7Nylhg0YIgXmxYhkgLo8oAdxRERfiZYTjPbjdwnZ1CE1kYAGWsCOsXWW3cPvqth4JMjxnDBXTXCuoLHXitdaPvL4d+Pq2Pw1FVGkLgGEPT9EptVKaqS/Fn0KLLQZg/DsnPasvLLKWnAgcT5fPe33eQZE/ntgpZ5yZADY83J77MjkJR4BbiBKrygR/tWvH4pcbe+XnaI5nJyJ5vKhQ8uZ9umwMidqk206sdazW6uR2oWjLMshylYhuDn75vghgifJ4hUL0y8MewqbfjP9IihcSyyPRtAHe2QsovHj8wNf5ph8ywMOhIhhUw2sp+/nIvw4Xr1TM8tIpCztjLqV/y1K2MLSDh2d4JyKWwxG6fha1XFhgj4XUXfQXkQEzkRF43gXnHzGQ8tYLExJFR6IbUikPJHfM4zPmMv9bmIiFwY4YMsJzZqCH6KFG2vBMVX+8fLbWynCdDMqh2tAq3JvM4JKmztB/TEHOfA0fKCB1AD857XQGHB4nRH2VEbenpChcH5aVg7qmBQqPNagUimIPNDXwq9v5BGNtYzOmSeDyDSm9FbwHNzU1pLKIVKEUIQy74pCGSa7BjeGum9Pw/fV+DZuoWRLyJVXgOZmQ04/kUp1DAnOyRnNbEPeF5ulNu1cOiAtbm4jXE1b7pZgOn5Mh3qhHcYKADCVsA08cEaEy6QBPJTefAWzRlxXjaV85cJseWz+umEk1HELodQcej3wAq1j/37i9vArczVrscTbqYRAhvMwyxYccAuQJM6HWKK6usS1bFnGnOAEg+BUfjtZoQWSXl7OYHxaxh1ATcn/PykLQlK4B0UZ38O5Jib6b6/7eU5cn5oUhj7khsIpzD7m1Oibx2g7ik7f/ajE/FDmbiHnjt4ubS5sKAaJNn6gvemGbLnMnh7nPTwWplrhOQDGnISQijtu3mnVetVA8lPPH9FB2/aNev+1Pv5QPpn479F3/VX5cB0RrovbVW6RW54ygD48Vql0/UGbh4d61Ul23Jv74ev+m+U1pbG/drfZH8I4owdxmDN7l4u4BP+CBYOL5j6Xlu91kyY9LkcdfL3Vluf7u6TLX5vxQneszHfctV2sK+6TOjeDCLW7iYKrfMA8d15kZcOpyl+hTj4g5e/d1+/CGbmq2p7RzpsCfJfvq3N1444OHErENffjlmDJLmdKWBFBCU2agG2cS4Veg37xJGz3zVckxVdnux+MdbulL98MIVWb/XWtjso0Wfty+6qCxdCjzoPQhwjZpL80ZVW7IDn5gVR5xJBDs0tqhvcwri6RJmwCjTP0PtGosdmqwC0dN9YdGM2uBp9tGL1VoNg1/v5f1kBoZ6m9ACWCUQzfsfN/mxKHOHbEnEb43e0faZNEG6hwKaW6Jl0zI3NEP7LmZsLWGpN5A2JwtXq7XvrCGDW7nYnEm6jZAWBC3rTiFTtXZNI841PopGxxM52I8kBC5ngKQQ/OCMA/Fv2pEdgpO3Qs2jYO/TaY8l67ElBBwmnLCYIp8HykcEhg6MMFu1FKBcQ11jYRI256TVASwwJEbsEfZBNHsycyHtfCT7lFDj+Y9K1lTCT8im09HZzeIVGuh6JIPkMh741L4KbTiRyjsIC9aMzkw/DOevD53amkIp7dT14Kdx40Mxjd4SOTaRkQ9HoIUZ8sHoDk9GPTT57S7PW0UBguSG/sLiZIPlIdxr89VCZ0kv/wH0tVobQj8ekXP81zCc6mLf072L+A3i7pWOTIGggZlr+XLLjCRI+TgzlreQcxesdfy5TAsZUQ2RkVReSGlwSHPgVjUj2NKnHNzLTH6ln7t2aQdobhS5z1x16BobvTsLLlwYAR6Tokz02i6VtLt9JcQDnxBt8YCcihwtx6r3iOzakkRsRHSUP6M92NQ2Kqt4BBA2EuUDEfP3gvNKGAReGc0DOBvQnwFJIzEK2SgR396NdxfhsOQwMR7W6z+yR2WYsMawu4e4gWuhBu8Qw0KhVlGBKb4+WWXPDAl9zcl8O6lPPdtHAaexfZVV/EYdgv+MrsmBJyCmYYB2GkKQXPYREjFIYT2RiQCvtzeSX6C8VVrLwXcmgya7nmZLkxfz05Y2rckdY2sW2jV58SJ+AbRvfUzZlsw/OmKY8M+GVyp2w+VgL1BuRLrFZunY/O4F/5opBlaukJQAz1TmP7JplvXJ++6VVtvjiNCRk3m2r2RoXOCX88rKY00AhF6CtfpEo+tK4tSS1o9JuRilQPDzMi70ux2Qx6S1Z1z0RzfsYsWF8BqB6byc8rbpvR+uaF8jiWyqEsVw+63NW8zseGFqiwaMjhWHOdzK6qgSzE3iTCBj9WIJSRej2IAVM50eaHnO+/EuMvvpGDy9nqlMTUaZPOwrQ0kxvcbg4cKwf3rL9N4xON31N/e6v7Q+75xGZ+np+Me7P1aG0JXQ4/Wz3n3TcRKLCvb3JCZxmQ92SEy2f5RX7DlZ2N/H25YHIyNgb6Ud3Bl53SFsnfrN5oIu3NAMJfN8fE7DXjMHrGRR31Z0+n5lB4kMJfcYGnFTjDF169XywbARYlNbI3H8sLm91MzsmhgspTzd2wr3aQn7ks8hHX0UV2YT5GAKWxOBIpfET82EHbVMRZduxoWcRbzMgs65fYV9oIKz2e9A8rhtdRCj+NQAsg3h/Dxxl+4xZMw1m/Zg0WV3Ey0X0bcqLOEllGyCP1gtc5OFEAyk/gcRBBZCv/6zTLFwtL3KDkyiZENKMB69niNNWh3mYOLA1UqcjE0KqiJAXJkEgeQ2L+6JCatMoCnO7SxnTreAfXXj3DQFz+QzXxo6Wh8PWMZ8WHsvAj7jpKRBsPYzEqxVGvaStffowJ8/uPUZPPmyEHhNvlEaids8ysYdgyD33a97hOtLI5zWDnf7/pCDIpPgl2gxB3/QLZqIMRBkvkZ2Fo0eaUwVtBcR6KAZclKuY0JA+YCJzKc/zeBR+hRCJ2Yt/Sny6fQVWRdP8JfjcLT+IGEBv6jP4qamu5sVOxnzw+uba1jeeMEe755jC1iiHf57StpZa4kwjMOviSuc9+78Lt8uC6+QuZnhNkkP/lSN02TKKDoHVuMXNHOOoglCmOpBUrgaFAL6rFU+75+h1CoMjectvgqifft88dwPO9EN2eo+DSPj1326E8ShDeGZH8Wb8osjom4fWcz82tKdX+8T/L0cJzLW6eYqmFbiqvLruwWXLyKvGVrLSNb6oFT6v4kBF7kguVIfoQYXNGim4ofZmPbFKhtKa3xdWJ8P+xWLq37MxuKFWWkFT7Cp3GvYjwCUwJvYdrEp4hLxM5nYg5TzINDWITCcMRcZrPRRe/hU1UxeuaNh4qjSRVXgWeHIqRG3aUAk4qsivlRcSXj/B58FzrdtULEFy0G/aKm8DcZlmwd8t10y1fBT8QBy1ndLIVMoVbWTxesiVyRJdxYlN/cb8AJ9GOlORYDlyNd3FHGHlOkm8VsfC/qFOtpCLyVhlGhGb4nBTFmqn4Gs7n4mw+Mx9jCkhAH4nf0y95t3D/0SSbFiTev5ELLQwn6Q6XV/iqt/j6qR8bMLog8EKwqglXZzImIgwDRoDUu/zs7Pdrd2VhfWV6TElXB1Dv4SyqUmQ9meu8aB9ppHQy0IbZQgOv6jSjjiHkX1BgLeUVI8cHZ8jmM8pg9t5G9iEoW7kk8FsTb0ASauONSlLTDuYKMomlBQcWROsMXVtRQSDs+Bn3l2uzaL6NT/Rez4oCibGr74dQ1F3Utm+8O9RxzfG8oQ9OWbUM+PuGalZZlWlMj1PNeD1ur25dHRsCQI/1wXivwWGmbhb1s65HN3+N8/TaOqFH0l1+J4HEOeJ16uI/XlC9PivruOVhYPCDKvh7XCUvtOOxwOywdI/TfXBLuxyCA3ybhl1uJ4LnJZ8Rgi83Ps78UjSP2k5PpxiU12aHXD/iSyc1nyHDYx/HGIG+5cE7+B51AiVxTHHXHyAn+H4f/0xom9xcx6xo7k/z0eO6sFcSry8C9UaZBlIe9eB8kRNMcI1X1IqmrZEgHIaRlNC5Vzh7+6nK/3gu7qRiHeGeL1d4X04Z0H5C5yRdC8/jC6QQIV3ycLMxizOF694cd8NOpu/d3z+XDOC8XvA1Xh1Wf7b3TcJXZAwBicLMwDCApns8z8ZXTP+yGQCX8orDXNO4xeS/TEp7crdXSGuVOrCi2tIp4q5/qTqN/R5Jr4G1i08eCsfbfNjO9K4VHmwlK52XmItHl3AFOKk5mDrStmgdoaDwSY8sDn8X3b7x2Gf/1X1DV63/XebrfxmN37s9NlR82gsopLiix+5P4EB6MVFuPx/6apruYxqGcZZ5uuXhRPeKoWOlGO9sMIMZECxw++ML+rcH99q0++AEnO0+3t/vb5VwLaUO9rNaux+4Ze/ekU8ZHFw5RyUobuH30XSzdUGVjbWT76Lvs5ySMrMG51xtrQBvf777hYEVo2P95eHZ6eHl0ub+3vbW2urQ4O2O72XdZ8RunntcMTdkWcCNThKjxuq1NgidmLnIgNhrAAsf+JPBgZRZhwYTDSXK/NR5Lc8xnlXPIQx4K11KRhexJQzaGM+amywAb3w2bYQ3f0/3Bj5P67Nishr2X6yXeiCv7YdwR+gLvrhIu1J+wTWc8PfadI1TkoLwH8OMJaxqQ0S1/1YnUwHIr17cvXakel8fGLfxPYl1ceGPMns9bxwWXbzke8gvg6hDqa79RyOPs/0EagA9irQv4H8DS2OsYMAx/isb2b9svsGtzGCFsKZdP8fsgnI6ZzL4OR6756pw7iw6HnoA/ubv4+A9YDyxFaAfMbeflLHS7hlnMEPW9/GrkE2mYZ+bnYSBZ8TxwDpcunzZHE/zV+ku/+QHboMfwegpGOMWAyY6/P7d7+Oj3ly90dJraqzFH/kMPeSCfol5ySlo8Xfu9oDvCyQ8Ug3xip7qMqNeIjYoXnafS+cLm4rVq8Qk6fhdIibqDPHlHDnOmPAZEXbmyK2I8lXZAhuiD/4ed9cosjA2tML7wq6PbTWAOwvjiBizQO0LvgLRZ3aisB+lyXobj5B/lI10zuJ28D3BFlem/oBoLqwPFc01DDis3abgz3JwqOSgfXe1lrrnxzcUQ9rJZ4p4yLb9bBng9yMUG2SEOyxK8q4jalIX4BdwDrUuOz4kimv5q5irCrxECfK0KBbTKBvKFquOYrSA2HU43ffT/y8dL9XisjVPYUMCFqhM5KMkoHwwoxqXvIYDbzOJgvYlyycUDnKw6mBwO40G3lCuFTRAqxttPVAp/mDDqu2cD8ICO/RM96Rmf6EXl5RP9+IgJ5/fnlI0Y9IjdBiZzTwjH7wI8UZwIARutIx87dHCeGDwQCU7o0D6x41qMe+p5Vx79Tl3t6Ly1SKffztLN1fVDysekh/eEB0iCFU19ps+p6ggS0QvUjo7/TdsS8Lnob/SffLKOdH1xZeT+okEOQUXxeeZuu4moqbr29DP2D5XM9ZUwLlqEvVxepuXz5Jva0XlrkU4ps2fp5v8wzXxI2ZhMKmDlAQKZsKJR8QT82cB1ao4gZBW9QLtyp+HfSNvW9JWDxxTF9f+knjLtg0/XF1cCzC86hChQIkVvbe5sfIP0qBpS1+iVpZ9TPRk9/5UwLkrEGvZy+bWkvPHXnTcDynUDkvlBNWnSbGSgd9t/Hg39596+qRzUZNyyhXRczw/CKE7SLC/Kqm7arh8Ox3E6nS/X2/3h8en55fXtfQZACEZQDCdIimZYjhdESVb+S6//s9UN07Id1/ODMIqTNMuLsqqbtuuHcZqXdduP87qf9/sBEIIRFMMJkqIZluMFUZIVVdMN07Id1/ODMIqTNMuLsqqbtuuHcZqXdduP87qf9/uRWCptrPMhplxq62Oufe77rt8aJBRBOwnI33MV4Du1aKvuEJNppJgsnqej3uSrZwDNroAn10QyoPJo7NVBCWbHAetg7KUTWoSMBFbgW7tMO5VusKF/iHPFY9q3pzhk8gnD/mPmewdK0yadV1dk8nvCR6bpXDpvnmgImLBM041SW13xI03zOOsKw5FLyeAf3TSjFi6PhRDwtxb1zwQX69SwKDqiCrjGrPXJQM8UnJ91FbimaD0f7JYtVrLou4woPVUIdtn2hrW6Q6k9GKeWvpPZFgeShqr0BgrmfVVBjRrQ0qFVEmtUfGTugUBuJGMeiwxO8kaU8Y2+R03ic0DNGYtobCA6U0oThBykxFoMCBJidijiCSUQMo+iHhgeqkObChP6P0iGnwbMClcz4cC3Kuq1o/DmejmBEthDwxG7Jegja+DieLymQW9uLEqlwxUc0WGOrZoC0tDIrkJ8ocr6UT7ZWKsFFeplQmtiMxsQTp47HAltBn5QVC73eggJSwAyolcsFi6ndlGdve5L0EztJdidpp7RYNU1a9rpSsCsBXKbmzVfKfy31zIL5f/OYrLo2Rcnjj90daW0Lv3ODikZ09bbYOtIkW+75yLBewGn+nao+airxOEaekzolL3Y5qkIy0Pzshmd+FHZ0GmFQmleoSUeVsiP7KsTXOcSdzFuv+w/bm4prwm4Vdl23OtlvjYTYuX7Ai7DywKuiF4QLUgNh/63rBbPusI0SoCBNCWFIbbHoQOOfSRrCueCQgHQEgHH4GAyWswxCgVASwTIn1GI7z/TuXg1dvh9s9AL04XjIIjBw2z9PBNq79rs3EfxtzaBXspvbcagM1onXynYUEcjjNuzzQCStQKLa29020NDAFomZ/N6dY5V7up7yPWQmwa3E0AXihZmGV1vByUMGUSQvquyvTkeLjjj0LVEqWS7HjHhHxbDowUkBx4s9Wt6k3o0Wb2Hzct30XoJSGZIztRda7EV0aV1uTkTKKiF4DztpZx49Po1XTvjlD3i6YFxnCtKYKqiYpyYu/F83TZ753vkccYS5WvIIck62IDEGeMcHhIuhG/JQM3AEXRAw31zCH346HLYvlGgXB0utMH+QTF7EKSheG0JRQHTgo4hCqdC4Tzya2vfCSW2oWt26nTBQNDCWEDgAEZTPL7Q5iWrlSUaUq4ZBUm90Xet0vEygT0EXPYys0Px92QeCUcM0RnQDaoZEKSEybpmLmWDfuE/wv9vr3Xadb5fv0iEnc8PEf87QYmZF8HzfyhH5cNg7qglPCzG6uW3mV5tx8i7LNyskPcFx4Uc2KhtF4ej/FP2/8Azs3zrMKX7Y+MpN0wnJB7f8dPBHWz081/jy2x4WAK5x1CLx7lOt10AAAAA") format("woff2"), url("data:font/woff;base64,d09GRgABAAAAAHLQAA8AAAAAv9AAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADMAAABCsP6z7U9TLzIAAAGMAAAAQwAAAFY+MEmlY21hcAAAAdAAAARgAAANWkVSr2ZjdnQgAAAGMAAAABMAAAAgBvH+5GZwZ20AAAZEAAAFkAAAC3CKkZBZZ2FzcAAAC9QAAAAIAAAACAAAABBnbHlmAAAL3AAAW68AAJN2st02hGhlYWQAAGeMAAAAMwAAADYJpdtdaGhlYQAAZ8AAAAAfAAAAJAcxBBVobXR4AABn4AAAAZoAAANkrwD+c2xvY2EAAGl8AAABtAAAAbRXyX7XbWF4cAAAazAAAAAgAAAAIAJiDD1uYW1lAABrUAAAAXcAAALNzJ0cHnBvc3QAAGzIAAAFiQAACN1iqRPEcHJlcAAAclQAAAB6AAAAhuVBK7x4nGNgZGBg4GKQY9BhYHRx8wlh4GBgYYAAkAxjTmZ6IlAMygPKsYBpDiBmg4gCAIojA08AeJxjYGTWYpzAwMrAwFTFtIeBgaEHQjM+YDBkZAKKMrAyM2AFAWmuKQwOLxhe3GMO+p/FEMWcwLAMKMwIkgMA3mgMUwB4nO3W1VIcCQCF4X8CIUbc3YgRd3d3J+7ubsTd3V0I7JKwxF037i6s5bofYe+yfXL2Yh9ip+qjpv+hD1PF9FQDmYGoULVQdPg0nkj4jExxYY386FFk/9GjI3+Hx7nISiZiAoKkICVIC+4H375/h/A4KkgOUoP04IGO//OIhOfkivSI9IokRBJ/HGcKN6PDvxxDlnAtW7ifg1hyhr+XmzzkJR/5KUBBClGYIhSlGMUpQUlKUZoylKUc5YmjAhWpRGWqEE/V8H1WpwY1qUVt6lCXetSnAQ1pRGOa0JRmNKcFLWlFa9rQlna0pwMd6URnutCVbnSnBz3pRW/60Jd+9CeBAQxkEIMZwlCGMZwRjGQUoxnDWMYxnglMZBKTmcJUpjGdGcxkFrOZw1zmMZ8FLGQRiSxmCUtZxnJWsJJVrGYNa1nHejawkU1sZgtb2cZ2drCTXexmD3vZx34OcJBDHOYIRznGcU5wklMkcZpkUviJn0nlDGdJ4xfSOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfX7lAQ95xGOe8JRnPOcFL3nFa97wlne85wMf+cRnvvCVjPAfFsP/j1j9yF7r36MMfeJNV0kQZeEnmyDadFUFmU1XVhBjuuKCLIZaVkMtm6GW3VDLYboSg1hDLafp3QW5DLXchloeQy2voZbPUMtvqBUw1AoaaoUMtcKGWhFDraihVsxQK26olTDUShpqpQy10oZaGUOtrKFWzlArb6jFGWoVDLWKhlolQ62yoVbFUIs31KoaatUMteqmb8+ghqFW01CrZajVNtTqGGp1DbV6hlp9Q62BodbQUGtkqDU21JoYak0NtWaGWnNDrYWh1tJQa2WotTbU2hhqbQ21doZae0Otg6HW0VDrZKh1NtS6GGpdDbVuhlp3Q62HodbTUOtlqPU21PoYan0NtX6GWn9DLcFQG2CoDTTUBhlqgw21IYbaUENtmKE23FAbYaiNNNRGGWqjDbUxhtpYQ22coTbeUJtgqE001CYZapMNtSmG2lRDbZqhNt1Qm2GozTTUZhlqsw21OYbaXENtnqE231BbYKgtNNQWGWqJhtpiQ22JobbUUFtmqC031FYYaisNtVWG2mpDbY2httZQW2eorTfUNhhqGw21TYbaZkNti6G21VDbZqhtN9R2GGo7DbVdhtpuQ22PobbXUNtnqO031A4YagcNtUOG2mFD7YihdtRQO2aoHTfUThhqJw21U4ZakqGWbKilWHi3RJBq6PUzhl4/a+G9FEGahXdVBOmGzjtn6Lzzhs67YOi8ixbehxFcMrRx2dDGFUMbVw1tXDO0cd3Qxg1DGzcNbdwytHHb0MYdQxt3DW3cM7Rx39DGA0MbDw1tPDK08djQxhNDG08tvJ8keGZo77mhvReG9l4a2ntlaO+1ob03hvbeGtp7Z2jvvaG9D4b2Phra+2Ro77OhvS+G9r4a2sswtPebob3fDe39YWjvT0N7fxna+2Zk/ANoDRNVeJxjYEADEhDInPA/CoQBEpgD2QB4nK1WaXfTRhQdeUmchCwlCy1qYcTEabBGJmzBgAlBsmMgXZytlaCLFDvpvvGJ3+Bf82Tac+g3flrvGy8kkLTncJqTo3fnzdXM22USWpLYC+uRlJsvxdTWJo3sPAnphk3LUXwoO3shZYrJ3wVREK2W2rcdh0REIlC1rrBEEPseWZpkfOhRRsu2pFdNyi096S5b40G9Vd9+GjrKsTuhpGYzdGg9siVVGFWiSKY9UtKmZaj6K0krvL/CzFfNUMKITiJpvBnG0EjeG2e0ymg1tuMoimyy3ChSJJrhQRR5lNUS5+SKCQzKB82Q8sqnEeXD/Iis2KOcVrBLttP8vi95p3c5P7Ffb1G25EAfyI7s4Ox0JV+EW1th3LST7ShUEXbXd0Js2exU/2aP8ppGA7crMr3QjGCpfIUQKz+hzP4hWS2cT/mSR6NaspETQetlTuxLPoHW44gpcc0YWdDd0QkR1P2SMwz2mD4e/PHeKZYLEwJ4HMt6RyWcCBMpYXM0SdowcmAlZYsqqfWumDjldVrEW8J+7drRl85o41B3YjxbDx1bOVHJ8WhSp5lMndpJzaMpDaKUdCZ4zK8DKD+iSV5tYzWJlUfTOGbGhEQiAi3cS1NBLDuxpCkEzaMZvbkbprl2LVqkyQP13KP39OZWuLnTU9oO9LNGf1anYjrYC9PpaeQv8Wna5SJF6frpGX5M4kHWAjKRLTbDlIMHb/0O0svXlhyF1wbY7u3zK6h91kTwpAH7G9AeT9UpCUyFmFWIVkBirWtZlsnVrBapyNR3Q5pWvqzTBIpyHBfHvoxx/V8zM5aYEr7fidOzIy49c+1LCNMcfJt1PZrXqcVyAXFmeU6nWZbv6zTH8gOd5lme1+kIS1unoyw/1GmB5Uc6HWN5QQuadN/BkIsw5AIOkDCEpQNDWF6CISwVDGG5CENYFmEIyyUYwvJjGMJyGYawvKxl1dRTSePamVgGbEJgYo4eucxF5WoquVRCu2hUakOeEm6VVBTPqn9loF488oY5sBZIl8iaXzHOlY9G5fjWFS1vGjtXwLHqbx+O9jnxUtaLhT8F/9XWVCW9Ys3Dk6vwG4aebCeqNql4dE2Xz1U9uv5fVFRYC/QbSIVYKMqybHBnIoSPOp2GaqCVQ8xszDy063XLmp/D/TcxQhZQ/fg3FBoL3INOWUlZ7eCs1dfbstw7g3I4EyxJMTfz+lb4IiOz0n6RWcqej3wecAWMSmXYagOtFbzZJzEPmd4kzwRxW1E2SNrYzgSJDRzzgHnznQQmYeqqDeRO4YYN+AVhbsF5J1yieqMsh+5F7PMopPxbp+JE9qhojMCz2Rthr+9Cym9xDCQ0+aV+DFQVoakYNRXQNFJuqAZfxtm6bULGDvQjKnbDsqziw8cW95WSbRmEfKSI1aOjn9Zeok6q3H5mFJfvnb4FwSA1MX9733RxkMq7WskyR20DU7calVPXmkPjVYfq5lH1vePsEzlrmm66Jx56X9Oq28HFXCyw9m0O0lImF9T1YYUNosvFpVDqZTRJ77gHGBYY0O9Qio3/q/rYfJ4rVYXRcSTfTtS30edgDPwP2H9H9QPQ92Pocg0uz/eaE59u9OFsma6iF+un6Dcwa625WboG3NB0A+IhR62OuMoNfKcGcXqkuRzpIeBj3RXiAcAmgMXgE921jOZTAKP5jDk+wOfMYdBkDoMt5jDYZs4awA5zGOwyh8Eecxh8wZx1gC+ZwyBkDoOIOQyeMCcAeMocBl8xh8HXzGHwDXPuA3zLHAYxcxgkzGGwr+nWMMwtXtBdoLZBVaADU09Y3MPiUFNlyP6OF4b9vUHM/sEgpv6o6faQ+hMvDPVng5j6i0FM/VXTnSH1N14Y6u8GMfUPg5j6TL8Yy2UGv4x8lwoHlF1sPufvifcP28VAuQABAAH//wAPeJy8vQ9sE9e6OHjOmb+eTCbj8Xg8OM7EGTu2McZ1HcfOdVPXN01DXm5ubn65eXmBXzYvm5vLZin/hHhsxEYIsYhlEaoQy0aIZbsIoS6LqgrxuH2o6rIIsfxQxaIuQlXFdruoe1VVVcWiPtQfj02G/c6MnYQ/7b1Pq99C7BmPz5z5zjnf+f5/nxF59u+ffcP874yGQiiKEtUYIpjsYDBGCI/CAaNxOEODa8yWiBldE32N5YLrsIV5gU/Ay8KCQmJ2olTBpTiTLxYSNq8bzMb+shZWB0cTlpYnpPfK/Cd3JfHaHLb7rUymksmQ7bn5UZ6NiOlsuV8JDwx8dmzP9/bo0pFMNZ2uZhBCBKFn1xmbfI/8KIwy1bV+TBgeI0I2ADgMwcwUbUNG4QoFkaDBQCiQZDlzXbvRhPnXMA9gqcWoEdSFdt3wQGNYy8zGo1cHRvZfvYzRtaxjHr64D/6G7Eg2Gr2avorRx1f3jw9cGD+879KhfQgxz/7l2QLzXzM5pKMIWoukf0pE1xgBH7OezkITVnAS81lSwoniW7hoYKOYTCgEW6SYZWF2mGQlGzmkTuSdWW2oP6zhk7yuHjYPO/uik1Ell+LxpDWY4+VUd39WlFLkeuWweUjVeWhuDgxC8/yEejiSc9LRibgiprI4bKUkMTvQnZLF3CCdp2cOAHmM7Id5iqF4tY2u1g6EGbwDZokwo4hhyDgiDBkM/SrUQecnkCgVO9ryAiwfTJT9Gk5wxaBf52NtdqLTXwhxRr5kRVliMkMJTVSVSx+rZe3jS0yvbquLD1Rbx/u1Lo0MaIYSVUR+alqSpqcmJd05pkajKt6pS7ckCUADQOAfM0GuoiakVZtklqBeilib9TWEM9ZhQxd8OFEoFfOtGN4Yo6/POemc7OurXKp2lSsXycHqlR7nYzzQc6VaLhcKZQ8v3D4/hT7b6HjbTJllCe0XEGGUdk/GGUwQGYy362voeF98TqBYSCZidhOm7wKvh/DKk6sXK+Wu6kUpnUhUC4XZLbliNZXI4Dw5UL1SpaBUa6A411MH7ERuYiKXiB9ION/UxvvsA2YnYyAfClY1gedYhqsN2fC7Qw60cYF2+GvDV+Zw1Xk66TxyHk06T3GVMZyLN5xzn3+OJ27U8L/eVwCVqoUmkaB3AprcAJ0S7CO9LB0kQSP0iMiYO+YBhPyq0gj3+AyObtTa05qxEEqWhKSQDAnMztWPnZubW6gcu9hVvPheBd+sA4CHnYsP5y/tYj/7jN11qT6208yHTBSlUXPVjFqGxiKM6WYETIMBNocDBJ7YbrTgts4C0IPOQiKZZZIF2BeJZKKYh11pBBVGUHBQN8iD24ujtyd7MxJRFIVILCuy7KYHE7ysuRfEbN/+/vyWLfl+u6/bKGZlmbUiqk7YfKK4e3dxXLQjFivLuYLR3Vebq+9grpJoCKWq7X293V2hJk5wAWQws8OFktB1+HU1s04PqJSKcTEKYtGFEycLpVVQYg/KkBGycOiFIeEXh1RrzHz3oHs+FeaJSWSesMXDXawowwc+nO7aqfE8ccyPlwZGB7sSPImyPEv/Bi4PsJLCRgmf6Nq0UCxWrKJq26Jqm7wdTgwPJ7p501ZF21bTOTNri1tyXwxlj1zJ2NFql57LSGZG0ViSjdOZGhGtjCllcnpXtYY/p2FOoiiFCug31X4roqssETiMWEpCBVg1gQg7EMsghkXb4JbtPJBYhozAgTBjHGYIM1DoyL+eey27PrMuvXaNGRCXV7j4s9NRW+H2jmAsGOuMdXZ0dpCtlxcfxLOTfVmRpFl3sfmJP0+wirfYUrYf9y4szMDf/mp5y2eKTBe9kJPDuZeXPFuEJX9I2y6gZXpwD+hBEjBzrPr7tQA33pDGOIVZ0ocaZVj6RjTZgLEEw8Nk0ocZEbMcw04KmON5bgQOHD+OeI4fbLdbrZZIc3iN6Q90+Ok/VeFa1uFYkI7Ge3mE8k3c4Y7NexUoQTWCuJRk7s24/0x1cV416+fMQdVcOv/0KRl3L3Srpql2e6eaYWhOYYEOhnn25NlBWLMepCALJdDb1Wp7PNYWFXkWhgTo+w6lcmgHhwlLdvCYZRgWVotlmXFYQ2awtVVtak20Jsxgk6W22KpAKU4sKcRsvgUziVJ7MRQAKFdIfbEDdyaBDgpBZnxm/ovLhcGtUpScjyufq4ahLmXoOznd/8GBIxOEX1gYKpzBqYTyRLKdo6bqpOgo8Jeq6XSfPdN98MIXYzAGFvDuDvMdeYhEFEfrUQltrv5Bwsgn+pC4rRGL2CfidxHmfZh/F3FI8HHCFNsAhMyHiG9KxjzD8KNw4OmgeGbwtWyiXfJhVMhnS6+V0mvb1yfWR1vCIa3JF5diHItELCqcvg7nDZ23E4Vi+/NDfAPngTHD8rRiowPXJRT3JGYDnuLH1bHx+fFxfCddLqcXH6S6u1NzEdmSLDwKb3LE+W72+PHPjx/HXyi6rsQNfJ02nx9fKKedCm2Nr6fL1kQkMmEt3acNPz+O540IMEvdmw/KkcgR1AASVgy9hv6m2ucjIuw6jIGCTjXwEsNyHDvqnrDcOKAjyw22x9eYFHfXpeKvtWdbI2ZsjR1Q5VCjIbCoAUsyDDmQb8EwcPtNXIDxrZzjn7l+YXh40/AwvuIenMXVn8gR+l7/c86u/oQYdwyfghjhjaGn+hZiBOA3DJniqaBIx0H3FIwCDjAGRIfgDeBl0H311aJLBDjY6b63uVf8q66TI0bE0pfO61bEoC8yTj+vXMPHrJQFfzPewbnnHQGeZ0sA739PrgHnBD7s8zYO2gyvANYIPL6DSj0VbLRiXMFA4wWQFv/FNi6rYqas7cEptRg2ZcU5q8cjP5hdcdE8he/DBbi89HnUk2vwF2QatSCr2txiKDwLYvMGlwXv8CScsB7wZFGdSlgCbycThbdA4liWQgy9CeMbWjyvHTyo5TVVPXJEVTXvU1w7cl3L2+rJk+6l0++7DeCTndfe92j7J0w/Q2CP6ZTf6QHNrzYpjXKD1ADkjpIKVwjEMGRvhzDenKt8FGRiIFMgCoSEUClUwuc++ukn59xPP2H21Nipk+OnTo2fPDXGEO/axE/OxKmxkyfhG/pe4yt3mCjs7ybUTJ9NiWUIhGwA4aVn+3gEEnLt2c/TnVJyGQjyKd15S+fdvXRz7NQyHORh/TIZT5eXDoydXIbFWwPSC3JvAHVW80BJuB1UddnJ8gQejkbpEeFxqsngQUzFIrnBJwAlBRwICC5I8ArqsDNiduENYGawU0jCsu7O3KVv+Jh3pG/oxTnvrf4a+CNLQBTbBuxSAMb6rgggATNlJ5GAsTCCBAGPUz4LD1+1Pj5vPXyr1yNAWUjMZS4dy+vxza1bmz/7bPOqlUjTz5+9tAZAT0AEZDiGcNt8AuF4huNdYABWZhLxGPMjiOcpMDweVFWM1GZ11ap5iyS9apFWwOpcvUgkcWvm1q2Z55fHqdBrt27V5X4QyY8hAUWrLRQjYEGo+EWBcJeDIzBLvIcZOjyw0EGnfumJZcG8z7ww3zLVS1mX9VFFZkdNpKMYtjKj3HMY3hZsW8HsC46In6yayGObn5/DAFpXTa3qH5a29gB3tgLq8izxr5yltuDzs+PIL03NDKrLZKTXlcleR7+uVmDDANlAdIIIFcEABvZdILdUUAHK6hJUfoWgptdm1699Pf16LJDtFlzFBnRbqsOBKkdpvCuUAbMrgUzr6TbBGHzoyDN5Q8FZIHX44VhaHsymRJ6o+1XWVKumaciRcKTaG458wG/tmzpwMFNmu8fhRf5c2Vvt1rstO6xGFHk6bBRURdUy4VQinknnz/all/q7NxVJeaLoyi6Lz44xp5gMrJeB3kLj1b/tKgJWBmAsIG/yLMfy3DYEYhfHwBDpznlXoDuGRyzwDoIxAd5BCMUQggcpx08m7GhLs1/xGZKxatcUkQZcFbZxvthZTMCwYfBGKEDleDpkAZCVEtlQfXK8+fGuwuTgm1exyjs/OQedhzyWP7USgHkkAu+R8+EtI9VUL7tdVYdkVRVlQ5KCDbzCbmV5I5Jl0sR54t0m4XmsLVmJiJWIw4vgfjszNBhOz7JsOGLquqkZstgkiH6fqJdFVlZ1VbPd9d+CbzMjSEJR9Keqz2oJaDAfeMNvLrYOj1dTgAAMSHXbEAMoyIF4RDBH3qW7Z5zyWbkfmC5pJH/T/JuLcWiffHV72mj7yk34b5qr63+hJe9tT35le27cWA3JgJuRcCioNjVE5ajAIQlLYg37dWpaqWDGhumE2U9WcEdeYPiOfCmkYDyVKwx15Qqk79hMtlsJj1rhTTcLQ+k+1cgMWKMfMyPFdH6wMDG0aF5yuuJ6ZmjqrPNTtTs1NoFewKMAWoumq38vg0Qfs80QywmASaBV8wLFJMAnltI5H2AYIlOwbXgAYkrCLAhWo3Bg6XBYPBjUKTYl4lGreY2+NrhWVXwBKeBhVMNqjArZfJA3OgCvCky+WErCMGGEID0LIdhEgEcv4M6P6Syxo4nsZWtrQcuZipQO56w9XWrBkOV4+EV0WciFI9FMtLz0UaFgxhNnpsrZsG2fnK3bSUZARlTRr6pFBTOo0d02TSC5sMuUnO6REbS8RTziJ/JIxSq3mi51wv9gshQkDykBWhoiRxz57l0SAXn161T30bvbL18G9IB5vs0cJj+iMGqrWi7/rJNAzwCINwNh9sdtngsDpeHXYb+uYHiP+WOU8lGjH4ZtxsypkjFKFPX27esRZdSQVHxMzah4WDWczxRFxkXnM13HRUPFx1V1me7+iCKoG3VXf0X1rh2UvO2g44SV3AZrAWyU2vcoUVgZcPcbxc61qbjdHA76qWrTTjc5tWBRyQrEOAP2ezIBF3QjX8JUvoIFBImLNoN1LICuSlsnE66hLqGk1Gg03XVqZ9eJvhNFVY3b+ZET4cJAGP/Q1fX+wGAlr0TSSr7//UjErEbyakqx7Xzx+G5FseOprp2nuk70agWVdpIbOR4ezIfJ5q5TXe/355WUpeT6T0cGzLAUztPm+SLviozPnGe7mSswstdRazWCXBuru1FdoQlWNL0WvY5fp2wxZAO4MMHUAGEI1MyYKMJHOOVDRomegsoNHyxSu/p4c28/O4YfDU9m+uTwsJNITUUtPoMHzULYuZwxZdk08P18tLtYdLQedubQAH5Ev1JHjvb3XZuEG8NyX2aK3ihFzZk0HgoXTLgxLBKW3rhHVfKONnhomq3ih2aW3ljnaR+TTxkRJJEYlcRYwjOIwxzC22Bo24HgcK4RkvIwhoMx2m1WixnStQa4BTcLy5hLl6uNyuWe1gY6dd5owe2UcIPKRvbrqVx3uuh83ZXuzln6zOYbm517t4oTRfxVwnD25jSQkDUthw8Zib7tc3Pb+zZt2lQol5dtVwBjFCB8o9pVN3kQKikCs33XhZMDEEcRAAtqJ8cAnG2tkeY1pqHLPhTDsRU4+TqgWezy/7bOgt2CXRsAlSABzojeXcg4X2cL3TooK/jYrZnN07fw9ZTu7NUTvK6qOp/QKaBHt29P6dvnvp1Dno4FevMekC5bUIbq/jYIAHgDpcsMhwBpOMQSjp0SPGYprDBLIwiYk2qPh9cEW4yWBgnpWPdotcXoCmNnmUKFCdRV35IBe8VTlTvyQK8fT1zYOZZKje28cKV+MjFx4MCVAwcmxHKa7ZmoVrOKqJI9+YHhSqR7ZCCfHxjpjlSGBwAf9l3aB39fiLKkZCqVTZVszrNJP9vE3GM2wR7Polg1mmwNMSxVDpDLatAyp4m1BV19DOiL4O5lQOQk42I66O2tuJhMlIpMMSm4O/ktnBAUqq4xF+Pjo5oq5WTTyaWNuzKv4c/DkfctLXK+KEWid1N8VGQ1SY6YuUxE1rUeprLlk6oZCb9vqc4Vy8Y5LS3jfi2cOnA6IouOGs2prGZJsMW1nkhYruEMngWc8aFQVaem3JolF14+LJI6PiQFP2jcRSNy+XKKiVr64keXLzMj+fre2EISwO9lkIlG/gnESKBzpNfj3hpI7aCvuPufqTNq07vIeDyZWcWTq36lEaNGQwlKIBHjhmWSn/QXQAoqdAgr0DzWrQXYIqkUHBdSzIgLFdmqW3m4vPgAAIzma/viY+YwowF08GiqvuENgBHvLBt1zYhrtQYCo5As4YVAjAER02KKzBZFFacOj1bKvXuGN81cmdg039/Vu+k8meUV+ciCFc5FUz3OGfK53ZOyewfy0rL8y0SZFFqD1lHNGbgMgQdRrdkzIcft8LrmdQnPx0SCOvD9OGyyCgGSDX8hEGO5PIi1fj1kxOwsfhMXKpj0kZ2ze7PHnAdWJZPK5ot/2yrlEsPOsKLkC5IcLvf0dOMHvGJb/c74aBaPKal8tLnV7plNyIN7d/NKvuhczxcldaDyY2VQ8+A8DnBGAX9fo3Ci5/mi1ZJsb3nNes2Fs5QlnQWtI88CUArx5E34S4KA1G6DJO4HUbwjb+EWDF/fJ9u3zGeO4ahqW81rlea2OrD4oqzkPGDjxfR9F1h8YSzrXAB0DgdaJM1YDS+u1ODN9Vgy7LcnsI4/AA2OAIX7z/5kUQoBMmUDYNlaEJiEHT6R8JgHxYbON+uaef9ASQ6gJsOgjZT8/LYZ5M9XtqUK1/NNARlbWlpiLTF/wG8H/EZR4iLr2j13GNWLgIi/hTuEDtjBbSXYycmOJNfe4e/wM7c0jY+wcWPxcyPORqT0+9MXLolsCmdSInvpwnTOWXQWP7h6U8pop/RwWD+VM7ceELdvFw988fgxRs/QqrHyMNb/1BtkCvgni3aIIO2xoLdxeIdn2v0DotZEqv0yG6kxEcaYfGVTED5eaLmxKrtDK/n9fh81AXMxKvngXxokfozZc1c/IF/+8iAZ8fEz2GHOpZdHWZcFvyPngAuAhuijjBTUJ8QDnMABQFIiHGChKwsyLgtgsScNhs2AXwGRUBR4FrXgFrFuZluHOzuSQkcw5pH8UMJlVUaoSJ7MHD06c3XLxY9mnwxs3TKo8OT09k1HzQh+ePjG4avffnt19vgskcNbT86OsMv+vIPkElKoRs659IIHegG0vXeVNOM6jHWNko72LI4FfTiYt9gQc3Ds8efOAt6y6fSWsUKcl05uuo+HcM+14tjs7Fi4bsv/DvrnQCJfX037qdYC49eA/6F3VBnURtz7Ig8JGS6NEkLwnFDeIq3Yeybecu8efdrT2dMDWZYdO3eEfiKZT28ccZ86c+xYPn9q3AVh9dhklKzGPVoowdjgoS8PLqS6gwPNoMJ2dIIGErn7eIzVRrZ/No9nnZOLm07qPef3b7nmXHUu1celk/Og0STRW9VuH0vtvwiWFCTeHbzH0Hl3Nd1tByoLRnGbuiL0ZDCpKiDnC9RuJblWXxAIQaWNdeZLRarmw6q2veLa8eOJxNDwsai9s68YUbPdY2P4wUuXyPnjR8+ej4t9W8e64+Pz489/Qitrcgo1AtUW/7TG3+gj69e54rUncftwkfNRgkfNm6UinlfVn35SVctyruGqBZhZca5HrWj0yZNo1CLzSlx+8I0cVywLR7EFrb4Bum1FrW8ewJtHe7+E5/0ZBVEc9VXfjmGWxNcQUF5ZssH2mBOgAZmk8hAD8hCPXeoEB4auDoMGEWqLhgzoIKi3dwpcaF17Zym4ymLTpsAmjvmp5aBQ4To6OUwezlj6kuZalaPRoiwdIF0fnBwlaqR7+NAIHnQud3eNfKpblk4SRsTMK7JTwRMjR8XI6MBET/b0U2cR1WGXySPUAHMFUgPsi3fWBBsFFjAI+Jvmx3RPUl4gYKGEYbJK1IMWSzZh6mskd6LWovP1wzy2F4vOJpPkjaysGFpEM2VyPlpV1UXnQeERji7KS11mJm+EiTmsaqbp6hYPnk2Ta8wYyqOuqqK5+Ls+IfIsh0DgaAMq2UBRl8obrqThW2byGz+mtkAq0IR4uoKlRImGL2Aa06EAYKAKFwE8HmQvgSofChF4eGeEbh42OZudyUmZjKbyEWN31tQkVT5mZw8rshnJ3JbVSHFv15lZwm7JWT3p7dYRXRbDM/tOnY1O9Irvf9SXmdGzU93kEWF7oub2SAaogpmLDPeKvNmtdnUpIqU7jCun3AOaH0Rr0Xp07DcXfTCevKsg/gHot0/0ceI2hrr4qA3tP27ALPJxrG8SiTwvjiBR5McQL/IDzdXXXTb+r7lnY7U1ZGBEXaCxtmgroMjaUIoSWp+Aglh3HTHA6Ev5Cn6D2gIps++A3RgLUf2Fkt9QWylGPYaAeoE2pq0nzLIimZyQM3g+K2+aJBrPqpJu2/pMZknMTOvxuH6K5PqcCaIYEmuDDGfZoiZ1JYyPjMTTp+7B6aWUcGV/ev4lSluw8A7IcL3AHHiWJ+w2DgYGHOFdJCAeVm7SpZ8jK/Szza/5tUCbKgIPL7WF3E0SK4ViXIeQ7PC3Jalj8ylW9zvVdHnzxY9myJGZjy5udh7uB42m++rR7hTO3rz52a1bmD1aTgNnqMND7aoh0ApbgU8nQd57DXWgEnoDvYXeRh9W/8cIcKxoU2uDJbSIrn0j3qxIPEfWqLLIgpTMTppAaljO0IkW4LTJWMgOtnEBjAMjtdMAHUAAD1arXV2FQi6XSkWjpklNttW3q2/3/PqtypvdXW90vVH+VaFUAEks15HryL9Ondmpdal16bXJRHs8GovG7Dbq9DWbzebwGmo1XG3wbX+FwZcDlTQUC3a0/8xR6IwFqQmmDY7Jjs5YCY7M2Ug6HVk8R9/xg5n8zIxz78X3/Ay11MD0wvnCLXIkHXEKVipl4duR9Axcmnn6/NuC511eoO1r/CtKPgXO2VqN+FwMoJ4Ygj1DuSTySMN+dmVA63AwGauNyTNg37p1y7VZf1pOO2dT3QsLsLiT6fKK7E7jCXSgy73VX8Oe4Szqj6Zcsleg9HkH1ZyBnbm+mBUsI64LxghGW1uag3Ej1m4nANnMde1t+RJ1pwPv7ozVnbXtK7C1udZ1G08Sli2nny7kKWxXyTSFNL/gnO1OPSITNSgz6fJTAPoe/YiPAcjUl36KyTMWUOIUYN6aqpHHNRXUc0+lkqZL9ECdocSNjycTRWpkAapXNOCPqRCgzQoD+qZ70W2ULJI5NZfOysa10+ecnwy9qnRps2E+bGbsgwcnxt8rs+LIB3fey/LsxMWwGGaJUilPdQ3hC3ZcTMQrN8vlcKW4q3jty1GjLIkpQg4vnYtuGZQNQx+c7tNkXb5DJEJSY3o83+vaQ58C7ft3DPWCqDD31GIGsusOxHIsJWOIMByZfJkH+v2NjX7drwe0RrVRDQTzIvBBzqBYnPQMdwFAyxLItMz/JOn64kFNamzAV8WMGN6+fbup2qqmMoqmLcVnZj7CGeeeC8vSs33Mf8VU0RAs7Rgaqv7mNYBFFKgneMMKWAAGqHSMF1QCMBLiBVmQMUQ4MvD73//ud78f+/3Y347+buR3I/9m+Fddmp8Kq+0GT2XrVmzwIFu753AEXYoa7BLU3kKteK+5kXYV+KpQhKZu1F0r8FR6hLbuObUBhrj6+P5BF80hM0pYEjXGjLyUlW01bxf3GrpYFE1ziynpYzr80VY24S1j2MzLWTkuw7tx2FDFbskM7wqL+pimOV/AjvtetXmDz4RHTF3KyKoxbhB9KBfpU1TznJkiMhtRB9U8vGrNwrqUkFRj2CDwfEUZhXYXjASRidfu/OzsGcyCBMEvx06s0M482lndFnUtQTKNbfMhMtmgwkEUfOJkEwaizgFRB71YwlQcmmwEkRkzI3BgKH1k8GAkYpq6TuniurTdFmmNALnzqJ0eAj06uJre+V/l4PK3+duDMZChvBcOxQod1N3SWcjD9qVxUszBleAJJrr4AE8+pf/IKPuUHy1e7kobL/hye8n40vkbmzYtuH/Otb4+I6MO57Zvzw2repRfTW+aUZpaxXlP/QHpeCcCUZAZrdvDVgIcMUol2mOm0eADiasZhz2bHYyF+sb81IIEyFNwHWTUvtjBeTZiGCllciF8Qdez+kVVlpU5SZpTZFG/qJNpSdpjsIri3E3hMU1Xmai+eE7X8RWeSCO8zo9IhL2qf07PZP5bUaz7Z/FjWEcFVjFXXQ86Uq+rplHDDg1TZNwwRWr4GFSbqH+4KaSGkIIVzhXwgec14SwLetqy1e7p7PH5akWyx3qKx2e7hod3Dg2Rh8fvOg/HRuXswf0f9Mwed+bp1Z3DMDHo2WeAR49Xcd+2qgUsL0V5HjC8qMvxGn0B9A6VAA1MDS501QUvWoG+6OLDXNFghRD2C4AESXh5R+ZLVRVV6csvNfX+l0ArvtfUL++r6tLieXwc/i7AOxmX9KUrusTzhw9LErx0nfTr0nH3XFr6ED+ddfgX3mpzd5GZZBTYAQboG4auScSNtaViJ0wL0x4vVRhDwCFmWOQlKSIVP6n2FJ2D+BNH7zIi2qjzeYRBohoxi8ZO59yePXi+66e9kgUMcNb57nsak/Ns8dk8cx3oWANQ1BjK0IiWdRHCMsAeWFDJWAJSE6JGYmbqOe3MNbfSqJZU0q/KeqMucKgBNwieFwl0DoFHyQQKVDBJsLxmJCvsWxRwkJwDrluiWOLx/Zs4whLnh1s3nW9AkzHunf6K/ca5eZ99MMiqPeNnu7vhkEmf654z0mW9ED8MnMj54eYt588swcbNWziyeJ48wN1wg3Pj/unw8MXxqiTBIZOuSljUuzJG4VDctcMuPrtBPiJPgJ5EqG2eo45lhniWeWDgwC1GXf/SOLAMZtAPJCJkqBF/BLTNJtxU83YLjELsLE4yiQoo2BVcyGJbwTow/9GT1/l+Uj1wbH8P6WeHz27uP9DTc+AYfSNPRrJLHymZVCqjkJFIOf2lFTdty7LNuIVqMv1+8sRdg1bAz//8T4zrDP/NxQCI9uuRwLGs8EdEpfVlTwLiBIajfnFCvLg3shFUQfLb5mqWtucEdttfd8PGaoNfy2td4aCfSr0BI1qqjdFVznQ+6krrb7lW6JDQkcVAQZpwR6kjvxef2VskPYdOHOwl+NLk/gfOrQf7J9NGbqKgyaMTYW2zIW0ZrY7gz/r6nLCSSaczCqNpA7ZUHhkpS/aAlguHz2yPqvt6avEA1C9B6f3r1SxdC+oCm+Q8Is6tEPG/KhIB9ialriAIyW4wzWNHZqJAd3s9qS5dXnxAPl3qRbVYw1nmEeiLBgojG0n/1NIcNgMcjWunK46T7ZTfCtQcX2qnLLY90M7gQHvAaCLMZwlxAbics0VVWfNySjojJfBNNcL2LC0ew4eP4eJB54tBKXEjjB9I8aV7qsJuZyPKRE6Kk01xeS+rqI83LX2zhUQWL+EfRpxvbbmweUWX+dSdD7vaimrTgdzZQMuT4Q905ml0lb8Wd1mfBNzmb6MMqM6MmIOLD0AmfmFKXProzTuzzGf/UJ1qAMxhBUJZKHBV5KpKINuCogzsFRguqIyTMqZ+ohE41B1FHnflQE99mbM2SiyoLnRv+ZuAwgZAKXgpABPWDIOqQF/3sLn1eVDxIec7bMKrsGkT/uHllSTD4+PO3Pi4F3e5gkt0TL+vDrve8ZrzGPEC4ScbYGh0o0xKmMOYG4EDRyeVw4N1IeHnRAP5FRgXAqj9MKp2GgOzappT+JwzAa/J59Hvc4A2Oj4OfB9JNV9A9JV64v9QPafTvSDC4q9pIKKJfYLomwxhQcJ8I5V3wqSxuYnIXKM8qYEY3xIgrB+knwj2I5Xxq5NBbwcFV3ZQLpcBahSPR6MrApGnEmZey4BW6CmF8SToAe2eWvjLopL1C6ISvN4kHcEknIboq7OjhbR1tnd2PB8pBDIQSEr42K1bT0GZW3jq7MSZmVft2Kf5/K18HvS8GWiap/8W3HcESj2dx4NMCrBMQFHQzVLAz3IoUFVfW79ubSoRa4v4BY7Bwvp17cEkCHDJTo/Tc7zN24lYsp2CDjyeay9ifzsMgAOEFDoD8MKjoBGSb4yos0tkqTVBcnZFDcPE+/A+0+lyrpE/O9cwC40e9g737ocXlmRrab8tnyHw74xsk/2WrEqnTkmLX5Hc/qXP3Tdcpi2j8Ob5oOYBb4dROzKqAViTd5Y1tDWhdlIXTPiYTV0p7QmBFzhPUqECHSxWJ0ND80PkgmaqWdnZGo1nZHxS03hJ4UVnXgvzSuREmoyI+tIdxYgTSea/BGHE/DNcuG/QOPwfJU0lcsTMVgzXd3mH+d6V3Sw085uLjcCOYiAKsMwfOLyau1CmMoqAp/wd5Sm/aa7aNAh7xy822lj1Y9QSDul+FZBIwY0rLJb6FKjrs6M91FaipiQ3YBmoG/NJVCVpokcX7xfYNFGjzBZp8ZLCRvVzBduKFvGoHsePTdPpNsN5fMM0t6cO6hEb2C2qyTp3mC9hPBLsszTqQv9dVU4nAcCudcQnEGC4KoywAOTOxwPD9bG8j30XIN4ugU5JgHpM0jWCUU0iN1oecRw/JmKeo9a0Tu8237Z/1X0bq2ZDQ7HDSyxYm7IiDYGGgKn7G0BFpXSwUCy15S2chFewDT5wRsidIYHqroR61t6izRjXzhIL6jBLxU6mf6k/LJMpXo2cgJejwIfjNsvzg2xUXioXRL6HYoSWYnrv9zmLvTmcMcJkPE+tqCS8n4QNOLkVVbS4U4GzfBgfsYyMqKaGh517M8PDM3lTrsktd5iDMJ8+l25Vq28CQQXFi8ZWMdvdKCqYXCC4oO/SaB1ujGrA3ACoDMgjIloTTeKhTuSai8ZNLyl2BGDvebQkQEe3WdYW5zVZB3YWWdoaST/FGfJQk+fmZG0pQbSlhxaQ2ds0spDC9A15Qu4DBWhCJuqCdfE4J42KogGhUzDxGPOjcODxmAByJI8H/GpQV02/qWl+TVN9XHidP4r8MRW1BfMoGCskqAXTCxTAZXx1j3PY+ek+zu95eH5Xtrd3oreX3Hd6nJtYwnv2OHe+/ODhpZ7JHvhD+NmzZ5eZX8EctaOmqtyMPfP3WlfLKFJFvliqEIrf8Ac8F7Qy15lWoSZnGu+C/9ezGdEylLRuxwFAIRDMbXXuOV/nQkFWU0AGj5jproJmZbBNG8b7C6ZFGjVON3LOV84X23OGzpkB2dJs3Q4bipVZHU+aQZ1osPo3a8MgC68zddiWjMZSe8WG9ljUYvE7TY2SyLo+HzfN0MuvAjl5OdEwuz7/+vrObKfd1uwmWekhXgC6RN9tIZEsJgQ3rShZLBmlIn3Pl4wQtZzD+3IGAnkyLBt9PUU9lcl+mM2k9K0jij4yoisDlaKeTsO1dFov9vQZ8rDz4eCWLSe3bMGT/flUWquUh3R1ZETVh7fr4a7CcH+hK6xVuoahJXQ5VK5o6VT+GdpycuvWk1s8GvD02Snmn5kwcNcSGoMd2VINbxyvvgWjdI1zrhuA5r34VRp7FADpPkbdSbAqrjkMhH5q3qZG7pCbNxgy3GiNZBaHsHtCl6/YbngBWEm4ifoRiq5PCpp6NjVcCrld/rciT/xNrCr3NTTSTKi0BReUhHGosDcs63PR4YzNitKgwqbLT/ApTc8ZqjMtiv0yyavR/GxXZqS311QIL++XZVa2FTZRTvApwmqL553Bn3Qta+CnYsRoamQVbVCWicnykRyvWOomnogFs6ucJSLfJ7I5M+/EDTWtaPhLUa6I12Yr42E5MzTUZ5b7ja4uXuPlXikfSVXkMiuRpd4nYz/qalar5cJR2SVJLaFtmGP1BkKYhEAAZza4NjAa7EQzMBkvvIFfFRUftZrD1FULNCCJk1R3bPf2GRCBzna+7qZtpwaWopsPYSc5Axh2kRyp0MwT4iym83BWKSZAtaHZKJVCwnkKCiofvzW2Dz7yKns6Cl9Yp1mVrYzDtehp0RZPWzX65eXntKA8ja8ECoF4jlrrGB4x7yIsSiKWtiGpQZQagKTDlyxPKQkRGDIlgwQpYkGcRA0+X8MoamjwjSNfg2+w1QKBI90ea4ta+da8HbT9sYDWyDWvw94o7ETSdUXTaFHXc2hTRyXPdQRjwPxsLzUiRMMvS8DTJg9Owt8upXBmT+ruwXNzbiLE0NzMSTIMVz4/dG4P0Ky8NrJ75qQh48neiYlDk5P7uufmT+92kyVG5k/D+R4tr2rayL7J7rrOSWWlKIzdD7zwrWp3C2ZxHxJBthFBeQSxX6RiP0ttS9zUc4HrXiKBlg/k4wE9oNGYgI76wNrrJ5gHlh2kAe1vYibWWXiDpuIAVRcWukfK5ZFu/Ng7OlfjwMrz+tIufeu0flon1zQQ+OCrtHfAhhQe1PVB/HhY18echwZbj439hPl7oGFB1Aa09Z1qT91cIbrZOOhdanEFTBN4LEyuhDTQZD6eGQgZ1Pjj2n6ajbZQ268KPjcNV2BcszChzj8vVwpIcL5CSjFYo5jGtCXbmLcj7LRoLX0ckScJ18znurQEfpDQhpwjXaNpjZ1InEhMZK+Ta9udCDkdtpfmLItsjdhhvn2dqpadXO/23uinnzrf4527PV3FXYe63D9V/Y9YIjO1LLGmBoXxSVhkQOECyN24XqqU0bQKONTzKjxBHvbTS8K6l9igKiBjhXBIfVlQfwMHO6irrpPy3ABI6G3w8vRGT/TOnsH2mcxS75k+IvZRf8iK7ZL6XJZ68TFnJxO9AP/qtkpvPBa6U1VasMDRFHkTE57Z4HkrX0McK7DcHxFcYsgf3WwRzs0WqbnllnXcjVRd+W2zJ3rmvNuEbX/1fdXXV9/CE2bbX7yHBnxjRPMe64kq7swZvudn7k3cEQQNO+jGOgZomHFnyJs0p5IqT+PrTmW6nJpxKvj6rRUtZmaGfLqwkC4vTc8tzF1f8SXV5+tWVbKwwKzBAFttrnIgSQss80cEpIdDMGUUzT3wqVouerqrSHXXjVR3rU/W6959MPK/+sZqfvU9POK2/eWbYLo0hCi/hAGE/IHODr+PW7OurbPjuSgDKtgBZvmx4E4V/mkaJmqnq9ofS5enne1M9Cadq5mZurJXTi8sAGr13YCZqtGrLWQ/rFQSNLou9L98HOQJAFBLF1iPYLf4RCDcHA9yNd4msBKDGuAUAbn2+eR+Gq1GzcyrcgbSv3QTpXGgvEzQm31/0wzrABtyB1BLccfPNAeeM1p/CiY0c6B1bQojmnSyPpPKrc3ZbS1hHSRenwDMLuHZEKiFTQjSaFmPUtLsKzeWzyWXuhEt0mxFjiIcEFM+4KoEeYNs1Y8cPKDrzkldP3DwiG7pe7C4R3d+HO7Dmb4+517fmT78nX5k4ph8UO/W4e+gfGziiK4f6dm1q+eI/jBvvf++lSfivXsWVZ3d+f2A2c2kUYMbc6tX/Yn2ViPYyHtm8aBnFtcFN8a8hItMida7YJLYIqViFrfjhEZDI4QsppUwmBlVXfxRs22VUezL+YGibW4+c3YUG5nxrMSLGee282PqcNV+b7xQnpRY1mYkNQV3KJGMwihRZzI/cSZu9gwqFtajGZ6VcuNbnB8P4mw1mq7mE5YkpgYR5+YIH2d6UCPAvBbkub5aLDnewdTi98nmVuutN0ud1trWtdTfGyhaxA3grGAMYCezhIIbskjADZ0v1mW5t9xwczdsnjP4Wvi862C7mP7iq8l0ZP+V2yf0oSH8g2gMlrvmhyQ4dpXnh1Qtqk5Sy8qUekuTpGI4Td+ViIIvSLI2pYoRlR61FBlMT371RToyNKSfuH1lv9MtDc13lQcNEY7lrkEDH7fSylQ0Go9PqvNSSpvKmPQ9fExLSUUxTN8lieYuwOLtJ9NIRtI/0ZXK05Vq9zafGyYfZPbnoouPDU3WGDuSumxnJV3CNzTDrq37ceYkrDuVA0I0g45yDJaweAN1ZP8lB4Cm0YQSLaSFlEafX/J7qSSeModUFIVXIF9UE1FeNQLBkJD049tXseL86Bx0fsTK1YW7d50v7t27spC/wKTrV/E8VhZv38Np90uy9TF8i7UaDcgBDWhGKTSNPqyqnXmQNYtU8vstQS5/aXWTgUBKYzl+G1AtlgdJAMgYR1z3GAUby/0w8kZUpwOJF5tTweHFWxigAete1XC5AgvLuhka7DiC2aPbv+H3I+HmeLIlLNC0Ed31E9D97sa/uL6DN115MMhRLaKjFq4W8EJ8O0sgcIT0VsZIGDEaTUv4BN/Jt+AKcX2NgLSdhdeI6wsmuanp6akPv/yQHj6695Fjaaw4MX9wXLGmtswdEyPympYJMvN4ht20PuD3y5ZMYBPKTU3E3iTu7i307OUn1oF8KoM2vD0zO9k9sTm7xx4asvdkN090T85m9kSHhqK8IvKFvKQXnQHNiitmZMLKF4v56KZ1gWCQ5CRNU6QmVSU23hTtYRM56uHIJdgea2JtQBF12fDktv/n2Sz5n2ENgauCzP1fVmWtkbActZMgyvNodFaLm4LE0rg217TMuAvmrkMjrq9aeLkRNZLhieW2HKwUNWfTiiNTK42ej/Shy5N/PdEe8tt+njPXhUDs4ZN8qa2QJaCiRUFTUxgQYeE/1c2JEeoouoHXFRANo/8bDvf1991xfuwfrfLih3jkgsSmqj055xArsgrxNZAGpXXcHDHH1wRZfyPPE9Upb5+dTRNyp//wpkP9cx9+ONe9ZWx0K77MRkWLbwqwTYHM3k2Te2ItQoth2NoNhKRarvmn7t4Mu965TvQmULkh9HdoR3UravBjCTVIU3J9gzbxCrBwDJjLTTVS44tI8JSKRZ9PHIWDSPUT0Tc4/Lvs+vZ4wN27o7//3d8N/52nxa9NxTPtmZChhQPh1ftZW11UYNkPS+NTdBv4ESi7CgZiUwzVryw3TtJ4eZxMBCg5pSoxtHPPGPotbVVXWHoy5fJYd7fj6NaMRYqROKjBrBIf0a3piPOdappR0/w63gWXJSsM37KSZcfxbRuusLJ132uAnclDtDfnSTf0NdZ9zFRTKdW8TdubCcX+zvvsfO3lx1dof6wUwXfp46SIHXe6vEdEiFJPoXft81uY7wBnG9yMlLWoiN5Gv0Wb0H+CdqL/y6M5BTrdHCLclCATmmlMCwEo8M5ILKxLbe5BEFGxJDWMg67Y2FBH5dd/8V7VXeOGiZU+RMDwLuSDC8QnTv2lmxsapNH6Q6UGivmvdZXWpYG3A9pU3iy93fX267l0cV0x1W63enkzNYeuW6KgHgbhRg6ALNf+Mh7UvgKRxcBecJ8X7sd4B++Su/quJQRXsBfeQj8HaLRuIkljP2kmGo1jgXbMx7qVz+Ut3dm+6+zZP585s2tkz55ze/Y4j/N5uJoH8jfprbhaW/j9tm1F4qwV71qKephDESXO5+NxS0ooFq+wRoJMwOra8LLwIQ8Tvj/z7Rn4cxK7P9iz54Pdt+g1Ew+5j3DflnpXzskJ2wbU4y27a+mYShGK4h48lZyLxyMSq1iskjDZpYL3FNt6EXfCKIE6UBUNwP6dAblzNe4AoWLrS8i5S8jBEnJ/Fe787L1/De780s2vwJ3OQioZdHHnjXKh2lnNrk92pDoAdSLBcDAcMv463PH//4U4c2Nzc86P/6GwBh/7D4A01Ce7j7nGVIDu+4Dya4A35WqJ1hCh9a421F3jU55rfHSVa1wPYBQI62FV8Qg3v1oQ47AewtTOFOBoXm8SG/jBLepSdXY53+IwvrV0fISQmYMn723B5OQXI0vONFNZ/vY9bH7lLB6cJmTkC2fzli8WDmxecpbzHu8xJvkeeHojlcBBZxZplhjxPRdluMbNFMBt/qSQLOGQEGrzh/BXuHvm+MxJ58zMyb3OjRnyvXNj/uTMcecDuIq79z6vIy/33yCy+B36CM847VltQ25dsVLSfQB2uy+d3oJT0BNz8NSsc3/m2PEZ58stp0ELPzaDE7On6j6Meu2DCK0O5cM8YQjPbKM5+YRHBNReBoEsjEGa4Dh2BC1XIfA8p3pEj6x5wSP6yhoSXtxQ0P3s6bhUBy6nqQHlFg0sTHXT2LCaYnw8VXZk+hWNiaVxnXQuuOVYMFqjkEaAF9Bc9R+QJDQI0h813MDzDX9QQFwljEy2oUbcuLOJer4FCQlTflGlZk2ZZ/6e9dJm2FWJFum03bbGxMirc5Ven16fWZdob1trr/XKHfprVTtE1x4SWB08C1p/m9/NqvFc4flOjzN01E+oU7wVu2lDXnzczVuLX3sRtlbCiBrGbvedXFz64OaPC1cWmGh3aul8ujyN7zj56XKajKe6zydU3bAM752vVG4+cu65k8KtihVcU/OcT1b/LQIKR8Q/NmIfw/ho3SWugVAv+hRbs6P9vezZ0eQVOxp1itPQn9UOcLuNFt1R1/jXeEurvMr5vzxaYXnUbjgDjHt1QOABWkYqYZyib1GDSS9+zdhLH5CH3mi9cU56g4yr7lCXruDbToFEurtX1UygDN9fVZZ3luZifjNuCzBt337rFL79ljZzTiwdxNtf1PFMNFL9XRBTBQ8wnWEZ3o2Lp4qeW4WCYsgrqlDUFD1TM0OGHlgtHEo/o+zRmPnO57W9E/fuOV/eu/dw52ef7fxZdS995+rVO+gl3dSkNNDAHBPEoMgD/Ixb/ZLDy+nAky9WwdQ1ap52k/Z1F7oo4qhJhULIxWhdgA7m5ItQpFwYSer21au38eRV96t9WHYeXwPoKYyPdn52e9fPwKfDRAYxxxqY4QA+gIKlnkfWLfbh2RpHV2J3VuDzF2rwtRfc2YsW2zs6Q0JnzIPLg5EpuLoywLD0ZQ26lzXph7tuf7bzZdj+TXUI5g2YB11qnrD8Nrr4QOWoj4Mig+sfRS50aBzwgEF/Yck5u7bkjO0CrCaYTporEYQlr8+n8+PVlUn7bOf2+lQ6B14YzbVrt5dr5RALOm2q0qobrulJc01PbjQm9Yu4QZiGTgrfaxnte1VNpG7cSCVU/MEDTXug5tVE4tNPEwk1X+sPz5ID1LJRBU3jOW5kunsm4BVOoLJErf8fFdrHJ59AHzn1G1W9Q3apajxz43omrqo/qFn1C69+wUOaBgd9q7RvL0duJVfYzcMDCUWvV1mgEkt+Grr7BnqNxz/5JB5X82QX7e8H2v31G9A9WpkD0ZsDvuYvturmNzcc1a2fBYCTwvLw1e+hX2yuGr/6QFUpnP8Mb/8nfgSck/9HmIL162pGLurQhMnE/40RDodvGOEb4bAZvoC/CIeN8DXDuBY2TPM03P8Y7jdgV9H7fQzcXzJc12XNWLYIdxvXTPMa7eb0Zbg5fN0MX6e9fIjqzw/W7m/g4H5vMlo9Z2mi8f33V/Vw+cKHbg9hk/bg3k+f/xWmeWT8P3IU/pIbBO+FxlfCOfNG2Lhh5sIXvjWy4ath+Msa73vPZXbUnitSuAM+CrHgemipc2cX3k1hduDd2Q2DJ2XnNJ6hgDtzhoEPwwS4z392Fn/NRFbGz1HXLqaJA7Q3fIOC78yBAHjY7e6UTkeAj5jwcjs76uHLP0M//0etH3ceQj4KB7BSwZ0HvNk5RbvCh00TAAiHdQoh7cvZEzbhtTIfzFYYlwz9CBSedtjJLjTQE8/EnaPOezAr+Ch0ddQ0wwdoxzA1+BD0tDdsGq7P9kdygtwGeaqlGsa4JkMxQDjRZngIj3i/xgIG+whl7OSE87Hz8TWs4+3OQdjWk87ZGp7eJ+ehMUhkGNfqnb0D+6B3eY/5A25uqA9TXwne6xzCe/GUc0bHA3jgqvP9Mr6v6sfbR/gdgldJdl4/PtJJu5nE80DyzuJJct6Dy6jl79fH5O519M5K9TU/9eWH1oH80eaPYXLimvPDNQBhmHaC52t04jZJAM8IVjU6H251A1f0JG5eTAPGt7/9liScnfhYrf0x0ksjCf8RngJ7yt9OJTXSC7z3he8J/d7fiL3vv/0WveJ577zwvM5m/O23C/QOtDy2J3/9etFSOwev4bnn1+vZNzDP9715rtFCeDL33Hp5lXldzxb21so5RO5fdQ5d8+ZpdR//urW678G094Xx/KW1enLNOQzPXr1Wz3bjx0w/3HvkH+lUeG6yRjoZKymdv7kouVmeK9MEl5RXtWt6uV3w5XbPNdlI/9EU0pWJb6f5gR1+/Pjp07MXZx49In9eitTy0O6RcWiXqMZe2iM1g+QY7XrAm7YSyCSgIDzyeph5+vTMJfRiP26RKuDjbvqvl449Qjsboy0HvCVs9zyS5NulMPn24czZS2eeoufm7hfmHf6X8OOzF88+JZvc2+s4+CHzIXkAesfb1WpAJIQVqM+LChSel4CvGyFfLFaEUVDXQHto8PEsdUIL9fJ0MTtZokEOKkjLAhUXK5joFx4+vPDe9r7R6X2XLz+9TN67cmWePCIPHjkfPhof6L6M0eWP5m/f/uB7D6YbANMTDyaVAzHGD8IXgUnGINhi1oMJU5jcAnIrmhtobVpTo0SrIDKrYApRKLLYk+ZLIa9uOj55/iG798qVYywAdHnf7FDf9vfOwwo9+e6DO3fmP7zsXO4eHH+ERx8hr97LDaYIMCmoBbVX7ZZIyC+x2K2/7IM1M1bvlYhbGOAtoB4l6j6DBwoKxpxgEIEXkjTVLil8stv5YXw3u2fmKDvTP87is1inH6eOkWn4OLbr6G7nK3VsLx6em1E3q/3jT/FT+OhcnJvWZ+nHid1omc56ubGF6utUvve5FeQlFx6v9Ahyo/TcEiyElmCiVbtpTgd1nJWopgPUhUqlM+nyUbz10aNbNCfS+Wzhq68Wlp/BjJAheEa++pob+umiCOPiPM1WcjN+0Ooa3dC2IRCneyhABXI3hD3WSWNtE6nuo3hy05kLM6ASf/eonvv8HSOCltcOeu909e/bQqAKJU1AxvUpggVmAwje76zFfC9iREyLGy2XCvLRwqYCYCUC9R7TjwItdCzwg4kERolCoiOTjlotzcFAY4MET8BrXL3GpiWtGarh0qCvCnkD0wngEu6VEM0Cdy8AJhdLhSJgM/mxuLlczBU37+yZnS3OlouVoVNj8bt3l54MTMzOHt2lZFkRP7l7N350LhuWyegmwlZ7+yrVTemjcBwZH5+7fHlmfOjoVrXMys7TmcuX53aXbaKw48t1GY6gMI3X0UCNDdDNt8FPdzIPM4Hp/ptEtOobtVLUir5h5BW4dINAwvVcsBeCQNxR0BjS52I/nt66dZdsXagXTIP1ttNlWjTt7t2jyzkKl127zJvVMq1r1OgWLnPJEyAZTfVyd+CkW4GfxlnQzEeGrjy1JbgU1A0cDLp12mrxAeRTR751i4necmT8mAwfpUjgTJzZdHRmGc/g+nFXJpSoLOV5pt2hhPC3iuKMmrZt4jnJkpyfVN0ixNLVlX1AaxDLyKwGV1doFVhaS4ipJ8rB1HjpwMrAgFMZjKfIkaqT7unBX8QjtfwMotV8M7FqFIgPQ/tyq+JQvWm1vsTXO6VdttVP8JVNl53FTZfJp9Wlmz09pFytH+twer6fF+B8VRXbyeO3bztf3b5NPr3tfH3nDrZvozqM46CjUNvzc700yp6Z1u2FxtPV5q59GbbTMIkLRiRi4K8GFvAeKSz9WdHC+JOwpqTKTrZcxnfLzz1DhmestkkELFcHKtCMGYpqyfZEsuB1/5GCt+qRiO6cUD5aWMCTitu30wd9/1n6qex2X++b2Unm3Xx+8U+GX+K8ehvL8AqrzplpAPmoYVnGCJyc1KNRHeCOiE8UNYK/iajKk9Ufnutfdut5GH4fC/37V4PcvvqDgvfQXp0jCr6p4Fn3/KRC4afdOhZ9hqg89wktP+c74N80a3ltNUHLdtDy66yXqsyuTlWmicp6Zwfnxn8/H0ITZEAmYr5bSS5Nl2cWH+DrT+l+xRl6jVrEvPzk557p2iaWi4VQByE1R7ycKR0M+v1BMwjUogaG+HNglDo7gi+Bkr/1CmDyN2+iWu3vVfBE3Ii9GkQ8ZiXBx7hAiR5Q4gpQa9ZQsNZE1kSaw88B1/BLwHW8GsCfA5ECyb0EY5Tag+tQijxhfbLQwLpwSh6c0otw0pDCV8Da+JdgLXUEY6+EN3/rZ0EGoL0c0QlGBjoRRcPV3wY1wiLLB8yQbBDd+k7ILUcgADsWvEwM+nMGxMuoI2P0hw7IAEbRVloHWQ9QI++r6jID94t1gmhE83iA7QG0NAKhA390aXHROb24+MX8RfnaNfnifN/8Jfn6dfnSfB8ju9/gmcXFnxT6xUXl+vX6iSs9o+dqqb+G3kAb0B+r04JC2CaeuF5sVWykfgTgKcyUX5IZNwzVPUF4vMENRH2z+/VcvUb829XuDW/2lQq5N14v/1y9eOrNLnnVoNz44p87D60qxh5cVYydW3U+U/PyRIz8K86e0jM8Wa/V7pxd+eyd3/KczM8fZp473Fr2Q6/sITpfNH59Y3WsSSI++OxrmBIVVmaRwLlyF/XswfKONtIfsBinVQiYwfUZb446cpnS+uLaVCIea2u1ImFz3Zp1q+dHfaEo/erxtr+iUnj7qu9rg7vnlg/KrJwzJy3rwsw5yzo341RWNTn2/ATMXKDN6NvKsJdp2RHYlXTUQMvWtoJMR8tFu/nvNK3VC1N+sSDW+ow3WLsjb7tlonXjjVrNMm9pQ7SkbdH1IvJNJJlww/mLb+GQ0b4KExjSn+6xekcd+cCRIwfw49Feqyfdf1jSDqdVXSWicSKsqocztiqZx8O4Yti2kTCiUQNPTu/JJj79+moiO/eJrByyJF5lta4eOawctFQpXO6V7xTHu7rGizU+sazPtNCcxTBm+ZZIc0DkPGWL2YB+zmD/ss61xnxe6xJf1LoKK1pXqIOGZnm615FdfSMzVPe6xFLdi314oO9AfoE8cRWwwW7Qdj6cv3Png++u3obLq35vhsYvd1U7m0SCmRUf5SvSd2mcsheb3ChRT9Kq9F1qiIW1eQsnawVFqQ/F9Z+k7o/l+xx5+kD8q1TZK6zAGN2ppfvpPjGTiBSUjNiXpirD0l6SWbrn6gq7SS/oujQLKIJVz0zQIlLnNuEYWjqUTtQEiMm14tBs3WwQ5+tBwqtbv1BotGZP+IsdNv0rOgz+5Q7/ur48C0XzmjXUl1XjRm5+k+fB8r3Cg7VSE5W6rR64zsmDbpUZK5Uqp9MPnQmmH9jTY5c9yeny4qiVjsAOXSAnlrbW6kTW/Q1eDXkGeVkfHK3j6cqEr5aLV1xHtR8kec5n5KZsjD/vLVp6f3zfmFuUjTz7F9gB/zepuhxk+jcXZZjDNpYHqsdx5I+16DxaIA25eXe0aiNHCzzaXhv6SwE/12hj1b/GbIvS4GZgIbFfdbo/ImOsKnpYzxFoxQbXkWyrF0Bk/l1KWil6KKbEyJxhEdYy5izHubR56d7mWg1EFr+Xtry6h1G4ZY9h/ENLetcucWbGrZ3x7Omz75ij5AvQ99K0ZoGOOVojnwNdj+O3gWoFQiRHJTrgpPwo4nkqifBosLPQpvmTAG7zC+AGQNETYqH2WBKU10AxAdd5WiSGZg2WmN2mZBPbWOoy4CAa7xv5Wf2Qg9FhbXPeHCemsTRvmEQhtk6GoQnOFzJXKBO7ks/iPdnbd+/ezjo8JXsDVAj38rDrcQxt6G/RH9B/UQ0GZJBP2jFhoxEQPDaNAQKzG7xlS/A1eYWw9R834DjmD4jGnNNyxMtx6u2vaMjseLHdxmoAo41/17+hq7jG9PBNWI1vuJBI8iELv0UMBehOh1tdmg8VYb4EWEeLhAxAxqD7B+Qy0VmgqVtZNpalmmbBNQeUKpihlqKEW14/puDnIirI1Ol5EMcialQ3MlnDrkQsIplGfMzJ7vwoxasROaITNj6o9qsS4cOToqroOTtF1IJuWylR1MIKCxpnZf90eMJc+9oAkSNMxfkWOv8Om/g9HHaiB79Im2IizMvEzPZkqqQ3Otydie4klnJ0FnQMXhLlnnJBjwyz8mimKkZHuzS7GDUlEGZFS5HslKQomsyGFx/p9AfImvwqMVdsObT2ZpD+4qBMIwQ20Oz91ZXRPX1UUxskEByCOMi9IDi8WF5z6Sotramvrqy5uqomWfXMIrUgRYECrm+RaW3P/w/PFmisSyyRLOXpT0HQ7RDUYcOGYMGCOi0g/irgLisWG5bzvKhq/7bNtFjRKhAiaurMi1B/CWsmK2S3rrCSNh23ZUMkrLxLFGHqJd2zVzxbfLaATzBxQDr+H1WJ+n6oCwuEafrDO8QiKMUmf5dir/DsxSvSGfYT0Tk9w276eEIeUuUvPxOdE+JQwpmu22FvMgXXvqhWG2lFTtdJarpR30UtCeILoDcINEacyFsS/YXM/mfIObE/FZ3HiYdbcHw+nN3vLDxD+1PFvoTb32HmR6YAXLK3+muNA4mKVn5Z3lkYCQgL20QsCFRxoDoP5+o8PPbqS8KNJq0Mq9HisM3ruEBMiJWSHaEOpiPQFrKIQNl6G4Pl+cs7ae7wzsvzMw+wFo/rBWkwnnCcB3P42MyFCzPU3cGySkSP2oRQzwflKX9mTpN78AgL9HMrLGKq/9NcSlpHJtleQqViQsCe4xbhzhAv8Mw+RWXJUZaYsvO9gQ/yrMQu3d95VZZFZnrp+pkDskY+ZxWZXzojKxK/EMbnaBNne2aQVVkW55fSt0d2y9SQ8ezJs2+Yj8gj1EotG1Yj8ZyxYRO7mQRuLrbCCHyS/gJoqcK8hW34mPjhY9x7PsLyg1tzI4Ujj3tycp+UufDxha6iUjz13sd9Bjm0JWVEeDZ1ZN+R+NTE4IxpGzOfzE0YOgnn94z8SHWjVb/9sBL7u6u6Q22AZWmSicB05LNhI8jzQpsF7MBuAW2J2/Dcj0DAZAhTDZh3fyDiFb8G0R6PNFOW7IX9ggYYi8RWs2f5+V+EEELFfKiUoJOd5INGiKO/C2EnBaO0HAkaKiYLcEF/4dchrk6OVroOdlXGnXORyOYsyeDZ6eFK93x3ZWx6Yv/+K/v34/FZuDwbefGXIspwLTKbXXrcva+7Mr55avRLNj1rWbPZywc+3r//4wPTlanJqdFK9z6XX/77Z5vI2yAM00gu8U8RU6H2nHZarC7hllL3HM80TaWCs0AILEySkU2Tk2eNLXqhPKVELG16+ETkesTU8l3wOjB8yo4MDOP9vQdTn9iKFr1mDA7NSjTJGF413aRmkzaBqaxHF/7Ujn0NNC2JJmG9wYNgIXAC5rbJIK0JHHoXSJgoIPFdCYsNDeIfEP3xHyKAukZTSEfg0ODbSHNIgc11//Ldgtjw7s/fvrFqtbUh1La+bX1m3dpEjP5+TJju1f+3tCsAbeNK0/PejEaj8XgylkYjWRmPx7I8msqKosqypKqqVlFcxTharc/n6tyszxWpNg2pE4IxJoQSQgi+EEoIpZhwG0wIIYRSQii9o5RQSlmOsoRQSllKCUsIS1lKyZWlLLkSq/f+N5JsJym3cI41mqeZjDz//O+9/3///3+fNzIe7pNd/bDkCvYARZCDDEzi+YBVMDTOuoeiQCbjGx8CHN2h8Hh0yI8+b+VErnFF8Qdkr/7nkCp5Y1canNjKX9NRRJf1S/oauslz/OyG94CIbqJKE0UWQ8/tCkly0JxebN1rooOZTGjjfHOuNjt7vdnGaaG5bIAfMMBEIDNpp4oF9/AgZgS8D1wXLPKgigw6Smw1gJFwC4J7lnG7hTkiCqFqGIgxIkaE3J/uEDkRn0cSeNINPNLWHLU+FyxzU8IO5Kf5auNEnceBKKedopV6fLNgp1J2Aa8f2/ji2MGLVjqfyeHz1M3I44dN4l148zH8t8MbXvzwcGKtHAyWO3Mlcw/dgTWYX+B46q7Z+jopsMcSpdJ8qYTulA6UywdK3bXUPL1OH2A+O2vK5Fp0p1t4+ywrunvZoSev/3aiRC7vfA98QLdtn/pS+7tofqnAuTHvot/X3iXfCEInX+mUCjxdGOB55lc/82+YK9P3rfe8dcs4GF2n2K/ZKcjyJP13UKXjfRZKtogiZgHbBAGuGGTAwD9ICmZWrIUZKVK/MMvx6SC7GGpdW7HqxHYyzLAilOwV9If3wuL0QmTWK4U4vvAevhFqTSxbZcCVNxVenLWWUb27xpAntofBRJlfl6ZG+n2Avor2sQL0MnLDZAzlPawzisIORwE9yUBqUljc4aHBqBkd2KkZAaNvhyTy1DDp6RomYSsK1d2WY5eQeyFGd4J8oAylFFiGMBCrz544MVtbL+TXa/UTJ+q19Xz+SosprCYSZ4tL+NOlpeJqPL6K80ceLE6Xy9OLD47UyuVa68pUPj/VeoQEeCdyJDMI+x2+TewNHXjp9E2Ks2fx0ilox3ZeOie7ZRsxHbtKPcKwZbbe13U0a9hoZvL06c4vhUmV7IKO7BC8Nr6ZOnV68tSpydOnpk531jYczAmOzCd6qd/FUMtlqzkXtvtoCLpviNjWBnK4laIAaIKOty567/50+cu/37ryvYZuqAaLWxffuauoD6/cfPTlut6uLXr08y32MUusLDLQJSH6GvTxFDU9qrrYLpoODXbiQ6MjQfg6H50T3CMZB8dhOBwdiWbJWAhA3sNt5hk4wwe0Om6Wj4Zjohg/mGYzsiWZ4ceSV5ZbDzKpiMQhofVj66oUkiRFENGKoHq9f38gRhQr9DhoIV1MxMQgMcSxbJoPJPGePE306w66vvGNJoiWjKsKx0uXUUXhpaDVWqOgNWwXX8Hpp5nSGE+NYDclPnWw++nIeGhLH+2nfVShfdTd9faH+9Jj7JYdytQyhh9q+uf2J92NQ9zBzqRaXxnqxjfYojs//ZSinD1fs1/hvzFqu9Zw2IEx8fcRm5s4l20MUvKWZf+gPC5IvPCtqk6JGr+uaMdVL76nhTYYWUSmppYFLD4MaYfVYLfvTdDqGgtim9jpcizpcmQOYGneJN3pLCINkmF/OGxYg5a+MxhQdlA3QEWquN0NgNoD9xi4Aq4O77mry8yOG6urjY2/LJw798mqfcU+t/FpdbFKfvF6Bt6qeGL1Ezi22pjMl8qN1W/TtdqRavUj2ByptbFmaN6xQvzzLKC0JXebfkwMLnCWtvF5DMdDoGxZ14gbMBApwF4CUej4EUjJp/kGvQiiTBBxClCU1yzUqiLrOqoBYYbXMOzphJmctieLbCgYrLXuaBN2JmOHRBRp/VgotBrBILpSKCDTS7y6Ci9pXi4Sfnjj3IwI03VCCyUVcwoVZUuOH4qYSZObuGSa35Hmd6a5Mb98NqhZgn11OSR4aU71A/Yn/A3zArOH2U9890OwMj8axm50aDzIYncAsfilHiywZeQSCjyxPvktXMrA2AezHsW9hWVaARO7THC5KJy4q864BNfU75qvN357oP7KzD+Bkx4d8XloliPvDjtoK1GZhYVAYttnycgZTVvjVmYsm46miaxSA2SEygSId056rZ8MqC4tC3a4moUKPSLR4RHNq9ECk+hwhxMQ7J0UO8ay94zpBRGbmKsXY0pisplLlwqpEn5b4ogjzl3GQoIX13kBC5xwS6q/1bquh7lwKH5DLxhCBLSzVRTr01ydT91KYr7Oidex0BDPXJxEqZnbZWzxXOGjnFWdTQh8JT9bSinNIOZxhrhV+jGOXPawRr4oRl7Gocn7vPQnSY+f0YJzFd6LP9BbDx/x3PVrmOO8WBNat4n1Q3VtlX2fTZE9yHAn3rE1rEP0PzoCQJY+ifhkiN23lRSynWRiBSzK/e5DAU+7gns3alMERmktd2oQXGHQQA/7Nap80PoYq7K88Y1iK1UpH9P0KUXBRGnkKakQC2mtHFprtVqHkULPRdfJEXKyUlX1WEGukv9FTparWiiWlzY+QWsIt450bOUj5B6mmR3EVk4yMaf6SUKdWm0ozS+J3eahV/9zNDaosRBGBgYcCgtDMXhcm01MmuQO/FtOuCFOlxtnG+VpEYv4sNOIZdJkwGl9isXOQbZaP7+YLy8slPOL5+sc12klD5RXJrhWafMTcpzOX6dwki1CtJ+JlIba3bvDCOPkTdM4oK0CP18QwLS3/pFsJmqFdyAZ+50KgSxxFufnJ6//5frk/Dzp3THM8Qpnm2YkHMzH2MzKH5cvzyxdu7Y0c3n5jysC8Y1Fns8nkodSwfDEwiU63/33z9+zv8f3mH4mw7wCcwMDdCgsPsrAuiBwG3LEbqFQZE9GRgZ2D8SjIcg99/EOCJWBoYJTczuznoxclOqo3aClVkUWSODJPJihFAjPPPaKYuuckiwuX7i1Ws5ZpmmdPN48OXFoNoE/tEqWnVpINU5BMy7HZLMaX5g5XaFNy5Q5pXs4Gdt+GGsyZ8Rl27bNJm8ljYhtHqtYum68Y9bMsGXR/QhcoWzGsWlD854JOuscDJlPHCSS8LTnndtd3EUHc3Gc2YPQ/lsxopszAeRxS4Lnd4MhLysJbun1nZ3l9wEAHOddeCHoE1m+31B7OLeHdy9ofTtYwa/IbC8r9L6mO+EPfTP8sbM0Sy/q9khHO1cV3vx/X/bV0q8zmWTSqUjK7MnsKQHm/4v5F3LZ5HhyPN2G+38S+JgGfZ/CczR/oXoJyll8Y/7hwBhQ2QOpvX94bHh8zE1eAIc95nf7Kcs9PfgkEja8mobxoWEUyO8Jw1grwM4abAx8u2C3JBrm/pH4WTcgyI0+S6V+ZowtP4XOTmc8cWq3eunTq5T2IooODmmIXBtzHTJd6SI5WPCcA77O1QGXagrIQtogOT5lB7mIlBZgAgo8SWmrAvhgBiLf+J0LXXrmH1vHDRXFVSPVxA8vb9zvUtx+9RPEfe9R/l+H9+w2O0PGjX7mrDPiGeQPhHqyo24XZh2m5NcYnpcmtxW4D3TOgpj9E2fyZKCMUiqkp07iOGa2ffa/EGOb2w+5qn3w4x+nxBZP1S4NRYeiY9mxwBheAU6GjS9gW0Af2a1L8cXIlcgx/JB8KgD/An6kx9YAe5Pa9D//z8/vsk0yJ8WJlSD8xwtjo34Hn9rNJ8ByCWgOZaPjsBGLhy7EAK+AK5vRiEGdYGUySrLBvDepl0urM7ouaEHO5uRIKm0EzRCf8xpCeFruCw6eujkV54PB5DVT4EK5Wk7hgrnpHPrx/A+qZKTIh4aWS4tBIUysHjFdzUliSOSkZMRckNPHFw6U06L6YWuKmzh9ZikjVFfPHkk4mCfk2Wg0ILAL7E4fURIP5RsFA6YLXUZBHBtPMh+Fh+zo0K7wrkAg6Ifg8khmEy+Z3HiKmBsBf/sD2kZOWatzBr4pf9H69kuBNz/+/uOwwEHilmzc/v526+7Fu3db9+/e/ULVmlMnT041BU5MT0yglKIsT8zPTyyrKuRfrdQyJQBSLmVqTqzoW/YC/oqMZP/H/ESmnnE6Pz0RGgKsq6djQiHJiQmpkXZMCF3aHgzScA2CQcl42gkGpeNoJbEtEOT4ZZdYiYlQO3mh9NvnTMy6RoIYszbiMLEAOA5MFwAbOgr8vJzDRAnhbQqvI1Cs4VlhE2s4PoqY1POj2Xh2Z0gl3VdwMxEU8WyD6d5N/JH22qRfDchgcUetLGggQCtG+ZGtCN5YvHlfmMeVi9cuVDA3czWvQ9xTTK6WDhGT7ZqXE+63/sqV82YTfT6zVq2+e/1dsmGlg7mND73pZDLtNfiZKoRKdVXJFzlxoXiyuBDPHWzFzIx0J74WiemxCN10xwWdjAteZohZKnn0/h6Gw13+Y20Tq6SDtrgFscTnADEy89vgSUKdQObTMI1kDOhVfTtDviF1KOt3QRyTOtgUaC/bB2hDmp+FqmArStxDCJFo6GKpun5/vVqy31ONM5VmKd3MVJqoGXmrenx9/Xj1rQi6nQJfsVnJzSloqXVROZCrNB1dPM6G2DoZ8XZBlMLbrmIajaE2wSUf3YEhYkZVD9ExgVgbmQSCBGjQPoi/kafD8mrjULm0UjlMjAFJxYqgIhyUvReWjnywaHhnm4YgsC6sufcqclBWFdxc/i+vJH4mXdc5Mt/LB40QOpOqHLmqqmdux48U1bikeRS36npeEhQsO2uQ5/BpNk00c4wpMC8z/1Y665ewq2cEuTm8j+mRXFKP6yjpOFIPKzUYl4I8nMsDNX1ukXM3GJEMwyLf2EFUVRYYmTg5DO4VcKOPDOWod5a89cIj6kXV4kugtOU9L71cfPnFfDaT3D06Fh97LhoJDw3qof5AnwLp6EwMxbwdIERiYdGiWgf+kPiyfvVFBMtH7UNR2vaB/wh6jjpO7ia0ppCqVFLTxrW5+mSlWZmsXTOm25/EItAgY30uFmvJsM3F0J+c9gly7tRiCX0RrsLZ1fBSDf77lPJZbRLF7TzpGjYKQg+x7ccPnDaV5cdElg6uaJHZB8znljmo+SWeJ5otukkPJ0484OdAROJNjJAAkxdkZ0PsfZa8uUBjXUy19KtsZmLvr/aV9r2YzxSzxfQYEVcMYDnpgpoKgRfyq7WVOLtFRGDMZp1m1+vfTC7oSub0FB+v5ROxWDrIVUA2VED2wXw6RdsbH9ogE3sCRGLb6H3nHZ+fNvL1dFCWFTMZcaRZC6OTHUndMQyvVkiYtOlIaKPiSAjPtSXl1CyfI75QmtnLVIntvsC8AdGdwhh2iaEdGLlGw/2Kh+EF8OnEHleP6Dq6Q8IC8iDBA/hDPSLf04AlEiJDF2ooci9L7FnPLN3xMHMc6fseptp4rfn6a2803vjX+VfnZv95+jf7p/wZLRvMaBm1zzUwOtKV33iaeMhR/2abp8nvA2jLGeA9v4S26SKgFznyJNNdV9idTzbXWppUuNVmPEx3jEQzbPF0tz7XrDqq2azXNw6AiHOxrxzRn3daRNOo6I+Ha460l2rSnc7+HcnSpaXukdJi+u3Oo3g7vVh6YNBHgL9uPwrLadvtJwE2wMfMD0RnIWY0AjFQn+gB7CfILmvnhwCSEPGi2khPkGzGcLPAocBQtPmqMRAeGhgxRnyBfhUMgewztDL6lCbemOwq3fI2TbvauZlNpTq2XZFo7mS7rzl/9wtMmdkP2JEvJHdbEBYWoMBbkDC5ExeHj/YgIEdi33QjokHgFTZ6RUwNA3jvhnMn9hoDk/v27p/Yv6f0UoHoRKx9Z2p/QIY1BNXd9+TNsZ2nzXb72D90/z9MdgWQcp5zpd3T7v2SZPD5ari1+oR4NlbajzjpCKc1/w/ID2zXm+zrbIJ5jklBNZvUA9FdZym6vXCS3B0f7Q/A0vgIUK447EtRNy0/BSCoF1GgyAVSkDEoY7evfX8qHuQ5lS/1/t4MifaZI7ohDfoETdYigfQ+0Vo+8d60AGGtXKMZkbVSPF6Kf58q5oI2PyGZ+rGztqSbv3le2TUgh3g5dWKuKPGcOPM+uRCStEQpkSh1fJ9HlB8UsGsTwJhBXEgU95FujyEvEtiUu+YqpT+rip7IcCjoGRAHoKBnBEhaMLkbH7WONJlMwwCzy4ylAm7LRZ4ZUNwnUNaBb0ZrYXRYlr42Uu9fuPFXjHXbxBiFv5wsVmw0c57TVQ7Qw6d5+YMc+lzgN+5n6k30ZesjQ9EMclSIiA9Qzlvniv/+Z8sKcaYqm2sr8sj/Ajs2c7oAeJxjYGRgYADi3CWts+L5bb4ycDO/AIowXA71vg+j/z/4H8X8hzkByOVgYAKJAgB9Ug4QAHicY2BkYGAO+p8FJF//f/D/GfMfBqAICrgJALRkCEsAeJx9kr1KA0EQx293K8FKECwsrrJWSGVtYR0UAl4hVpYWPkCKJGAjEVJEfAIxTyApQuoURqKFWNh5UVAxB15icuN/Z+cup4XFj9ndmZ1vE3qeGdCXWYas0dhUKDEBzpYjoQVCYWAlxfasS6ANLmim7vG+DXzct/45N2mqek6aImQFEjpzRQn7akucDiXqEPc1a+P+Mxzbxed3kXqSy3ER92t6crkKfirxt0sTU6VZqlOR6AKOO9WXIJZchlJrmpsv8ZwuMXfI395j9k1cawj//jw3s+dsUnQZ8hicwncZuibe1q1P+s7q5x6AlVz9ab7cv9/Y3qpdsENvfL6lkVqgCIzUDUXmALKPe59GZp8i3cCfB6HhfKq60HP1ZPpYejRw8LklFDA3m1cxV6/0lPdjSXpXcmQ7Ff4hyM0+nO+c2xnwjN2soq+dXB/q6F1B7uf2D/qJvdIb2Gex8R7hY1N8dGFv31/ok+f0Cnuf9z/J4g7ntdmZmBN6T/eH8wtozLKGXM4o1qt232hiZ8pzxT/vQ86wtX9/ADCM7zUAAAAAAAAATACQAOABLgFYAaYBzAIUAmIC7ANgA8YEKASwBRIFagWaBdoGGAZcBpQG2gcqB0wHfAe2CCQItglICcIJ/Ao4CrYLIAtyC8QMKgyMDK4M/g02DYoN4g5YDsgPFg9GD4QPshAQEEgQphDkEVIR4BIoEuQTFBNsE9AUFhTGFUwVqhXqFkgWehbuFzwXvhf8GEYYehjkGTwZ4BpAGoga8BuYG+IcKhx0HPIdmh34HnYe1h86H6IgOiDOIX4h2CJaInoi0COyJEglDCYqJ0QnnCfMJ/ooUijcKVApbCnIKhgqZirAKugrFitCK2oriiuqK8or5iwKLC4sUix0LJYsuizeLPwtFC0kLTQtTC1uLZAttC3SLiguTC5wLo4u2C8iL24voC/QMFAwmDDUMPIxFjFGMWgxmjHIMfgyLDJmMq4zADNaM7g0UDTMNUA1mjXmNp422jdIN6g4hjjAOSw5Ujl6Ocg6CDpGOuA7Gju4PBw8QDx2PMA8/j1kPa494D5KPpA+vD8YP4ZATkCwQQ5BWEH4QthDKkOYQ/hEXkSsRTZFpEX6RqBHNkf6SFZI9klWSbsAAQAAANkAcQAOAAAAAAACAEoAWgBzAAAAvQtwAAAAAHicdZDLTsJAFIb/kYsKiRpN3DorAzGWSyILEhISDGx0QwxbU0ppS0qHTAcSXsN38GF8CZ/Fn3YwBmKb6XznmzNnTgfANb4hkD9PHDkLnDHK+QSn6Fku0D9bLpJfLJdQxZvlMv275QoeEFiu4gYfrCCK54wW+LQscCUuLZ/gQtxZLtA/Wi6Se5ZLuBWvlsv0nuUKJiK1XMW9+Bqo1VZHQWhkbVCX7WarI6dbqaiixI2luzah0qnsy7lKjB/HyvHUcs9jP1jHrt6H+3ni6zRSiWw5zb0a+YmvXePPdtXTTdA2Zi7nWi3l0GbIlVYL3zNOaMyq22j8PQ8DKKywhUbEqwphIFGjrXNuo4kWOqQpMyQz86wICVzENC7W3BFmKynjPsecUULrMyMmO/D4XR75MSng/phV9NHqYTwh7c6IMi/Zl8PuDrNGpCTLdDM7++09xYantWkNd+261FlXEsODGpL3sVtb0Hj0TnYrhraLBt9//u8H42mETwB4nG1V97ssRRG95+7MbLwXc1ZEFEUdhffMOQuKKOasPT29M832TPfrcPctZhEMCEYEMQuYEMw5K5gDmPGvsbp3915/cL9vq091V9V2VVed3dndWX8mO///czt2MUCGHAWGGGGMCaaYYQ/7OAV3wB1xJ9wZd8FdcTfcHffAPXEv3Bv3wX1xP5yK++M0PACn44F4EM7Ag/EQnImH4mF4OEo8Ao/EWTgbx3Acj8Kj8Rg8Fo/D4/EEPBFPwpPxFDwVT8PT8Qw8E8/Cs/EcPBfn4Fw8D8/HeXgBzscL8SJcgBfjJXgpXoaX4xV4JV6FV+M1eC1eh9fjDXgjGCpw1BCYo0ELiQuxgEKHHhoGJ2Dh4BFwgCVOYoWL8Ca8GW/BW/E2vB3vwDtxMd6FS3Ap3o334L14Hy7D+3E5rsAH8EF8CB/GR/BRXImP4SpcjY/jGnwCn8Sn8Gl8Bp/F5/B5XIvrcD2+gC/iS/gyvoIb8FXciJvwNXwd38A38S18G9/Bd/E9fB8/wA/xI/wYP8FP8TP8HL/AL/Er3Ixb8Gv8Br/F7/B7/AF/xJ/wZ/wFt+I2/BV/w9/xD/wT/8K/cTv+szM0TAnvReEEs7ydzBVzrZJN67OOSZW3tO2nSZaiM36VOc/sJIqNHpyweRRuFGXJ6jo/kLXQQyO5D1YUnHXCskKxlQ4UVvQh563gCzrouVD766Xk0nIl6q3qTgRmRZ0ZFdwsiq3BWtkc553sg9tLcmuw0bYBWqHMLIrteSb7uZ5FcbhTMb7IWt2JTMl+UTDvGW8zpfliHEWpjegHYiUGnjWjSutFx+xivAUuo7I1Y9+GrnJlMNMNqvWyH0WhNKuLYOIyWy8lVzrUuRVGrcZJlkyp4VzbJbN1fiJoLzKua1GIk0ZbX9AFuCQDwXxLBTdW9n5ohV8K4UcLsao0+Q257qi+PuMt81kllBpTKrQhdZ/TQ1ufH/BoR49khXMjSo7Fw0HHzLiWVvCoxTCGOTfgweTeUkcMas0z+ro9EqVife04M2IUNS9O+tkWlLI/GPdi6Qwd21ShVLwsomKuVS3sMHaaPBCDSp8cWOdy0+peDLhucq+1crlr6eHGSbJKiaJibiH8oKLac8qir5nNlW5kX5Cknhp0kmdd8CJ3OvR1caBV6ETO0/u1OtiGutplinVmknp7/TJrGEzB6guD83kV7adUF3mRKOdBqdkGu47eJjfaBDM0oVLStcVS9hRkyqzVy5LqVelZDHrYpErM/WFD2vRLG20SDjtxnFxifcbJPqLJ2jjCIVnGdf/QrKTWlvuHtkk95cgh6bONV1L2jlwr2ewdeZK2/z+OpE63foSz6JZF6zwZ7QaTGrmkHhmlIATGa39C1NtpI5lU9MjrdCLapBNhTCcdJjPfyk3WEW3MIoxmcR1wvtzly0kqMQ03QSUOiBnWj5cgPYhrw3yuaHC1NoVbSk+Da4hriKi0yQ0jUiqor7WtC69Lap4RLZG//GzOnC83I7eXlMgDUZsYq5s4IeVZR/DsI3jsCB4vKFYjPDGH86MoIgUOqzh4djWLEWkoSi87Mex0L722RacrqcQur3PZ0xAMZU8XohZrlK5S34Z6L0kqBDU0zXvi5azTui/mqW+nacBKyrSn3AWb00/PRRX0Ku805TyurBRzzpwYuUBFIUBD7HP6lseSPJ5XNrh2RERIjeJXOZE0+RF1ENcbKSZrRIS43ayI+dcoTmbm6Qb7jWV1SBxSEiOM6DpNYI0ovOQ0s/mSURWGtdWG/mYGTNopJ06WNAxUZUpFG7MacyVN4q9xJxqW2GBUM89o7kVeW6KKogox3DRyX0c0TUEHRHozCkDTx4iMajFNSmXp76MdJ+ytEGsUk9hLyDBLlRaqsDpdsGGhETs7/wXKreW8AAAAeJxj8N7BcCIoYiMjY1/kBsadHAwcDMkFGxlYnTYxMDJogRibuZgYOSAsPgYwi81pF9MBoDQnkM3utIvBAcJmZnDZqMLYERixwaEjYiNzistGNRBvF0cDAyOLQ0dySARISSQQbOZhYuTR2sH4v3UDS+9GJgYXAAx2I/QAAA==") format("woff"), url("data:font/ttf;base64,AAEAAAAPAIAAAwBwR1NVQrD+s+0AAAD8AAAAQk9TLzI+MEmlAAABQAAAAFZjbWFwRVKvZgAAAZgAAA1aY3Z0IAbx/uQAALO4AAAAIGZwZ22KkZBZAACz2AAAC3BnYXNwAAAAEAAAs7AAAAAIZ2x5ZrLdNoQAAA70AACTdmhlYWQJpdtdAACibAAAADZoaGVhBzEEFQAAoqQAAAAkaG10eK8A/nMAAKLIAAADZGxvY2FXyX7XAACmLAAAAbRtYXhwAmIMPQAAp+AAAAAgbmFtZcydHB4AAKgAAAACzXBvc3RiqRPEAACq0AAACN1wcmVw5UErvAAAv0gAAACGAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQMqAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADo3gNS/2oAWgNgAKYAAAABAAAAAAAAAAAABQAAAAMAAAAsAAAABAAAAyoAAQAAAAACJAADAAEAAAAsAAMACgAAAyoABAH4AAAADgAIAAIABugA6KPopuis6MDo3v//AADoAOgD6KXoqeiu6ML//wAAAAAAAAAAAAAAAAABAA4ADgFOAVABVgF6AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAACjAAAAAAAAAA2AAA6AAAAOgAAAAAAQAA6AMAAOgDAAAAAgAA6AQAAOgEAAAAAwAA6AUAAOgFAAAABAAA6AYAAOgGAAAABQAA6AcAAOgHAAAABgAA6AgAAOgIAAAABwAA6AkAAOgJAAAACAAA6AoAAOgKAAAACQAA6AsAAOgLAAAACgAA6AwAAOgMAAAACwAA6A0AAOgNAAAADAAA6A4AAOgOAAAADQAA6A8AAOgPAAAADgAA6BAAAOgQAAAADwAA6BEAAOgRAAAAEAAA6BIAAOgSAAAAEQAA6BMAAOgTAAAAEgAA6BQAAOgUAAAAEwAA6BUAAOgVAAAAFAAA6BYAAOgWAAAAFQAA6BcAAOgXAAAAFgAA6BgAAOgYAAAAFwAA6BkAAOgZAAAAGAAA6BoAAOgaAAAAGQAA6BsAAOgbAAAAGgAA6BwAAOgcAAAAGwAA6B0AAOgdAAAAHAAA6B4AAOgeAAAAHQAA6B8AAOgfAAAAHgAA6CAAAOggAAAAHwAA6CEAAOghAAAAIAAA6CIAAOgiAAAAIQAA6CMAAOgjAAAAIgAA6CQAAOgkAAAAIwAA6CUAAOglAAAAJAAA6CYAAOgmAAAAJQAA6CcAAOgnAAAAJgAA6CgAAOgoAAAAJwAA6CkAAOgpAAAAKAAA6CoAAOgqAAAAKQAA6CsAAOgrAAAAKgAA6CwAAOgsAAAAKwAA6C0AAOgtAAAALAAA6C4AAOguAAAALQAA6C8AAOgvAAAALgAA6DAAAOgwAAAALwAA6DEAAOgxAAAAMAAA6DIAAOgyAAAAMQAA6DMAAOgzAAAAMgAA6DQAAOg0AAAAMwAA6DUAAOg1AAAANAAA6DYAAOg2AAAANQAA6DcAAOg3AAAANgAA6DgAAOg4AAAANwAA6DkAAOg5AAAAOAAA6DoAAOg6AAAAOQAA6DsAAOg7AAAAOgAA6DwAAOg8AAAAOwAA6D0AAOg9AAAAPAAA6D4AAOg+AAAAPQAA6D8AAOg/AAAAPgAA6EAAAOhAAAAAPwAA6EEAAOhBAAAAQAAA6EIAAOhCAAAAQQAA6EMAAOhDAAAAQgAA6EQAAOhEAAAAQwAA6EUAAOhFAAAARAAA6EYAAOhGAAAARQAA6EcAAOhHAAAARgAA6EgAAOhIAAAARwAA6EkAAOhJAAAASAAA6EoAAOhKAAAASQAA6EsAAOhLAAAASgAA6EwAAOhMAAAASwAA6E0AAOhNAAAATAAA6E4AAOhOAAAATQAA6E8AAOhPAAAATgAA6FAAAOhQAAAATwAA6FEAAOhRAAAAUAAA6FIAAOhSAAAAUQAA6FMAAOhTAAAAUgAA6FQAAOhUAAAAUwAA6FUAAOhVAAAAVAAA6FYAAOhWAAAAVQAA6FcAAOhXAAAAVgAA6FgAAOhYAAAAVwAA6FkAAOhZAAAAWAAA6FoAAOhaAAAAWQAA6FsAAOhbAAAAWgAA6FwAAOhcAAAAWwAA6F0AAOhdAAAAXAAA6F4AAOheAAAAXQAA6F8AAOhfAAAAXgAA6GAAAOhgAAAAXwAA6GEAAOhhAAAAYAAA6GIAAOhiAAAAYQAA6GMAAOhjAAAAYgAA6GQAAOhkAAAAYwAA6GUAAOhlAAAAZAAA6GYAAOhmAAAAZQAA6GcAAOhnAAAAZgAA6GgAAOhoAAAAZwAA6GkAAOhpAAAAaAAA6GoAAOhqAAAAaQAA6GsAAOhrAAAAagAA6GwAAOhsAAAAawAA6G0AAOhtAAAAbAAA6G4AAOhuAAAAbQAA6G8AAOhvAAAAbgAA6HAAAOhwAAAAbwAA6HEAAOhxAAAAcAAA6HIAAOhyAAAAcQAA6HMAAOhzAAAAcgAA6HQAAOh0AAAAcwAA6HUAAOh1AAAAdAAA6HYAAOh2AAAAdQAA6HcAAOh3AAAAdgAA6HgAAOh4AAAAdwAA6HkAAOh5AAAAeAAA6HoAAOh6AAAAeQAA6HsAAOh7AAAAegAA6HwAAOh8AAAAewAA6H0AAOh9AAAAfAAA6H4AAOh+AAAAfQAA6H8AAOh/AAAAfgAA6IAAAOiAAAAAfwAA6IEAAOiBAAAAgAAA6IIAAOiCAAAAgQAA6IMAAOiDAAAAggAA6IQAAOiEAAAAgwAA6IUAAOiFAAAAhAAA6IYAAOiGAAAAhQAA6IcAAOiHAAAAhgAA6IgAAOiIAAAAhwAA6IkAAOiJAAAAiAAA6IoAAOiKAAAAiQAA6IsAAOiLAAAAigAA6IwAAOiMAAAAiwAA6I0AAOiNAAAAjAAA6I4AAOiOAAAAjQAA6I8AAOiPAAAAjgAA6JAAAOiQAAAAjwAA6JEAAOiRAAAAkAAA6JIAAOiSAAAAkQAA6JMAAOiTAAAAkgAA6JQAAOiUAAAAkwAA6JUAAOiVAAAAlAAA6JYAAOiWAAAAlQAA6JcAAOiXAAAAlgAA6JgAAOiYAAAAlwAA6JkAAOiZAAAAmAAA6JoAAOiaAAAAmQAA6JsAAOibAAAAmgAA6JwAAOicAAAAmwAA6J0AAOidAAAAnAAA6J4AAOieAAAAnQAA6J8AAOifAAAAngAA6KAAAOigAAAAnwAA6KEAAOihAAAAoAAA6KIAAOiiAAAAoQAA6KMAAOijAAAAogAA6KUAAOilAAAAowAA6KYAAOimAAAApAAA6KkAAOipAAAApQAA6KoAAOiqAAAApgAA6KsAAOirAAAApwAA6KwAAOisAAAAqAAA6K4AAOiuAAAAqQAA6K8AAOivAAAAqgAA6LAAAOiwAAAAqwAA6LEAAOixAAAArAAA6LIAAOiyAAAArQAA6LMAAOizAAAArgAA6LQAAOi0AAAArwAA6LUAAOi1AAAAsAAA6LYAAOi2AAAAsQAA6LcAAOi3AAAAsgAA6LgAAOi4AAAAswAA6LkAAOi5AAAAtAAA6LoAAOi6AAAAtQAA6LsAAOi7AAAAtgAA6LwAAOi8AAAAtwAA6L0AAOi9AAAAuAAA6L4AAOi+AAAAuQAA6L8AAOi/AAAAugAA6MAAAOjAAAAAuwAA6MIAAOjCAAAAvAAA6MMAAOjDAAAAvQAA6MQAAOjEAAAAvgAA6MUAAOjFAAAAvwAA6MYAAOjGAAAAwAAA6McAAOjHAAAAwQAA6MgAAOjIAAAAwgAA6MkAAOjJAAAAwwAA6MoAAOjKAAAAxAAA6MsAAOjLAAAAxQAA6MwAAOjMAAAAxgAA6M0AAOjNAAAAxwAA6M4AAOjOAAAAyAAA6M8AAOjPAAAAyQAA6NAAAOjQAAAAygAA6NEAAOjRAAAAywAA6NIAAOjSAAAAzAAA6NMAAOjTAAAAzQAA6NQAAOjUAAAAzgAA6NUAAOjVAAAAzwAA6NYAAOjWAAAA0AAA6NcAAOjXAAAA0QAA6NgAAOjYAAAA0gAA6NkAAOjZAAAA0wAA6NoAAOjaAAAA1AAA6NsAAOjbAAAA1QAA6NwAAOjcAAAA1gAA6N0AAOjdAAAA1wAA6N4AAOjeAAAA2AAAAAL/9//iA9sDEgAXACAAJkAjAAIBAm8DAQEAAAFUAwEBAQBYAAABAEwZGB0cGCAZIC8EBRUrAR4BBgcGJgYHBh4BBw4CIyImNz4BNyQDMjY0JiIGFBYDWUg6EhoQTFQmHhIyAgJEuHy60goIwHgBIkgeLCw+LCwCbjB8VAYEHAgqLjpIDhpKSsqQduoiVP2KLEAqKkAsAAAAAgAA/8IDIgLqABEAGgAsQCkRAQIDBgEAAgJHAAEAAwIBA2AAAgAAAlQAAgIAWAAAAgBMExcTJwQFGCslFg8BBi8BBiMiJhA2IBYVFAclFBYyNjQmIgYDBB4YLiQgvkpSgL60AQDALv4YiLB+iLB+TiIcLiAgviq+AQC2voBYSqpYiH6yhn4AAAP/+f+WA5MDMAAUABwAKQAKtyYgGRYTCQMtKwEeAQ8BDgEnAQYuAjcBJjY/ATYWARY2JyYOAgEeAjYuBAYeAQMnPi4chhBcMv5oEk5IGhIBmAYUEIgYiP5+IF4gDjAoBgFeHkwwBgwoPEguCAooAsI+iBiGEBQG/mgSGEpMEgGYMlwQiBww/iogXCQOCCguARoeKAoILko8KAwIMEwAAAAC//4AAAOQAoAAEQAjACRAIQAAAQBvAAEDAW8AAwICA1QAAwMCWAACAwJMFzkXMwQFGCsTJjc2MyEyBwYHBg8BBiIvASYFNhURFAYjISImNRE0FwUWMjceIAQCGANOJhIIEA6ythA6ErayA0QUIhD84BAiFAGAEjgSAkoSFg4gDggGYGIKCmJgXgoU/pAQICAQAXAUCsgKCgAAAAABAAAAAANcAr4ADwASQA8MBAIARAEBAABmFBkCBRYrARYUBwkBJjQ3NjIfATc2MgMWRkb+mP6YRkY+skA4Oj6wAoRAuEL+tgFKQrhAOjo0NDoAAAACAAAAAANcArwADwAhACRAISEYDAQEAkQBAQACAgBUAQEAAAJYAwECAAJMJCUUGQQFGCsBFhQHCQEmNDc2Mh8BNzYyEzY0JyYjIg8BJyYjIgcGFBcBAxZGRv6Y/phGRkCwPjo4QLAKKiYmQDQ0aGowNkAoJiwBMgKCQLhA/rYBSkC4QDo6NDQ6/sIogiImMFxcMCYkgib+4gAAAAABAAD/pgNwAxYACQAVQBIHBgUEAwUARAEBAABmFhECBRYrARMhBRMlBRMlIQG4eAFA/vpe/vD+8F7++gFAAxb+sMT+pNDQAVzEAAAAAgAA/6YDcAMWAAkAEwA3QDQPCAIARRMSDAsFBAMCAQkCRAQBAgACAgBSBAECAAACVgMBAgACSgAAERAODQAJAAkWBQUVKwEFEyUFEyUhGwEHFyc3BycHJxcHA3D++l7+8P7wXv76AUB4eHiWPpCwODawjj4BxsT+pNDQAVzEAVD+sO58snIEysoEcrIAAAAAAQAA/5wDrAMgACoAG0AYIB4WEgQAAQFHAAEAAW8AAABmGxoTAgUVKyUWHQEhNTQ3PgE1NCYnLgMnNDY/ASYnJjYyFg8BFhUOAwcOARUUFgLgzPxUzF5ELAoCDg4OAgoEBAgEBFrgXAYMEgIODg4CCC5GgEgyamoySCJGPBY2LgwMBB4cEBQCBDImNnR0NlgIIhweBAwMMDQWPEYAAgAA/6YD6AMWACcATgAoQCVGRDw4Fw8FBwABAUcAAwEDbwABAAFvAgEAAGZBQCwrFBMQBAUVKwUjNTQmJzY1NCYnLgEnNDcmJyY2MhYPARYVDgEHDgEVFBYXFhceARclFh0BITU0Nz4BNTQmJy4BJzQ2PwEmJyY2MhYPARYVDgEHDgEVFBYD6OA8fCgaBgIYAgwGAgQ2iDgECAwCGAIGGio4cBIGBgL+GLb9SlRMOCYGAiAEBgQEBgQESrRKBAoOBCACBiY4WpY2Nj4eNhAiIggQIhgGIhomUFAmPAYYIhAIIiIQKjAYLiIIajDWTi6KuCwiIEA4FDAsChgsDhIEAi4kMmpqMlIIHiwYCiwwFDhAAAAAAgAA/5wD6AMgACgANABLQEgeHBQQBAIHBQEABAJHAAEHAW8ABwIHbwAEAwADBABtAAAAbgYBAgMDAlIGAQICA1YFAQMCA0o0MzIxMC8uLSwrKikZGBMIBRUrJRYdASE1Njc+ATU0JicuASc0Nj8BJicmNjIWDwEWFQ4DBw4BFRQWJTMVIxUjNSM1MzUzAmy0/OAkLl5GLggCKgQKBAQIBAZc5FwEDhICDg4OAgouSAFElpZklpZkgEA6asoODCJGPBY0MAwaMBAUAgQyJjZ0dDZYCCIcHgQMDC42FjxG7mSWlmSWAAAAAAIAAAAAA9QCvAAnACoAVkBTKQEDAgFHKgEBKAEEAkYADQwBAAENAF4LAQEKAQIDAQJeCQEDCAEEBQMEXgcBBQYGBVIHAQUFBlgABgUGTCUiHx4dHBsaGRgREzMRERERERAOBR0rASMVMxUjFTMVIxUzFRQGIyEiJj0BMzUjNTM1IzUzNSM1NDYzITIWFQE3JwPUZGRkZGRkGBD8fBAYZGRkZGRkGBADhBAY/aj6+gJYZGRkZGQ8EBgYEDxkZGRkZDwSFhYS/jSWlgAAAAP/+P+EA+gDQgAOAB4AJgBDQEAlJCMhIAgGBAIBRwIBAEUBAQACAG8FAQIEAm8GAQQDAwRSBgEEBANYAAMEA0wfHxAPHyYfJhgVDx4QHSIQBwUWKwEjJwcjIgYdAQMmNyU2FxMyFhURFAYjISImNRE0NjMBNScPAScHFQNYZHzWtDRMbAogAqgkDtAQFhYQ/SwQFhYQApxIpoKKXAIGlpZONKABKCYO+Aoi/owYEP4oEBgYEAHYEBj+PKKgPISq1lYAAAAEAAD/zgPoAu4ACAAkAC0ANwBmQGMKAQAJCAkACG0NAQgBCQgBawABBgkBBmsABQAHCQUHYAQLAgIACQACCWAMAQYDAwZUDAEGBgNYAAMGA0wvLiYlCgkBADQyLjcvNyopJS0mLSAdGhcSDwkkCiMFBAAIAQgOBRQrATIWFAYiJjQ2JTIWFREUBiMhIiY1ETQ2OwEyPwE2MyEyHwEWMwEyNjQmIgYUFgEyNjQmIyIVFBYB9EBWWHxYWAHOKjo6KvzgKDw8KHgcDB4KHgFUHgoeDBz+6GiSktCSkgHWDhQUDiQWAcJYfFhYfFiWOir+Pig8PCgBwio6HlwcHFwe/dqS0JKS0JIBfBYcFCIQFAAAAAQAAAAAAlgCigALABcAIwAvAElARgkCCAMAAwEBBAABYAsGCgMEBQUEVAsGCgMEBAVYBwEFBAVMJSQZGA0MAQArKCQvJS4fHBgjGSITEAwXDRYHBAALAQoMBRQrEzIdARQrASI9ATQzITIdARQrASI9ATQzATIdARQrASI9ATQzITIdARQrASI9ATQzqlBQWlBQAbhQUFpQUP78UFBaUFABuFBQWlBQAopQWlBQWlBQWlBQWlD+olBaUFBaUFBaUFBaUAADAAAAAAK8AlgACwAXACMAQkA/AAMHAQIAAwJgBgEAAAEEAAFgCAEEBQUEVAgBBAQFWAAFBAVMGRgNDAEAHxwYIxkiExAMFw0WBwQACwEKCQUUKwEyFhQGIyEiJjQ2MzUiJjQ2MyEyFhQGIxEyFhQGIyEiJjQ2MwKKFhweFP2oFB4cFhQeHBYCWBYcHhQWHB4U/agUHhwWAZAeKB4eKB5kHigeHige/tQeKB4eKB4AAAH//QAAAp8CwAATABVAEgkBAEUBAQAAZgEAABMBEgIFFCszIi8BJj4BFh8BAT4BFx4BBwEGI/kiFrQQCCw6EnYBKBA2GhgMDv6iFCQc7Bg4JAgYmgHaGAwOEDYa/dAgAAEAAAAAAdYCYgAdAB5AGx0WDgYEAAIBRwMBAgACbwEBAABmFBoUEwQFGCslFhQGIi8BBwYiJyY0PwEnJjQ3NjIfATc2MhYUDwEBxBIkMhKEhBIyEhAQiooQEBIyEoSEEjIkEorCEjIiEJiYEBASMhKcnhIyEhAQmJgQIjISngAAAgAA/7oDSAMCAAgAFAAoQCUUExIREA8ODQwLCgsBAAFHAgEAAQBvAAEBZgEABQQACAEIAwUUKwEyFhAGICYQNgE3JwcnBxcHFzcXNwGkrvb2/qT29gEEmlaamFiamliYmlYDAvb+pPb2AVz2/lyaVpiYVpqYVpiYVgAAAAIAAP/OAyAC7gAPABsAKEAlGxoZGBcWFRQTEhELAQABRwIBAAEAbwABAWYBAAkGAA8BDgMFFCsBMhYVERQGIyEiJjURNDYzATcnNycHJwcXBxc3ArwqOjoq/agoPDwoAcZWmppWmphYmppYmALuOir9qCg8PCgCWCo6/YJWmJpWmJhWmphWmAABAAAAAAJEAoAAEwA1QDIABQAFbwACAQJwBAYCAAEBAFQEBgIAAAFYAwEBAAFMAQAREA4MCwkHBgQCABMBEwcFFCsBMhQrARUUIj0BIyI0OwE1NDIdAQImHh7SZNIeHtJkAZBk0h4e0mTSHh7SAAAAAgAA/7oDSAMCAAgAFABEQEEFAQMEAgQDAm0GAQIHBAIHawgBAAAEAwAEXgAHAQEHUgAHBwFYAAEHAUwBABQTEhEQDw4NDAsKCQUEAAgBCAkFFCsBMhYQBiAmEDYTMzUjNSMVIxUzFTMBpK729v6k9vbiyMhmyspmAwL2/qT29gFc9v4qZsrKZsoAAAACAAD/zgMgAu4ADwAbAElARgQBAgMFAwIFbQkHAgUGAwUGawgBAAADAgADXgAGAQEGUgAGBgFYAAEGAUwQEAEAEBsQGxoZGBcWFRQTEhEJBgAPAQ4KBRQrATIWFREUBiMhIiY1ETQ2MwE1IzUjFSMVMxUzNQK8Kjo6Kv2oKDw8KAImyGTIyGQC7joq/agoPDwoAlgqOv4+ZMjIZMjIAAAAAQAAAAACRAGQAAcAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFAgAHAQYDBRQrATIUIyEiNDMCJh4e/fgeHgGQZGQAAAACAAD/ugNIAwIACAAMACZAIwQBAAIAbwACAwJvAAMBA28AAQFmAQAMCwoJBQQACAEIBQUUKwEyFhAGICYQNgEhFSEBpK729v6k9vYBqv4IAfgDAvb+pPb2AVz2/pBmAAACAAD/zgMgAu4ADwATACtAKAQBAAIAbwACAwJvBQEDAQNvAAEBZhAQAQAQExATEhEJBgAPAQ4GBRQrATIWFREUBiMhIiY1ETQ2MwE1IRUCvCo6Oir9qCg8PCgCJv4MAu46Kv2oKDw8KAJYKjr+PmRkAAAAAAIAAP+cAkQDIAAoADEAQUA+CwEAAgFHAAIBAAECAG0AAAQBAARrAAMAAQIDAWAGAQQFBQRUBgEEBAVYAAUEBUwqKS4tKTEqMSMTLjwHBRgrARYVFAcGDwEGBwYHFCsBIjU2Nz4BPwE2NzY1NCcmIyIHBhUjNjc2MzIDMhYOAS4BPgEB7lYqDEwuKAgGAhCAEAQYEEAYGBYMHBocQEQaHKYGbEZggoQsOgQ8WDoEPALkPnpAPBQ8HiIaEBwODGIaFjQQDhASLBooJiQsKjKiRir9SDxaNgI6XDYAAAAD//z/kAOaAywACAAWAD8AWEBVODYCAwUTAQIDAkcABgQFBAYFbQAFAwQFA2sAAwIEAwJrBwEAAAQGAARgCAECAQECVAgBAgIBWAABAgFMCgkBACcmIiAdGxEOCRYKFgUEAAgBCAkFFCsBNgASAAQAAgATMjY1NiYrASIGBxQWFxM2NTQmIyIHBgcVMzU0NzYyFxYVFAcGDwEGDwEGBwYHFTM1NDc2PwE2Aca+ARAG/vb+hP7uBgEMvB4mAiYeAhwmAiYcqBpqUkAoRARuEBBODBAQCAwWCgoVCwYOBGwEBhYcLgMqAv74/oT+7gYBCgF8ARL9HiYcHiYkHB4mAgFIIixOTBoqaAQEGhwYFBQYEhYMCA8HCBEJCBQ6CAQMEBQQEiIAAgAA/2oBzANSAAoAIAC1QAkeHRMSBAUDAUdLsB9QWEAoAAQBAwEEA20AAwUBAwVrAAUCAQUCawABAQBYBgEAAAxIBwECAg0CSRtLsCRQWEAnAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuAAEBAFgGAQAADAFJG0AtAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuBgEAAQEAVAYBAAABWAABAAFMWVlAFwwLAQAcGhcVEA8LIAwgBwUACgEKCAUUKwEyFhUUBiMiJj4BAyI/ATYiBgcnPgEzMgcDBjMyNxcOAQFgMDROODA0AkaQZC48DhpUHhpaxjROKkYQFixKHlS2A1I2KjJMNFxO/Biy/jgkFCxOYKL+9kA8KFZcAAAAAAP//P+QA5oDLAAIABMAKQBiQF8MAQMCIyIYFwQFBwJHAAcGBQYHBW0ABQQGBQRrCAEACQECAwACYAADAAYHAwZgCgEEAQEEVAoBBAQBWAABBAFMFRQKCQEAJiQgHhsZFCkVKRAOCRMKEwUEAAgBCAsFFCsBNgASAAQAAgAXIgYVBhYzMjY1NAMyNjcnBiMiPwE2IyIGBxc2MzIPAQYBxr4BEAb+9v6E/u4GAQzyKi4CIiAmLrQebDQSMBgOCioaMB52OBA0FgwMJBoDKgL++P6E/u4GAQoBfAESljAaHCAsIDr9rjQ0GCQmoGA6LhoiIphoAAABAAAAAANSAooAEAA5QDYOAQMADQECAwJHDwEARQQBAAADAgADXgACAQECUgACAgFYAAECAUwBAAwLCgkIBgAQARAFBRQrATIWFREUBiMhNSE1IRUnNxUC7ig8PCj9TgKK/gzS0gIcOir+3ig8jNJutLRuAAH//P/MA4gC8gAaACFAHgAFAAVvBAEAAgBvAAIBAm8DAQEBZhQjIREkIgYFGisBFgYrAREUDgErAREjESMiJjURIyImNwE2MhcDeBAKFlQCDhDMzMIcDlQWChABkBAsEAFQEBb+yg4ODAE2/soUFAE2FhABkhAQAAIAAP/OAyAC8gAcADwAPEA5AAYFBm8ABQQFbwAAAwIDAAJtAAQAAwAEA2AAAgEBAlQAAgIBWAABAgFMPDs2NSkoJCIbGhURBwUWKyU2MhcWDwEGIiY0PwE+ARcWFAcGJyYPAQYUFjI3ARYUDwEGIyInJjQ2MhcWPwE2NCcuAQ8BBiInJj8BNhYBJg4oECAgKjiacDiURpQ2EBAkIjJSlBo0ShoB7Dg4nkpMPjIOHCoOMkieHBwYQBwyECgOIiIyNpJ0Dg4iJCg4cJo4lEQSNBAoECAgMFKSGkwyGgJmOJo4nkgyDigeDjBInBxKGBoKGjIODiIkMjYGAAAAAAH//v90A7gDYAAxAB9AHAABAAABVAABAQBYAgEAAQBMAQAqKQAxATEDBRQrFyInLgE3ATYXHgEXFgcBDgEnJjY3ATYWBwEGFxY3NjcBNiYnJgcBBh4CNwE2FgcBBvRmREgEVgHwUF4sRgwaUP4mKGAgHgYsAUwYNBr+tCwYDAwYFgHaMiA8Njb+EkIEZIZKAfAYNBr+EFKMSEbAXgHwUBoMRixgUP4mKAogGGQqAU4aNBj+tCwaCAIEFgHaMnYQDjL+EkyGYgRAAe4YLhr+EFIAAAAAAgAA/7YCvAMIABsAIwA1QDIEAgYDAAUBBQABbQABAW4AAwUFA1QAAwMFWAAFAwVMAQAiIR4dGBcUEgsIABsBGwcFFCsBMhYVERQPAQYjISIvASY1ETQ2OwE1NDYyFh0BJRUzNTQmIgYCgBQoMDwqNv7eOCo8MB4UZGbEZv7UyDZcNgHcJhb+ejASEhAQEhIwAYYWJkZueHhuRlpaWjQ6OgAAAAABAAD/nAK8AyAAIwA7QDgABAMAAwQAbQIGAgABAwABawABAW4ABQMDBVQABQUDWAADBQNMAQAhHxwbGRgWFAwJACMBIwcFFCsBMhYVERQGDwEGIyEiLwEuATURNDYzITU0Ih0BIzU0NjMyHQECgBQoHBQ8NCz+3i40PBQcHhQBkMhkZmLIAcIoFP56FCYGFBAQFAYmFAGGFiaMbm4oFG545ngAAAMAAAAAA+gCdgAUAB0ALABDQEAiAQQFAUcGAQAAAwUAA2AABQAEAgUEYAcBAgEBAlQHAQICAVgAAQIBTBYVAQAqKCUkGhkVHRYdCwoAFAEUCAUUKwEyHgMUDgMiLgM0PgMTMjY0JiIGFBY3Fj4BFxQGIiY0NjMyDgEB9FyqcFYoKFZwqriqcFYoKFZwqlxcgoK4goJcCDoqBEJcQEAuDggQAnYySlA+HDxSSjIySlI8HD5QSjL+En6yfn6yftYIDAoOLD4+Wj4uMAAAAAL//v9aA9QDWgAcAC4AI0AgJx8XAwQBAAFHAAABAQBUAAAAAVgAAQABTCMhFRICBRQrARYGBxcWDwEGBwEGJwMmNjcBNjsBMh8BNicmNzYDNicHBiMiJyY/ASYHDgEXHgEDsCRYVBIQCjAMGP4wKhbSDAYSAdAaHJ4eEhyoNgocINIoBiAIBBIKDBwYMCwcDBQSQgM+arpAGBwanh4Q/rgeIgEwEioMAUgSGiiCnBwMCP4QIDAQBBIeCg4iIhJCHBoMAAABAAD/nAFoAyAACQAXQBQGBQQDAEQBAQAAZgEAAAkBCAIFFCsBMhYVEScHETQzATYWHLS0KAMgHhT8rrS0A1IyAAAAAAIAAP9qAiYDUgAMABYAUrcTEhEFBAUCREuwJFBYQBIEAQIBAnAAAQEAWAMBAAAMAUkbQBgEAQIBAnADAQABAQBUAwEAAAFYAAEAAUxZQBEODQEADRYOFQoIAAwBCwUFFCsBMhYVEScRNCYrATQzBzIWFREnBxE0MwH0FB6WHhRkKCgUHpaWKANSHhT8rrQCbBQeMpYeFPzgtLQDIDIAAAABAAD/tgOIAxIAFgAbQBgLAQABAUcOAQFFAAEAAW8AAABmGBwCBRYrATYWBw4CLgIGBxMjAzc+AR4DNgNqDhAIYIhUPjpEdlBaZLhcWnxIOERaqAJoBg4MipYeGjAgKEL+oALQIkIoIkRKMgoAAAAAAgAA/5wDIAMoABkAKwAeQBsDAQECAW8AAgACbwAAAGYbGiQiGisbKyYEBRUrAR4CFRQCIyIkNRE0PgI/ATY/ATYXFg4BBTIHBhURFBcWIyIuAT0BND4BAkYCcGh6LpD+4B4+LCguMjZVHwowJlD+UA4OMjQKDBo6QkI8AeAGDiIeSP5YVC4BVg4oMiAbHyJCaCYMTHp0Bg4yNv7CMjYKEEo+8j5MEgAAAgAA/5IDIAMgABwALwAeQBsAAAIAbwACAQJvAwEBAWYeHSclHS8eLyYEBRUrNy4CNTQSMzIEFREUDgIPAQYPAQYPAQYnJj4BJSI3NjURNCcmMzIeAR0BFA4C2gJuanwskAEgECIeGykOGyEyNlUfCjAmUAGwDA4wNAoMGjpCJDYq2gYOIh5IAapWLv6qChwgGhMdChIWIkJoJgxMenQGDjI2AT4yNgoQSj7yMEIeDAAC//j/tgPsAwgAHAAjAHe1HgECAQFHS7ALUFhAKQAHBgdvCQgCBgEGbwUBAQIBbwQBAgMDAmMAAwAAA1IAAwMAWQAAAwBNG0AoAAcGB28JCAIGAQZvBQEBAgFvBAECAwJvAAMAAANSAAMDAFkAAAMATVlAER0dHSMdIxETESITERY2CgUcKyUeAQ8BDgEjISImLwEmPwEzBzMyHwEhNzY7ASczJwUlMxEzEQPIEhIGHAQkFvzQFiQEHAoqnmKqsggEKAEsKAgEsqpiMP78/vymvsYKLBKaFBoaFJowGGyCCG5uCILW9PQBAP8AAAL/+P+2A+wDCAAGACMAaUuwC1BYQCgCAQAEAG8IAQQBBG8AAQUBbwcBBQYGBWMABgMDBlIABgYDWQADBgNNG0AnAgEABABvCAEEAQRvAAEFAW8HAQUGBW8ABgMDBlIABgYDWQADBgNNWUAMESITERY3ERERCQUdKwEFIxEjESMBHgEPAQ4BIyEiJi8BJj8BMwczMh8BITc2OwEnMwH0AQSkvqYC2BISBhwEJBb80BYkBBwKKp5iqrIIBCgBLCgIBLKqYgMI9P8AAQD+sgosEpoUGhoUmjAYbIIIbm4IggAAAQAAAAAD6AKkAB0AQUA+CQEFAAFHAAYABm8HAQAFAG8ABQIFbwMBAgEBAlIDAQICAVgEAQECAUwBABoYExEODAsKCAcGBAAdAR0IBRQrATIWFAYrATUzJwczFSMiJjQ2MzIXJjU0NjMyFhc2AvhkjIxkvmqwrmj4SmxqTA4GApxuWowYHAHuiMSIvubmvmiSaAIMGmyYaFIEAAAAAQAAAAADhAKyAA4AJkAjBQEAAQFHBgEBRQQBAEQAAQAAAVQAAQEAWAAAAQBMFBICBRYrJS4BIxUJARUyHgQXA4RW9ND+lgFqWpxqVjQkBgqYWtoBTgFCwDZWaGhWGgAAAgAAAAAD6AKyAAUAEgAtQCoRBAEDAQABRxIFAAMARRAMAwIEAUQAAAEBAFQAAAABWAABAAFMFxYCBRYrAQcXFQkBFzIeAh8BLgEjFQkBAWrU1P6WAWr6aJxKLgQEVqSK/pYBagIsvMSKAU4BQsBkkJAyMppY2gFOAUIAAAEAAAAAA4QCsgAMACdAJAsBAAEBRwoBAUUMAwIARAABAAABVAABAQBYAAABAEwXEAIFFislIgYHPgQzNQkBAhzS9FYEElJuynwBaP6Y/FqYFEKogGrA/r7+sgAAAgAAAAADFAKoABMAJwA/QDwJBAgDAAMAbwcBAwIDbwYBAgEBAlQGAQICAVgFAQECAUwVFAEAJCIeHRwbFCcVJxAOCgkIBwATARMKBRQrEzIXFgcGBwYjNTI3NicmIyImNDYhMhcWBwYHBiM1Mjc2JyYjIiY0NpKSJiZOUJAgInBGNhwQLjxWVgHgkiYmTlCQICJwRjYcEC48VlYCqJKMoqgkCEZsVjwkWHxYkoyiqCQIRmxWPCRYfFgAAAACAAAAAAPoApoADQAZAAi1GRENCQItKwEWFA8BFxYUBwYnCQE2BQkBBicmPwEnJjc2AXwQEPb2EBAeHv7AAUAeAUwBPv7CIB4gIPj4ICAeAnwOJAzg4gwkDh4eASABHh4e/uL+4B4eIB7i4B4gHgAAAgAA/9gD6ALkABUAJABGQEMjAQQCJBkCAQQDBAJHIgEBRQABAAIEAQJeAAUABAMFBGAGAQMAAANSBgEDAwBYAAADAEwAACEgFxYAFQAVFCU1BwUXKyU1NxUUBiMhIiY1ETQ2MyEOAQ8BIxEBIgYHND4FMzUFAQLuZB4U/RIUHhwWASAgNgwKggI4pphUAhAcPFCGUgFM/rQ8OFK8FB4eFAImFhwYMg4M/j4BXFKMCBxUSlxCLpz6/vwAAAACAAD/2AMMAvAACwAZABdAFAQBAEUZFQ0HBABEAAAAZhIRAQUUKwEeAR0BBwEHNwE3NgE3JicuASMnDwEWFxYXAs4gHvz+3u4yASL8Nv5aGAIyFi4MDhYSHBIYDAKoIEAQEPz+4DTwASD8DP04GCwyFhoCGFAQEhgYAAAAAf/g/2ICwANWADIAOEAOEgEAAQFHLSYIBgQFAERLsCFQWEALAAABAHAAAQEMAUkbQAkAAQABbwAAAGZZthkYFxYCBRQrFwYnJjc2NyY3HgI2LgE3PgE3DgEWFzI2NzYWFxYGBw4BBwYXFjcOAgcGFjcOAwc8BhQSAgQuZDAKLCwSEAYcFnQuGBIKEAyQIi6IDgwYHCzMDBAcNno4oGgCBGowHkIqbh6KFAwIGmR+mqIgXEQInq5GLGQULmA8AvACBEIgGG4cLCQGChgwHFBECAYYPBA4OA4IBAAAAAMAAP+2A9QDCAAVACkALQCQS7AJUFhAMgACAQECYwcBBQkICQUIbQMBAQoBAAQBAGELAQQACQUECV4ACAYGCFIACAgGVgAGCAZKG0AxAAIBAm8HAQUJCAkFCG0DAQEKAQAEAQBhCwEEAAkFBAleAAgGBghSAAgIBlYABggGSllAHxcWAQAtLCsqIyEgHx4cFikXKA4MCwoJBwAVARQMBRQrEyI3NjcyPgE7ATUhFTMyHgEzFgcGIxcyFh0BFAYrARchNyMiJj0BNDYzEyEDIUIaBAQIAl5cDCwBfC4MWl4CEgYEEAoUIiIUZCz9CCxiFCQkFJoCMEb+XAIOFgoEIh6Wlh4iCBIKOCYWrhYm+vomFq4WJv5EAUQAAAAAAgAAAAAD6AKKAAsAFwA/QDwJAQdFDgEBRAMBAgYEBgIEbQUBBAAGBABrAAcABgIHBl4AAAEBAFIAAAABWAABAAFMIRESERITIRAIBRwrNyEXISImNREjNxcjBTMHJzMRISchMhYV+gEQgP5AKjpmsK5kAopkrrBm/u6AAcIoPL6MPCgBLsbGysjIAQSMOioADgAAAAAD6AKKAA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwCsQKkcAQAaIA8fCx4HHQgDAgADXiQbDgoGBQIZEAwIBAQFAgReGBENCQQFFhQCEhMFEl4jFyIVIQUTAQETUiMXIhUhBRMTAVgAARMBTEBAODg0NDAwKCggIBgYEBABAEBDQENCQT8+PTw4Ozg7Ojk0NzQ3NjUwMzAzMjEvLi0sKCsoKyopJyYlJCAjICMiIR8eHRwYGxgbGhkXFhUUEBMQExIRCQYADwEOJQUUKwEyFhURFAYjISImNRE0NjMFFTM1FyMVMyUVMzUXIxUzJRUzNRcjFTMlFTM1FyMVMwc1IxUhNSEVITUjFSczNSM3NSMVA6IcKioc/KQcKiocAeBkMmRk/tRkMmRk/tRkMmRk/tRkMmRkMmQCiv4MAopkMmRklsgCiioc/jQeKCgeAcwcKmRkZJZk+mRklmT6ZGSWZPpkZJZklmRkZGRkZJZkMmRkAAEAAAAAAyACvAASAB9AHAkBAUQDAQABAG8CAQEBZgEADAoIBgASAREEBRQrATIWFREUBisBFScjIiY1ETQ2MwK8Kjo6KsjIyCg8PCgCvDoq/qIoPJaWPCgBXio6AAAAAAIAAP+cA+gDIAAUACQAREBBBAEABR4BAQACRwoBAUQHAQQDBG8AAwUDbwYBBQAFbwAAAQEAUgAAAAFYAgEBAAFMFhUgHx0bFSQWIyUiJhAIBRgrJSEyNzMVFAYrAQc1IyImNRE0NjsBJTIWFREUBisBFSchETQ2MwEiAV4CBAQ6KvqWMig8PCi+AmIqOjoqMpb+ojwo8AJcKDyWljwoASwqOvo6Kv7UKDyWlgGQKjoAA//4/5oDMgMeABkAKAAzABlAFjIBAQABRwAAAQBvAAEBZignGBYCBRQrAR4DFxYGBwYkJyY2JyY2Nz4BNzYWNzYWAz4CJy4BDgMXHgE2Nz4BNxcWBgcGJzYCeBAwKi4MFsCcpP72FhRADjgSaBoGGhgsIoSEXFiOOgQIUqbOji4GBFywGggaBAIOPjpgOE4BqiIkCCYkPsY6Oho+NnI2wNhUFjoKCCgCAoj9pCBqTAwWFhRMYkYSDBQMzgIKAgIoVhQkMkQAAAAD//r/tgPHAwgADAAQABQAPEA5AAEEAW8ABAUEbwcBBQACAwUCXgYBAwAAA1IGAQMDAFgAAAMATBERDQ0RFBEUExINEA0QExUyCAUXKwUWBiMhIicmNwE2MhcTNSMVNxEjEQO9ChQU/IQSCg0LAb4ILAgabm5uGBAiEBIQAw4SEv0kZGSuASz+1AAAAAP//f9+A4kDQABOAFIAVgBOQEsvAQQBCAcCAAMCRwABBAFvAAQFBG8GAQMCAAIDAG0AAABuBwEFAgIFUgcBBQUCVgACBQJKU1NPT1NWU1ZVVE9ST1JRUDk4EhEIBRQrJRYGDwEOAR8BFgYvASYGDwEOAS8BJg8BBiY/ATYmLwEuAT8BNjQvASY2PwE+AS8BNDYfARY2PwE2Fh8BHgE/ATYWDwEGFh8BHgEPAQYUFwU1IxU3ESMRA3UUCBhOGCACBAIgFlYWMgouDCIQMiI2ehYUCDYIGBhqGAoUVhQUVhQIGE4YIgIGHhZQGDIMLgwkDDIMLhaIFhAIPAoYGnIaCBRWEhL+1mRkZOoQIgYWBiwaUhgUCiwMEBZYFgIUTjAcRg4QGKQYKAIMBBwQTBAyEEwQIgYWBiwaUhoUCiYKEBZQFgIWVhYODlQOEBiqFiYCDAIcEEwQMhCoaGigAQT+/AAGAAD/zgPoAu4ADwATABcAGwAfADIAcEBtIAEEBQFHDAEAAAIJAAJeCxACCQAIBwkIXg8BBwAGBQcGXg4BBQoBBAMFBF4NAQMBAQNSDQEDAwFYAAEDAUwcHBgYFBQQEAEAKyoiIRwfHB8eHRgbGBsaGRQXFBcWFRATEBMSEQkGAA8BDhEFFCsBMhYVERQGIyEiJjURNDYzAREhESUVIzU3FSM1NxUjNQEXIzQzNjU0JjU0MhUUBhUUFhcDhCo6Oir84Cg8PCgDIPzgAV76+vr6+gJUBPoGVDa0OCoWAu46Kv2oKDw8KAJYKjr9RAJY/ajEWlqWWlqWWlr+wEZGFiwQUDBubjBQEBQgBgAAAgAA/5wD6AMgABsAKgA5QDYGAQAFAG8AAQIBcAADBAIDVAAFAAQCBQRgAAMDAlgAAgMCTAEAKCYlIxgWCwkHBAAbARoHBRQrATIVERQrASI1ESMiJyYvASY0PwE2NzY7ATU0MwUWFA8BBiMGIyEnITIWFwGqFBQuFLAQDAwOeAoKeA4MCBSwFAJiCgp2FgQODv7SKAFWEhQQAyAU/KQUFAG4BgIKUgYUBlIKAgS+FNAGFAZSDAbmCAgAAAACAAD/zgH0Au4ADgAXADBALQYBAUQEAQECAXADAQACAgBUAwEAAAJYAAIAAkwQDwEAFBMPFxAXAA4BDgUFFCsTMhYUAg8BLgQ1NDYTMjY0JiIGFBb6aJJ8QD4KIlZCNpJoOFBQcE5OAu6S0v7uVlQMLoSApkJokv58UHBOTnBQAAUAAP/KA+gC9AAbAB8AIwAnACsAIUAeKyopKCcmJSQjIiEgHx4dHBgNCRMARQAAAGYWAQUVKwEWFREUBwYiLwEHBi8BBwYmNRE0PwE2HwE3NhcBEQcRIREnESERBxEhEScRA9gQEAgQCtjYEhDa2BAiEOoSENjaEBD9/KgBkqgBkqoBkqgCWAoU/bgUCgYGiIgKCoiIChQUAkgUCpIKCoiICgr9rAH6aP4GAfpo/gYB+mj+BgH6aP4GAAAAAgAA/7ADXgMOABMAFgAItRYUEgoCLSsBHgEOAgcGAg8BAyUkNz4DFgcBFwNQCAYKChwKNrpAQjb+hAG6/hQ4FhwSVP7QHAMACBAcGDYWcP6kdnYBfDj2egoeCggGaP7o6gAAAAT//P98A8IDQAALABQAIwAsAEJAPyscAgQDAUcABAMCAwQCbQUBAAADBAADYAYBAgEBAlQGAQICAVgAAQIBTA0MAQAoJxEQDBQNFAcFAAsBCwcFFCsBNgAXFgAHBgAnJgATPgECJgQGEhYnPgQ/AQ4CBw4BBxMGFBYyNzY3BgHaxgEcBAL+7MjG/uICBAEW1JzcBOL+xtoE4EwEEEJYojw8BBBCLCqkPHgWKjoUNCSIAz4C/uzGyP7kBAIBFsbIARz8qALgATzaBOD+xNqcGlCwWEAKChpQsCwqQAoBCBQ4LBY0hiQAAAAC//z/xAKuAvgADwAcADVAMgUBAgMBAwIBbQABAW4EAQADAwBUBAEAAANYAAMAA0wREAEAFxYQHBEcCAcADwEPBgUUKwEyFgcDDgIiLgEnAyY+ARcyPgE0LgEiDgEUHgEBVJjCBkgCQIKQgEICSARQomZIgkJCgpCCQkKCAvhSLv2uDiwoKCwOAlIcOirYHiQYIh4eIhgkHgAAAAADAAD/gAL4A0AACwAfACsAe7UDAQACAUdLsBNQWEAtAAcFBAQHZQAAAgECAAFtAAEBbgADAAUHAwVgBgEEAgIEUgYBBAQCWQACBAJNG0AuAAcFBAUHBG0AAAIBAgABbQABAW4AAwAFBwMFYAYBBAICBFIGAQQEAlkAAgQCTVlACxESMhI4GhURCAUcKxMWIDcDDgIiLgEnAR4BHQEUBiAmPQE0Nj8BNjsBMhcHMy4BKwEiDwEzNzMyegGgejYCQoaUhEQCAbJegOD+yOCAXioWMFw0EgxUXBoSZhYKalRAUgHKRkb+Gg4sKiosDgMSEkoiCjpSUjoKIkoSMBoaoG4gEH5CAAIAAP+cArwDIAAPABMAMUAuBAEAAAIDAAJeBQEDAQEDUgUBAwMBWAABAwFMEBABABATEBMSEQkGAA8BDgYFFCsBMhYVERQGIyEiJjURNDYzAREhEQJYKjo6Kv4MKDw8KAH0/gwDIDoq/UQoPDwoArwqOvzgArz9RAAAAAAD//j/aAPwA1YAFgAaACIACrcdGxoYEwUDLSsBFgcDDgEnJS4BPwEHBicDJjclNhYfASUTJQMBEyUTFg8CA8omCJYEHBD+ahAQBBi0KAqgCiYBxhAcBEL9/JABiJABNoT+1kwKJsQaAeAKJP3UEA4EbgQcDlwwCiQCWiQMegQOEPRa/eJqAhz8sgHsUv7mIgw0ZgAAAgAAAAAD6AK8AA8AEwAiQB8AAAACAwACXgADAQEDUgADAwFYAAEDAUwREzUyBAUYKxE0NjMhMhYVERQGIyEiJjUBIREhPCgDICo6Oir84Cg8A4T84AMgAlgqOjoq/gwoPDwoAfT+DAAFAAD/nAK8AyAAAwATABcAGwAfAGNAYAsBAgAEBwIEXg0BBwAGAAcGXgAACgEBCQABXg4BCQAIBQkIXgwBBQMDBVIMAQUFA1gAAwUDTBwcGBgUFAUEAAAcHxwfHh0YGxgbGhkUFxQXFhUNCgQTBRIAAwADEQ8FFSsTNSEVEzIWFREUBiMhIiY1ETQ2MwERIREBFSE1ARUhNdQBGGwqOjoq/gwoPDwoAfT+DAGG/ugBGP7oATRaWgHsOir9RCg8PCgCvCo6/OACvP1EAlBYWP54WFgAAAQAAP+cArwDIAAPABMAFwAbAFNAUAgBAAkBAwIAA14AAgAGBwIGXgsBBwAEBQcEXgoBBQEBBVIKAQUFAVgAAQUBTBgYFBQQEAEAGBsYGxoZFBcUFxYVEBMQExIRCQYADwEODAUUKwEyFhURFAYjISImNRE0NjMXFSE1ETUhFSU1IRUCWCo6Oir+DCg8PCgoAaT+XAGk/l4DIDoq/UQoPDwoArwqOtBYWP4gWFjEWloACgAA/5wDIAMgAA8AEwAXABsAHwAjACcAKwAvADMAp0CkFAEAAAIIAAJeGQsCCBgBCQcICV4XAQcKAQYNBwZeDhoCDRsPAgwFDQxeEhYCBR0TAgQRBQReHAERABADERBeFQEDAQEDUhUBAwMBWAABAwFMMDAsLCgoJCQgIBwcGBgUFBAQAQAwMzAzMjEsLywvLi0oKygrKikkJyQnJiUgIyAjIiEcHxwfHh0YGxgbGhkUFxQXFhUQExATEhEJBgAPAQ4eBRQrATIWFREUBiMhIiY1ETQ2MwERIRElFSM1JRUjPQIzFScVIzUXFSM1FzUzHQIhNSU1MxUCvCo6Oir9qCg8PCgCWP2oAV76AZDIyPqWZGSW+v5wASxkAyA6Kv1EKDw8KAK8Kjr84AK8/UT6MjLIMjIyZGRkyMj6MjIyMjKWMjIyMjIAAAcAAP+cA4QDKAADAAcAIAAkACgALAAwABNAEC8tKykoJiMhHBEHBQMBBy0rJRUnNTcVJzUBFhURFAcFBiIGIiYjJyUmNRE0NzYXBSU2ARElESERBREBFQc1ExUHNQFUyMjIAuIWIP5yCAQGBAYCCv5yIBYWGAF+AX4Y/jj+wALk/sABBMjIyO5EUESARFBEAQoMHv2AIgygAgICAqAMIgKAHgwQCpqaCvzcAjCA/dACMID90AE6RFBEASBEUEQAAAEAAP98ArwDUAAlABZAExABAEUAAAEAbwABAWYZFyUCBRUrARYVERQGIyI1ETQnJSYHBgcFFhURFAcGIyInJiQnJjUDNDc+ARcCqhIYEC4M/mwgJCwMAZgSEgYKDgYI/nwSGgYOHJQqAlIIFP3ODhYkAgoMBtgKFBQY5AgU/doWBgQEBvIKEhACDBwYLj4WAAL//v/OA+oC7gAOAB4AZEuwDVBYQCMAAwQEA2MFAQACAQIAAW0AAQFuAAQCAgRUAAQEAlcAAgQCSxtAIgADBANvBQEAAgECAAFtAAEBbgAEAgIEVAAEBAJXAAIEAktZQBEBAB0aFxQREAkGAA4BDQYFFCsBMhYHAw4BIyEiJwMmNjMlFyE3PgE7ATIfARYzITIWA7ogEAIqAhQg/No0BCoCECADagr8sg4EIBSkNCIeIDYBVBQkAfQYGP48GBoyAcQYGG4ohBQcIh4kGAAAAAAE//z/zgPYAu4ACgATACoAOACdQAwqJwIAATgrAgkHAkdLsBBQWEA0AAcGCQYHZQAJBAYJBGsABARuCgEDAAIBAwJeAAEAAAUBAF4ABQYGBVIABQUGVggBBgUGShtANQAHBgkGBwltAAkEBgkEawAEBG4KAQMAAgEDAl4AAQAABQEAXgAFBgYFUgAFBQZWCAEGBQZKWUAYCws2MzEwLy4tLCkoHhwLEwsTGBQRCwUXKwEVITU0NjchMh4BJzIeARUhNDY3BRYXFgcDDgEHISInJgInJj4BPwEVITUDNSMVITUjFRQzITI2NQNI/UgaDAJgBhAclAYQHP4OGgwCkiIEBgZMBCAM/To0CAZCBgoOBhIoA0TaRv78RDABLBYaAlgyMhYaAgIagAIaFhYaAsggDhIk/j4WGgIyGgGKHhYsCBAoUFD+1GRQUGQyGAwAAAADAAD/zgOEAu4ACQATABcAQEA9AAQFAwUEA20AAwNuBgEAAAECAAFeAAIFBQJSAAICBVYHAQUCBUoUFAEAFBcUFxYVEg8MCwUEAAkBCAgFFCsBMhYdASE1NDYzExEhERQGIyEiJhMVITUDZgwS/HwSDBQDICoc/WwcKvoBLALuEgx4eAwS/SYCEv3uHigoAcxkZAAAAwAA/+IC+ALaAAcADwAYADhANQAAAAIDAAJgAAMABQYDBWAIAQYBAQZUCAEGBgFWBwQCAQYBShEQFRQQGBEYEhIREhIQCQUaKxEgABEjEAAhFTIAFSM0JiMXMhYUBiImNDYBOgG+dv6I/vbaATJ27qhyLkREXEREAtr+Qv7GAQoBdnb+ztim7rJCXkJCXkIAAf///7QDOQLuACUAD0AMGwEARAAAAGYpAQUVKwE2LwEuATY3PgIyHwEWHwEWAgAELwEmLwEmPwE+ATc+AR4BFxYBzaIsCB4WDioUIiQYERgHExUwbP7U/t4wFxUEEg4BAgEcGCo4NBIeLAEioiwIHiRINBgeAg0SBRQWMP7c/tZuMBYUBRgTDB4SIhQiGhYOHiwAAAIAAP+6A0gDAgAsADUATEBJKRoCAwErGBQCBAIDEgQCAAIDRyUjIB4EAUUPDQoIBABEAAEAAwIBA2AEAQIAAAJUBAECAgBYAAACAEwuLTIxLTUuNSIhGwUFFSsBFBcGByYHBhcGByYiByYnNiYHJic2NTQnNjcWNzYnNjcWMjcWFwYXFjcWFwYBMjY0JiIGFBYC+FAMFkZCNhQoLC6sLiwoFGxSDhRSUhQOSj42FCoqLqwuKioUNkJGFgxQ/qxMamqYamoBXkgyKCoSPjpOFBBSUhAUUG4UGjg0UEg0OBoSPjhQFgxQUAwWTjo+EiooMv8AaphsbJhqAAAAAAT/+v+aA/MDGgArADcAVgBeAB1AGllYQD8EAEQCAQEAAW8AAABmHRwbGhEQAwUUKxMOARQjBwYHBi8BJjc+ATc2Mj4BNzI+ATc2NzIXMgcGBwYXFhcWDwEGJy4BFwEWDwEGJwEmPwE2JRYHBicmDwEnNz4BJjc2NzYWBwYHBhYXFjc+ATc2FgE3FwcGLwEmmwgGAhEPBBAMRgsNAiAEBioeCAYCDiYWhjR6GgwUeCBQLCIECApMDgQqOvgBmhIUMBYQ/mIICEgMAjIQIDJoOCxSREQYDgIGDIAMDAQMIg4EJjomBigCBBL8qP5M9hQSLhYB+ggcFg8NBA4STAwMAhgEBhwwBg4eEFoGAgg0GDg6LgIIBkYIBDAYMv4kFhAqDhIB2AgMPgjAaD5YGgwsTk5GGDpIFjg4BhIGDEQKMhwoPgw6BAoC/UT4VvIUEC4SAAEAAP+cAyADIAAnAERAQSEBBQQUCwICAyYHAgEAA0cABAUEbwAFAwVvAAMCA28AAgACbwYBAAEAbwABAWYBACAeGxoTEQ4MBQQAJwEnBwUUKyUyFhQGIiY1NDY1JQYjIiY0NjMyFyU0JjU0NjIWFAYjIicFFhQHBTYCij5YWHxYAv78KjI+WFg+NiYBBAJYfFhYPjQm/voCAgEGJMhWflhYPgYQBJwgWHxYHpwEEAQ+WFZ+WCCcCCIInB4AAwAA/84D6ALuAAgAHQAyAGJAXwAFBgAGBQBtAAADBgADawABCAoIAQptAAoLCAoLawAEAAYFBAZgAAMAAgcDAmAMAQcACAEHCF4ACwkJC1QACwsJWAAJCwlMHx4vLSsqJSMhIB4yHzIiFSIRIxMSDQUbKwE0NjIWFAYiJicGKwE1Mz4BMzIXFhQHBiInJiMiBgUzFSMOASMiJyY0NzYyFxYzMjY3NgFUXoReXoRecg40oHYo0oSkeBAQEjISTnhkmAJQoHYo0IakdhISEDISUnRkmBYMAV5EXFyGXl5+PHh8nHQSMhIQEFJ8nHh8nHYSMhASElJ+XjwAAAAAAwAA/5wDhAMgAAgAEQAqAD9APB0BBAFGAAgGBAYIBG0ABwAGCAcGXgAEAAUABAVgAgEAAQEAVAIBAAABWAMBAQABTBIyEzIkExQTEgkFHSszNDYyFhQGIiYlNDYyFhQGIiYBBhYzIRUUIyEiPQEDIzU0OwEyHQEhERQHljxSOjpSPAH0PFI6OlI8/r4kBCoCMhT9chRsYhScFALAEig8PFI6OiooPDxSOjoBFgoaTBQUTAH0UBQUVv7uFgQAAAAAA//8/7oDXwMCABUAIQAlAEVAQgAEAwIDBAJtCAECAAMCAGsAAABuAAEABwYBB14ABgMDBlIABgYDVgUBAwYDShcWJSQjIiAfHh0cGxYhFyE5NAkFFisBFgcDBiMhIicCJyY3Nj8BNjMhMhcWATI+AjcjBiInIxIDISchA0McBGIIHv22HAxeAgUbBjA4EiYB4CYSTv6KOFQqEgRcJpQmXC7CAsBu/hwCnBoi/XgeHgJsHCIaBiUrEBA6/jBEbkQgvLz+6gFwdAAEAAD/nAOEAyAAFwAbAB8AIwBgQF0EAgwDAAkICQAIbQ8LDgMJCgEIAwkIXgUBAwAGBwMGXg0BBwEBB1INAQcHAVgAAQcBTCAgHBwYGAEAICMgIyIhHB8cHx4dGBsYGxoZFhUUExIREA4JBgAXARcQBRQrATIWFREUBiMhIiY1ETQ2OwEVMzUhFTM1ExEhERMVIzUhFSM1AyAqOjoq/UQoPDwoLqABIqAs/USgRgIIRgK8Oir9qCg8PCgCWCo6ZGRkZP1EAZD+cAMgqqqqqgAAAgAA/5wDhAMgABcAHgDOQA4dAQcFHgEGBxgBAgYDR0uwCVBYQC8ABQQHBAVlAAIGAwMCZQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTRtLsA1QWEAwAAUEBwQFB20AAgYDAwJlCAEAAAQFAAReAAcABgIHBl4AAwEBA1IAAwMBWQABAwFNG0AxAAUEBwQFB20AAgYDBgIDbQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTVlZQBcBABwbGhkTEhEQDw4NDAkGABcBFgkFFCsBMhYVERQGIyEiJj0BMxUhESEVIzU0NjMTNSE1ITUXAyAqOjoq/j4oOmIBwv4+YjooZP4+AcLIAyA6Kv1EKDw8KGRkAryWlio6/WJ4lnjCAAAAAAIAAP+cA4QDIAAXAB4AyEAKHgEHAxkBAAYCR0uwCVBYQDAAAwQHBANlAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bS7ANUFhAMQADBAcEAwdtAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bQDIAAwQHBAMHbQAABgUGAAVtAAIABAMCBF4ABwAGAAcGXggBBQEBBVIIAQUFAVkAAQUBTVlZQBIAAB0cGxoAFwAXERM1MxEJBRkrITUzFRQGIyEiJjURNDYzITIWHQEjNSERAQc1ITUhNQH2Yjoq/nAoPDwoAZAqOmL+bgMgxv4+AcJkZCg8PCgCvCo6OiqWlv1EAUbEeJZ4AAAAAwAA/2oCgANSACcAMAA4AMW2FQYCAQUBR0uwH1BYQC0ACAkACQgAbQAFBgEGBQFtBwQKAwALAQYFAAZgAAkJDEgDAQEBAlgAAgINAkkbS7AkUFhAKgAICQAJCABtAAUGAQYFAW0HBAoDAAsBBgUABmADAQEAAgECXAAJCQwJSRtAMAAJCAlvAAgACG8ABQYBBgUBbQcECgMACwEGBQAGYAMBAQICAVQDAQEBAlgAAgECTFlZQB8pKAEANzYzMi0sKDApMCIhHRoUEg8MCQcAJwEmDAUUKwEyHQEUBgcVMzIdARQjISI9ATQ7ATUuAT0BNDsBMh0BFBYgNj0BNDMFIiY9ASEVFAYTFSE1NDYyFgJsFIqEghQU/pgUFIKEihQeFHYBCHYU/vJQRgEsRkb+1EagRgHoFIpckAyEFDwUFDwUhAyQXIoUFIpCcnJCihTuMh6enh4yAgjU1B4yMgAAAAMAAP+mA3QDKgALAB0ALAAUQBEmJR8WFQ0GAEUAAABmFQEFFSsBFhQHAQYiJjQ3ATYDNx4BBw4DJwEeAjc2LgElASYSNzYWFwcuAQcGHgEDZBAQ/PISIiIQAw4itDJKNiIYZqCiVAEWLFguCgYILP7M/vIoiEAijlg0Ol4KBAQiAwoQKBD88g4cLA4DDiD+XjJcoCQYQkwOHgEUICwGBAowWGr+8oQBLkAgKkAyJh4KCChMAAX/+P+EA5IDQgANAB0AKQA3AEYAH0AcAAEAAW8DAQACAG8AAgJmHx4/PTc1HikfKQQFFCsTNh4CBw4CLgI+AQE2LgEnLgIHBh4BFx4CEyImND8BNhcWDwEGJy4BPwE2Fx4BDwEGIyIFFgYPAQYjIicmNj8BNhawKtbcXiocgLjMlBROTgHsCBZMOjh8TgoIFkw4OnxOEBIgEF4kJCAgYBDIEgoKNhoqEgoKNg4cDgGqCgwSYBAIHBAKDBJgEigCTCpe3NYqHE5OFJTMuID+PApOfDg6TBYICk58OjhMFgGSHioOYCAgJCReEHwKKBJgLBgKKBJgGpASKAo2CBoSKAo2CgoAAf/8AAADgAJiAAwACrcAAABmMgEFFSslFAYjISImNjcBNhYVA4AwIPz0FhIMEgMiHCi0Ii4KFAoBxBIWIgAAAAMAAP+SA5gDKgAIABEAFwBJQEYWFRQTBAIEAUcHAQQDAgMEAm0FAQAAAwQAA2AGAQIBAQJUBgECAgFYAAECAUwSEgoJAQASFxIXDg0JEQoRBQQACAEICAUUKwEyABAAIAAQABMyNhAmIAYQFhMVFwcnEQHMvgEO/vL+hP7yAQ6+ltLS/tbU1LiWMqoDKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCbPSWMqoBEgADAAD/agIwA1IAGwAoAGIArEAQNTICAgM2AQQCWE0CAAYDR0uwH1BYQCcABQQGBAUGbQAGAAQGAGsAAgAEBQIEYAADAwFYAAEBDEgAAAANAEkbS7AkUFhAJgAFBAYEBQZtAAYABAYAawAAAG4AAgAEBQIEYAADAwFYAAEBDANJG0ArAAUEBgQFBm0ABgAEBgBrAAAAbgABAAMCAQNgAAIEBAJUAAICBFgABAIETFlZQAtTUhobJCcdGgcFGisBFA4BFB4BHQEUBiImPQE0PgE0LgE9ATQ2MhYVBQcGFxYzMjc2JyYjIhM0PgI/ATY1NwYiJxcUHwMWJhYjFA4CDwIGJgY1Bh0BPgI1NDIVFB4BFzU0LwImLwEuAQIwYGJiYKzYrGBiYmCu1K7+HhIECFx8hFgOHmBqeJAIHAwZHVwCZPRkBFotExERDB4MAgoGCAwPDwIiWgh0RDRCegZcKxINBQwHBAJuLGhePFxmLnYiTk4idi5mXDxeaCx2IE5OIAYOCAY0MgoUNv5KEh4kDhgcXB4yNjYyIForExUVAjAKEhIOCg8QEAIiAVogQgQmMCIeHiIwJgRCHlwpEw4IFAwWAAAAAAP/+/9oAr8DUgAGABcAMgCHQAwSDQIEBQMAAgEAAkdLsCFQWEAdAAQAAgAEAl4ABQUDWAADAwxIAAAAAVgAAQENAUkbS7AkUFhAGgAEAAIABAJeAAAAAQABXAAFBQNYAAMDDAVJG0AgAAMABQQDBWAABAACAAQCXgAAAQEAUgAAAAFYAAEAAUxZWUALMjEmJRcRIhEGBRgrFzUhFQYnBjchNC4CNz4BIBYXFg4DAQYWBhYGHwEWHwIWFzM2PwE2PwE+AicmINEBGkZIRs7+8khUQAYIrAFSqgoEKEBCMP6GBAgEDgIJCwILDh9YGFIYWBkVBBENBgYCEP46bmhoKgICzkiIWoZIeKyseDxqVlRsAbQEIAgeBg8TBA8TLHpaXnYjHQcdFhYiEsQAAAoAAAAAArwCvAAIABEAGgAjACwANQA9AEYATgBXAG9AbAALEQEKAAsKYAwBAAADBAADYA8GDgMEBwEFAgQFYA0BAgABCAIBYBABCAkJCFQQAQgICVgACQgJTFBPLi0lJBMSCgkBAFRTT1dQVzIxLTUuNSkoJCwlLBcWEhoTGg4NCREKEQUEAAgBCBIFFCsBMhYUBiImNDYTMjY0JiIGFBYlMhYVFCI1NDYlFgcOASY2NzYXMhYVFCI1NDYBMhYUBiImNDYnNhYHDgEnJhM2Fx4BBwYnJgEmNhceAQcGAyImNDYyFhQGAV5EXFyGXl5CLDo6Vjw8/v4UHmQeAjYcJA4mFgQOJFIUHmIc/ugQGBggGBjeJDgkDiYKHhocJA4ECh4iJAHMIjgkDgQMHtoQGBggGBgB/l6GXFyGXv74PFY8PFY8kBgQKCgQGMwcJA4EGCYOIugYECgoEBj+3h4oHh4oHj4kOCQOBAocAdIcJA4mChwiJP44JDgkDiYKHAIOHigeHigeAAAACgAA/2oD6ANSAAsAFAAdACkANgBDAE0AWgBnAHAA40uwH1BYQDQNAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYA8BCAgJWAAJCQxIEAEKCgtYAAsLDQtJG0uwJFBYQDENAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYBABCgALCgtcDwEICAlYAAkJDAhJG0A4AAkPAQgCCQhgDQECAAUAAgVgBwwCAAYBAQQAAWAOAQQAAwoEA2AQAQoLCwpUEAEKCgtYAAsKC0xZWUAvODcrKhYVDQwBAD49N0M4QzEwKjYrNiglIh8aGRUdFh0REAwUDRQHBAALAQoRBRQrATIWFRQrASI1NDYzJTIWFAYiJjQ2EzI2NCYiBhQWJRQrASI1NDY7ATIWASImPQE0NjIWHQEUBgMyFh0BFAYiJj0BNDYBBwYnJjc2NzYWAT4BFgYPAQ4BJyY3NhMXFgcGJicmJy4BNhYBJjYfARYGJyYDthQeMjAyHhT+bnKiouSgoHJSdnakdnb+9DIyMh4UMhQeAV4QGBggGBgQEBgYIBgYAYAiIh4cJAQeJDj9IA4mFgQOJA4mCh4kBjIkJB4KJg4eBg4EFiYCXCQ4JCIkOCQeAYYYECgoEBjqoOagoOag/iZ0pnZ2pnTIKCgQGBgBTh4UMhQeHhQyFB79RB4UMhQeHhQyFB4ClCIiGhwkBh4iOP2QEAQYJg4kDgQMHCQEAqQkJBwKBA4eBA4mGAT9NCQ4JCIkOCIeAAAKAAD/agPoA1IACwAUABoAJgAzAEAASgBXAGQAbQDjS7AfUFhANA0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgDwEICAlYAAkJDEgQAQoKC1gACwsNC0kbS7AkUFhAMQ0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgEAEKAAsKC1wPAQgICVgACQkMCEkbQDgACQ8BCAIJCGANAQIABAACBGAHDAIABgEBBQABYA4BBQADCgUDYBABCgsLClQQAQoKC1gACwoLTFlZQC81NCgnFRUNDAEAOzo0QDVALi0nMygzJSIfHBUaFRoXFhEQDBQNFAcEAAsBChEFFCsBMhYVFCsBIjU0NjMlMhYUBiImNDYTESIGFBYlFCsBIjU0NjsBMhYBIiY9ATQ2MhYdARQGAzIWHQEUBiImPQE0NgEHBicmNzY3NhYBPgEWBg8BDgEnJjc2ExcWBwYmJyYnLgE2FgEmNh8BFgYnJgO2FB4yMDIeFP5ucqKi5KCgeFZ4eP7yMjIyHhQyFB4BXhAYGCAYGBAQGBggGBgBgCIiHhwkBB4kOP0gDiYWBA4kDiYKHiQGMiQkHgomDh4GDgQWJgJcJDgkIiQ4JB4BhhgQKCgQGOqg5qCg5qD+JgGQdqZ0yCgoEBgYAU4eFDIUHh4UMhQe/UQeFDIUHh4UMhQeApQiIhocJAYeIjj9kBAEGCYOJA4EDBwkBAKkJCQcCgQOHgQOJhgE/TQkOCQiJDgiHgAFAAD/fgPAAz4ACAAJABEAEgAaADpANxkYDQwEAwIBRwQBAAACAwACYAUBAwEBA1QFAQMDAVgAAQMBTBQTAQATGhQaEA4FBAAIAQgGBRQrATIAEAAgABAABQEUFwEmIyIGEwUyNjU0JwEWAeDIARj+6P5y/uYBGgHI/ZJSAgJkhJjUagECmNZS/f5iAz7+6P5y/uYBGgGOARjc/vyEYgICUtb+ZmrWloJm/f5SAAAAAAIAAP/UAxgC6gAGAA0AH0AcDQwJCAYFBAMCCQEAAUcAAAEAbwABAWYZEAIFFisBIREnByc3ARcHFyERFwHcATxkkmSY/qBkmHr+xGQC6v7EfJhkkv6mZJJkATx6AAAAAAIAAP+cA4QDIAAGAA0AH0AcDQwLCAQBRQYFBAMEAEQAAQABbwAAAGYXEQIFFis3JyERJwcnAQcXIREXN5xqAShkkmQDhJpo/tpkkJJk/thqnGQCvJBkASZomgAAAwAA/84DIALuAA8AEwAcAEtASAkBBgIDAgYDbQcBAAACBgACXggBAwABBAMBYAAEBQUEUgAEBAVYAAUEBUwUFBAQAQAUHBQcGRcWFRATEBMSEQkGAA8BDgoFFCsBMhYVERQGIyEiJjURNDYzAREhEScRIRUhIiY1EQK8Kjo6Kv5wKDw6KgGQ/nDIASz+1Cg8Au46Kv5wKDw8KAGSKDr+DAGQ/nBk/tRkPCgBLAAAAAAFAAD/nAPoAyAAFwAgACkALQA0AHhAdQAKBwsHCmUSAQsGBgtjDgEMAwIDDAJtAA0BDXAPAQAJAQcKAAdgEQgQAwYAAwwGA18EAQIBAQJSBAECAgFYBQEBAgFMKioiIRkYAQA0MzIxMC8qLSotLCsmJSEpIikdHBggGSARDw4NDAsKCQgGABcBFhMFFCsBMhYVERQGKwE1MxEhETMVIyImNRE0NjMXMjU0JiIGFBYzMjU0JiIGFBYlNSEVHwEjESMRIwOEKjo6KsbI/N7IyCg8PCgeJhYgFhZ0JhYgFhYCsP2mxvKWuJYDIDwo/agqOmIBzv4yYjoqAlgoPKgmEBQWHhYmEBQWHhYGPj7G8P7UASwAAAAFAAD/zgPoAu4ADwAZACMAJwArAF5AWwAIAgkCCGUNAQkDAwljCgEABQsCAggAAmAEAQMABgcDBl8MAQcBAQdSDAEHBwFYAAEHAUwoKCQkERABACgrKCsqKSQnJCcmJSIhHhwWFBAZERkJBgAPAQ4OBRQrATIWFREUBiMhIiY1ETQ2MxciBhQWMzI1NCYHFBYzMjU0JiIGAREhEQE1IRUDhCo6Oir84Cg8PCiCEBYWECYWmhYQJhYgFgMq/N4DIv2mAu48KP2oKjo6KgJYKDxeFh4WJhAUJBAWJhAUFv24Acz+NAIcPDwAAgAA/2oBzANSAAIABQARQA4AAAEAbwABAWYSEQIFFisbASETAyHm5v405uYBzANS/pT9hAFuAAADAAD/kgOYAyoACAARABgAUkBPFQECBAFHCQEGAwQDBgRtBQEEAgMEAmsHAQAAAwYAA2AIAQIBAQJUCAECAgFYAAECAUwSEgoJAQASGBIYFxYUEw4NCREKEQUEAAgBCAoFFCsBMgAQACAAEAATMjYQJiAGEBYTFTMHJzM1Acy+AQ7+8v6E/vIBDr6U1NT+2NTU7nDKynADKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCKs6+vs4AAAAAAwAA/5IDmAMqAAgAEQAYADpANxYBBQMVAQQFFAECBANHAAEAAwUBA2AABQAEAgUEXgACAAACVAACAgBYAAACAEwUEhMUExIGBRorARQAIAAQACAABRQWIDYQJiAGBSMVJzcVMwOY/vL+hP7yAQ4BfAEO/MzUASjU1P7Y1AIozL6+zAFevv7yAQ4BfgEM/vTAlNTUASrS0vBwysxyAAAAAAMAAP+SA5gDKgAIABEAGAA6QDcUAQQCFQEFBBYBAwUDRwAAAAIEAAJgAAQABQMEBV4AAwEBA1QAAwMBWAABAwFMFBITFBMSBgUaKxE0ACAAEAAgACU0JiAGEBYgNiUzNRcHNSMBDgF8AQ7+8v6E/vIDNNL+1tTUASrS/djMvr7MAV6+AQ7+8v6E/vIBDr6W0tL+1tTU7nLMynAAAAMAAP+SA5gDKgAIABEAGABRQE4VAQQCAUcFAQQCBgIEBm0JAQYDAgYDawABCAECBAECYAADAAADVAADAwBYBwEAAwBMEhIKCQEAEhgSGBcWFBMODQkRChEFBAAIAQgKBRQrBSIAEAAgABAAAyIGEBYgNhAmAzUjNxcjFQHMvv7yAQ4BfAEO/vK+lNTUASrS0vBwyspwbgEOAX4BDP70/oL+8gM00v7W1NQBKtL92MzAwMwAAAEAAAAAAkQCHgAQAA9ADAsBAEUAAABmEgEFFSsBBwYiLwEmNDc2HwE3NhcWFAI06hIsEuoQECYoxMQoJhABpuASEuAQMhAmJry8JiYQMgAAAQAAAAABaAKCABEAF0AUBgEBAAFHAAABAG8AAQFmGBECBRYrEzYyFxYPARcWBwYiLwEmNDc28g4yECYmuromJhAwEOIQEM4CchAQJCzEwiwkEBDsEC4Q1gAAAAAB/+4AAAFUAoIAEAAXQBQLAQABAUcAAQABbwAAAGYYFgIFFisTFxYUDwEGIicmPwEnJjc2MmLiEBDiEDAQJCS6uiQkEDICcuwQLhDsEBAkLMLELCQQAAAAAQAAAAACRAIIABAAD0AMBgEARAAAAGYeAQUVKwEWFAcGLwEHBicmND8BNjIXAjQQECYoxMQoJhAQ6hAwEAEYEDIQJia8vCYmEDIQ4BAQAAAB//MAAAHfAfAADQAGswYBAS0rATYXFg8BBi8BJjc2HwEBlRYaGhrEFhrEGhoYGqoB1hoaFhrAFhbAGhYYGJwAAf/0AAABFgJUAA0ABrMJAwEtKzcWBwYvASY/ATYXFg8B/BoaGhbAGBjAFhoaGpy0GhYaGsIYGsIaGhYarAAAAAH/8wAAARUCVAANAAazCwUBLSs/AScmNzYfARYPAQYnJg2enhoaGhbAGBjAFhoatKqsGhYaGsIaGMIaGhYAAAAB//QAAAHcAfAACwAGswUBAS0rNwYmPwE2HwEWBi8BPhowGMQaFsQYMBqq5hYuGr4aGr4aLhaeAAH/8wAAA28CVAANAAazCAMBLSsTCQE2FxYHAQYnASY3Nj8BcgF0FhoaGv50Fhr+dBoaGAI6/pwBZBoaFhr+eBYWAYgaFhgAAAH/9P+iAd4DHAANAAazCQMBLSsFFgcGJwEmNwE2FxYHAQHEGhoaFv54GBgBiBYaGhr+mhQaFhoaAYoYGgGKGhoWGv6MAAAAAAH/8/+iAd0DHAANAAazCwUBLSsXCQEmNzYXARYHAQYnJg0BZv6aGhoaFgGIGBj+eBYaGhQBcgF0GhYaGv52Ghj+dhoaFgAAAAH/9AAAA2wCVAAMAAazBwMBLSslCQEGJjcBNhcBFgcGAyT+jP6OGjAYAYwaFgGMGBgaggFm/poWLhoBhhoa/noaGBYAAQAA//IClALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERApT+tv62wAEUAW7+hAF8AV7+ogABAAAAAALaAqgABgAfQBwBAQEAAUcCAQBFAAEBRAAAAQBvAAEBZhETAgUWKyUJARUhESEBev6GAXoBYP6gFAFKAUq+/uoAAAABAAAAAALaAqgABgAfQBwBAQABAUcAAQFFAgEARAABAAFvAAAAZhETAgUWKwkCNSERIQFeAXz+hP6iAV4CqP62/rbAARYAAAABAAD/8gKUAswABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEhESMBApTA/uzAAUoBUP6iAV4BfAABAAAAAAHMAiYAAgAVQBIBAQBEAQEAAGYAAAACAAICBRQrAQsBAczm5gIm/nABkAABAAAAAAGQAkQAAgAGswEAAS0rARElAZD+cAJE/jTmAAEAAAAAAZACRAACAAazAgABLSsRDQEBkP5wAkTm5gAAAQAAAAABzAImAAIAFUASAQEARQEBAABmAAAAAgACAgUUKzUbAebmlgGQ/nAAAAAAAQAA//IC+ALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERAvj+hP6EwAF4AW7+hAF8AV7+ogABAAD/4gLaAtoABgAfQBwGAQEAAUcAAQBFBQEBRAAAAQBvAAEBZhERAgUWKwEVIREhFQEBegFg/qD+hgLavv6GwAF8AAEAAP/iAtoC2gAGAB9AHAEBAAEBRwABAUUCAQBEAAEAAW8AAABmERMCBRYrCQI1IREhAV4BfP6E/qIBXgLa/oT+hMABegAAAAEAAP/yAvgCzAAGABdAFAYBAEUCAQABAG8AAQFmEREQAwUXKwEjESERIwEC+MD+iMABfAFQ/qIBXgF8AAEAAP90AfQDSAAGAIqzAQEAREuwCVBYQA0DAgIAAQBwAAEBDAFJG0uwClBYQAsAAQABbwMCAgAAZhtLsA5QWEANAwICAAEAcAABAQwBSRtLsA9QWEALAAEAAW8DAgIAAGYbS7AVUFhADQMCAgABAHAAAQEMAUkbQAsAAQABbwMCAgAAZllZWVlZQAsAAAAGAAYREgQFFislByczETMRAfT6+qKwZPDwAuT9HAABAAAAAAPUAlgABgAmQCMBAQEAAUcCAQBFAAEBRAAAAQEAUgAAAAFWAAEAAUoREwIFFis3JzcVIRUh8PDwAuT9HGT6+qCyAAABAAAAAAPUAlgABgAmQCMGAQABAUcFAQFFAAEARAABAAABUgABAQBWAAABAEoREQIFFislNSE1ITUXAub9GgLm7mSisqD6AAABAAD/dAH0A0gABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEjESM3AfSisKL6Alr9GgLm7gAAAAABAAD/rAOsAuAAFwBDQEATCAICBAcBAQICRwUBBAMCAwQCbQYBAAADBAADYAACAQECVAACAgFYAAECAUwBABUUEhEPDgsJBgQAFwEXBwUUKwEyFhAGIyInNxYzMjYQJiIGBzMHJzM+AQIUqu7uqo5uRlRifrS0+rQCjri4fALwAuDw/qzwWEo8tAEAtK58zMym6gAAAQAA/8QDrAL4ABcAQ0BAEAUCBAERAQUEAkcCAQEDBAMBBG0GAQAAAwEAA2AABAUFBFQABAQFWAAFBAVMAQAUEg8NCgkHBgQDABcBFwcFFCsBMhYXMwcnMy4BIgYUFjMyNxcGIyImEDYBmKjuBHq4uJAEtPq0tH5oTkZujqjw8AL46KbOznystP60PExY8AFU8AAAAAL//v/EAzYC+AAOAB0AJUAiHRwXEQoEAQcAAQFHCQEBRRYBAEQAAQABbwAAAGYcEgIFFis/ARElNyYSNzY3FwYHDgEBBQcWAgcGByc2Nz4BJwe6dP7sWHQEdmSMBGRIWAQBogEUWHQEdmCQAmJIWARWcox0/twQVnoBUHhkEGYQSFj6AfoQVnr+sHhiFGgQSFj6XHQAAAAAAQAAAAAC6AKKAAsANEAxCAECAQkBAAICRwoBAEQAAQIBbwACAAACUgACAgBYAwEAAgBMAQAHBgUEAAsBCwQFFCs3IiY1ETMRITUXBzVkKjqMAWzw8Mg8KAFe/sqW3NyWAAAAAAEAAAAAA1ICTgALADJALwIBAgABAQECAkcDAQBFAAECAXAAAAICAFQAAAACVgMBAgACSgAAAAsACxMkBAUWKxMVJzcVITIWFREjNcjIyAImKDyMAV5aoKpkOir+6PAAAAMAAP+2A+gDCAAZACUANABiQF8hFwIABScYAgIELSgCAQcDRxYBA0UpAQZEAAMIAQAEAwBgAAUABAIFBGAJAQcBBgdUAAIAAQYCAWAJAQcHBlgABgcGTCYmAQAmNCYzLCogHh0bFRMNCwoIABkBGQoFFCsBIg4BBw4DKwE1MzI+ATc+AjsBNRcHNQUmKwE1MzIXDgEHBgE1Fwc1IyInNjc0NjcWMwLyNmY6NjA2ZnBCaGg2aDo2Pk6aViTS0v34SlxoaIxyDi4ECAH40tIkjHguGgwCVFoCBEBERj5AWiqMQERGUlhYeLS0ZFhOjGwQOgQM/vpktLR4dDoiAg4EWAABAAAAAAOEAooAGgA/QDwSAQMAEwEEAwJHEQEARQIGAgAFAQMEAANeAAQBAQRSAAQEAVgAAQQBTAEAGRgXFhUUEA4JBgAaARoHBRQrATIWFREUBiMhIiY1ETQ2OwE1Fwc1IxUhNSM1AyAqOjoq/UQoPDwo+sjI0gJslgIcOir+3ig8PCgBIio6brS0btLSjAACAAAAAAPoArQABgANAD1AOgQBAAENAwIDAAJHBQEBRQgBAkQEAQEAAAMBAF4AAwICA1IAAwMCVgACAwJKAAAMCwoJAAYABhEFBRUrARUhFSc3FQEHNSE1ITUCvP4MyMgDIMj+DAH0AlCMWqCqZP5coFqMZAAAAAABAAAAAAH0ApIACwAGswoFAS0rARYUBwEGJjURNDYXAeYODv5UGCIiGAF4Ch4K/vYQFB4CAh4UEAAAAAABAAAAAAJYAooADAAYQBUCAQABAG8AAQFmAQAHBAAMAQsDBRQrATIVERQjISI1ETQ2MwIOSkr+PkwkKAKKQP4qQkIB1iQcAAACAAAAAAISArwACAARACNAIAUCBAMAAQBvAwEBAWYKCQEADg0JEQoRBQQACAEIBgUUKwEyFREUIjURNCEyFREUIjURNAG4WrT+/Fq0ArxA/cZCQgI6QED9xkJCAjpAAAABAAAAAAK8ArwACAAYQBUCAQABAG8AAQFmAQAFBAAIAQgDBRQrATIWEAYgJhA2AV6SzMz+3MzMArzM/t7OzgEizAAAAAIAAAAAAlgCggALABQAGEAVAgEAAQBvAAEBZg0MERAMFA0UAwUUKwEWFAcFBiY1ETQ2FyUyFREUIjURNAGcDg7+lhYcHBYB3EqWAXYKGgrkDhIaAboaEg4oOv4uOjoB0joAAAACAAAAAAJYAoIADAAUABFADgAAAQBvAAEBZhMeAgUWKxM0NyU2FhURFAYnJSYnNDIVERQiNa4OAWwUHBwU/pQOrpaWAV4OCuQOEhr+RhoSDuQK9jo6/i46OgAAAAIAAAAAA3ACfAALABcACLUWEQoFAi0rARYUBwUGJjURNDYXBxYUBwUGJjURNDYXA2IODv6MFh4eFlIODv6YFCAgFAF2ChwI+A4QHAHiHBAO+AocCPgOEBwB4hwQDgAAAAIAAAAAA3ACfAAMABkACLUWEQkEAi0rETQ3JTYWFREUBiclJiU0NyU2FhURFAYnJSYOAXYUICAU/ooOAcYOAWgUICAU/pgOAV4OCvgOEBz+HhwQDvgIDg4K+A4QHP4eHBAO+AgAAAAAAgAAAAAD6AJYABAAFAApQCYAAQACAwECXgQBAwAAA1IEAQMDAFgAAAMATBERERQRFBQ1MwUFFysBFRQGIyEiJjURNDYzITIWFQMRIRED6Doq/OAoPDwoAyAqOmT84AHC+io6OioBLCg8PCj+1AEs/tQAAAADAAAAAAPoAlgAEAAUABgAOkA3AAEAAgQBAl4ABAcBBQMEBV4GAQMAAANSBgEDAwBYAAADAEwVFRERFRgVGBcWERQRFBQ1MwgFFysBFRQGIyEiJjURNDYzITIWFQMRIRE3NTMVA+g6KvzgKDw8KAMgKjpk/OAyyAHC+io6OioBLCg8PCj+1AEs/tQyxsYAAAAEAAAAAAPoAlgAEAAUABgAHABFQEIAAQACBAECXgYBBAoHCQMFAwQFXggBAwAAA1IIAQMDAFgAAAMATBkZFRURERkcGRwbGhUYFRgXFhEUERQUNTMLBRcrARUUBiMhIiY1ETQ2MyEyFhUDESERNzUzFTM1MxUD6Doq/OAoPDwoAyAqOmT84DLIMsgBwvoqOjoqASwoPDwo/tQBLP7UMsbGxsYAAAUAAAAAA+gCWAAQABQAGAAcACAAS0BIAAEAAgQBAl4IBgIECQwHCwQFAwQFXgoBAwAAA1IKAQMDAFgAAAMATBkZFRURESAfHh0ZHBkcGxoVGBUYFxYRFBEUFDUzDQUXKwEVFAYjISImNRE0NjMhMhYVAxEhETc1MxUzNTMVNzMVIwPoOir84Cg8PCgDICo6ZPzgMsgyyDLIyAHC+io6OioBLCg8PCj+1AEs/tQyxsbGxsbGAAIAAP+wA1wDDAAIACAAUEBNFRICBAAeCQIBBwJHCAEABABvAAQDBG8ABwIBAgcBbQABAW4FAQMCAgNSBQEDAwJWBgECAwJKAQAgHxsaGRgUEw8ODQwFBAAIAQgJBRQrATIWEAYgJhA2Ez4BNyM1My4BJxUjNQ4BBzMVIx4BFzUzAa6y/Pz+nPz81nywDMDADLB8RnyyDMLCDLJ8RgMM/P6c/PwBZPz89g6wfEZ8sA7Cwg6wfEZ8sA7CAAAABgAAAAACvAJYAAsAFwAjAC8AOwBHAGVAYgcOAgQPBgIFAgQFYBAIDQMCCQEDAAIDYBEKDAMAAQEAVBEKDAMAAAFYCwEBAAFMPTwxMCUkGRgNDAEAQ0A8Rz1GNzQwOzE6KygkLyUuHxwYIxkiExAMFw0WBwQACwEKEgUUKzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MxciJjQ2MyEyFhQGIxUyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2M2QUHh4UMhQeHBYyFB4eFDIUHhwWMhQeHhQyFB4cFvoUHh4UAV4WHB4UFhweFP6iFB4eFAFeFhweFP6iFB4eFMgeKB4eKB7IHigeHigeyB4oHh4oHmQeKB4eKB5kHigeHigeyB4oHh4oHgAAAAQAAAAAA+gCWAALABcAKwA3AFlAVg8KAgkACwAJC2AIDgQMBAAHBQIBAgABYA0BAgMDAlQNAQICA1gGAQMCA0wtLBkYDQwBADMwLDctNikoJiQjIR8eHBoYKxkrExAMFw0WBwQACwEKEAUUKwEyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2MyUyFCsBFRQiPQEjIjQ7ATU0Mh0BJTIWFAYjISImNDYzAV4WHB4U/tQUHhwWASwWHB4U/tQUHhwWA5geHqpkpB4epGT+PhYcHhT+1BQeHBYBkB4oHh4oHsgeKB4eKB7IZKoeHqpkqh4eqsgeKB4eKB4AAAAAAwAAAAAD6AKKABQAKwA3ADpANykfAgUEAUcAAgADBAIDYAYBBAAFAAQFYAAAAQEAVAAAAAFYAAEAAUwtLDMwLDctNiIzMiIHBRgrARQWOwEOASMhIiY0NjMhMhYXIyIGBzYnJicuAQYPAicmBhcWFxY2PwEXFiUyFhQGKwEiJjQ2MwMCSCpCHkRU/gyCioqCAfRURB5CKkiIChKIKhAUEAIIFpQaEBCILCIQChiSGgE+FiIiFiYWICAWAV5idi4mvN6+Ji54ugwOhh4KBhAEEjhCDBoOhB4QCho6RAzONlg4OFg2AAAAAAIAAP/EA6wC+AAXAB0AU0BQGgEEBh0cGxMIBQIEBwEBAgNHAAYDBAMGBG0FAQQCAwQCawcBAAADBgADYAACAQECVAACAgFYAAECAUwBABkYFRQSEQ8OCwkGBAAXARcIBRQrATIWEAYjIic3FjMyNjQmIgYHMwcnMz4BFzMVFwcnAhSq7u6qinJGUmR+tLT6sgSOuLh8BO6CRoIylgL48P6s8FhMPLT+tKx8zs6m6L7MgjKWAAIAAP+mA+gDFgAXABsAOEA1DwgCAQMBRwQBAAACAwACXgUBAwEBA1IFAQMDAVgAAQMBTBgYAQAYGxgbGhkNCgAXARYGBRQrATIWFREUBg8BFxYjISI/AScuATURNDYzAREhEQOEKjo6KNpWMkb+DGKCJNwoOjwoAyD84AMWPCj92ipGCCwmHDQOLAhGKgImKDz9egIs/dQAAwAA/3QCRANIAA8AGAAcARBLsAlQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7AKUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsA5QWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7APUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsBVQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbQCQGAQAABAUABF4IAQUAAwIFA2AHAQIBAQJUBwECAgFYAAECAUxZWVlZWUAbGRkREAEAGRwZHBsaFRQQGBEYCQYADwEOCQUUKwEyFhURFAYjISImNRE0NjMTMjY0JiIGFBY3ESERAeAqOjoq/oQoPDwovh4oKDoqKu7+XANIOir89Cg8PCgDDCo6/FQeKhweKB6WApT9bAACAAD/kgOYAyoACAARACtAKAQBAAMAbwADAgNvBQECAQJvAAEBZgoJAQAODQkRChEFBAAIAQgGBRQrATIAEAAgABAAEzI2NCYiBhQWAcy+AQ7+8v6E/vIBDr4+WFZ+WFgDKv7y/oT+8gEOAXwBDv2eWH5WWHxYAAAC//kAAAPvAkAAFwAjAGJLsAxQWEAhBAYCAgMFBQJlAAEAAwIBA14ABQAABVIABQUAWQAABQBNG0AiBAYCAgMFAwIFbQABAAMCAQNeAAUAAAVSAAUFAFkAAAUATVlAERkYISAdHBsaGCMZIzk1BwUWKwEWDwEOASMhIiYvASY3Nj8BNjMhMh8BFgUzJyEHMzIfASE3NgPHKAocBCQW/NAWJAQcCCgIHHgWHgIEHhZ4Hv7+smb91GayCAQoASwoBAGOKh6aFBoaFJogKAocdhYWdR0qcnIIZGQIAAAAAv/6/+gDjALWABoAKgA1QDIUAQUCAUcABQIGAgUGbQQBAQMBAgUBAl4ABgAABlQABgYAWAAABgBMNTQhEhEnNQcFGysBFg8BDgEjISImLwEmNxM2OwEHIxclIyczMhcTNiYjISIGHwEeATMhMjY3A3QYCiICIhb9OBYiAiIIFp4WMmgUhv4BAIgSZjIYWAIYFv18FhgCDgIiFAJQFiICATI0LLgUHh4UuDIuAXYuzNLSzC7+BhYgIBZKFh4eFgAABAAA/34DwAM+AAgAIQBVAGMAg0AVEwwCBAAlAQIEIBwCAwJaVgIFAwRHS7AMUFhAJgYBAAQAbwAEAgRvAAIDAm8AAwUFA2MABQEBBVQABQUBWQABBQFNG0AlBgEABABvAAQCBG8AAgMCbwADBQNvAAUBAQVUAAUFAVkAAQUBTVlAEwEAWVdIRzg2GRgFBAAIAQgHBRQrATIAEAAgABAAATQmJwYXHgE/AhYOARcWMx4BFxYHBhc2AQ4BBzIfAR4CFxYGFBYVFBYVFBYzMjYmNTQ+ATc2LgQjLgEGJjU0PgE3PgI3PgEDFjMyNyYHBg8BBiMOAQHgyAEY/uj+cv7mARoCYJx8EgIEHBAgFBYsLhYiPhweAgoYFiRW/i5wrigGEBwMHBQCBCRMEEgQCgIGGl4IEA4UMCIoAhA0FCIeKAgIEhoOBCpCQj6AYhpcGCkvSgIMHAM+/ub+cv7oARgBjgEa/iCE1ioYCCYaBgwCGC5CLEACRCBQPCwgcAIeDoxoAgMBBgoIDEI6NBQcUAQMVCxACCBUOBIiNiAYCggGAggeDgoiKAoODhIMBBr88BRELAoCDxEQAhgAAAAAAQAAAAAD6AKkABUALEApDAEBAgFHAAMAA28EAQACAG8AAgECbwABAWYBABIQCwoHBAAVARUFBRQrATIWFAYjISImNDYzFyY1NDYzMhYXNgL4ZIyMZP2+SmxqTBQCnG5ajBgcAe6IxIhokmgCDBpsmGhSBAACAAAAAAPoAqQAFQA2ADJALyABAgAtHQwDAQICRwADAANvBAEAAgBvAAIBAm8AAQFmAQASEAsKBwQAFQEVBQUUKwEyFhQGIyEiJjQ2MxcmNTQ2MzIWFzYHNjU0JyMmJzcyNTQnJg8BDgEVFB8BFhcPAQYVFBcWNzYC+GSMjGT9vkpsakwUApxuWowYHLQOHgQaDDIGCBASWyEYHgQIHjQCAggSEGQB7ojEiGiSaAIMGmyYaFIE2BAOFAwOAnQUDgQKEmIkIgwWCAIEDHIICAYKCAoUZAAAAAAB//z/lgGUAyQAEAAGsxAKAS0rFyY/ATYuAScmPgEWAh4CACgEJ08oBLgGBLC4CqAEugj+nGQEWrZcDE4QDNjKCP6UCE4m/mIAAAAAAQAA/8YDNAL4AA4AEEANDAMCAEUAAABmGAEFFSslNhInFhcWEAAgJyYnFiQCDGomSDQsgP8A/pSAKCB8ASbuagEkfBougP6W/wCAKDZGJgABAAD/iAPyAzQAGABEQEESBQIAAwFHAAQCBG8AAgMCbwABAAcAAQdtCAEHB24FAQMAAANSBQEDAwBYBgEAAwBMAAAAGAAYNxERERIREQkFGysFEyMHIzcnMxczAzMTIRceAgcUBg8BIQMBDHy0cGRQUGRwtHxk4AESJCQUNApMJCb+/uB4AZBkqqpkAZD+cAQEDhwUICICAv5wAAACAAD/5AOcAtQAGAAeAAi1HhoIAQItKwE2FgcGAgcOASclNwA3NiYHAS8BJjQ3NgABNRcGBwYDfg4QBAKMBAIYDP7qFgGEBgQKBP3acL4MDAgDYv3CoIIMEgLQBA4MBv2gDA4KBpYaAaQGBAoE/m4sTAQQBAQBMv0qzFJ0DA4AAAH/+P/iA64C8AAfABFADh4NAgBEAAAAZhoYAQUUKxM2BRYXFgcOAwcGJwYHBiY3PgM/ASIOAwcm7LYBRKgcBAZMbDBSNIr0QjAMRgosqraqODYONpqOtkYWAoZqKBYcBgQoin6KJGBcTGQYIhZkunhcFhQCGjJ2UvIAAAAG//z/kAOaAywACAARABoAIwAsADUAckBvEAsCAwIPDAIHAzMyLhoWFQYGByEeAgUGIh0CBAUFRwgBAAkBAgMAAmAAAwAHBgMHYAsBBgAFBAYFYAoBBAEBBFQKAQQEAVgAAQQBTCUkHBsKCQEAKSgkLCUsIB8bIxwjDg0JEQoRBQQACAEIDAUUKwE2ABIABAACABciBxc2Mhc3JgEmNDcnBhUWFwU2NycGIicHFjcyNjQmIgYUFiUXNic0JwcWFAHGvgEQBv72/oT+7gYBDL5eVD44hDg+WP6kHBxmLgIsAWhiUD48fDw+VmJcgIC4gIABWGguAixoHAMqAv74/oT+7gYBCgF8ARI6LGgcHGgu/fQ8fjw+WGZgVNgEKmgeHmgutIK2gIC2gmI+YF5gVD48fgAAAAL/9/9aAkMDYAATABwACLUcGA4EAi0rJRYGBwYmJwMmNjcnJjc2HwE2FhcHPgEuAQ4BHgECJxxaXl6iFmoUNDpgDhweEmJQlBzCHBgSMjgYEjKCUJoiHEpQAYBEhCi6Ig4SIMAWTE5oCjQ4GhI0OBoAAAAAAwAA/7YD6AMIABgAIAAtAKq1JQEJCwFHS7ANUFhAOwYDAgEHBQcBBW0MAQUABwUAawQBAAgHAAhrCgEICwsIYwACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNG0A8BgMCAQcFBwEFbQwBBQAHBQBrBAEACAcACGsKAQgLBwgLawACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNWUAeISEAACEtIS0sKykmIyIgHRsaABgAGBIkNSIRDgUZKwEVIRM2OwE2PwE+ATsBMhYXFhczMhcTITUDByEnJisBIhM1IQYHBiMhIjUnIRUByP44CgRgoBAVFw4SHN4aFAwSKqBgBAr+OqQcASQcDhyYHJYBrgYEBlT9EloKAa4BRmQBJGwaKS0aDA4YIFBs/txkAWI2Nhr9imRYTlRUpmQAAAQAAP+cA+gDIAAJABMAHQAkAFJATxsUAggHIx8CAAgCRwsJBgQCCgYACAEIAAFtBQMCAQFuAAcICAdUAAcHCFgACAcITB4eAQAeJB4kIiAdHBoZGBcWFREPDgwIBgAJAQkMBRQrATIWFREUBisBEQU0NjsBESMiJjUBFTMRIREzNTYyFzUmIyIHFQOEKjo6KjL8rjwoMjIoPAKebv3QbmKQJjQ6NjgCijwo/doqOgLuZCg8/RI6KgLyaP0SAu5oLpZCGBhCAAAAAQAAAAAA3AHMAAgAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFBAAIAQgDBRQrEzIWFAYiJjQ2bi5AQFxAQAHMQFpCQlpAAAAAAgAAAAACOgHMAAgAEQAtQCoFAgQDAAEBAFQFAgQDAAABWAMBAQABTAoJAQAODQkRChEFBAAIAQgGBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWkBAAcxAWkJAXEBAWkJAXEAAAwAAAAADmAHMAAgAEQAaADpANwgEBwIGBQABAQBUCAQHAgYFAAABWAUDAgEAAUwTEgoJAQAXFhIaExoODQkRChEFBAAIAQgJBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWEJAAYwuQEBcQEABzEBaQkJaQEBaQkJaQEBaQkJaQAAAAAL//P9+A9gDSgANAB8ACLUfFAgBAi0rNzYeAgcGBwY3NDc+AQEWAAcGBwYnJicmJyY3Njc2AHYmXlIMJFaOVAQGNBgDbBr+pHYmVggIEh4gIhAIQCh2AcSqIgpQXiRUEgwaBAY8qgKoGv5EdCZCBg4iHiAQBgpUJnQBVgADAAAAAAPoAjoAFQAeACcATUBKJRkTCAQEBQFHAwgCAAcBBQQABWAKBgkDBAEBBFQKBgkDBAQBWAIBAQQBTCAfFxYBACMhHycgJx0bFh4XHhEPDAoGBAAVARULBRQrATIWFAYjIiYnDgEjIiY0NjMyFhc+AQEyNjcuASMiECEyECMiBgceAQMcVHh4VE6ePDqeTlZ4eFZOnjo6oP4APIYuLoQ+cgLAcnI+hiwshgI6auJsUEJCUGziak5CQk7+oEo6Okr++AEISjo6SgAC//IAAAPqArwAEAAcAChAJRwbGhkYFxYVFBMSCwEAAUcCAQABAG8AAQFmAQAJBgAQAQ8DBRQrATIWFREUBiMhIicBJjcBNjMBNyc3JwcnBxcHFzcDhio6Oir+IiYg/qwcHAFUHigBUkiAgEiAgEiAgEiAArw6Kv4MKDwcASgaHAEoGv3aSn6ASH5+SIB+SoAAAAAAAgAA/7oDSAMCAAQAEgAcQBkFAAIARQAAAgBvAAIBAm8AAQFmIigRAwUXKwERIT4BNx4BFRQGIyImJyEyNjUBcP6QEs76nNL2sKDsFgGoFB4DAv6Qks4QFO6grvjSnhwWAAAAAAP/+P+wA/wDEAAGABgAMAAlQCIYEwYDAQABRycUBQMARQAAAQBvAAECAW8AAgJmKyUYAwUXKxMmNzYfAQclNhYXFg8BBiMiJyUnNxcWFwUJAQYjIicuATcBNjc2HwETPgEXFgcDBiciKgoKLGI0AzYOJgwgIvwMEg4O/uI2MiQMBAEI/vT+ogwaDAwQCAoBdggUEhL24gokECYa/BgmARwKLioKGFAEDAIOICDiDArcDlAIBATMAab92hYICiYOAkwQBAYMnAFGEAYMGCb+liQYAAAAAwAA/5wDIAMgAAgAEQAaADZAMwYBAAIAbwcBAgQCbwgBBAEEbwUDAgEBZhMSCgkBABcWEhoTGQ4NCREKEAUEAAgBBwkFFCsBMhYVESMRNDMDMhYVESMRNDMDMhYdASM1NDMC7hYcyCi+FhzIKL4WHMgoAyAeFPyuA1Iy/tQeFP3aAiYy/tQeFPr6MgAB//7/2APUAvIAFAAKtwAAAGYjAQUVKwE2FREhIiY3EzYfARY2PwE2HwEWNwPEEPw8DAYI5hQUSgoWBp4QFnAUEgLcFhr9AA4KASAWFEIIAgruGhZoFBgAAwAAAAAD6AJEABQAHQAmAD9APAIIAgAHAQUDAAVgCQYEAwMBAQNUCQYEAwMDAVgAAQMBTB8eAQAjIh4mHyYcGxgXEA8LCgcEABQBFAoFFCsBMhYUBiMhIiY0NjIWFRQHMyY1NDYFFBYyNjQmIgYFMjY0JiIGFBYDAmCGhmD95F6IiL6GKKAoiP3ATGxMTGxMAp42TExsTEwCRIa+iIi+hoZgSDpAQmCG5jROTmpMTLhOakxMak4AAAMAAP/iA+gC7gAQACoANwAiQB8wLyAVAgEGAAIBRwABAgFvAAIAAm8AAABmIywaAwUXKzcFJQcOAgcOAiIuAScuAQEWFA8BJSYjIgYUFjMyNw0BBiclJjQ3JTYXATYmLwE3HgIHDgEmpgFOARQOAhIeHihQLiAwUChIPgMaGBhO/swWRCg2NigaCgEk/vQ8PP5gGBgBoDw8ASASCg4ORgYMFhIEJCLuqIhSChoUDBIuFhowECBKAT4OJg4sZiQgMCAERJggIOoOJg7qICD9XHSEGBYmCCiidBoIEgAFAAD/4gP6AtoAOQBBAEsAYwBmAGVAYisiAgcBZjUYAwIHFwEDAj0LAggDQgEFCDwGAgQFBkcAAQcBbwAHAgdvBgEEBQAFBABtAAAAbgACAAMIAgNgAAgFBQhSAAgIBVYABQgFSmVkY2BbWlZVUlFIRzg2JyUTCQUVKwEWBgciLwEmNz4BJw4DJy4BNTQ3NjcnDgEnNCY1JjYzNzQnNDMyNzIdATYzNhcUFhUWDwEVMzIWBRY3JwYHBhQ3PgInJiMiBiMlFhIWFCsBIjUnIwYHFCsBIjU2EzY7ATIDMwMD3B5QXgoCIAIEVj4qEC5IZDg0QDwyQAKMDAQKAgYEnAIILgYKngYIAggECLAMVnz+phwiBCIaLKgcPB4IJDwCCAL+PgpWUARWBjKwMAIGVgQKpgIIYAqCkEgBMlK8QgImBgQ8uDgmTFQuCAZGOlRAMhBkGAIGAjYEAgQcbgQIAghoFgQKAioECgIeZkjgBgzWDBwsghYYWEYGEgKyHP7u+AYEpqQCBAQSAhYI/rwBCAAAAwAA/4YDrAMyAAMAIwAnADJALyYjHAEEAwInJQIDAQMTDAMDAAEDRwACAwJvAAMBA28AAQABbwAAAGYmFyYZBAUYKxMBFwkBFhQHAQYiLwE2NTQmIyIHJyY0NwE2Mh8BBhUUFjMyNwkD2AFGsv66AhQODv3aECgQTAw6KhYcShAQAiYOLA5KDDwqGhb+OAGW/v7+aAEQAUay/roBpg4sDv3aEBBMFBwqPA5MECgQAiYODkwWGio6DP2+AZYBAv5qAAAAAAMAAP9qA6wDUAAPACAAMAAqS7AfUFhADAEBAAIAbwACAg0CSRtACgEBAAIAbwACAmZZtisqHxYDBRYrEx4CFRQGIiY1ND4BNzYyBR4CFRQGIiY1ND4CNzYyATYyFR4CFRQGIiY1ND4BqApQQmCEYEJQCgIKAmgKUEJghGAqNjQIAgr+wAIKClBCYIRgQlADTFaKbDpCXl5COmyKVgQEVopsOkJeXkIwWkJ2RAT+QAQEVopsOkJeXkI6bIoAAgAA/34CMAM+ABEAIwAkQCEAAQIBbwACAwJvAAMAAANUAAMDAFgAAAMATCgUGBcEBRgrAR4DFRQGIiY1ND4CNzYyAzYnJiIPAQ4CFRQWMzI1NDcBIg5cXEim5KZIXFwOAhIqAgQGEAQoICAkIhg6KgM2dsp0nFJypKRyUpx0ynYI/nAECgYGOi4wZjIYIkRemAAAAAP/7//sA5sC3AAZADYAVQA2QDMAAwECAQMCbQACBQECBWsABQQBBQRrAAQEbgAAAQEAVAAAAAFYAAEAAUwdLx0sJxoGBRorEwYuATY3PgIeAjY3NhcWBwYjIicuAQ4BBTYWBw4CIyInLgEOAQcGJicmPgMWFx4BPgEXNhcWBgcOAiMiJy4BDgEHBiYnJj4DFhceAT4BVRAoHAQQMD50jrCGQjgmICAmenBkekRmVC4CtCZAJigyXjJgfkRmVC4sDioOIEwsXlKARkRmVC4sJiAOBBAoMl4yYH5EZlQwKg4qDiBMLF5SgEZEZlQuAhYOBB4sDigoKCBkBiYwHiQoIG5GJhwcHpIgTiAiJiZGJhwcHiQOBBAoQiAsAiAoJhwcHtwgJg4sDiImJkYmHBogJA4EEChCICwCICgmHBweAAAACQAAAAAD6AK8AA8AEwAXABsAJwArAC8ANQBBAQFLsCpQWEBSFwEJBwwICWUfGhIDDAgHDGMbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTBtAVBcBCQcMBwkMbR8aEgMMCAcMCGsbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTFlATTY2MDAUFBAQAQA2QTZBQD8+PTw7Ojk4NzA1MDU0MzIxLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFBcUFxYVEBMQExIRCQYADwEOIAUUKwEyFhURFAYjISImNRE0NjMBESERATUhFRMzFSMXMzUzNTMVIxUjFSMzIzUzByM1MzcVIzUzFQcVIzUzNTM1MxUjFQOEKjo6KvzgKDw8KAMg/OADIPzgZB4etB4ePB4ePHgeHpY8PB4ePJY8Hh48HgK8PCj+DCo6OioB9Cg8/agBLP7UAcIyMv8AHh4eHh4eHh4eHh4ePB4eHh4eHh4eAAAAAAMAAP/OAyAC7gANABcAGwBGQEMBAQQFAUcAAwQABAMAbQAAAG4GAQEAAgUBAl4HAQUEBAVSBwEFBQRWAAQFBEoYGAAAGBsYGxoZFhMQDwANAAw0CAUVKwEXERQGIyEiJjURNDYzATUhFRQWMyEyNicVIzUCko46Kv2oKDw8KAH0/nAeFAEsFB4yZALunP3gKDw8KAJYKjr+1Pr6FB4e3MjIAAAAAgAA/2oCvANSABEAGQCES7AfUFhAHgADBAEEAwFtBwUCAwAABAMABF8ABgYMSAABAQ0BSRtLsCRQWEAdAAMEAQQDAW0AAQFuBwUCAwAABAMABF8ABgYMBkkbQCcABgAGbwADBAEEAwFtAAEBbgcFAgMABAQAVAcFAgMAAARXAAQABEtZWUALEREREREVNRAIBRwrATIWFREUBiMhIiY1ETQ2MxchJyEnMzczFzMCdhwqKhz90BwqKhw8Abgo/pgsbCSgJG4C7ioc/QgeKCgeAvgcKpYyZGRkAAAAAAL/+f+UA2QDMgAsADkACLU5MysVAi0rAR4BBwYuAgcOARcWFx4BFxYHBgcGJyYnLgEnBgcGJicmNjc+BTc2FhM+AS4DDgEeAwMYOhIwHEJAhlIcHAgWGAQoBA4kMjQeGCAaBjgSHggiUA4RGB9+rkosBhgYMKQgCAQaOE44EAQYOFA4AfSK8BQMHjIgCAQeFjg0ChgIIgwWEgo0TDgMChoKBAwwJCBeDjRwXlpCNAoUtP5KBESAgnI2CEyGhGouAAMAAP+mArwDFgAQACAALQA/QDwTAQUECQECAwJHBgEEBQRvAAUDBW8AAwACAQMCYAABAAABVAABAQBYAAABAEwiISgnIS0iLRcXGBUHBRgrJTYdARQGICY9ATQ2Fx4BMjYTNhcVFAYgJj0BNBceATI2ATIWHQEUBiAmPQE0NgKuDtD+5tIIBiC67LoiCATM/t7ODh687Lz+zpDOzv7gzs7QFBZkSnp6SmQIBAo0REQBMhAQdERcXER0FBQuOjoBdk42QDpSUjpANk4AAAL/+v/mA44C1AATACMAJEAhAAECAW8AAgMCbwADAAADVAADAwBYAAADAEw1NDc1BAUYKwEWDwEOASMhIiYvASY3EzYzITIXEzYmIyEiBh8BHgEzITI2NwN0GgwiAiIW/TgUJAIiCBaeFjIBmDIYWAIYFv18FhgCDgIiFgJOFiICATAsNLgUHh4UuDQsAXYuLv4GFiAgFkoWHh4WAAP/+P+wA5gDDAAkACoANwBeQFspIAIDBSUYAgIDKAEEAgwBAQQERwACAwQDAgRtAAQBAwQBawABAW4HAQAABgUABmAIAQUDAwVUCAEFBQNYAAMFA0wsKwEAMjErNyw3GxoUExAPCAcAJAEkCQUUKwEyFgcDDgIiLgEvARY2NzI2NCYiBhUUFw4BJy4BJyY3JicmNgEeARcnBiUyPgE0LgEiDgEUHgECCq7gCFwCRpCkjkYCBFKiOhwoKDoqCjCGQGZuBAikEgQI4P7oBEI6IGQByFKWTEyUppRMTJQDDGI4/bQSNDAwNBIeBlJMKDoqKhwUEDo+BApePno+Xiw4Yv4qIDYMzCyWJCocKiQkKhwqJAAAAAIAAP9qAhwDUgASACEAckAJHBkLAAQCAwFHS7AfUFhAFgADAwFYAAEBDEgEAQICAFgAAAANAEkbS7AkUFhAEwQBAgAAAgBcAAMDAVgAAQEMA0kbQBoAAQADAgEDXgQBAgAAAlQEAQICAFgAAAIATFlZQA0UExsaEyEUITcVBQUWKwEeARUUBiImNTQ2NxE0OwEyFhUDMjY1NCYnESMRDgEVFBYBkEBMnuCeTEAoqhQegkZkQDRkNkZkAWQkfExwnp5wTHwkAbwyHhT8rmRGOFgQAXL+kBBaOEZkAAAC//r/cAMaA1YAGQAtABBADRIBAEQAAABmKyoBBRQrARYGBwYnDwIGDwEGJi8BJjcBJicmNjc2Fgc2LgEGBw4BHwEeAR8BHgIyPgEDBhRgZkJAdkZoDiBMDBQCEAgUAQIYDhKOcmqybB4SVGQeCAgDBQIWB0MQDhgOFBACZHTGEgwKwgymHAQOBBAOYh4aAYIyRmqiFBSCvCxqPhQsDBYJEAcUBTEMCBACDgAABAAA/4gCgAM0ACoAMwA8AEUAh0CEFQwCBQslAQcEAkcACwwFDAsFbQADAAwLAwxgAAUQAQkEBQlgAAQABwoEB2AACgAGAAoGYA8BAAAOCAAOYAAIAAINCAJgEQENAQENVBEBDQ0BWAABDQFMPj0sKwEAQkE9RT5FOzo3NjAvKzMsMyknJCIhHxwaGRcREAkHBgQAKgEqEgUUKyUyFhQGIyInIyImNREmNTQ2MhYVFAcVFDsBNjMyFhQGIyInIyInFRQ7ATYTIgYUFjI2NCYBFBYyNjQmIgYBMjY0JiIGFBYCCDJGRjJQHqRYVkhGZEZITqQeUDJGRjJQHqQqJE6kHlAcKio4Kir+Dio4Kio4KgHWHCoqOCoqeEZkRkpsQAHQIkwyRkYyTCJyTkhGZEZKEMJOSAEsKDooKDooARgcKCg6KCj84ig6KCg6KAAEAAD/ugKAAwIALAA1AD4ARwBYQFUmIB8WFQwGBgMBRwoHAgMEBgQDBm0ABgUEBgVrAgEBCAEEAwEEYAkBBQAABVQJAQUFAFgAAAUATEA/NzZEQz9HQEc7OjY+Nz40MzAvKyobGhEQCwUUKwEUBw4DBw4DBxYVFAYiJjU0NxEmNTQ2MhYVFAcVNjc+AjcmNTQ2MhYFFBYyNjQmIgYTMjY0JiIGFBYBMjY0JiIGFBYCgEoGLE46LioqNBgERkZkRkhIRmRGSChiOjQyBEZGZEb9tCg4Kio4KEQcKio4KCgBrBwqKjgoKAKKUB46VjQYDg4QIDAkHlAyRkYyTiIBeiJMMkZGMkwizB4eEhY8LiBMMkZGMhwoKDooKP1GKDooKDooAlgoOigoOigAAAAFAAD/iAOsAzQAQwBMAFUAXgBnAHJAbzwzAgUKGg8CAQUrIhkQCQAGCAEDRwAKCwULCgVtDwwCCAEJAQgJbQAGAAsKBgtgBwEFAwEBCAUBYBAODQMJAAAJVBAODQMJCQBYBAICAAkATGBfZGNfZ2BnXVxZWFRTUE9LShU2FjcYNhY2FBEFHSslFhUUBiImNTQ3NTQrASInFRYVFAYiJjU0NzUGKwEiDgEdARYVFAYiJjU0NzU0NjsBMj0BJjU0NjIWFRQHFRQ7ATIWFQU0JiIGFBYyNhMUFjI2NCYiBhM0JiIGFBYyNgUyNjQmIgYUFgNkSEZkRkhMZCwiSEZkRkgeLmQiJgZIRmRGSFZYZExIRmRGSE5kVlb9Wio4KCg4KtQoOCoqOCiKKjgoKDgqARgcKio4KChwIk4yRkYyTiJyTgzMIk4yRkYyTiLMDCYcDHIiTjJGRjJOInJAbDSMIkwyRkYyTCKMNGxA4h4oKDooKALYHCgoOigo/SYeKCg6KCgoKDooKDooAAMAAP+6APADAgATABwAJQBEQEETCgkABAUCAUcAAgMFAwIFbQAFBAMFBGsAAQADAgEDYAYBBAAABFQGAQQEAFgAAAQATB4dIiEdJR4lExcZFAcFGCs3FhUUBiImNTQ3ESY1NDYyFhUUBycUFjI2NCYiBhMyNjQmIgYUFqhIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCiiIk4yRkYyTiIBeiJMMkZGMkwibhwoKDooKP1GKDooKDooAAAGAAD/ugKAAwIAEwAcACUAOQBCAEsAYEBdOTAvJg0MAwIIAgQBRwgMAgQFAgUEAm0LAQIDBQIDawcBAQkBBQQBBWANCgIDAAADVA0KAgMDAFgGAQADAExEQx4dSEdDS0RLQUA9PDU0KyoiIR0lHiUTFBkXDgUYKxMUBxEWFRQGIiY1NDcRJjU0NjIWAzQmIgYUFjI2AzI2NCYiBhQWARYVFAYiJjU0NxEmNTQ2MhYVFAcnFBYyNjQmIgYTMjY0JiIGFBbwSEhGZEZISEZkRjIqOCgoOCpGHCoqOCgoAdxIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCgCikwi/oYiTjJGRjJOIgF6IkwyRkb9dh4oKDooKAIwKDooKDoo/lwiTjJGRjJOIgF6IkwyRkYyTCJuHCgoOigo/UYoOigoOigAAAL/+f+uA2MDLgApADIAH0AcDAsCAEQAAgECbwABAAFvAAAAZjAvLCsZFwMFFCslHgEOAg8BBiY/AScHBiY/ATY/AT4COwEXPgQXMhcWFxYOAgcTFjI2NCYiBhQCHwYEFAZADZsgGgoogmocHgwfEwgWDhYkFzRHCiZ0eKpQCAYEAgo4YGQkDhZALCxALOwyPjgYKAZEDCAcboQoDBwgTzEQLR0OGgYOMnhYPgwGBApSrIJqHAEMFi5ALi5AAAAAAAMAAP/4A+gCsgAIAB0ALgAxQC4bAQABLBMCAgACRwACAAJwAAEAAAFUAAEBAFgDAQABAEwKCSQjGhgJHQodBAUUKyU2ABcWAgcGJhMiBhUUFxYOASYnNCY1NAAzMhcHJgUWFRQOASsBLgE3NjU0JzY3AZYiAWgODNgeMqyOqOgCAhwoIAICASLSSD5GKAFSigQcFAQWGgICUAYOsjgByAgG/eA2VmQB0v64HhAWHgQcFAgkCuIBOBJWBD6a3iYmGgQgFA4glnYOJQAAAAEAAAABAABtov+mXw889QALA+gAAAAA01VL3wAAAADTVUvf/+D/WgP8A2AAAAAIAAIAAAAAAAAAAQAAA1L/agAAA+v/4P/mA/wAAQAAAAAAAAAAAAAAAAAAANkD6AAAA9T/9wMVAAADhv/5A4T//gNcAAADXAAAA3AAAANwAAADrAAAA+gAAAPoAAAD1AAAA+j/+APoAAACWAAAArwAAAKb//0B1gAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA5j//AHMAAADmP/8A1IAAAOE//wDIAAAA6v//gK8AAACvAAAA+gAAAPA//4BaAAAAiYAAAOEAAADIAAAAyAAAAPo//gD6P/4A+gAAAOEAAAD6AAAA4QAAAL6AAAD6AAAA+gAAAMMAAACuv/gA9QAAAPoAAAD6AAAAyAAAAPoAAADIP/4A8L/+gOF//0D6AAAA+gAAAH0AAAD6AAAA1wAAAPA//wCqf/8AvgAAAK8AAAD6f/4A+gAAAK8AAACvAAAAyAAAAOEAAACvAAAA+n//gPV//wDhAAAAvgAAAMg//8DSAAAA+j/+gMgAAAD6AAAA4QAAANb//wDhAAAA4QAAAOEAAACgAAAA3QAAAOO//gDgP/8A5gAAAIwAAACvP/7ArwAAAPoAAAD6AAAA8AAAAMYAAADhAAAAyAAAAPoAAAD6AAAAcwAAAOYAAADmAAAA5gAAAOYAAACRAAAAVUAAAFU/+4CRAAAAdL/8wEJ//QBCf/zAdD/9ANi//MB0f/0AdH/8wNg//QClAAAAtoAAALaAAAClAAAAcwAAAGQAAABkAAAAcwAAAL4AAAC2gAAAtoAAAL4AAAB9AAAA9QAAAPUAAAB9AAAA6wAAAOsAAADNP/+AugAAANSAAAD6AAAA4QAAAPoAAAB9AAAAlgAAAISAAACvAAAAlgAAAJYAAADcAAAA3AAAAPoAAAD6AAAA+gAAAPoAAADXAAAArwAAAPoAAAD6AAAA6wAAAPoAAACRAAAA5gAAAPn//kDhf/6A8AAAAPoAAAD6AAAAZD//AM0AAAD6AAAA5kAAAOs//gDmP/8AjH/9wPoAAAD6AAAANwAAAI6AAADmAAAA8L//APoAAAD6v/yA0gAAAPr//gDIAAAA9T//gPoAAAD6AAAA+kAAAOsAAADrAAAAjAAAAOJ/+8D6AAAAyAAAAK8AAADXP/5ArwAAAOG//oDkf/4AhwAAAMM//oCgAAAAoAAAAOsAAAA8AAAAoAAAANc//kD6AAAAAAAAABMAJAA4AEuAVgBpgHMAhQCYgLsA2ADxgQoBLAFEgVqBZoF2gYYBlwGlAbaByoHTAd8B7YIJAi2CUgJwgn8CjgKtgsgC3ILxAwqDIwMrgz+DTYNig3iDlgOyA8WD0YPhA+yEBAQSBCmEOQRUhHgEigS5BMUE2wT0BQWFMYVTBWqFeoWSBZ6Fu4XPBe+F/wYRhh6GOQZPBngGkAaiBrwG5gb4hwqHHQc8h2aHfgedh7WHzofoiA6IM4hfiHYIloieiLQI7IkSCUMJionRCecJ8wn+ihSKNwpUClsKcgqGCpmKsAq6CsWK0IraiuKK6oryivmLAosLixSLHQsliy6LN4s/C0ULSQtNC1MLW4tkC20LdIuKC5MLnAuji7YLyIvbi+gL9AwUDCYMNQw8jEWMUYxaDGaMcgx+DIsMmYyrjMAM1ozuDRQNMw1QDWaNeY2njbaN0g3qDiGOMA5LDlSOXo5yDoIOkY64DsaO7g8HDxAPHY8wDz+PWQ9rj3gPko+kD68Pxg/hkBOQLBBDkFYQfhC2EMqQ5hD+EReRKxFNkWkRfpGoEc2R/pIVkj2SVZJuwABAAAA2QBxAA4AAAAAAAIASgBaAHMAAAC9C3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE2IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA2ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAAdwYWxldHRlBnNlYXJjaApmbGFzaGxpZ2h0BG1haWwFaGVhcnQLaGVhcnQtZW1wdHkEc3RhcgpzdGFyLWVtcHR5BHVzZXIFdXNlcnMIdXNlci1hZGQFdmlkZW8HcGljdHVyZQZjYW1lcmEGbGF5b3V0BG1lbnUFY2hlY2sGY2FuY2VsDmNhbmNlbC1jaXJjbGVkDmNhbmNlbC1zcXVhcmVkBHBsdXMMcGx1cy1jaXJjbGVkDHBsdXMtc3F1YXJlZAVtaW51cw1taW51cy1jaXJjbGVkDW1pbnVzLXNxdWFyZWQEaGVscAxoZWxwLWNpcmNsZWQEaW5mbwxpbmZvLWNpcmNsZWQEYmFjawRob21lBGxpbmsGYXR0YWNoBGxvY2sJbG9jay1vcGVuA2V5ZQN0YWcIYm9va21hcmsJYm9va21hcmtzBGZsYWcJdGh1bWJzLXVwC3RodW1icy1kb3duCGRvd25sb2FkBnVwbG9hZAx1cGxvYWQtY2xvdWQFcmVwbHkJcmVwbHktYWxsB2ZvcndhcmQFcXVvdGUEY29kZQZleHBvcnQGcGVuY2lsB2ZlYXRoZXIFcHJpbnQHcmV0d2VldAhrZXlib2FyZAdjb21tZW50BGNoYXQEYmVsbAlhdHRlbnRpb24FYWxlcnQFdmNhcmQHYWRkcmVzcwhsb2NhdGlvbgNtYXAJZGlyZWN0aW9uB2NvbXBhc3MDY3VwBXRyYXNoA2RvYwRkb2NzDWRvYy1sYW5kc2NhcGUIZG9jLXRleHQMZG9jLXRleHQtaW52CW5ld3NwYXBlcglib29rLW9wZW4EYm9vawZmb2xkZXIHYXJjaGl2ZQNib3gDcnNzBXBob25lA2NvZwV0b29scwVzaGFyZQlzaGFyZWFibGUGYmFza2V0A2JhZwhjYWxlbmRhcgVsb2dpbgZsb2dvdXQDbWljBG11dGUFc291bmQGdm9sdW1lBWNsb2NrCWhvdXJnbGFzcwRsYW1wCmxpZ2h0LWRvd24IbGlnaHQtdXAGYWRqdXN0BWJsb2NrC3Jlc2l6ZS1mdWxsDHJlc2l6ZS1zbWFsbAVwb3B1cAdwdWJsaXNoBndpbmRvdwthcnJvdy1jb21ibwxkb3duLWNpcmNsZWQMbGVmdC1jaXJjbGVkDXJpZ2h0LWNpcmNsZWQKdXAtY2lyY2xlZAlkb3duLW9wZW4JbGVmdC1vcGVuCnJpZ2h0LW9wZW4HdXAtb3Blbg5kb3duLW9wZW4tbWluaQ5sZWZ0LW9wZW4tbWluaQ9yaWdodC1vcGVuLW1pbmkMdXAtb3Blbi1taW5pDWRvd24tb3Blbi1iaWcNbGVmdC1vcGVuLWJpZw5yaWdodC1vcGVuLWJpZwt1cC1vcGVuLWJpZwRkb3duBGxlZnQFcmlnaHQCdXAIZG93bi1kaXIIbGVmdC1kaXIJcmlnaHQtZGlyBnVwLWRpcglkb3duLWJvbGQJbGVmdC1ib2xkCnJpZ2h0LWJvbGQHdXAtYm9sZAlkb3duLXRoaW4JbGVmdC10aGluCnJpZ2h0LXRoaW4HdXAtdGhpbgNjY3cCY3cKYXJyb3dzLWNjdwpsZXZlbC1kb3duCGxldmVsLXVwB3NodWZmbGUEbG9vcAZzd2l0Y2gEcGxheQRzdG9wBXBhdXNlBnJlY29yZAZ0by1lbmQIdG8tc3RhcnQMZmFzdC1mb3J3YXJkDWZhc3QtYmFja3dhcmQKcHJvZ3Jlc3MtMApwcm9ncmVzcy0xCnByb2dyZXNzLTIKcHJvZ3Jlc3MtMwZ0YXJnZXQEbGlzdAhsaXN0LWFkZAdiYXR0ZXJ5DGJhY2staW4tdGltZQdtb25pdG9yBm1vYmlsZQJjZAVpbmJveAdpbnN0YWxsBWdsb2JlBWNsb3VkDWNsb3VkLXRodW5kZXIFZmxhc2gEbW9vbgZmbGlnaHQLcGFwZXItcGxhbmUEbGVhZghsaWZlYnVveQVtb3VzZQlicmllZmNhc2UIc3VpdGNhc2UDZG90BWRvdC0yBWRvdC0zBWJydXNoCGluZmluaXR5BWVyYXNlCWNoYXJ0LXBpZQpjaGFydC1saW5lCWNoYXJ0LWJhcgpjaGFydC1hcmVhBHRhcGUOZ3JhZHVhdGlvbi1jYXAIbGFuZ3VhZ2UGdGlja2V0BXdhdGVyB2Ryb3BsZXQDYWlyC2NyZWRpdC1jYXJkBmZsb3BweQljbGlwYm9hcmQJbWVnYXBob25lCGRhdGFiYXNlBWRyaXZlBmJ1Y2tldAt0aGVybW9tZXRlcgNrZXkMZmxvdy1jYXNjYWRlC2Zsb3ctYnJhbmNoCWZsb3ctdHJlZQlmbG93LWxpbmUNZmxvdy1wYXJhbGxlbAZyb2NrZXQFZ2F1Z2UAAAAAAAABAAH//wAPAAAAAAAAAAAAAAAAAAAAAAAYABgAGAAYA2D/WgNg/1qwACwgsABVWEVZICBLuAAOUUuwBlNaWLA0G7AoWWBmIIpVWLACJWG5CAAIAGNjI2IbISGwAFmwAEMjRLIAAQBDYEItsAEssCBgZi2wAiwgZCCwwFCwBCZasigBCkNFY0VSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQpDRWNFYWSwKFBYIbEBCkNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ABK1lZI7AAUFhlWVktsAMsIEUgsAQlYWQgsAVDUFiwBSNCsAYjQhshIVmwAWAtsAQsIyEjISBksQViQiCwBiNCsQEKQ0VjsQEKQ7ABYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZISCwQFNYsAErGyGwQFkjsABQWGVZLbAFLLAHQyuyAAIAQ2BCLbAGLLAHI0IjILAAI0JhsAJiZrABY7ABYLAFKi2wBywgIEUgsAtDY7gEAGIgsABQWLBAYFlmsAFjYESwAWAtsAgssgcLAENFQiohsgABAENgQi2wCSywAEMjRLIAAQBDYEItsAosICBFILABKyOwAEOwBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAssICBFILABKyOwAEOwBCVgIEWKI2EgZLAkUFiwABuwQFkjsABQWGVZsAMlI2FERLABYC2wDCwgsAAjQrILCgNFWCEbIyFZKiEtsA0ssQICRbBkYUQtsA4ssAFgICCwDENKsABQWCCwDCNCWbANQ0qwAFJYILANI0JZLbAPLCCwEGJmsAFjILgEAGOKI2GwDkNgIIpgILAOI0IjLbAQLEtUWLEEZERZJLANZSN4LbARLEtRWEtTWLEEZERZGyFZJLATZSN4LbASLLEAD0NVWLEPD0OwAWFCsA8rWbAAQ7ACJUKxDAIlQrENAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAOKiEjsAFhIIojYbAOKiEbsQEAQ2CwAiVCsAIlYbAOKiFZsAxDR7ANQ0dgsAJiILAAUFiwQGBZZrABYyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wEywAsQACRVRYsA8jQiBFsAsjQrAKI7ABYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wFCyxABMrLbAVLLEBEystsBYssQITKy2wFyyxAxMrLbAYLLEEEystsBkssQUTKy2wGiyxBhMrLbAbLLEHEystsBwssQgTKy2wHSyxCRMrLbAeLACwDSuxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAfLLEAHistsCAssQEeKy2wISyxAh4rLbAiLLEDHistsCMssQQeKy2wJCyxBR4rLbAlLLEGHistsCYssQceKy2wJyyxCB4rLbAoLLEJHistsCksIDywAWAtsCosIGCwEGAgQyOwAWBDsAIlYbABYLApKiEtsCsssCorsCoqLbAsLCAgRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOCMgilVYIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgbIVktsC0sALEAAkVUWLABFrAsKrABFTAbIlktsC4sALANK7EAAkVUWLABFrAsKrABFTAbIlktsC8sIDWwAWAtsDAsALABRWO4BABiILAAUFiwQGBZZrABY7ABK7ALQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixLwEVKi2wMSwgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhOC2wMiwuFzwtsDMsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYbABQ2M4LbA0LLECABYlIC4gR7AAI0KwAiVJiopHI0cjYSBYYhshWbABI0KyMwEBFRQqLbA1LLAAFrAEJbAEJUcjRyNhsAlDK2WKLiMgIDyKOC2wNiywABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyCwCEMgiiNHI0cjYSNGYLAEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBENgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA3LLAAFiAgILAFJiAuRyNHI2EjPDgtsDgssAAWILAII0IgICBGI0ewASsjYTgtsDkssAAWsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA6LLAAFiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wOywjIC5GsAIlRlJYIDxZLrErARQrLbA8LCMgLkawAiVGUFggPFkusSsBFCstsD0sIyAuRrACJUZSWCA8WSMgLkawAiVGUFggPFkusSsBFCstsD4ssDUrIyAuRrACJUZSWCA8WS6xKwEUKy2wPyywNiuKICA8sAQjQoo4IyAuRrACJUZSWCA8WS6xKwEUK7AEQy6wKystsEAssAAWsAQlsAQmIC5HI0cjYbAJQysjIDwgLiM4sSsBFCstsEEssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyBHsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxKwEUKy2wQiywNSsusSsBFCstsEMssDYrISMgIDywBCNCIzixKwEUK7AEQy6wKystsEQssAAVIEewACNCsgABARUUEy6wMSotsEUssAAVIEewACNCsgABARUUEy6wMSotsEYssQABFBOwMiotsEcssDQqLbBILLAAFkUjIC4gRoojYTixKwEUKy2wSSywCCNCsEgrLbBKLLIAAEErLbBLLLIAAUErLbBMLLIBAEErLbBNLLIBAUErLbBOLLIAAEIrLbBPLLIAAUIrLbBQLLIBAEIrLbBRLLIBAUIrLbBSLLIAAD4rLbBTLLIAAT4rLbBULLIBAD4rLbBVLLIBAT4rLbBWLLIAAEArLbBXLLIAAUArLbBYLLIBAEArLbBZLLIBAUArLbBaLLIAAEMrLbBbLLIAAUMrLbBcLLIBAEMrLbBdLLIBAUMrLbBeLLIAAD8rLbBfLLIAAT8rLbBgLLIBAD8rLbBhLLIBAT8rLbBiLLA3Ky6xKwEUKy2wYyywNyuwOystsGQssDcrsDwrLbBlLLAAFrA3K7A9Ky2wZiywOCsusSsBFCstsGcssDgrsDsrLbBoLLA4K7A8Ky2waSywOCuwPSstsGossDkrLrErARQrLbBrLLA5K7A7Ky2wbCywOSuwPCstsG0ssDkrsD0rLbBuLLA6Ky6xKwEUKy2wbyywOiuwOystsHAssDorsDwrLbBxLLA6K7A9Ky2wciyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sAEVMC0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAVCsgABACqxAAVCswoCAQgqsQAFQrMOAAEIKrEABkK6AsAAAQAJKrEAB0K6AEAAAQAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmzDAIBDCq4Af+FsASNsQIARAAA") format("truetype"), url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cmetadata%3ECopyright (C) 2016 by original authors %40 fontello.com%3C%2Fmetadata%3E%3Cdefs%3E%3Cfont id%3D%22fontello%22 horiz-adv-x%3D%221000%22 %3E%3Cfont-face font-family%3D%22fontello%22 font-weight%3D%22400%22 font-stretch%3D%22normal%22 units-per-em%3D%221000%22 ascent%3D%22850%22 descent%3D%22-150%22 %2F%3E%3Cmissing-glyph horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22palette%22 unicode%3D%22%26%23xe800%3B%22 d%3D%22M857 622q72-48 101-110t20-104-35-48q-16-4-54 10t-80 10-80-46q-30-46-21-75t34-65 23-50q-2-26-36-63t-126-74-216-37q-186 0-291 101t-95 245q8 118 104 235t216 151q290 84 536-80z m-318-466q30 0 52 22t22 54-22 53-52 21q-32 0-54-21t-22-53 22-54 54-22z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22search%22 unicode%3D%22%26%23xe803%3B%22 d%3D%22M772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z%22 horiz-adv-x%3D%22789%22 %2F%3E%3Cglyph glyph-name%3D%22flashlight%22 unicode%3D%22%26%23xe804%3B%22 d%3D%22M807 706q62-62 85-130t-5-92l-134-134q-16-16-62-26t-96-4l-408-408q-18-18-57-6t-75 50q-36 36-49 74t5 56l408 408q-6 50 4 96t26 62l136 136q24 28 92 4t130-86z m-448-408q32-32 80 14 46 46 14 82-14 14-38 10t-44-24-23-43 11-39z m336 298q30-30 68-50t62-25 28-1q2 4-4 27t-26 60-50 67-66 50-59 26-27 2 1-28 25-62 48-66z%22 horiz-adv-x%3D%22902%22 %2F%3E%3Cglyph glyph-name%3D%22mail%22 unicode%3D%22%26%23xe805%3B%22 d%3D%22M30 586q-32 18-28 40 2 14 26 14l846 0q38 0 20-32-8-14-24-22-14-6-192-102t-182-98q-16-10-46-10-28 0-46 10-4 2-182 98t-192 102z m850-100q20 10 20-10l0-368q0-16-17-32t-33-16l-800 0q-16 0-33 16t-17 32l0 368q0 20 20 10l384-200q18-10 46-10t46 10z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22heart%22 unicode%3D%22%26%23xe806%3B%22 d%3D%22M790 644q70-64 70-156t-70-158l-360-330-360 330q-70 66-70 158t70 156q62 58 151 58t153-58l56-52 58 52q62 58 150 58t152-58z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22heart-empty%22 unicode%3D%22%26%23xe807%3B%22 d%3D%22M790 642q70-64 70-156t-70-156l-360-330-360 330q-70 64-70 156t70 156q64 58 152 58t150-58l58-52 56 52q64 58 152 58t152-58z m-54-260q42 40 42 104 0 66-38 100-38 38-102 38-52 0-104-48l-104-92-106 92q-48 48-102 48-64 0-104-38-38-36-38-100 0-66 44-104l306-286z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22star%22 unicode%3D%22%26%23xe808%3B%22 d%3D%22M440 790l120-336 320 0-262-196 94-348-272 208-272-208 94 348-262 196 320 0z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22star-empty%22 unicode%3D%22%26%23xe809%3B%22 d%3D%22M880 454l-262-196 94-348-272 208-272-208 94 348-262 196 320 0 120 336 120-336 320 0z m-440-238l150-124-62 178 144 114-176-4-56 202-54-202-176 4 142-114-62-178z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22user%22 unicode%3D%22%26%23xe80a%3B%22 d%3D%22M736 128q204-72 204-122l0-106-940 0 0 106q0 50 204 122 94 34 128 69t34 95q0 22-22 49t-32 73q-2 12-9 18t-14 8-14 17-9 43q0 16 5 26t9 12l4 4q-8 50-12 88-4 54 41 112t157 58 158-58 40-112l-12-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-8-48-31-74t-23-48q0-60 35-95t127-69z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22users%22 unicode%3D%22%26%23xe80b%3B%22 d%3D%22M1000-90l-224 0 0 150q0 54-30 81t-154 89q40 30 40 84 0 16-13 33t-19 51q-2 8-14 16t-14 42q0 24 12 30-6 34-8 60-4 38 23 78t95 40 96-40 24-78l-8-60q12-6 12-30-2-34-14-42t-14-16q-6-34-19-51t-13-33q0-42 21-66t77-48q112-46 130-80 6-8 9-61t5-101l0-48z m-488 262q182-78 182-124l0-138-694 0 0 184q0 44 84 78 76 32 104 64t28 88q0 20-19 44t-25 68q-2 10-18 22t-20 56q0 14 3 23t7 13l4 2q-6 46-10 82-4 50 33 103t127 53 127-53 33-103l-10-82q14-8 14-38-4-44-20-56t-18-22q-6-44-25-68t-19-44q0-56 28-88t104-64z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22user-add%22 unicode%3D%22%26%23xe80c%3B%22 d%3D%22M620 128q180-64 180-122l0-106-800 0 0 202q36 14 82 26 94 34 129 69t35 95q0 22-23 48t-31 74q-2 12-23 25t-25 61q0 16 5 26t9 12l4 4q-8 50-12 88-6 54 40 112t160 58 160-58 42-112l-14-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-10-46-33-73t-23-49q0-60 36-95t130-69z m230 272l150 0 0-100-150 0 0-150-100 0 0 150-150 0 0 100 150 0 0 150 100 0 0-150z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22video%22 unicode%3D%22%26%23xe80d%3B%22 d%3D%22M980 600l-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-60q0-16-12-28t-28-12l-900 0q-16 0-28 12t-12 28l0 60 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 60q0 18 12 29t28 11l900 0q16 0 28-11t12-29l0-60z m-600-400l250 150-250 150 0-300z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22picture%22 unicode%3D%22%26%23xe80e%3B%22 d%3D%22M856 518l-100 0-124 150-214-150-180 0q-52 0-90-39t-38-91l0-160-108 296q-10 38 22 52l680 248q36 10 50-24z m106-90q16 0 27-12t11-28l0-472q0-16-11-28t-27-12l-724 0q-16 0-27 12t-11 28l0 472q0 16 11 28t27 12l724 0z m-56-452l0 162-72 160-166-60-130-132-138 170-92-214 0-86 598 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22camera%22 unicode%3D%22%26%23xe80f%3B%22 d%3D%22M500 450q64 0 107-44t43-106-44-106-106-44-106 44-44 106 44 106 106 44z m400 150q42 0 71-29t29-71l0-450q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 450q0 42 30 71t70 29l120 0q28 0 40 30l30 92q10 28 40 28l340 0q30 0 40-28l30-92q12-30 40-30l120 0z m-400-550q104 0 177 73t73 177-73 177-177 73-177-73-73-177 73-177 177-73z m366 380q14 0 24 11t10 25-10 24-24 10q-36 0-36-34 0-16 11-26t25-10z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22layout%22 unicode%3D%22%26%23xe810%3B%22 d%3D%22M170 650q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m-350-350q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22menu%22 unicode%3D%22%26%23xe811%3B%22 d%3D%22M650 400q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z m-600 100q-20 0-35 15t-15 35 14 35 36 15l600 0q22 0 36-15t14-35-15-35-35-15l-600 0z m600-300q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22check%22 unicode%3D%22%26%23xe812%3B%22 d%3D%22M249 0q-34 0-56 28l-180 236q-16 24-12 52t26 46 51 14 47-28l118-154 296 474q16 24 43 30t53-8q24-16 30-43t-8-53l-350-560q-20-32-56-32z%22 horiz-adv-x%3D%22667%22 %2F%3E%3Cglyph glyph-name%3D%22cancel%22 unicode%3D%22%26%23xe813%3B%22 d%3D%22M452 194q18-18 18-43t-18-43q-18-16-43-16t-43 16l-132 152-132-152q-18-16-43-16t-43 16q-16 18-16 43t16 43l138 156-138 158q-16 18-16 43t16 43q18 16 43 16t43-16l132-152 132 152q18 16 43 16t43-16q18-18 18-43t-18-43l-138-158z%22 horiz-adv-x%3D%22470%22 %2F%3E%3Cglyph glyph-name%3D%22cancel-circled%22 unicode%3D%22%26%23xe814%3B%22 d%3D%22M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m86-420l154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152 154-152 86 86z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22cancel-squared%22 unicode%3D%22%26%23xe815%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-146-638l86 86-154 152 154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22plus%22 unicode%3D%22%26%23xe816%3B%22 d%3D%22M550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22plus-circled%22 unicode%3D%22%26%23xe817%3B%22 d%3D%22M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m52-470l200 0 0 102-200 0 0 202-102 0 0-202-202 0 0-102 202 0 0-202 102 0 0 202z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22plus-squared%22 unicode%3D%22%26%23xe818%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-200 0 0 200-100 0 0-200-200 0 0-100 200 0 0-200 100 0 0 200 200 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22minus%22 unicode%3D%22%26%23xe819%3B%22 d%3D%22M550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22minus-circled%22 unicode%3D%22%26%23xe81a%3B%22 d%3D%22M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m252-368l-504 0 0-102 504 0 0 102z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22minus-squared%22 unicode%3D%22%26%23xe81b%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-500 0 0-100 500 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22help%22 unicode%3D%22%26%23xe81c%3B%22 d%3D%22M494 740q86-62 86-184 0-64-42-124-12-20-88-80l-46-30q-40-34-48-60-6-16-8-44 0-14-16-14l-128 0q-16 0-16 12 4 98 28 124 16 22 48 48t56 42l24 14q22 16 34 34 28 44 28 70 0 40-26 78-28 36-92 36-68 0-94-44-28-42-28-92l-166 0q6 162 114 232 70 42 166 42 130 0 214-60z m-216-636q44 0 73-30t27-74q-2-46-32-73t-74-25q-44 0-73 29t-27 75 32 73 74 25z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22help-circled%22 unicode%3D%22%26%23xe81d%3B%22 d%3D%22M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22info%22 unicode%3D%22%26%23xe81e%3B%22 d%3D%22M352 850q48 0 74-27t26-69q0-50-39-88t-95-38q-48 0-74 26t-24 72q0 46 35 85t97 39z m-206-1000q-100 0-54 178l60 254q14 56 0 56-12 0-54-18t-72-38l-26 44q90 78 189 126t151 48q78 0 36-162l-70-266q-16-64 6-64 44 0 118 60l30-40q-84-86-175-132t-139-46z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22info-circled%22 unicode%3D%22%26%23xe81f%3B%22 d%3D%22M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m52-152q-42 0-65-24t-23-50q-2-28 15-44t49-16q38 0 61 22t23 54q0 58-60 58z m-120-594q30 0 84 26t106 78l-18 24q-48-36-72-36-14 0-4 38l42 160q26 96-22 96-30 0-89-29t-115-75l16-26q52 34 74 34 12 0 0-34l-36-152q-26-104 34-104z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22back%22 unicode%3D%22%26%23xe820%3B%22 d%3D%22M750 540q40 0 70-29t30-71l0-290q0-40-30-70t-70-30l-690 0 0 140 650 0 0 210-500 0 0-110-210 180 210 180 0-110 540 0z%22 horiz-adv-x%3D%22850%22 %2F%3E%3Cglyph glyph-name%3D%22home%22 unicode%3D%22%26%23xe821%3B%22 d%3D%22M888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22link%22 unicode%3D%22%26%23xe822%3B%22 d%3D%22M294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132 0-78-56-134l-158-158q-74-72-150-72-62 0-112 50-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64 0 38-28 62-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22attach%22 unicode%3D%22%26%23xe823%3B%22 d%3D%22M244-140q-102 0-170 72-72 70-74 166t84 190l496 496q80 80 174 54 44-12 79-47t47-79q26-96-54-176l-474-474q-40-40-88-46-48-4-80 28-30 24-27 74t47 92l332 334q24 26 50 0t0-50l-332-332q-44-44-20-70 12-8 24-6 24 4 46 26l474 474q50 50 34 108-16 60-76 76-54 14-108-36l-494-494q-66-76-64-143t52-117q50-48 117-50t141 62l496 494q24 24 50 0 26-22 0-48l-496-496q-82-82-186-82z%22 horiz-adv-x%3D%22939%22 %2F%3E%3Cglyph glyph-name%3D%22lock%22 unicode%3D%22%26%23xe824%3B%22 d%3D%22M640 476q20 0 40-19t20-41l0-390q0-48-48-66l-60-18q-42-16-96-16l-290 0q-56 0-98 16l-60 18q-48 18-48 66l0 390q0 22 15 41t35 19l100 0 0 70q0 110 51 170t149 60 149-60 51-170l0-70 90 0z m-390 90l0-90 200 0 0 90q0 52-27 81t-73 29-73-29-27-81z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22lock-open%22 unicode%3D%22%26%23xe825%3B%22 d%3D%22M640 450q20 0 40-20t20-40l0-390q0-20-14-39t-34-25l-60-20q-52-16-96-16l-290 0q-46 0-98 16l-60 20q-20 6-34 25t-14 39l0 390q0 22 15 41t35 19l400 0 0 140q0 110-100 110t-100-110l0-40-100 0 0 20q0 110 51 170t149 60q200 0 200-230l0-120 90 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22eye%22 unicode%3D%22%26%23xe826%3B%22 d%3D%22M500 630q92 0 177-25t141-62 99-77 63-71 20-45-20-44-63-71-99-78-141-62-177-25-177 25-141 62-99 78-63 71-20 44 20 45 63 71 99 77 141 62 177 25z m0-494q92 0 157 63t65 151q0 90-65 153t-157 63-157-63-65-153q0-88 65-151t157-63z m0 214q8-8 37-2t50 11 25-9q0-44-33-75t-79-31-78 31-32 75q0 46 32 77t78 31q14 0 10-23t-12-47 2-38z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22tag%22 unicode%3D%22%26%23xe827%3B%22 d%3D%22M944 830q36-106-8-199t-128-157l18-24q16-28 6-54l-48-158q-12-30-36-46l-464-328q-42-30-64 4l-210 304q-12 18-9 39t21 33l464 328q26 18 54 18l158 0q30 0 48-26l28-40q168 130 114 286-10 28 18 40 32 8 38-20z m-216-468q40 32 34 80l-32-16q-8-4-12-4-18 0-28 18-12 30 16 40l24 14q-48 34-92 0-28-18-34-51t14-61q18-26 51-32t59 12z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22bookmark%22 unicode%3D%22%26%23xe828%3B%22 d%3D%22M310 800q22 0 36-15t14-35l0-850-180 180-180-180 0 850q0 50 40 50l270 0z%22 horiz-adv-x%3D%22360%22 %2F%3E%3Cglyph glyph-name%3D%22bookmarks%22 unicode%3D%22%26%23xe829%3B%22 d%3D%22M500 850q20 0 35-15t15-35l0-850-150 180 0 620q0 20-15 35t-35 15l-100 0q0 50 40 50l210 0z m-250-150q20 0 35-15t15-35l0-800-150 180-150-180 0 800q0 50 40 50l210 0z%22 horiz-adv-x%3D%22550%22 %2F%3E%3Cglyph glyph-name%3D%22flag%22 unicode%3D%22%26%23xe82a%3B%22 d%3D%22M874 616q14 6 22-1t0-19q-96-138-164-213t-110-90-73-2-60 37-63 40-93-4-139-86l90-352-100 0-184 720 92 34q90 66 152 86t98 3 64-51 62-71 79-62 129-20 198 51z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22thumbs-up%22 unicode%3D%22%26%23xe82b%3B%22 d%3D%22M582 480q2-6 58-13t108-24 52-47q0-72-61-284t-107-212q-144 0-288 42t-144 88l0 342q0 14 15 34t46 45 53 41 62 43 46 31q50 34 104 100t85 104 41 26q48-76 29-137t-59-119-40-60z m-432-4q14 0 0-14-50-50-50-104l0-318q0-50 52-104 10-10-2-10-26 0-55 8t-62 45-33 99l0 242q0 62 33 100t63 47 54 9z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22thumbs-down%22 unicode%3D%22%26%23xe82c%3B%22 d%3D%22M218 218q-2 6-57 13t-108 24-53 47q0 72 62 285t106 213q144 0 288-43t144-89l0-342q0-10-8-24t-25-30-32-29-42-32-41-29-41-28l-33-22q-50-34-104-100t-85-104-41-26q-48 76-29 137t59 119 40 60z m432 4q-12 0 2 14 48 50 48 104l0 318q0 50-52 104-10 10 2 10 26 0 55-8t62-45 33-99l0-242q0-48-18-81t-45-48-48-21-39-6z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22download%22 unicode%3D%22%26%23xe82d%3B%22 d%3D%22M968 198q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z m-208 322l-260-244-260 244 166 0 0 256 190 0 0-256 164 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22upload%22 unicode%3D%22%26%23xe82e%3B%22 d%3D%22M500 776l260-244-164 0 0-256-190 0 0 256-166 0z m468-578q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22upload-cloud%22 unicode%3D%22%26%23xe82f%3B%22 d%3D%22M760 494q100 0 170-68t70-166-70-166-170-68l-190 0 0 190 106 0-176 230-174-230 104 0 0-190-248 0q-74 0-128 52t-54 124q0 74 53 126t129 52q14 0 20-2-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22reply%22 unicode%3D%22%26%23xe830%3B%22 d%3D%22M900 10q-86 152-208 197t-330 45l0-218-362 334 362 322 0-192q90 0 168-27t131-70 96-95 69-104 44-95 24-69z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22reply-all%22 unicode%3D%22%26%23xe831%3B%22 d%3D%22M362 556l-212-188 212-196 0-138-362 334 362 322 0-134z m250-58q104 0 182-50t115-122 60-144 27-122l4-50q-86 154-168 198t-220 44l0-218-362 334 362 322 0-192z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22forward%22 unicode%3D%22%26%23xe832%3B%22 d%3D%22M540 252q-210 0-332-45t-208-197q4 20 13 53t50 117 96 148 156 117 225 53l0 192 360-322-360-334 0 218z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22quote%22 unicode%3D%22%26%23xe833%3B%22 d%3D%22M146 680q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z m420 0q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z%22 horiz-adv-x%3D%22762%22 %2F%3E%3Cglyph glyph-name%3D%22code%22 unicode%3D%22%26%23xe834%3B%22 d%3D%22M380 636q16-14 16-32t-16-30l-246-224 246-226q16-12 16-30t-16-32q-30-30-60 0l-320 288 320 286q30 30 60 0z m302 0l318-286-318-288q-32-30-62 0-32 32 0 62l248 226-248 224q-32 30 0 62 30 30 62 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22export%22 unicode%3D%22%26%23xe835%3B%22 d%3D%22M750 60l0 56 100 82 0-188q0-20-15-35t-35-15l-750 0q-20 0-35 15t-15 35l0 550q0 22 14 36t36 14l288 0q-32-24-59-49t-39-39l-10-12-130 0 0-450 650 0z m-82 348q-166 0-242-41t-160-181q0 8 1 22t9 56 22 79 44 83 70 79 107 56 149 23l0 156 332-250-332-260 0 178z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22pencil%22 unicode%3D%22%26%23xe836%3B%22 d%3D%22M718 680q32-32 47-64t15-48l0-16-252-252-290-288-238-52 50 240 290 288 252 252q54 12 126-60z m-494-640l24 24q-2 44-52 94-22 22-45 35t-35 13l-14 2-22-24-18-80q28-16 46-34 24-24 36-48z%22 horiz-adv-x%3D%22780%22 %2F%3E%3Cglyph glyph-name%3D%22feather%22 unicode%3D%22%26%23xe837%3B%22 d%3D%22M60-138q-6-20-26-8-18 8-16 34 4 100 50 226-100 154-52 316 10-32 32-78t44-80 32-30q8 4 0 83t-11 166 25 157q22 44 80 94t104 70q-24-46-33-94t-4-78 21-32q12 0 84 120t106 122q46 4 114-29t82-65q12-24 0-79t-40-83q-44-44-146-62t-114-24q-16-10 12-34 54-48 176-20-56-80-136-114t-132-38-54-10q-4-24 49-54t101-14q-30-56-63-84t-54-35-76-11-85-8z%22 horiz-adv-x%3D%22698%22 %2F%3E%3Cglyph glyph-name%3D%22print%22 unicode%3D%22%26%23xe838%3B%22 d%3D%22M66 526q-26 0-22 22 4 10 12 14 2 0 49 17t93 32 58 15l44 0 0 150 380 0 0-150 46 0q12 0 57-15t92-32 49-17q18-8 12-26-4-10-20-10l-850 0z m860-56q20 0 37-19t17-41l0-174q0-22-17-41t-37-19l-100 0 44-250-760 0 44 250-98 0q-20 0-38 19t-18 41l0 174q0 22 18 41t38 19l870 0z m-716-444l560 0-70 324-420 0z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22retweet%22 unicode%3D%22%26%23xe839%3B%22 d%3D%22M250 190l272 0 128-140-448 0q-42 0-71 30t-29 70l0 302-102 0 176 198 174-198-100 0 0-262z m650 60l100 0-174-200-176 200 102 0 0 260-274 0-128 140 450 0q40 0 70-29t30-71l0-300z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22keyboard%22 unicode%3D%22%26%23xe83a%3B%22 d%3D%22M930 650q28 0 49-21t21-49l0-460q0-30-21-50t-49-20l-860 0q-28 0-49 20t-21 50l0 460q0 28 21 49t49 21l860 0z m-380-100l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-50-250l0 100-100 0 0-100 100 0z m550 0l0 100-500 0 0-100 500 0z m150 0l0 100-100 0 0-100 100 0z m-150 150l100 0 0 100-100 0 0-100z m150 150l0 100-200 0 0-100 200 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22comment%22 unicode%3D%22%26%23xe83b%3B%22 d%3D%22M700 700q42 0 71-29t29-71l0-350q0-40-29-70t-71-30l-200 0 0-150-200 150-200 0q-40 0-70 30t-30 70l0 350q0 42 30 71t70 29l600 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22chat%22 unicode%3D%22%26%23xe83c%3B%22 d%3D%22M290 240l350 0q2 0 6 2l4 0 0-92q0-40-29-70t-71-30l-250 0-150-150 0 150-50 0q-40 0-70 30t-30 70l0 300q0 42 30 71t70 29l190 0 0-310z m610 560q42 0 71-29t29-71l0-300q0-40-29-70t-71-30l-50 0 0-150-150 150-350 0 0 400q0 42 30 71t70 29l450 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22bell%22 unicode%3D%22%26%23xe83d%3B%22 d%3D%22M632 426q16-34 40-52t45-22 44-23 35-55q22-62-74-161t-252-157q-164-58-297-45t-155 75q-20 54 12 111t18 111q-56 192-47 300t113 192q26 22 29 51t29 39q24 8 46-12t56-18q132 2 198-66t160-268z m-186-404q88 32 159 85t100 91 25 50q-8 22-49 33t-124 1-187-48q-102-38-173-87t-94-84-17-53q4-12 50-22t134-4 176 38z m-62 174q8 2 21 7t17 7l2-2q14-40-17-83t-89-63q-96-36-152 14 78 68 218 120z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22attention%22 unicode%3D%22%26%23xe83e%3B%22 d%3D%22M957-24q10-16 0-34-10-16-30-16l-892 0q-18 0-28 16-13 18-2 34l446 782q8 18 30 18t30-18z m-420 50l0 100-110 0 0-100 110 0z m0 174l0 300-110 0 0-300 110 0z%22 horiz-adv-x%3D%22962%22 %2F%3E%3Cglyph glyph-name%3D%22alert%22 unicode%3D%22%26%23xe83f%3B%22 d%3D%22M885 234q20-16 16-33t-28-23l-78-22q-24-6-40-28t-14-48l4-82q2-24-14-34t-38 0l-86 44q-22 12-47 4t-35-30l-46-88q-12-22-29-23t-33 19l-50 78q-34 48-88 20l-122-70q-22-14-32-6t-2 32l54 164q8 24-4 44t-36 22l-106 12q-24 4-29 18t15 30l86 76q20 16 20 41t-20 41l-86 76q-20 16-16 33t28 23l78 22q24 6 41 28t15 48l-6 82q0 26 15 36t37 0l80-38q24-10 49-2t37 30l46 80q12 22 30 21t30-23l50-86q12-22 35-29t45 7l136 84q22 14 30 6t0-32l-60-170q-10-22 2-41t38-21l114-12q26-2 30-16t-16-30l-86-76q-18-16-18-41t18-41z m-384-92l0 104-100 0 0-104 100 0z m0 160l0 260-100 0 0-260 100 0z%22 horiz-adv-x%3D%22901%22 %2F%3E%3Cglyph glyph-name%3D%22vcard%22 unicode%3D%22%26%23xe840%3B%22 d%3D%22M900 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l800 0z m0-700l0 600-800 0 0-600 800 0z m-450 196l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m346-320l4-70-250 0q0 70 6 70 84 22 84 66 0 16-27 56t-27 88q0 110 90 110t90-110q0-48-28-88t-28-56q0-20 21-36t43-22z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22address%22 unicode%3D%22%26%23xe841%3B%22 d%3D%22M426 800q20 0 20-20l0-860q0-20-20-20l-46 0q-20 0-20 20l0 440-176 0q-16 0-28 6-12 2-26 12l-120 82q-10 6-10 16t10 16l120 82q14 10 26 12 8 4 28 4l176 0 0 190q0 20 20 20l46 0z m564-208q10-6 10-16t-10-16l-118-82q-22-12-26-12-14-6-28-6l-302 0-40 230 342 0q18 0 28-4t26-12z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22location%22 unicode%3D%22%26%23xe842%3B%22 d%3D%22M250 750q104 0 177-73t73-177q0-106-62-243t-126-223l-62-84q-10 12-27 35t-60 89-76 130-60 147-27 149q0 104 73 177t177 73z m0-388q56 0 96 40t40 96-40 95-96 39-95-39-39-95 39-96 95-40z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22map%22 unicode%3D%22%26%23xe843%3B%22 d%3D%22M984 600q16-10 16-30l0-584q0-20-16-30-8-6-16-6t-18 6l-216 136-216-136q-18-10-34 0l-218 136-216-136q-16-10-34 0-16 10-16 30l0 584q0 20 16 30l234 146q18 10 34 0l216-136 218 136q16 10 32 0z m-750-450l0 506-168-104 0-506z m234-104l0 506-168 104 0-506z m234 104l0 506-170-104 0-506z m232-104l0 506-168 104 0-506z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22direction%22 unicode%3D%22%26%23xe844%3B%22 d%3D%22M848 768q8-8 11-16t-2-22-10-26-19-39-24-49q-54-112-147-286t-157-292l-66-118-54 380-380 56q442 246 696 368 20 10 48 25t39 20 25 9 23 1 17-11z m-92-96l-304-280 28-234z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22compass%22 unicode%3D%22%26%23xe845%3B%22 d%3D%22M474 830q198 2 340-136t146-336q2-200-136-342t-338-146q-198-2-341 137t-145 337q-4 200 135 342t339 144z m12-858q156 2 266 114t108 270-115 267-269 107q-158-2-267-114t-107-270 114-267 270-107z m-234 154q4 26 12 66t41 128 77 132 125 76 141 42l60 10q-4-26-12-66t-41-128-77-132q-42-42-124-74t-142-42z m180 276q-22-20-22-48t22-50q20-22 49-22t49 22q52 52 88 186-136-36-186-88z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22cup%22 unicode%3D%22%26%23xe846%3B%22 d%3D%22M340 760q152 0 249-41t91-87l-72-594q-2-14-34-36t-97-42-137-20-136 20-97 42-35 36l-72 594q-4 28 36 57t121 50 183 21z m0-216q72 0 137 15t98 33 33 30-33 29-98 32-137 15-137-15-98-32-33-29 33-30 98-33 137-15z%22 horiz-adv-x%3D%22681%22 %2F%3E%3Cglyph glyph-name%3D%22trash%22 unicode%3D%22%26%23xe847%3B%22 d%3D%22M50 458q122-70 330-70t330 70l-54-486q-2-14-35-36t-100-43-141-21-140 21-100 43-36 36z m488 300q94-18 158-55t64-71l0-10q0-58-112-99t-268-41-268 41-112 99l0 10q0 34 64 71t158 55l42 48q22 26 70 26l92 0q52 0 70-26z m-54-112l84 0q-92 110-104 126-14 16-32 16l-102 0q-22 0-32-16l-106-126 84 0 64 66 82 0z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22doc%22 unicode%3D%22%26%23xe848%3B%22 d%3D%22M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22docs%22 unicode%3D%22%26%23xe849%3B%22 d%3D%22M970 480q38-10 30-46l-150-556q-4-16-18-23t-30-3l-406 110q-16 4-24 18t-4 28l24 92-180-48q-40-10-50 26l-160 602q-10 36 28 48l454 122q16 4 30-3t18-23l66-244z m-888 190l144-542 392 106-144 540z m702-742l132 492-298 82 76-282q10-34-28-46l-196-52-26-102z%22 horiz-adv-x%3D%221001%22 %2F%3E%3Cglyph glyph-name%3D%22doc-landscape%22 unicode%3D%22%26%23xe84a%3B%22 d%3D%22M0 600q0 42 30 71t70 29l800 0q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 500z m900 0l-800 0 0-500 800 0 0 500z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22doc-text%22 unicode%3D%22%26%23xe84b%3B%22 d%3D%22M212 308l0 90 280 0 0-90-280 0z m388 492q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z m-110 592l0-88-280 0 0 88 280 0z m0-392l0-88-280 0 0 88 280 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22doc-text-inv%22 unicode%3D%22%26%23xe84c%3B%22 d%3D%22M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m-460-208l0-88 420 0 0 88-420 0z m420-480l0 88-420 0 0-88 420 0z m0 196l0 90-418 0 0-90 418 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22newspaper%22 unicode%3D%22%26%23xe84d%3B%22 d%3D%22M700 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l600 0z m0-800l0 700-600 0 0-700 600 0z m-250 250l0-50-250 0 0 50 250 0z m150 200l0-50-200 0 0 50 200 0z m-200 50l0 100 200 0 0-100-200 0z m-50 100l0-200-150 0 0 200 150 0z m-50-250l0-50-100 0 0 50 100 0z m50-50l0 50 250 0 0-50-250 0z m250-150l0-50-400 0 0 50 400 0z m-100 50l0 50 100 0 0-50-100 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22book-open%22 unicode%3D%22%26%23xe84e%3B%22 d%3D%22M340 238l0-68-200 80 0 68z m0 208l0-68-200 80 0 68z m538 346q22-12 22-42l0-640q0-34-32-46l-398-160q-8-2-10-2t-5-1-5-1-5 1-5 1l-10 2-398 160q-32 12-32 46l0 640q0 30 22 42 22 16 46 6l382-154 382 154q24 10 46-6z m-478-788l0 560-320 128 0-560z m420 128l0 560-320-128 0-560z m-60 186l0-68-200-80 0 68z m0 208l0-68-200-80 0 68z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22book%22 unicode%3D%22%26%23xe84f%3B%22 d%3D%22M682 594q18-8 18-28l0-562q0-14-12-25t-28-11q-46 0-46 36l0 522q0 12-12 18l-404 216q-32 10-68-10-44-20-56-44l408-228q18-8 18-28l0-550q0-22-18-28-6-4-16-4-14 0-20 4-8 6-202 127t-212 131q-26 18-26 34l-6 524q0 28 14 52 28 46 102 77t116 9z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22folder%22 unicode%3D%22%26%23xe850%3B%22 d%3D%22M954 500q32 0 40-12t6-36l-42-452q-2-24-12-37t-42-13l-806 0q-52 0-56 50l-42 452q-2 24 6 36t40 12l908 0z m-34 110l10-40-846 0 14 132q4 20 20 34t36 14l164 0q52 0 86-34l30-30q32-36 86-36l340 0q20 0 38-12t22-28z%22 horiz-adv-x%3D%221001%22 %2F%3E%3Cglyph glyph-name%3D%22archive%22 unicode%3D%22%26%23xe851%3B%22 d%3D%22M840 600l0-50-696 0 0 50q0 22 13 35t25 15l608 0q6 0 14-1t22-14 14-35z m-148 150q6 0 14-1t22-14 14-35l-498 0q0 22 13 35t25 15l410 0z m248-200q34-32 38-46 6-18 0-54l-76-450q-4-22-20-35t-28-15l-710 0q-52 0-60 50-6 26-39 223t-39 227q-10 22-3 44t10 26 21 20l10 10 30 30 0-80 836 0 0 80z m-248-270l0 100-70 0 0-80-260 0 0 80-68 0 0-100q0-50 48-50l300 0q22 0 35 12t13 24z%22 horiz-adv-x%3D%22981%22 %2F%3E%3Cglyph glyph-name%3D%22box%22 unicode%3D%22%26%23xe852%3B%22 d%3D%22M870 750q12 0 21-9t9-21l0-120-900 0 0 120q0 12 9 21t21 9l840 0z m-820-730l0 530 800 0 0-530q0-30-21-50t-49-20l-660 0q-28 0-49 20t-21 50z m250 430l0-100 300 0 0 100-300 0z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22rss%22 unicode%3D%22%26%23xe853%3B%22 d%3D%22M0 730q314 0 537-223t223-537l-118 0q0 266-188 453t-454 187l0 120z m0-238q218 0 371-153t153-369l-118 0q0 166-119 285t-287 119l0 118z m114-296q46 0 80-33t34-81q0-46-34-79t-80-33-80 33-34 79q0 48 34 81t80 33z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22phone%22 unicode%3D%22%26%23xe854%3B%22 d%3D%22M461 290q162 162 118 206l-8 8q-30 30-41 48t-4 54 49 88q20 24 37 39t35 16 30 1 29-13 24-18 26-25 21-22q48-48-6-194t-204-294q-150-150-295-205t-193-7q-2 2-23 22t-25 25-18 24-13 31 2 30 15 35 38 37q42 34 70 47t54 2 35-18 39-37q44-44 208 120z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22cog%22 unicode%3D%22%26%23xe855%3B%22 d%3D%22M760 350q0-72 80-122-12-40-34-82-70 18-136-44-54-58-34-136-40-20-84-36-46 82-132 82t-132-82q-44 16-84 36 20 80-34 136-54 54-136 34-14 26-34 82 82 52 82 132 0 72-82 124 20 56 34 82 74-18 136 44 54 56 34 136 42 22 84 34 46-80 132-80t132 80q42-12 84-34-20-78 34-136 66-62 136-44 22-42 34-82-80-50-80-124z m-340-182q76 0 129 53t53 129-53 130-129 54-129-54-53-130 53-129 129-53z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22tools%22 unicode%3D%22%26%23xe856%3B%22 d%3D%22M155 506q-8-8-11-22t-3-25-2-11q-2-2-17-15t-19-17q-16-14-28 4l-70 76q-11 12 2 24 2 2 18 14t20 16q6 6 27 6t37 14q14 14 18 38t10 30q2 0 9 7t26 22 41 31q134 90 186 96 122 0 148-2 12 0-8-8-120-52-152-76-80-56-36-114 34-46 38-48 8-8-2-14-2-2-38-35t-38-35q-14-8-18-4-42 48-71 60t-67-12z m286-26l410-476q18-22-2-38l-48-42q-22-14-38 4l-414 472q-8 8 0 20l72 62q12 8 20-2z m554 202q16-104-16-166-50-88-154-62-56 12-100-32l-82-78-68 78 68 70q24 24 31 53t6 65 5 58q12 56 140 112 12 6 18-3t2-15q-12-12-46-80-14-10-12-35t40-53q58-40 96 22 6 12 26 41t22 33q4 10 13 9t11-17z m-858-684l254 248 76-86-246-242q-20-20-38-4l-46 46q-22 18 0 38z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22share%22 unicode%3D%22%26%23xe857%3B%22 d%3D%22M650 200q62 0 106-43t44-107q0-62-44-106t-106-44-106 44-44 106q0 6 1 14t1 12l-260 156q-42-32-92-32-62 0-106 44t-44 106 44 106 106 44q54 0 92-30l260 156q0 4-1 12t-1 12q0 62 44 106t106 44 106-43 44-107q0-62-44-106t-106-44q-52 0-90 32l-262-156q2-8 2-26 0-16-2-24l262-156q36 30 90 30z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22shareable%22 unicode%3D%22%26%23xe858%3B%22 d%3D%22M340 350q0 68 47 114t113 46 113-46 47-114q0-66-47-113t-113-47-113 47-47 113z m-114 60q-14-60-66-60l-160 0 0 120 118 0q40 124 145 202t237 78q164 0 284-116 16-18 16-43t-16-43q-18-16-43-16t-43 16q-78 82-198 82-100 0-176-62t-98-158z m614-60l160 0 0-120-118 0q-40-124-144-202t-238-78q-164 0-282 118-18 18-18 43t18 41q16 18 41 18t43-18q82-82 198-82 100 0 176 63t98 157q12 60 66 60z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22basket%22 unicode%3D%22%26%23xe859%3B%22 d%3D%22M150 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m500 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m-322 236q-36-10-34-23t44-13l562 0 0-76q0-20-20-20l-654 0q-20 0-20 20l0 76-10 46-98 454-98 0 0 80q0 20 20 20l156 0q20 0 20-20l0-86 704 0 0-274q0-22-18-26z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22bag%22 unicode%3D%22%26%23xe85a%3B%22 d%3D%22M835 668q28-26 24-60l-98-648q-8-30-38-30l-586 0q-28 0-40 30-94 620-96 648-5 34 22 60 6 6 54 43t56 43q18 16 56 16l480 0q38 0 56-16 78-58 110-86z m-406-436q56 0 98 34t63 89 30 89 13 66l-92 0q-38-188-112-188t-112 188l-92 0q46-278 204-278z m-352 368l704 0-110 116-484 0z%22 horiz-adv-x%3D%22859%22 %2F%3E%3Cglyph glyph-name%3D%22calendar%22 unicode%3D%22%26%23xe85b%3B%22 d%3D%22M800 700q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l46 0 0-100 160 0 0 100 290 0 0-100 160 0 0 100 44 0z m0-700l0 400-700 0 0-400 700 0z m-540 800l0-170-70 0 0 170 70 0z m450 0l0-170-70 0 0 170 70 0z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22login%22 unicode%3D%22%26%23xe85c%3B%22 d%3D%22M800 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-450 0q-40 0-69 30t-29 70l0 100 98 0 0-100 450 0 0 700-450 0 0-150-98 0 0 150q0 42 29 71t69 29l450 0z m-350-670l0 120-450 0 0 150 450 0 0 120 200-194z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22logout%22 unicode%3D%22%26%23xe85d%3B%22 d%3D%22M502 0l0 100 98 0 0-100q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l400 0q42 0 71-29t29-71l0-150-98 0 0 150-402 0 0-700 402 0z m398 326l-198-196 0 120-450 0 0 150 450 0 0 120z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22mic%22 unicode%3D%22%26%23xe85e%3B%22 d%3D%22M620 488q20 0 20-20l0-138q0-92-69-164t-201-84l0-132 130 0q20 0 20-20l0-60q0-20-20-20l-360 0q-20 0-20 20l0 60q0 20 20 20l130 0 0 132q-132 12-201 84t-69 164l0 138q0 20 20 20l30 0q20 0 20-20l0-138q0-66 59-123t191-57 191 57 59 123l0 138q0 20 20 20l30 0z m-300-238q-80 0-115 25t-35 55l0 158 300 0 0-158q0-30-35-55t-115-25z m150 520l0-212-300 0 0 212q0 30 35 55t115 25 115-25 35-55z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22mute%22 unicode%3D%22%26%23xe85f%3B%22 d%3D%22M868 778q16-16 16-36t-16-36l-782-782q-18-14-34-14-18 0-36 14-16 14-16 36t16 36l782 782q34 32 70 0z m-216-386l50 50q74-92 101-172t-7-116q-24-24-75-57t-131-71-161-45-165 23l278 276q44-32 88-54t67-25 33 1q6 10 2 34t-26 68-54 88z m-276 62l-270-270q-40 132 28 283t132 215q34 32 105 11t159-85l-52-50q-58 38-105 53t-57 5q-4-8-2-28t19-58 43-76z%22 horiz-adv-x%3D%22884%22 %2F%3E%3Cglyph glyph-name%3D%22sound%22 unicode%3D%22%26%23xe860%3B%22 d%3D%22M176 588q42 42 149-5t217-157 157-217 5-149q-28-28-92-67t-156-78-194-29-176 84-84 176 29 194 78 156 67 92z m464-480q8 10-3 49t-49 101-96 118q-56 58-118 96t-101 49-49 3q-8-10 3-49t49-101 94-120q58-56 120-94t101-49 49-3z m6 394q-18 0-34 16-16 14-16 35t16 35l94 96q36 32 72 0 32-36 0-72l-96-94q-16-16-36-16z m-180 124q-18 10-23 30t5 38l54 96q26 44 68 20 18-10 23-30t-5-38l-54-96q-14-26-42-26-14 0-26 6z m438-150q10-18 4-38t-24-30l-96-54q-16-8-24-8-28 0-44 26-10 18-4 38t24 30l96 54q18 10 38 5t30-23z%22 horiz-adv-x%3D%22910%22 %2F%3E%3Cglyph glyph-name%3D%22volume%22 unicode%3D%22%26%23xe861%3B%22 d%3D%22M896 180q0-34-24-57t-56-23l-780 0q-22 0-31 5t-3 15 24 20l802 452q28 18 48 7t20-45l0-374z%22 horiz-adv-x%3D%22896%22 %2F%3E%3Cglyph glyph-name%3D%22clock%22 unicode%3D%22%26%23xe862%3B%22 d%3D%22M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244 150-150-50-50-170 170 0 274 70 0z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22hourglass%22 unicode%3D%22%26%23xe863%3B%22 d%3D%22M560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z%22 horiz-adv-x%3D%22560%22 %2F%3E%3Cglyph glyph-name%3D%22lamp%22 unicode%3D%22%26%23xe864%3B%22 d%3D%22M209-110l0 104 282 0 0-104q-70-42-142-40-70-2-140 40z m276 164l-270 0q0 72-36 140t-78 113-74 112-26 139q8 120 94 206t254 86q170 0 255-86t95-206q4-60-16-113t-52-96-65-85-57-96-24-114z m-378 496q-4-4 0-20t2-20 5-19 6-18 8-18 11-19 13-19 14-19 15-21 16-23q88-122 112-212l82 0q24 94 112 212 4 6 25 35t25 36 17 29 16 33 6 28 1 35q-16 196-244 196-226 0-242-196z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22light-down%22 unicode%3D%22%26%23xe865%3B%22 d%3D%22M350 510q68 0 114-47t46-113q0-68-46-114t-114-46q-66 0-113 46t-47 114q0 66 47 113t113 47z m0-264q44 0 73 30t29 74q0 42-29 72t-73 30q-42 0-72-30t-30-72q0-44 30-74t72-30z m-300 144q20 0 35-12t15-28q0-40-50-40t-50 40q0 16 15 28t35 12z m546 204q28-28-8-64-14-14-33-16t-29 10q-12 12-10 31t16 33q36 34 64 6z m54-204q20 0 35-12t15-28q0-40-50-40-48 0-48 40 0 16 14 28t34 12z m-300-290q16 0 28-15t12-35-12-35-28-15-28 15-12 35 12 35 28 15z m-238 62q36 36 64 8t-8-64q-14-14-33-16t-29 8q-30 28 6 64z m-10 430q28 28 64-8 14-14 16-33t-8-29q-30-28-64 6-36 36-8 64z m432-484q-34 36-6 64t64-8q14-14 16-33t-10-29q-30-28-64 6z m-184 492q-16 0-28 15t-12 35 12 35 28 15 28-15 12-35-12-35-28-15z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22light-up%22 unicode%3D%22%26%23xe866%3B%22 d%3D%22M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m0-474q82 0 141 58t59 142q0 82-59 141t-141 59-141-59-59-141q0-84 59-142t141-58z m-350 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22adjust%22 unicode%3D%22%26%23xe867%3B%22 d%3D%22M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m6-474l0 400q-86 0-146-59t-60-141q0-84 60-142t146-58z m-356 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22block%22 unicode%3D%22%26%23xe868%3B%22 d%3D%22M480 830q200 0 340-140t140-340q0-198-140-339t-340-141q-198 0-339 141t-141 339q0 200 141 340t339 140z m258-220z m-622-260q0-132 82-230l514 514q-100 82-232 82-152 0-258-107t-106-259z m106-258z m258-106q152 0 259 107t107 257q0 130-82 232l-514-514q98-82 230-82z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22resize-full%22 unicode%3D%22%26%23xe869%3B%22 d%3D%22M476 746l316 0 0-316-100 124-146-152-100 100 152 146z m-230-444l100-100-152-146 122-100-316 0 0 316 100-122z%22 horiz-adv-x%3D%22792%22 %2F%3E%3Cglyph glyph-name%3D%22resize-small%22 unicode%3D%22%26%23xe86a%3B%22 d%3D%22M156 146l-106 100 296 0 0-296-100 106-146-156-100 100z m744 554l-154-144 104-100-294 0 0 294 100-104 144 154z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22popup%22 unicode%3D%22%26%23xe86b%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-400q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 402q0 40 29 69t71 29l400 0z m0-500l0 400-400 0 0-400 400 0z m-600 100l0-300 300 0 0-100-300 0q-40 0-70 30t-30 70l0 300 100 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22publish%22 unicode%3D%22%26%23xe86c%3B%22 d%3D%22M900 800q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-198 0 0 98 200 0 0 462-802 0 0-462 200 0 0-98-200 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-770-168q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m100 0q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m672 6l0 62-602 0 0-62 602 0z m-404-198l242-240-150 0 0-300-184 0 0 300-150 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22window%22 unicode%3D%22%26%23xe86d%3B%22 d%3D%22M900 750q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-670-94q-16 0-27-11t-11-25q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10z m-138-36q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10-27-11-11-25z m810-570l0 460-802 0 0-460 802 0z m0 540l0 60-602 0 0-60 602 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22arrow-combo%22 unicode%3D%22%26%23xe86e%3B%22 d%3D%22M230 850l230-364-460 0z m0-1000l-230 366 460 0z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22down-circled%22 unicode%3D%22%26%23xe86f%3B%22 d%3D%22M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q148 0 254 106t106 254q0 150-106 255t-254 105-254-105-106-255q0-148 106-254t254-106z m90 554l0-206 112 0-202-190-202 190 112 0 0 206 180 0z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22left-circled%22 unicode%3D%22%26%23xe870%3B%22 d%3D%22M920 350q0-190-135-325t-325-135-325 135-135 325q0 192 135 326t325 134 325-134 135-326z m-820 0q0-148 106-254t254-106 254 106 106 254q0 150-106 255t-254 105-254-105-106-255z m552-90l-204 0 0-112-190 202 190 204 0-114 204 0 0-180z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22right-circled%22 unicode%3D%22%26%23xe871%3B%22 d%3D%22M0 350q0 190 135 325t325 135 325-135 135-325-135-325-325-135-325 135-135 325z m820 0q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254z m-552 90l204 0 0 114 190-204-190-202 0 112-204 0 0 180z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22up-circled%22 unicode%3D%22%26%23xe872%3B%22 d%3D%22M460-110q-190 0-325 135t-135 325q0 192 135 326t325 134 325-134 135-326q0-190-135-325t-325-135z m0 820q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254q0 150-105 255t-255 105z m-90-552l0 204-112 0 202 192 202-192-112 0 0-204-180 0z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22down-open%22 unicode%3D%22%26%23xe873%3B%22 d%3D%22M564 422l-234-224q-18-18-40-18t-40 18l-234 224q-16 16-16 41t16 41q38 38 78 0l196-188 196 188q40 38 78 0 16-16 16-41t-16-41z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22left-open%22 unicode%3D%22%26%23xe874%3B%22 d%3D%22M242 626q14 16 39 16t41-16q38-36 0-80l-186-196 186-194q38-44 0-80-16-16-40-16t-40 16l-226 236q-16 16-16 38 0 24 16 40 206 214 226 236z%22 horiz-adv-x%3D%22341%22 %2F%3E%3Cglyph glyph-name%3D%22right-open%22 unicode%3D%22%26%23xe875%3B%22 d%3D%22M98 626l226-236q16-16 16-40 0-22-16-38l-226-236q-16-16-40-16t-40 16q-36 36 0 80l186 194-186 196q-36 44 0 80 16 16 41 16t39-16z%22 horiz-adv-x%3D%22340%22 %2F%3E%3Cglyph glyph-name%3D%22up-open%22 unicode%3D%22%26%23xe876%3B%22 d%3D%22M564 280q16-16 16-41t-16-41q-38-38-78 0l-196 188-196-188q-40-38-78 0-16 16-16 41t16 41l234 224q16 16 40 16t40-16z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22down-open-mini%22 unicode%3D%22%26%23xe877%3B%22 d%3D%22M405 470q22 26 48 0 26-22 0-48l-196-192q-22-22-48 0l-196 192q-26 26 0 48 24 24 50 0l170-156z%22 horiz-adv-x%3D%22466%22 %2F%3E%3Cglyph glyph-name%3D%22left-open-mini%22 unicode%3D%22%26%23xe878%3B%22 d%3D%22M252 180q26-26 0-48-26-26-48 0l-192 194q-24 24 0 50l192 194q22 26 48 0 26-22 0-48l-156-172z%22 horiz-adv-x%3D%22265%22 %2F%3E%3Cglyph glyph-name%3D%22right-open-mini%22 unicode%3D%22%26%23xe879%3B%22 d%3D%22M13 180l158 170-158 172q-26 26 0 48 26 26 48 0l192-194q24-26 0-50l-192-194q-22-26-48 0-26 22 0 48z%22 horiz-adv-x%3D%22265%22 %2F%3E%3Cglyph glyph-name%3D%22up-open-mini%22 unicode%3D%22%26%23xe87a%3B%22 d%3D%22M62 230q-26-22-50 0-24 24 0 50l196 190q26 26 48 0l196-190q24-26 0-50-24-22-50 0l-170 158z%22 horiz-adv-x%3D%22464%22 %2F%3E%3Cglyph glyph-name%3D%22down-open-big%22 unicode%3D%22%26%23xe87b%3B%22 d%3D%22M63 570l370-356 372 356q22 26 48 0 26-22 0-48l-396-392q-22-22-48 0l-396 392q-26 26 0 48 24 24 50 0z%22 horiz-adv-x%3D%22866%22 %2F%3E%3Cglyph glyph-name%3D%22left-open-big%22 unicode%3D%22%26%23xe87c%3B%22 d%3D%22M452-20q26-26 0-48-26-26-48 0l-392 394q-24 24 0 50l392 394q22 26 48 0 26-22 0-48l-358-372z%22 horiz-adv-x%3D%22465%22 %2F%3E%3Cglyph glyph-name%3D%22right-open-big%22 unicode%3D%22%26%23xe87d%3B%22 d%3D%22M13-20l358 370-358 372q-26 26 0 48 26 26 48 0l392-394q24-26 0-50l-392-394q-22-26-48 0-26 22 0 48z%22 horiz-adv-x%3D%22465%22 %2F%3E%3Cglyph glyph-name%3D%22up-open-big%22 unicode%3D%22%26%23xe87e%3B%22 d%3D%22M804 130l-372 358-370-358q-26-22-50 0-24 24 0 50l396 390q26 26 48 0l396-390q24-26 0-50-26-22-48 0z%22 horiz-adv-x%3D%22864%22 %2F%3E%3Cglyph glyph-name%3D%22down%22 unicode%3D%22%26%23xe87f%3B%22 d%3D%22M660 366l-330-380-330 380 192 0 0 350 276 0 0-350 192 0z%22 horiz-adv-x%3D%22660%22 %2F%3E%3Cglyph glyph-name%3D%22left%22 unicode%3D%22%26%23xe880%3B%22 d%3D%22M378 20l-378 330 378 330 0-190 352 0 0-278-352 0 0-192z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22right%22 unicode%3D%22%26%23xe881%3B%22 d%3D%22M350 680l380-330-380-330 0 192-350 0 0 278 350 0 0 190z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22up%22 unicode%3D%22%26%23xe882%3B%22 d%3D%22M660 336l-192 0 0-350-276 0 0 350-192 0 330 380z%22 horiz-adv-x%3D%22660%22 %2F%3E%3Cglyph glyph-name%3D%22down-dir%22 unicode%3D%22%26%23xe883%3B%22 d%3D%22M460 550l-230-400-230 400 460 0z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22left-dir%22 unicode%3D%22%26%23xe884%3B%22 d%3D%22M400 580l0-460-400 230z%22 horiz-adv-x%3D%22400%22 %2F%3E%3Cglyph glyph-name%3D%22right-dir%22 unicode%3D%22%26%23xe885%3B%22 d%3D%22M0 580l400-230-400-230 0 460z%22 horiz-adv-x%3D%22400%22 %2F%3E%3Cglyph glyph-name%3D%22up-dir%22 unicode%3D%22%26%23xe886%3B%22 d%3D%22M0 150l230 400 230-400-460 0z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22down-bold%22 unicode%3D%22%26%23xe887%3B%22 d%3D%22M760 366l-380-380-380 380 192 0 0 350 376 0 0-350 192 0z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22left-bold%22 unicode%3D%22%26%23xe888%3B%22 d%3D%22M378 730l0-190 352 0 0-378-352 0 0-192-378 380z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22right-bold%22 unicode%3D%22%26%23xe889%3B%22 d%3D%22M350 730l380-380-380-380 0 192-350 0 0 378 350 0 0 190z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22up-bold%22 unicode%3D%22%26%23xe88a%3B%22 d%3D%22M760 336l-192 0 0-350-376 0 0 350-192 0 380 380z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22down-thin%22 unicode%3D%22%26%23xe88b%3B%22 d%3D%22M500 100l-250-240-250 240 162 0 0 740 176 0 0-740 162 0z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22left-thin%22 unicode%3D%22%26%23xe88c%3B%22 d%3D%22M240 100l-240 250 240 250 0-160 740 0 0-178-740 0 0-162z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22right-thin%22 unicode%3D%22%26%23xe88d%3B%22 d%3D%22M742 100l0 162-742 0 0 178 742 0 0 160 238-250z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22up-thin%22 unicode%3D%22%26%23xe88e%3B%22 d%3D%22M500 602l-162 0 0-742-176 0 0 742-162 0 250 238z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22ccw%22 unicode%3D%22%26%23xe88f%3B%22 d%3D%22M532 736q170 0 289-120t119-290-119-290-289-120q-142 0-252 88l70 74q84-60 182-60 126 0 216 90t90 218-90 218-216 90q-124 0-214-87t-92-211l142 0-184-204-184 204 124 0q2 166 122 283t286 117z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22cw%22 unicode%3D%22%26%23xe890%3B%22 d%3D%22M408 760q168 0 287-116t123-282l122 0-184-206-184 206 144 0q-4 124-94 210t-214 86q-126 0-216-90t-90-218q0-126 90-216t216-90q104 0 182 60l70-76q-110-88-252-88-168 0-288 120t-120 290 120 290 288 120z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22arrows-ccw%22 unicode%3D%22%26%23xe891%3B%22 d%3D%22M186 140l116 116 0-292-276 16 88 86q-116 122-114 290t120 288q100 100 240 116l4-102q-100-16-172-88-88-88-90-213t84-217z m332 598l276-16-88-86q116-122 114-290t-120-288q-96-98-240-118l-2 104q98 16 170 88 88 88 90 213t-84 217l-114-116z%22 horiz-adv-x%3D%22820%22 %2F%3E%3Cglyph glyph-name%3D%22level-down%22 unicode%3D%22%26%23xe892%3B%22 d%3D%22M100 200q-42 0-71 30t-29 70l0 350 140 0 0-310 364 0 0 150 240-220-240-220 0 150-404 0z%22 horiz-adv-x%3D%22744%22 %2F%3E%3Cglyph glyph-name%3D%22level-up%22 unicode%3D%22%26%23xe893%3B%22 d%3D%22M200 350l0-90-200 160 200 170 0-100 550 0q40 0 70-29t30-71l0-280-140 0 0 240-510 0z%22 horiz-adv-x%3D%22850%22 %2F%3E%3Cglyph glyph-name%3D%22shuffle%22 unicode%3D%22%26%23xe894%3B%22 d%3D%22M754 516q-54 0-105-32t-80-66-83-104q-48-62-75-94t-78-77-107-66-122-21l-104 0 0 140 104 0q54 0 106 32t81 66 83 104q62 82 101 126t116 88 163 44l36 0 0 120 210-180-210-180 0 100-36 0z m-484-88q-74 78-166 78l-104 0 0 140 104 0q140 0 254-108-14-16-37-45t-27-33q-8-12-24-32z m520-242l0 100 210-180-210-180 0 120-36 0q-140 0-260 116 46 58 72 92 0 2 6 9t8 11q84-88 174-88l36 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22loop%22 unicode%3D%22%26%23xe895%3B%22 d%3D%22M800 540q42 0 71-29t29-71l0-290q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 290q0 42 30 71t70 29l250 0 0 110 200-180-200-180 0 110-210 0 0-210 620 0 0 210-150 0 0 140 190 0z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22switch%22 unicode%3D%22%26%23xe896%3B%22 d%3D%22M700 592l0-140-500 0 0-90-200 160 200 170 0-100 500 0z m300-420l-200-160 0 90-500 0 0 140 500 0 0 100z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22play%22 unicode%3D%22%26%23xe897%3B%22 d%3D%22M486 376q14-10 14-26 0-14-14-24l-428-266q-24-16-41-6t-17 40l0 514q0 30 17 40t41-6z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22stop%22 unicode%3D%22%26%23xe898%3B%22 d%3D%22M526 650q74 0 74-64l0-470q0-66-74-66l-450 0q-76 0-76 66l0 470q0 36 18 50t58 14l450 0z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22pause%22 unicode%3D%22%26%23xe899%3B%22 d%3D%22M440 700q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z m-350 0q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z%22 horiz-adv-x%3D%22530%22 %2F%3E%3Cglyph glyph-name%3D%22record%22 unicode%3D%22%26%23xe89a%3B%22 d%3D%22M350 700q146 0 248-102t102-248q0-144-102-247t-248-103-248 103-102 247q0 146 102 248t248 102z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22to-end%22 unicode%3D%22%26%23xe89b%3B%22 d%3D%22M412 374q14-10 14-24 0-12-14-22l-362-228q-22-14-36-5t-14 35l0 442q0 26 14 35t36-5z m114 268q74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466q0 58 76 58z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22to-start%22 unicode%3D%22%26%23xe89c%3B%22 d%3D%22M174 350q0 14 14 24l364 228q20 14 34 5t14-35l0-442q0-26-14-35t-34 5l-364 228q-14 10-14 22z m-174 234q0 58 76 58 74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22fast-forward%22 unicode%3D%22%26%23xe89d%3B%22 d%3D%22M866 374q14-10 14-24t-14-22l-372-248q-22-14-37-6t-15 36l0 482q0 28 15 36t37-6z m-454 0q14-10 14-24t-14-22l-360-248q-20-14-36-6t-16 36l0 482q0 28 16 36t36-6z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22fast-backward%22 unicode%3D%22%26%23xe89e%3B%22 d%3D%22M0 350q0 14 14 24l374 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-374 248q-14 8-14 22z m454 0q0 14 14 24l360 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-360 248q-14 8-14 22z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22progress-0%22 unicode%3D%22%26%23xe89f%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22progress-1%22 unicode%3D%22%26%23xe8a0%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22progress-2%22 unicode%3D%22%26%23xe8a1%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22progress-3%22 unicode%3D%22%26%23xe8a2%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z m250 198l200 0 0-198-200 0 0 198z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22target%22 unicode%3D%22%26%23xe8a3%3B%22 d%3D%22M430 780q178 0 304-126t126-304-126-304-304-126-304 126-126 304 126 304 304 126z m36-778q124 14 212 102t100 212l-192 0 0 70 192 0q-12 124-100 212t-212 102l0-194-70 0 0 194q-124-14-213-102t-101-212l194 0 0-70-194 0q12-124 101-212t213-102l0 194 70 0 0-194z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22list%22 unicode%3D%22%26%23xe8a5%3B%22 d%3D%22M100 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m200-100q-20 0-35 15t-15 35 15 35 35 15l350 0q22 0 36-15t14-35-15-35-35-15l-350 0z m350-100q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z m0-200q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22list-add%22 unicode%3D%22%26%23xe8a6%3B%22 d%3D%22M350 400q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m0-200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m620 200q30 0 30-50t-30-50l-170 0 0-170q0-30-50-30t-50 30l0 170-164 0q-30 0-30 50t30 50l164 0 0 170q0 30 50 30t50-30l0-170 170 0z m-620 200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22battery%22 unicode%3D%22%26%23xe8a9%3B%22 d%3D%22M770 350q0-98 36-157t78-59l66 0q-30-46-64-65t-118-19l-500 0q-130 0-199 94t-69 206q0 110 69 205t199 95l500 0q84 0 118-19t64-65l-66 0q-42 0-78-60t-36-156z m-136-90q10 12-8 26-136 134-178 164-16 10-26 13t-18-5-10-12-8-18l-22-56-148 66q-26 12-34 0-8-14 8-28 136-132 180-162 34-16 42-11t18 31l24 58 146-68q26-12 34 2z m310 192q22 0 39-27t17-71-17-72-39-28l-38 0q-22 0-38 28t-16 72 16 71 38 27l38 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22back-in-time%22 unicode%3D%22%26%23xe8aa%3B%22 d%3D%22M532 760q170 0 289-120t119-290-119-290-289-120q-138 0-252 88l70 76q82-60 182-60 126 0 216 90t90 216q0 128-90 218t-216 90q-124 0-213-86t-93-210l142 0-184-206-184 206 124 0q4 166 123 282t285 116z m-36-190l70 0 0-204 130-130-50-50-150 150 0 234z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22monitor%22 unicode%3D%22%26%23xe8ab%3B%22 d%3D%22M900 790q42 0 71-30t29-70l0-550q0-42-29-77t-69-43l-218-44 86-38q50-28-20-28l-500 0q-98 0 32 52l36 14-220 44q-40 8-69 43t-29 77l0 550q0 40 30 70t70 30l800 0z m0-646l0 556-800 0 0-556 800 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22mobile%22 unicode%3D%22%26%23xe8ac%3B%22 d%3D%22M480 840q42 0 71-29t29-71l0-780q0-40-29-70t-71-30l-380 0q-40 0-70 30t-30 70l0 780q0 42 30 71t70 29l380 0z m-190-940q30 0 50 15t20 35q0 22-20 36t-50 14q-28 0-49-15t-21-35 21-35 49-15z m210 150l0 660-420 0 0-660 420 0z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22cd%22 unicode%3D%22%26%23xe8ae%3B%22 d%3D%22M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-610q62 0 106 44t44 106q0 64-43 107t-107 43q-62 0-106-44t-44-106 44-106 106-44z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22inbox%22 unicode%3D%22%26%23xe8af%3B%22 d%3D%22M967 398q40-42 30-72l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-8 32 32 72 8 10 36 38t68 67 52 51q22 22 52 22l516 0q30 0 52-22 16-16 53-52t67-65 38-39z m-266-32l178 0-102 114-556 0-102-114 178 0q8 0 12-8l40-100 300 0 40 100q4 8 12 8z%22 horiz-adv-x%3D%22999%22 %2F%3E%3Cglyph glyph-name%3D%22install%22 unicode%3D%22%26%23xe8b0%3B%22 d%3D%22M884 306q24-52 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-22 0-39 15t-19 35l-34 184q-8 50 14 96l158 374q22 46 72 46l104 0-20-204-134 0 254-210 256 210-136 0-18 204 102 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t37-15l592 0q22 0 39 15t19 37z%22 horiz-adv-x%3D%22901%22 %2F%3E%3Cglyph glyph-name%3D%22globe%22 unicode%3D%22%26%23xe8b1%3B%22 d%3D%22M480 830q200 0 340-141t140-339q0-200-140-340t-340-140q-198 0-339 140t-141 340q0 198 141 339t339 141z m410-480q0 132-78 239t-202 149q-18-24-16-32 4-38 18-51t30-7l32 12t20 2q22-24 0-47t-45-56-1-77q34-64 96-64 28-2 43-36t17-66q10-80-14-140-22-44 14-76 86 112 86 250z m-466 404q-112-14-199-84t-127-174q6 0 22-2t28-3 26-4 24-8 12-13q4-12-14-45t-18-61q0-30 38-56t38-46q0-28 8-68t8-44q0-12 36-54t52-42q10 0 11 22t-2 54-3 40q0 32 14 74 12 42 59 70t55 46q16 34 9 61t-17 43-34 28-41 17-37 9-22 4q-16 6-42 7t-36-3-27 11-17 29q0 10 15 27t35 37 28 30q8 14 17 21t22 16 27 21q4 4 25 17t27 23z m-72-794q66-20 128-20 128 0 226 68-26 44-118 34-24-2-65-17t-47-17q-74-16-76-16-12-2-26-14t-22-18z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22cloud%22 unicode%3D%22%26%23xe8b2%3B%22 d%3D%22M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22cloud-thunder%22 unicode%3D%22%26%23xe8b3%3B%22 d%3D%22M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z m-192-216q14 16 14 30 0 20-30 32l-4 0q-26 14-38 16l50 116q6 0 6 20 0 14-8 18-16 10-34-8-2-2-30-32t-61-66-45-52q-12-18-12-30 0-22 30-30l4-2q8-4 38-16l-52-114-2-8q-2-8-2-14 0-10 8-18 18-10 34 10 100 100 134 148z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22flash%22 unicode%3D%22%26%23xe8b4%3B%22 d%3D%22M40-100q-4 4 35 94t79 182 38 98-94 45-98 55q-4 12 84 120t180 209 96 97q6-4-74-186t-78-186 95-43 97-57q4-20-174-227t-186-201z%22 horiz-adv-x%3D%22400%22 %2F%3E%3Cglyph glyph-name%3D%22moon%22 unicode%3D%22%26%23xe8b5%3B%22 d%3D%22M524 238q106 106 125 252t-53 270q52-26 96-72 128-128 128-309t-128-309-310-128-310 128q-40 40-72 94 124-70 271-51t253 125z%22 horiz-adv-x%3D%22820%22 %2F%3E%3Cglyph glyph-name%3D%22flight%22 unicode%3D%22%26%23xe8b6%3B%22 d%3D%22M268-120l124 400-180 0-112-100-100 0 80 170-80 170 100 0 112-100 180 0-124 400 100 0 224-400 274 0t36-4 46-11 36-21 16-34q0-32-38-49t-74-19l-38-2-258 0-224-400-100 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22paper-plane%22 unicode%3D%22%26%23xe8b7%3B%22 d%3D%22M894 720q14 4 22-3t4-19q-2-6-72-310t-74-316q-2-14-14-19t-24 1l-248 134-30 16 22 26q388 420 394 426 4 4-1 9t-9 1l-550-402-112 44-190 76q-12 4-12 12t12 12q8 4 441 157t441 155z m-582-728l0 204 160-82q-130-116-142-128-18-14-18 6z%22 horiz-adv-x%3D%22921%22 %2F%3E%3Cglyph glyph-name%3D%22leaf%22 unicode%3D%22%26%23xe8b8%3B%22 d%3D%22M236 646q182 106 506 66 168-22 196-50 4-6-2-10-76-40-130-109t-78-132-65-132-93-105q-138-96-382-4-66-76-114-176-12-24-47-7t-25 39q44 100 129 193t176 153 176 106 141 68l54 20q-14 0-41-1t-104-14-148-38-162-84-161-141q-22 242 174 358z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22lifebuoy%22 unicode%3D%22%26%23xe8b9%3B%22 d%3D%22M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m0-60q-94 0-178-44l62-104q56 28 122 28t122-28l62 104q-88 46-190 44z m-246-522q-28 60-28 122 0 64 28 124l-102 62q-46-88-46-190 2-96 46-180z m258-278q98 4 178 46l-62 104q-60-30-122-30t-122 30l-62-104q86-46 190-46z m-6 180q92 0 156 65t64 155q0 92-64 156t-156 64-156-64-64-156q0-90 64-155t156-65z m252 98l104-62q46 96 44 190 0 96-44 180l-104-62q28-60 28-124 0-62-28-122z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22mouse%22 unicode%3D%22%26%23xe8ba%3B%22 d%3D%22M551 130q28-80-17-157t-139-111q-94-28-175 9t-103 117l-106 384q-20 68 6 134t84 106l-96 186q-14 34 14 48 30 18 48-14l98-192q80 22 154-16t102-116z m-324 274q28 10 40 36t4 54q-10 28-35 41t-53 5q-28-10-40-36t-4-54q10-28 35-41t53-5z%22 horiz-adv-x%3D%22561%22 %2F%3E%3Cglyph glyph-name%3D%22briefcase%22 unicode%3D%22%26%23xe8bb%3B%22 d%3D%22M456 326l0-100-456 0q8 226 10 292 4 108 100 108l160 0q16 26 37 67t23 45q14 26 23 32t37 6l222 0q26 0 36-7t22-31q18-32 60-112l160 0q96 0 100-108l10-292-454 0 0 100-90 0z m-74 354l-28-54 292 0-28 54q-14 26-42 26l-152 0q-28 0-42-26z m164-604l0 100 430 0q-6-88-10-166-6-84-90-84l-750 0q-90 0-90 84l-10 166 430 0 0-100 90 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22suitcase%22 unicode%3D%22%26%23xe8bc%3B%22 d%3D%22M900 650q42 0 71-30t29-70l0-550q0-42-29-71t-71-29l-50 0 0 750 50 0z m-900-100q0 40 30 70t70 30l50 0 0-750-50 0q-40 0-70 29t-30 71l0 550z m670 204l0-104 110 0 0-750-560 0 0 750 110 0 0 104q98 46 170 46t170-46z m-60-104l0 66q-52 24-110 24-54 0-110-24l0-66 220 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22dot%22 unicode%3D%22%26%23xe8bd%3B%22 d%3D%22M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z%22 horiz-adv-x%3D%22220%22 %2F%3E%3Cglyph glyph-name%3D%22dot-2%22 unicode%3D%22%26%23xe8be%3B%22 d%3D%22M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 32-32 78 32 78 78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33q-46 0-78 32t-32 78 32 78 78 32z%22 horiz-adv-x%3D%22570%22 %2F%3E%3Cglyph glyph-name%3D%22dot-3%22 unicode%3D%22%26%23xe8bf%3B%22 d%3D%22M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33-77 33-33 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22brush%22 unicode%3D%22%26%23xe8c0%3B%22 d%3D%22M118 170q38 34 85 29t87-45q42-40 48-87t-30-83q-86-84-228-102-84-12-80 14 0 4 6 10 52 60 64 145t48 119z m840 646q26-26-148-248t-292-338q-38-38-124-104-8-6-16 8-18 34-48 64-32 32-66 48-16 6-8 16 64 84 104 122 118 116 344 287t254 145z%22 horiz-adv-x%3D%22962%22 %2F%3E%3Cglyph glyph-name%3D%22infinity%22 unicode%3D%22%26%23xe8c2%3B%22 d%3D%22M796 570q84 0 144-53t60-167q0-112-60-166t-144-54q-78 0-157 40t-139 106q-58-66-137-106t-157-40q-86 0-146 54t-60 166q0 114 60 167t146 53q78 0 157-39t137-105q58 66 138 105t158 39z m-590-352q60 0 127 37t113 95q-46 58-112 95t-128 37q-114 0-114-132t114-132z m590 0q114 0 114 132t-114 132q-62 0-129-37t-111-95q44-58 111-95t129-37z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22erase%22 unicode%3D%22%26%23xe8c3%3B%22 d%3D%22M902 700q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-478 0q-38 0-70 28l-340 296q-28 26 0 54l340 296q30 26 70 26l478 0z m-140-550l72 74-128 126 128 128-72 72-128-126-128 126-72-72 128-128-128-126 72-74 128 128z%22 horiz-adv-x%3D%221002%22 %2F%3E%3Cglyph glyph-name%3D%22chart-pie%22 unicode%3D%22%26%23xe8c4%3B%22 d%3D%22M368 770l0-368-368 0q18 146 121 249t247 119z m106 0q156-20 261-139t105-279q0-174-123-298t-299-124q-160 0-278 105t-140 263l424 0q20 0 35 14t15 36l0 422z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22chart-line%22 unicode%3D%22%26%23xe8c5%3B%22 d%3D%22M34 284q-42 10-32 56 10 42 54 32l98-24-52-80z m890-12q14 12 33 11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80 36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20 29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24 12-62l-252-362q-24-36-62-12z%22 horiz-adv-x%3D%221003%22 %2F%3E%3Cglyph glyph-name%3D%22chart-bar%22 unicode%3D%22%26%23xe8c6%3B%22 d%3D%22M750 800q22 0 36-15t14-35l0-850-200 0 0 850q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-550-200 0 0 550q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-250-200 0 0 250q0 50 40 50l110 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22chart-area%22 unicode%3D%22%26%23xe8c7%3B%22 d%3D%22M964 732q16 22 16-4l0-768-964 0q-12 0-15 7t5 17l230 288q20 22 40 2l74-66q10-8 21-7t17 11l158 238q16 26 38 4l112-104q20-20 38 4z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22tape%22 unicode%3D%22%26%23xe8c8%3B%22 d%3D%22M770 580q96 0 163-67t67-163q0-94-67-162t-163-68l-540 0q-94 0-162 68t-68 162q0 96 68 163t162 67q96 0 163-67t67-163q0-72-40-130l160 0q-40 64-40 130 0 96 68 163t162 67z m-670-230q0-52 38-91t92-39 92 39 38 91q0 54-38 92t-92 38-92-38-38-92z m670-130q54 0 92 39t38 91q0 54-38 92t-92 38-92-38-38-92q0-52 38-91t92-39z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22graduation-cap%22 unicode%3D%22%26%23xe8c9%3B%22 d%3D%22M166 238l334-168 276 136q-4-22-8-47t-6-35-11-23-24-23-45-22q-40-18-80-41t-63-34-39-11-40 13-64 37-80 40q-72 32-103 69t-47 109z m810 246q24-14 24-33t-24-33l-78-44-308 102q-22 36-90 36-40 0-67-16t-27-40 27-40 67-16q26 0 36 4l292-68-268-152q-60-32-120 0l-416 234q-24 14-24 33t24 33l416 234q60 32 120 0z m-128-442q18 116 13 182t-19 90l-14 22 70 38q6-8 12-28t17-101-7-197q-4-26-22-30t-35 5-15 19z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22language%22 unicode%3D%22%26%23xe8ca%3B%22 d%3D%22M988 306q30-82-10-176t-134-160q-10 0-12 2t-16 19-16 19q-2 6 2 10 86 60 117 152t-11 148q-16-38-39-76t-59-80-86-65-106-15q-52 6-84 41t-32 93q0 84 60 148 50 50 114 66l-2 100q-140-24-146-24-6-2-10 4 0 2-5 29t-5 31q-2 2 1 4t7 2l156 28q0 110-2 114 0 8 8 8 46 0 52 2 10 0 10-8l0-104q158 22 164 22 8 4 10-6 0-2 4-23t4-25q4-10-4-12l-176-30 0-102 12 0q86 0 148-36t86-100z m-370-160q28-6 62 6l-4 214q-34-12-60-40-44-44-44-108 0-66 46-72z m122 28q28 24 58 68t45 79 7 41q-36 18-96 18-2 0-6-1t-6-1z m-448 382q10-28 53-165t83-261 40-126q0-4-4-4l-86 0q-6 0-6 4l-50 166-176 0q-48-164-50-166 0-4-6-4l-86 0q-4 0-4 4 10 18 176 552 2 8 10 8l96 0q10 0 10-8z m-130-316l144 0-72 264z%22 horiz-adv-x%3D%221001%22 %2F%3E%3Cglyph glyph-name%3D%22ticket%22 unicode%3D%22%26%23xe8cb%3B%22 d%3D%22M216 272l326 326 178-178-326-326z m710 244q14-14 14-36t-14-36l-550-550q-16-16-36-16t-36 16l-76 76q12 20 12 48 0 42-29 72t-71 30q-22 0-50-14l-74 76q-16 16-16 36t16 36l550 550q14 14 36 14t36-14l74-76q-12-22-12-48 0-42 30-71t72-29q26 0 48 12z m-532-502l406 406-258 258-408-406z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22water%22 unicode%3D%22%26%23xe8cc%3B%22 d%3D%22M168 844q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155q2 4 7 4t5-4z m616 0q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 48 21 93t48 78 53 92 34 127q2 4 7 4t5-4z m-320-444q2 4 7 4t5-4q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22droplet%22 unicode%3D%22%26%23xe8cd%3B%22 d%3D%22M290 822q14-118 60-219t92-159 82-136 36-160q0-114-83-196t-197-82-197 82-83 196q0 82 36 160t82 136 92 159 60 219q2 8 11 8t9-8z m-42-392q2 4-2 14-6 6-14 6t-12-6l-40-58q-32-46-48-70t-34-75-18-101q0-24 17-41t41-17q58 0 58 68 0 94 42 246 2 6 5 17t5 17z%22 horiz-adv-x%3D%22560%22 %2F%3E%3Cglyph glyph-name%3D%22air%22 unicode%3D%22%26%23xe8ce%3B%22 d%3D%22M85 534q-16-14-36-12t-34 18q-14 14-12 36t18 36q48 40 79 60t89 40 129 4 159-66 155-53 100 16 89 67q38 30 70-6 32-40-6-72-122-110-234-110-100 0-222 70-68 38-119 52t-93 0-65-29-67-51z m736-110q38 32 70-6 32-40-6-72-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 0-65-29-67-51q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z m0-256q38 32 70-6 14-14 12-36t-18-36q-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 1-66-29-66-52q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z%22 horiz-adv-x%3D%22905%22 %2F%3E%3Cglyph glyph-name%3D%22credit-card%22 unicode%3D%22%26%23xe8cf%3B%22 d%3D%22M900 700q42 0 71-30t29-70l0-500q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 500q0 40 30 70t70 30l800 0z m0-600l0 300-800 0 0-300 800 0z m0 450l0 50-800 0 0-50 800 0z m-700-256l30 0 0-30-30 0 0 30z m180-60l30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0 0-30-60 0 0 30z m120-30l-30 0 0 30 30 0 0-30z m-150 0l-60 0 0 30 60 0 0-30z m30 60l0-30-30 0 0 60 60 0 0-30-30 0z m-120-30l0-30-60 0 0 30 30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22floppy%22 unicode%3D%22%26%23xe8d0%3B%22 d%3D%22M658 750l142-156 0-544q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l558 0z m-58-300l0 250-400 0 0-250q0-20 15-35t35-15l300 0q20 0 35 15t15 35z m-50 200l0-200-100 0 0 200 100 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22clipboard%22 unicode%3D%22%26%23xe8d1%3B%22 d%3D%22M630 750q28 0 49-21t21-49l0-760q0-30-21-50t-49-20l-560 0q-28 0-49 20t-21 50l0 760q0 28 21 49t49 21l60-150 440 0z m-100-100l-360 0-44 100 108 0 36 100 160 0 36-100 110 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22megaphone%22 unicode%3D%22%26%23xe8d2%3B%22 d%3D%22M792 500q58-138 67-258t-39-140q-28-12-61 3t-65 40-99 41-149 8q-28-4-42-19t-6-37q22-56 46-108 4-10 24-22t24-20q14-34-22-46-50-22-102-40-30-10-54 42-32 76-58 132-6 12-34 17t-46 31q-30-10-38-14-34-12-74 12t-54 60q-17 32-5 79t43 61q126 52 213 108t124 103 59 92 25 78 15 59 36 36q48 20 130-70t142-228z m-28-300q8 4 10 38t-11 98-41 128q-28 66-67 123t-67 84-36 23-10-42 10-105 40-133 68-119 68-76 36-19z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22database%22 unicode%3D%22%26%23xe8d3%3B%22 d%3D%22M686 208q14 20 14-2l0-100q0-74-104-135t-246-61q-140 0-245 61t-105 135l0 100q0 8 4 10t10-8q32-52 125-86t211-34 211 34 125 86z m2 254q8 16 12 0l0-116q0-68-102-114t-248-46q-144 0-247 46t-103 114l0 116q0 20 14 0 30-46 124-75t212-29 212 29 126 75z m-338 328q144 0 247-39t103-93l0-64q0-58-103-99t-247-41-247 41-103 99l0 64q0 54 103 93t247 39z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22drive%22 unicode%3D%22%26%23xe8d4%3B%22 d%3D%22M884 304q26-44 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-20 0-38 15t-20 35l-34 184q-8 52 14 96l158 374q22 46 72 46l408 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t39-15l590 0q22 0 39 15t19 37z%22 horiz-adv-x%3D%22902%22 %2F%3E%3Cglyph glyph-name%3D%22bucket%22 unicode%3D%22%26%23xe8d5%3B%22 d%3D%22M522 780q174 0 286-49t104-105q-6-38-48-307t-44-281q-2-18-37-44t-107-50-154-24-153 24-106 50-37 44q0 2-4 30 82-6 163 35t139 117q28 0 48 20t20 50q0 28-20 49t-50 21q-28 0-49-21t-21-49q0-20 10-36-48-58-115-89t-131-27q-102 10-157 57t-59 109q-8 122 156 184-18 94-22 138-8 56 104 105t284 49z m-452-470q4-32 37-59t91-39l-32 204q-100-44-96-106z m452 212q82 0 157 18t113 39 38 35-38 35-112 39-158 18q-82 0-156-18t-112-39-38-35 38-35 112-39 156-18z%22 horiz-adv-x%3D%22913%22 %2F%3E%3Cglyph glyph-name%3D%22thermometer%22 unicode%3D%22%26%23xe8d6%3B%22 d%3D%22M400 356q64-36 102-98t38-138q0-112-79-191t-191-79-191 79-79 191q0 76 38 138t102 98l0 444q0 50 40 50l170 0q20 0 35-15t15-35l0-444z m-130-406q70 0 120 50t50 120q0 56-32 100t-84 60l0 370-100 0 0-368q-54-16-89-61t-35-101q0-70 50-120t120-50z%22 horiz-adv-x%3D%22540%22 %2F%3E%3Cglyph glyph-name%3D%22key%22 unicode%3D%22%26%23xe8d7%3B%22 d%3D%22M774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z%22 horiz-adv-x%3D%22780%22 %2F%3E%3Cglyph glyph-name%3D%22flow-cascade%22 unicode%3D%22%26%23xe8d8%3B%22 d%3D%22M520 120q50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-88 0-131 54t-43 118l0 464q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-114q0-78 78-78l164 0q30 72 110 72 50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-42 0-78 16l0-194q0-78 78-78l164 0q30 72 110 72z m0 300q-28 0-49-20t-21-50q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20z m-470 280q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20-49-20-21-50z m470-768q28 0 49 20t21 48q0 30-21 50t-49 20-49-20-21-50q0-28 21-48t49-20z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22flow-branch%22 unicode%3D%22%26%23xe8d9%3B%22 d%3D%22M640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22flow-tree%22 unicode%3D%22%26%23xe8da%3B%22 d%3D%22M868 112q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 78-76 78l-100 0q-44 0-78 12l0-204q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 204q-30-12-76-12l-100 0q-34 0-53-19t-22-33-3-26l0-114q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 64 43 118t131 54l100 0q76 0 76 52l0 140q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-140q0-52 78-52l100 0q86 0 129-54t43-118l0-114z m-678-112q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m212 700q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m138-700q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m280-68q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22flow-line%22 unicode%3D%22%26%23xe8db%3B%22 d%3D%22M168 162q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22240%22 %2F%3E%3Cglyph glyph-name%3D%22flow-parallel%22 unicode%3D%22%26%23xe8dc%3B%22 d%3D%22M240 650q0-76-72-110l0-378q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85z m-50-600q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m-70 532q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m448-420q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22rocket%22 unicode%3D%22%26%23xe8dd%3B%22 d%3D%22M543 236q6-50 8-81t-8-59-13-40-35-32-45-26-70-31-85-37q-32-12-45 4t-3 44l40 110-130 132-106-40q-28-12-43 2t-3 46q12 30 31 79t27 65 22 45 25 36 29 20 41 13l52 0t71-6q10 14 29 39t77 85 118 104 145 75 165 19q8 0 14-6 4-4 6-14 10-82-18-168t-76-151-98-118-86-81z m50 296q22-22 54-22t54 22q22 24 22 56t-22 56q-22 22-54 22t-54-22q-22-24-22-56t22-56z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22gauge%22 unicode%3D%22%26%23xe8de%3B%22 d%3D%22M406 178q34 56 214 284t194 220q12-6-96-278t-138-326q-50-86-136-36t-38 136z m94 380q-168 0-284-127t-116-311q0-30 2-46 2-22-12-37t-34-17-36 12-18 34q0 8-1 26t-1 28q0 226 145 382t355 156q72 0 134-18l-70-86q-40 4-64 4z m362-62q138-154 138-376 0-38-2-56-2-20-16-33t-34-13l-4 0q-22 4-35 20t-11 36q2 14 2 46 0 150-80 268 6 14 20 51t22 57z%22 horiz-adv-x%3D%221000%22 %2F%3E%3C%2Ffont%3E%3C%2Fdefs%3E%3C%2Fsvg%3E") format("svg");\n  font-weight: normal;\n  font-style: normal;\n}\n.lm-plugin {\n  font-family: "Helvetica Neue", "Source Sans Pro", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857143;\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  /*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n  /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n  /* info */\n  /* badge */\n  /* overlay */\n  /* background */\n  /* highlight */\n  background: #eeece7;\n}\n.lm-plugin html {\n  font-family: sans-serif;\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n}\n.lm-plugin body {\n  margin: 0;\n}\n.lm-plugin article,\n.lm-plugin aside,\n.lm-plugin details,\n.lm-plugin figcaption,\n.lm-plugin figure,\n.lm-plugin footer,\n.lm-plugin header,\n.lm-plugin hgroup,\n.lm-plugin main,\n.lm-plugin menu,\n.lm-plugin nav,\n.lm-plugin section,\n.lm-plugin summary {\n  display: block;\n}\n.lm-plugin audio,\n.lm-plugin canvas,\n.lm-plugin progress,\n.lm-plugin video {\n  display: inline-block;\n  vertical-align: baseline;\n}\n.lm-plugin audio:not([controls]) {\n  display: none;\n  height: 0;\n}\n.lm-plugin [hidden],\n.lm-plugin template {\n  display: none;\n}\n.lm-plugin a {\n  background-color: transparent;\n}\n.lm-plugin a:active,\n.lm-plugin a:hover {\n  outline: 0;\n}\n.lm-plugin abbr[title] {\n  border-bottom: 1px dotted;\n}\n.lm-plugin b,\n.lm-plugin strong {\n  font-weight: bold;\n}\n.lm-plugin dfn {\n  font-style: italic;\n}\n.lm-plugin h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n.lm-plugin mark {\n  background: #ff0;\n  color: #000;\n}\n.lm-plugin small {\n  font-size: 80%;\n}\n.lm-plugin sub,\n.lm-plugin sup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n.lm-plugin sup {\n  top: -0.5em;\n}\n.lm-plugin sub {\n  bottom: -0.25em;\n}\n.lm-plugin img {\n  border: 0;\n}\n.lm-plugin svg:not(:root) {\n  overflow: hidden;\n}\n.lm-plugin figure {\n  margin: 1em 40px;\n}\n.lm-plugin hr {\n  box-sizing: content-box;\n  height: 0;\n}\n.lm-plugin pre {\n  overflow: auto;\n}\n.lm-plugin code,\n.lm-plugin kbd,\n.lm-plugin pre,\n.lm-plugin samp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n.lm-plugin button,\n.lm-plugin input,\n.lm-plugin optgroup,\n.lm-plugin select,\n.lm-plugin textarea {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n.lm-plugin button {\n  overflow: visible;\n}\n.lm-plugin button,\n.lm-plugin select {\n  text-transform: none;\n}\n.lm-plugin button,\n.lm-plugin html input[type="button"],\n.lm-plugin input[type="reset"],\n.lm-plugin input[type="submit"] {\n  -webkit-appearance: button;\n  cursor: pointer;\n}\n.lm-plugin button[disabled],\n.lm-plugin html input[disabled] {\n  cursor: default;\n}\n.lm-plugin button::-moz-focus-inner,\n.lm-plugin input::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n.lm-plugin input {\n  line-height: normal;\n}\n.lm-plugin input[type="checkbox"],\n.lm-plugin input[type="radio"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n.lm-plugin input[type="number"]::-webkit-inner-spin-button,\n.lm-plugin input[type="number"]::-webkit-outer-spin-button {\n  height: auto;\n}\n.lm-plugin input[type="search"] {\n  -webkit-appearance: textfield;\n  box-sizing: content-box;\n}\n.lm-plugin input[type="search"]::-webkit-search-cancel-button,\n.lm-plugin input[type="search"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n.lm-plugin fieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n.lm-plugin legend {\n  border: 0;\n  padding: 0;\n}\n.lm-plugin textarea {\n  overflow: auto;\n}\n.lm-plugin optgroup {\n  font-weight: bold;\n}\n.lm-plugin table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n.lm-plugin td,\n.lm-plugin th {\n  padding: 0;\n}\n.lm-plugin * {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.lm-plugin *:before,\n.lm-plugin *:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.lm-plugin html {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.lm-plugin body {\n  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #333333;\n  background-color: #fff;\n}\n.lm-plugin input,\n.lm-plugin button,\n.lm-plugin select,\n.lm-plugin textarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n.lm-plugin a {\n  color: #337ab7;\n  text-decoration: none;\n}\n.lm-plugin a:hover,\n.lm-plugin a:focus {\n  color: #23527c;\n  text-decoration: underline;\n}\n.lm-plugin a:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.lm-plugin figure {\n  margin: 0;\n}\n.lm-plugin img {\n  vertical-align: middle;\n}\n.lm-plugin .img-responsive {\n  display: block;\n  max-width: 100%;\n  height: auto;\n}\n.lm-plugin .img-rounded {\n  border-radius: 0;\n}\n.lm-plugin .img-thumbnail {\n  padding: 4px;\n  line-height: 1.42857;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 0;\n  -webkit-transition: all 0.2s ease-in-out;\n  -o-transition: all 0.2s ease-in-out;\n  transition: all 0.2s ease-in-out;\n  display: inline-block;\n  max-width: 100%;\n  height: auto;\n}\n.lm-plugin .img-circle {\n  border-radius: 50%;\n}\n.lm-plugin hr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n}\n.lm-plugin .sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.lm-plugin .sr-only-focusable:active,\n.lm-plugin .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n.lm-plugin [role="button"] {\n  cursor: pointer;\n}\n.lm-plugin h1,\n.lm-plugin h2,\n.lm-plugin h3,\n.lm-plugin h4,\n.lm-plugin h5,\n.lm-plugin h6,\n.lm-plugin .h1,\n.lm-plugin .h2,\n.lm-plugin .h3,\n.lm-plugin .h4,\n.lm-plugin .h5,\n.lm-plugin .h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\n.lm-plugin h1 small,\n.lm-plugin h1 .small,\n.lm-plugin h2 small,\n.lm-plugin h2 .small,\n.lm-plugin h3 small,\n.lm-plugin h3 .small,\n.lm-plugin h4 small,\n.lm-plugin h4 .small,\n.lm-plugin h5 small,\n.lm-plugin h5 .small,\n.lm-plugin h6 small,\n.lm-plugin h6 .small,\n.lm-plugin .h1 small,\n.lm-plugin .h1 .small,\n.lm-plugin .h2 small,\n.lm-plugin .h2 .small,\n.lm-plugin .h3 small,\n.lm-plugin .h3 .small,\n.lm-plugin .h4 small,\n.lm-plugin .h4 .small,\n.lm-plugin .h5 small,\n.lm-plugin .h5 .small,\n.lm-plugin .h6 small,\n.lm-plugin .h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #777777;\n}\n.lm-plugin h1,\n.lm-plugin .h1,\n.lm-plugin h2,\n.lm-plugin .h2,\n.lm-plugin h3,\n.lm-plugin .h3 {\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\n.lm-plugin h1 small,\n.lm-plugin h1 .small,\n.lm-plugin .h1 small,\n.lm-plugin .h1 .small,\n.lm-plugin h2 small,\n.lm-plugin h2 .small,\n.lm-plugin .h2 small,\n.lm-plugin .h2 .small,\n.lm-plugin h3 small,\n.lm-plugin h3 .small,\n.lm-plugin .h3 small,\n.lm-plugin .h3 .small {\n  font-size: 65%;\n}\n.lm-plugin h4,\n.lm-plugin .h4,\n.lm-plugin h5,\n.lm-plugin .h5,\n.lm-plugin h6,\n.lm-plugin .h6 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.lm-plugin h4 small,\n.lm-plugin h4 .small,\n.lm-plugin .h4 small,\n.lm-plugin .h4 .small,\n.lm-plugin h5 small,\n.lm-plugin h5 .small,\n.lm-plugin .h5 small,\n.lm-plugin .h5 .small,\n.lm-plugin h6 small,\n.lm-plugin h6 .small,\n.lm-plugin .h6 small,\n.lm-plugin .h6 .small {\n  font-size: 75%;\n}\n.lm-plugin h1,\n.lm-plugin .h1 {\n  font-size: 36px;\n}\n.lm-plugin h2,\n.lm-plugin .h2 {\n  font-size: 30px;\n}\n.lm-plugin h3,\n.lm-plugin .h3 {\n  font-size: 24px;\n}\n.lm-plugin h4,\n.lm-plugin .h4 {\n  font-size: 18px;\n}\n.lm-plugin h5,\n.lm-plugin .h5 {\n  font-size: 14px;\n}\n.lm-plugin h6,\n.lm-plugin .h6 {\n  font-size: 12px;\n}\n.lm-plugin p {\n  margin: 0 0 10px;\n}\n.lm-plugin .lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4;\n}\n@media (min-width: 768px) {\n  .lm-plugin .lead {\n    font-size: 21px;\n  }\n}\n.lm-plugin small,\n.lm-plugin .small {\n  font-size: 85%;\n}\n.lm-plugin mark,\n.lm-plugin .mark {\n  background-color: #fcf8e3;\n  padding: .2em;\n}\n.lm-plugin .text-left {\n  text-align: left;\n}\n.lm-plugin .text-right {\n  text-align: right;\n}\n.lm-plugin .text-center {\n  text-align: center;\n}\n.lm-plugin .text-justify {\n  text-align: justify;\n}\n.lm-plugin .text-nowrap {\n  white-space: nowrap;\n}\n.lm-plugin .text-lowercase {\n  text-transform: lowercase;\n}\n.lm-plugin .text-uppercase,\n.lm-plugin .initialism {\n  text-transform: uppercase;\n}\n.lm-plugin .text-capitalize {\n  text-transform: capitalize;\n}\n.lm-plugin .text-muted {\n  color: #777777;\n}\n.lm-plugin .text-primary {\n  color: #337ab7;\n}\n.lm-plugin a.text-primary:hover,\n.lm-plugin a.text-primary:focus {\n  color: #286090;\n}\n.lm-plugin .text-success {\n  color: #3c763d;\n}\n.lm-plugin a.text-success:hover,\n.lm-plugin a.text-success:focus {\n  color: #2b542c;\n}\n.lm-plugin .text-info {\n  color: #31708f;\n}\n.lm-plugin a.text-info:hover,\n.lm-plugin a.text-info:focus {\n  color: #245269;\n}\n.lm-plugin .text-warning {\n  color: #8a6d3b;\n}\n.lm-plugin a.text-warning:hover,\n.lm-plugin a.text-warning:focus {\n  color: #66512c;\n}\n.lm-plugin .text-danger {\n  color: #a94442;\n}\n.lm-plugin a.text-danger:hover,\n.lm-plugin a.text-danger:focus {\n  color: #843534;\n}\n.lm-plugin .bg-primary {\n  color: #fff;\n}\n.lm-plugin .bg-primary {\n  background-color: #337ab7;\n}\n.lm-plugin a.bg-primary:hover,\n.lm-plugin a.bg-primary:focus {\n  background-color: #286090;\n}\n.lm-plugin .bg-success {\n  background-color: #dff0d8;\n}\n.lm-plugin a.bg-success:hover,\n.lm-plugin a.bg-success:focus {\n  background-color: #c1e2b3;\n}\n.lm-plugin .bg-info {\n  background-color: #d9edf7;\n}\n.lm-plugin a.bg-info:hover,\n.lm-plugin a.bg-info:focus {\n  background-color: #afd9ee;\n}\n.lm-plugin .bg-warning {\n  background-color: #fcf8e3;\n}\n.lm-plugin a.bg-warning:hover,\n.lm-plugin a.bg-warning:focus {\n  background-color: #f7ecb5;\n}\n.lm-plugin .bg-danger {\n  background-color: #f2dede;\n}\n.lm-plugin a.bg-danger:hover,\n.lm-plugin a.bg-danger:focus {\n  background-color: #e4b9b9;\n}\n.lm-plugin .page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eeeeee;\n}\n.lm-plugin ul,\n.lm-plugin ol {\n  margin-top: 0;\n  margin-bottom: 10px;\n}\n.lm-plugin ul ul,\n.lm-plugin ul ol,\n.lm-plugin ol ul,\n.lm-plugin ol ol {\n  margin-bottom: 0;\n}\n.lm-plugin .lm-list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n.lm-plugin .list-inline {\n  padding-left: 0;\n  list-style: none;\n  margin-left: -5px;\n}\n.lm-plugin .list-inline > li {\n  display: inline-block;\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.lm-plugin dl {\n  margin-top: 0;\n  margin-bottom: 20px;\n}\n.lm-plugin dt,\n.lm-plugin dd {\n  line-height: 1.42857;\n}\n.lm-plugin dt {\n  font-weight: bold;\n}\n.lm-plugin dd {\n  margin-left: 0;\n}\n.lm-plugin .dl-horizontal dd:before,\n.lm-plugin .dl-horizontal dd:after {\n  content: " ";\n  display: table;\n}\n.lm-plugin .dl-horizontal dd:after {\n  clear: both;\n}\n@media (min-width: 768px) {\n  .lm-plugin .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    clear: left;\n    text-align: right;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .lm-plugin .dl-horizontal dd {\n    margin-left: 180px;\n  }\n}\n.lm-plugin abbr[title],\n.lm-plugin abbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777777;\n}\n.lm-plugin .initialism {\n  font-size: 90%;\n}\n.lm-plugin blockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eeeeee;\n}\n.lm-plugin blockquote p:last-child,\n.lm-plugin blockquote ul:last-child,\n.lm-plugin blockquote ol:last-child {\n  margin-bottom: 0;\n}\n.lm-plugin blockquote footer,\n.lm-plugin blockquote small,\n.lm-plugin blockquote .small {\n  display: block;\n  font-size: 80%;\n  line-height: 1.42857;\n  color: #777777;\n}\n.lm-plugin blockquote footer:before,\n.lm-plugin blockquote small:before,\n.lm-plugin blockquote .small:before {\n  content: \'\\2014 \\00A0\';\n}\n.lm-plugin .blockquote-reverse,\n.lm-plugin blockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n  text-align: right;\n}\n.lm-plugin .blockquote-reverse footer:before,\n.lm-plugin .blockquote-reverse small:before,\n.lm-plugin .blockquote-reverse .small:before,\n.lm-plugin blockquote.pull-right footer:before,\n.lm-plugin blockquote.pull-right small:before,\n.lm-plugin blockquote.pull-right .small:before {\n  content: \'\';\n}\n.lm-plugin .blockquote-reverse footer:after,\n.lm-plugin .blockquote-reverse small:after,\n.lm-plugin .blockquote-reverse .small:after,\n.lm-plugin blockquote.pull-right footer:after,\n.lm-plugin blockquote.pull-right small:after,\n.lm-plugin blockquote.pull-right .small:after {\n  content: \'\\00A0 \\2014\';\n}\n.lm-plugin address {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857;\n}\n.lm-plugin fieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0;\n}\n.lm-plugin legend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\n.lm-plugin label {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n.lm-plugin input[type="search"] {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.lm-plugin input[type="radio"],\n.lm-plugin input[type="checkbox"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal;\n}\n.lm-plugin input[type="file"] {\n  display: block;\n}\n.lm-plugin input[type="range"] {\n  display: block;\n  width: 100%;\n}\n.lm-plugin select[multiple],\n.lm-plugin select[size] {\n  height: auto;\n}\n.lm-plugin input[type="file"]:focus,\n.lm-plugin input[type="radio"]:focus,\n.lm-plugin input[type="checkbox"]:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.lm-plugin output {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #555555;\n}\n.lm-plugin .lm-form-control,\n.lm-plugin .lm-control-row select,\n.lm-plugin .lm-control-row button,\n.lm-plugin .lm-control-row input[type=text] {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #555555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 0;\n}\n.lm-plugin .lm-form-control:focus,\n.lm-plugin .lm-control-row select:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-control-row input:focus[type=text] {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.lm-plugin .lm-form-control::-moz-placeholder,\n.lm-plugin .lm-control-row select::-moz-placeholder,\n.lm-plugin .lm-control-row button::-moz-placeholder,\n.lm-plugin .lm-control-row input[type=text]::-moz-placeholder {\n  color: #999;\n  opacity: 1;\n}\n.lm-plugin .lm-form-control:-ms-input-placeholder,\n.lm-plugin .lm-control-row select:-ms-input-placeholder,\n.lm-plugin .lm-control-row button:-ms-input-placeholder,\n.lm-plugin .lm-control-row input:-ms-input-placeholder[type=text] {\n  color: #999;\n}\n.lm-plugin .lm-form-control::-webkit-input-placeholder,\n.lm-plugin .lm-control-row select::-webkit-input-placeholder,\n.lm-plugin .lm-control-row button::-webkit-input-placeholder,\n.lm-plugin .lm-control-row input[type=text]::-webkit-input-placeholder {\n  color: #999;\n}\n.lm-plugin .lm-form-control::-ms-expand,\n.lm-plugin .lm-control-row select::-ms-expand,\n.lm-plugin .lm-control-row button::-ms-expand,\n.lm-plugin .lm-control-row input[type=text]::-ms-expand {\n  border: 0;\n  background-color: transparent;\n}\n.lm-plugin .lm-form-control[disabled],\n.lm-plugin .lm-control-row select[disabled],\n.lm-plugin .lm-control-row button[disabled],\n.lm-plugin .lm-control-row input[disabled][type=text],\n.lm-plugin .lm-form-control[readonly],\n.lm-plugin .lm-control-row select[readonly],\n.lm-plugin .lm-control-row button[readonly],\n.lm-plugin .lm-control-row input[readonly][type=text],\nfieldset[disabled] .lm-plugin .lm-form-control,\nfieldset[disabled] .lm-plugin .lm-control-row select,\nfieldset[disabled] .lm-plugin .lm-control-row button,\nfieldset[disabled] .lm-plugin .lm-control-row input[type=text] {\n  background-color: #eeeeee;\n  opacity: 1;\n}\n.lm-plugin .lm-form-control[disabled],\n.lm-plugin .lm-control-row select[disabled],\n.lm-plugin .lm-control-row button[disabled],\n.lm-plugin .lm-control-row input[disabled][type=text],\nfieldset[disabled] .lm-plugin .lm-form-control,\nfieldset[disabled] .lm-plugin .lm-control-row select,\nfieldset[disabled] .lm-plugin .lm-control-row button,\nfieldset[disabled] .lm-plugin .lm-control-row input[type=text] {\n  cursor: not-allowed;\n}\n.lm-plugin textarea.lm-form-control {\n  height: auto;\n}\n.lm-plugin input[type="search"] {\n  -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  .lm-plugin input[type="date"].lm-form-control,\n  .lm-plugin .lm-control-row input[type="date"][type=text],\n  .lm-plugin input[type="time"].lm-form-control,\n  .lm-plugin .lm-control-row input[type="time"][type=text],\n  .lm-plugin input[type="datetime-local"].lm-form-control,\n  .lm-plugin .lm-control-row input[type="datetime-local"][type=text],\n  .lm-plugin input[type="month"].lm-form-control,\n  .lm-plugin .lm-control-row input[type="month"][type=text] {\n    line-height: 34px;\n  }\n\n  .lm-plugin input[type="date"].input-sm,\n  .lm-plugin .input-group-sm > input.lm-form-control[type="date"],\n  .lm-plugin .lm-control-row .input-group-sm > input[type="date"][type=text],\n  .lm-plugin .input-group-sm > input.input-group-addon[type="date"],\n  .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="date"],\n  .input-group-sm .lm-plugin input[type="date"],\n  .lm-plugin input[type="time"].input-sm,\n  .lm-plugin .input-group-sm > input.lm-form-control[type="time"],\n  .lm-plugin .lm-control-row .input-group-sm > input[type="time"][type=text],\n  .lm-plugin .input-group-sm > input.input-group-addon[type="time"],\n  .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="time"],\n  .input-group-sm\n    .lm-plugin input[type="time"],\n  .lm-plugin input[type="datetime-local"].input-sm,\n  .lm-plugin .input-group-sm > input.lm-form-control[type="datetime-local"],\n  .lm-plugin .lm-control-row .input-group-sm > input[type="datetime-local"][type=text],\n  .lm-plugin .input-group-sm > input.input-group-addon[type="datetime-local"],\n  .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="datetime-local"],\n  .input-group-sm\n    .lm-plugin input[type="datetime-local"],\n  .lm-plugin input[type="month"].input-sm,\n  .lm-plugin .input-group-sm > input.lm-form-control[type="month"],\n  .lm-plugin .lm-control-row .input-group-sm > input[type="month"][type=text],\n  .lm-plugin .input-group-sm > input.input-group-addon[type="month"],\n  .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="month"],\n  .input-group-sm\n    .lm-plugin input[type="month"] {\n    line-height: 30px;\n  }\n\n  .lm-plugin input[type="date"].input-lg,\n  .lm-plugin .input-group-lg > input.lm-form-control[type="date"],\n  .lm-plugin .lm-control-row .input-group-lg > input[type="date"][type=text],\n  .lm-plugin .input-group-lg > input.input-group-addon[type="date"],\n  .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="date"],\n  .input-group-lg .lm-plugin input[type="date"],\n  .lm-plugin input[type="time"].input-lg,\n  .lm-plugin .input-group-lg > input.lm-form-control[type="time"],\n  .lm-plugin .lm-control-row .input-group-lg > input[type="time"][type=text],\n  .lm-plugin .input-group-lg > input.input-group-addon[type="time"],\n  .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="time"],\n  .input-group-lg\n    .lm-plugin input[type="time"],\n  .lm-plugin input[type="datetime-local"].input-lg,\n  .lm-plugin .input-group-lg > input.lm-form-control[type="datetime-local"],\n  .lm-plugin .lm-control-row .input-group-lg > input[type="datetime-local"][type=text],\n  .lm-plugin .input-group-lg > input.input-group-addon[type="datetime-local"],\n  .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="datetime-local"],\n  .input-group-lg\n    .lm-plugin input[type="datetime-local"],\n  .lm-plugin input[type="month"].input-lg,\n  .lm-plugin .input-group-lg > input.lm-form-control[type="month"],\n  .lm-plugin .lm-control-row .input-group-lg > input[type="month"][type=text],\n  .lm-plugin .input-group-lg > input.input-group-addon[type="month"],\n  .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="month"],\n  .input-group-lg\n    .lm-plugin input[type="month"] {\n    line-height: 46px;\n  }\n}\n.lm-plugin .form-group {\n  margin-bottom: 15px;\n}\n.lm-plugin .radio,\n.lm-plugin .checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.lm-plugin .radio label,\n.lm-plugin .checkbox label {\n  min-height: 20px;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n.lm-plugin .radio input[type="radio"],\n.lm-plugin .radio-inline input[type="radio"],\n.lm-plugin .checkbox input[type="checkbox"],\n.lm-plugin .checkbox-inline input[type="checkbox"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9;\n}\n.lm-plugin .radio + .radio,\n.lm-plugin .checkbox + .checkbox {\n  margin-top: -5px;\n}\n.lm-plugin .radio-inline,\n.lm-plugin .checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.lm-plugin .radio-inline + .radio-inline,\n.lm-plugin .checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\n.lm-plugin input[type="radio"][disabled],\n.lm-plugin input[type="radio"].disabled,\nfieldset[disabled] .lm-plugin input[type="radio"],\n.lm-plugin input[type="checkbox"][disabled],\n.lm-plugin input[type="checkbox"].disabled,\nfieldset[disabled]\n  .lm-plugin input[type="checkbox"] {\n  cursor: not-allowed;\n}\n.lm-plugin .radio-inline.disabled,\nfieldset[disabled] .lm-plugin .radio-inline,\n.lm-plugin .checkbox-inline.disabled,\nfieldset[disabled]\n  .lm-plugin .checkbox-inline {\n  cursor: not-allowed;\n}\n.lm-plugin .radio.disabled label,\nfieldset[disabled] .lm-plugin .radio label,\n.lm-plugin .checkbox.disabled label,\nfieldset[disabled]\n  .lm-plugin .checkbox label {\n  cursor: not-allowed;\n}\n.lm-plugin .lm-form-control-static {\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n  min-height: 34px;\n}\n.lm-plugin .lm-form-control-static.input-lg,\n.lm-plugin .input-group-lg > .lm-form-control-static.lm-form-control,\n.lm-plugin .lm-control-row .input-group-lg > select.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-lg > button.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-lg > input.lm-form-control-static[type=text],\n.lm-plugin .input-group-lg > .lm-form-control-static.input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .lm-form-control-static.lm-btn,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button.lm-form-control-static,\n.lm-plugin .lm-form-control-static.input-sm,\n.lm-plugin .input-group-sm > .lm-form-control-static.lm-form-control,\n.lm-plugin .lm-control-row .input-group-sm > select.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-sm > button.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-sm > input.lm-form-control-static[type=text],\n.lm-plugin .input-group-sm > .lm-form-control-static.input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .lm-form-control-static.lm-btn,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button.lm-form-control-static {\n  padding-left: 0;\n  padding-right: 0;\n}\n.lm-plugin .input-sm,\n.lm-plugin .input-group-sm > .lm-form-control,\n.lm-plugin .lm-control-row .input-group-sm > select,\n.lm-plugin .lm-control-row .input-group-sm > button,\n.lm-plugin .lm-control-row .input-group-sm > input[type=text],\n.lm-plugin .input-group-sm > .input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .lm-btn,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 0;\n}\n.lm-plugin select.input-sm,\n.lm-plugin .input-group-sm > select.lm-form-control,\n.lm-plugin .lm-control-row .input-group-sm > select,\n.lm-plugin .input-group-sm > select.input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > select.lm-btn {\n  height: 30px;\n  line-height: 30px;\n}\n.lm-plugin textarea.input-sm,\n.lm-plugin .input-group-sm > textarea.lm-form-control,\n.lm-plugin .input-group-sm > textarea.input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > textarea.lm-btn,\n.lm-plugin select[multiple].input-sm,\n.lm-plugin .input-group-sm > select.lm-form-control[multiple],\n.lm-plugin .lm-control-row .input-group-sm > select[multiple],\n.lm-plugin .input-group-sm > select.input-group-addon[multiple],\n.lm-plugin .input-group-sm > .input-group-lm-btn > select.lm-btn[multiple] {\n  height: auto;\n}\n.lm-plugin .form-group-sm .lm-form-control,\n.lm-plugin .form-group-sm .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-sm select,\n.lm-plugin .form-group-sm .lm-control-row button,\n.lm-plugin .lm-control-row .form-group-sm button,\n.lm-plugin .form-group-sm .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .form-group-sm input[type=text] {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 0;\n}\n.lm-plugin .form-group-sm select.lm-form-control,\n.lm-plugin .form-group-sm .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-sm select {\n  height: 30px;\n  line-height: 30px;\n}\n.lm-plugin .form-group-sm textarea.lm-form-control,\n.lm-plugin .form-group-sm select[multiple].lm-form-control,\n.lm-plugin .form-group-sm .lm-control-row select[multiple],\n.lm-plugin .lm-control-row .form-group-sm select[multiple] {\n  height: auto;\n}\n.lm-plugin .form-group-sm .lm-form-control-static {\n  height: 30px;\n  min-height: 32px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.lm-plugin .input-lg,\n.lm-plugin .input-group-lg > .lm-form-control,\n.lm-plugin .lm-control-row .input-group-lg > select,\n.lm-plugin .lm-control-row .input-group-lg > button,\n.lm-plugin .lm-control-row .input-group-lg > input[type=text],\n.lm-plugin .input-group-lg > .input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 0;\n}\n.lm-plugin select.input-lg,\n.lm-plugin .input-group-lg > select.lm-form-control,\n.lm-plugin .lm-control-row .input-group-lg > select,\n.lm-plugin .input-group-lg > select.input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > select.lm-btn {\n  height: 46px;\n  line-height: 46px;\n}\n.lm-plugin textarea.input-lg,\n.lm-plugin .input-group-lg > textarea.lm-form-control,\n.lm-plugin .input-group-lg > textarea.input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > textarea.lm-btn,\n.lm-plugin select[multiple].input-lg,\n.lm-plugin .input-group-lg > select.lm-form-control[multiple],\n.lm-plugin .lm-control-row .input-group-lg > select[multiple],\n.lm-plugin .input-group-lg > select.input-group-addon[multiple],\n.lm-plugin .input-group-lg > .input-group-lm-btn > select.lm-btn[multiple] {\n  height: auto;\n}\n.lm-plugin .form-group-lg .lm-form-control,\n.lm-plugin .form-group-lg .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-lg select,\n.lm-plugin .form-group-lg .lm-control-row button,\n.lm-plugin .lm-control-row .form-group-lg button,\n.lm-plugin .form-group-lg .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .form-group-lg input[type=text] {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 0;\n}\n.lm-plugin .form-group-lg select.lm-form-control,\n.lm-plugin .form-group-lg .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-lg select {\n  height: 46px;\n  line-height: 46px;\n}\n.lm-plugin .form-group-lg textarea.lm-form-control,\n.lm-plugin .form-group-lg select[multiple].lm-form-control,\n.lm-plugin .form-group-lg .lm-control-row select[multiple],\n.lm-plugin .lm-control-row .form-group-lg select[multiple] {\n  height: auto;\n}\n.lm-plugin .form-group-lg .lm-form-control-static {\n  height: 46px;\n  min-height: 38px;\n  padding: 11px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n}\n.lm-plugin .has-feedback {\n  position: relative;\n}\n.lm-plugin .has-feedback .lm-form-control,\n.lm-plugin .has-feedback .lm-control-row select,\n.lm-plugin .lm-control-row .has-feedback select,\n.lm-plugin .has-feedback .lm-control-row button,\n.lm-plugin .lm-control-row .has-feedback button,\n.lm-plugin .has-feedback .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-feedback input[type=text] {\n  padding-right: 42.5px;\n}\n.lm-plugin .lm-form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none;\n}\n.lm-plugin .input-lg + .lm-form-control-feedback,\n.lm-plugin .input-group-lg > .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > input[type=text] + .lm-form-control-feedback,\n.lm-plugin .input-group-lg > .input-group-addon + .lm-form-control-feedback,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .lm-btn + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button + .lm-form-control-feedback,\n.lm-plugin .input-group-lg + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-control-row select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-lg select + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-control-row button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-lg button + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-control-row input[type=text] + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-lg input[type=text] + .lm-form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px;\n}\n.lm-plugin .input-sm + .lm-form-control-feedback,\n.lm-plugin .input-group-sm > .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > input[type=text] + .lm-form-control-feedback,\n.lm-plugin .input-group-sm > .input-group-addon + .lm-form-control-feedback,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .lm-btn + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button + .lm-form-control-feedback,\n.lm-plugin .input-group-sm + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-control-row select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-sm select + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-control-row button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-sm button + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-control-row input[type=text] + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-sm input[type=text] + .lm-form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n}\n.lm-plugin .has-success .help-block,\n.lm-plugin .has-success .control-label,\n.lm-plugin .has-success .radio,\n.lm-plugin .has-success .checkbox,\n.lm-plugin .has-success .radio-inline,\n.lm-plugin .has-success .checkbox-inline,\n.lm-plugin .has-success.radio label,\n.lm-plugin .has-success.checkbox label,\n.lm-plugin .has-success.radio-inline label,\n.lm-plugin .has-success.checkbox-inline label {\n  color: #3c763d;\n}\n.lm-plugin .has-success .lm-form-control,\n.lm-plugin .has-success .lm-control-row select,\n.lm-plugin .lm-control-row .has-success select,\n.lm-plugin .has-success .lm-control-row button,\n.lm-plugin .lm-control-row .has-success button,\n.lm-plugin .has-success .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-success input[type=text] {\n  border-color: #3c763d;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.lm-plugin .has-success .lm-form-control:focus,\n.lm-plugin .has-success .lm-control-row select:focus,\n.lm-plugin .lm-control-row .has-success select:focus,\n.lm-plugin .has-success .lm-control-row button:focus,\n.lm-plugin .lm-control-row .has-success button:focus,\n.lm-plugin .has-success .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .has-success input:focus[type=text] {\n  border-color: #2b542c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.lm-plugin .has-success .input-group-addon {\n  color: #3c763d;\n  border-color: #3c763d;\n  background-color: #dff0d8;\n}\n.lm-plugin .has-success .lm-form-control-feedback {\n  color: #3c763d;\n}\n.lm-plugin .has-warning .help-block,\n.lm-plugin .has-warning .control-label,\n.lm-plugin .has-warning .radio,\n.lm-plugin .has-warning .checkbox,\n.lm-plugin .has-warning .radio-inline,\n.lm-plugin .has-warning .checkbox-inline,\n.lm-plugin .has-warning.radio label,\n.lm-plugin .has-warning.checkbox label,\n.lm-plugin .has-warning.radio-inline label,\n.lm-plugin .has-warning.checkbox-inline label {\n  color: #8a6d3b;\n}\n.lm-plugin .has-warning .lm-form-control,\n.lm-plugin .has-warning .lm-control-row select,\n.lm-plugin .lm-control-row .has-warning select,\n.lm-plugin .has-warning .lm-control-row button,\n.lm-plugin .lm-control-row .has-warning button,\n.lm-plugin .has-warning .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-warning input[type=text] {\n  border-color: #8a6d3b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.lm-plugin .has-warning .lm-form-control:focus,\n.lm-plugin .has-warning .lm-control-row select:focus,\n.lm-plugin .lm-control-row .has-warning select:focus,\n.lm-plugin .has-warning .lm-control-row button:focus,\n.lm-plugin .lm-control-row .has-warning button:focus,\n.lm-plugin .has-warning .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .has-warning input:focus[type=text] {\n  border-color: #66512c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.lm-plugin .has-warning .input-group-addon {\n  color: #8a6d3b;\n  border-color: #8a6d3b;\n  background-color: #fcf8e3;\n}\n.lm-plugin .has-warning .lm-form-control-feedback {\n  color: #8a6d3b;\n}\n.lm-plugin .has-error .help-block,\n.lm-plugin .has-error .control-label,\n.lm-plugin .has-error .radio,\n.lm-plugin .has-error .checkbox,\n.lm-plugin .has-error .radio-inline,\n.lm-plugin .has-error .checkbox-inline,\n.lm-plugin .has-error.radio label,\n.lm-plugin .has-error.checkbox label,\n.lm-plugin .has-error.radio-inline label,\n.lm-plugin .has-error.checkbox-inline label {\n  color: #a94442;\n}\n.lm-plugin .has-error .lm-form-control,\n.lm-plugin .has-error .lm-control-row select,\n.lm-plugin .lm-control-row .has-error select,\n.lm-plugin .has-error .lm-control-row button,\n.lm-plugin .lm-control-row .has-error button,\n.lm-plugin .has-error .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-error input[type=text] {\n  border-color: #a94442;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.lm-plugin .has-error .lm-form-control:focus,\n.lm-plugin .has-error .lm-control-row select:focus,\n.lm-plugin .lm-control-row .has-error select:focus,\n.lm-plugin .has-error .lm-control-row button:focus,\n.lm-plugin .lm-control-row .has-error button:focus,\n.lm-plugin .has-error .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .has-error input:focus[type=text] {\n  border-color: #843534;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.lm-plugin .has-error .input-group-addon {\n  color: #a94442;\n  border-color: #a94442;\n  background-color: #f2dede;\n}\n.lm-plugin .has-error .lm-form-control-feedback {\n  color: #a94442;\n}\n.lm-plugin .has-feedback label ~ .lm-form-control-feedback {\n  top: 25px;\n}\n.lm-plugin .has-feedback label.sr-only ~ .lm-form-control-feedback {\n  top: 0;\n}\n.lm-plugin .help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373;\n}\n@media (min-width: 768px) {\n  .lm-plugin .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n\n  .lm-plugin .form-inline .lm-form-control,\n  .lm-plugin .form-inline .lm-control-row select,\n  .lm-plugin .lm-control-row .form-inline select,\n  .lm-plugin .form-inline .lm-control-row button,\n  .lm-plugin .lm-control-row .form-inline button,\n  .lm-plugin .form-inline .lm-control-row input[type=text],\n  .lm-plugin .lm-control-row .form-inline input[type=text] {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n\n  .lm-plugin .form-inline .lm-form-control-static {\n    display: inline-block;\n  }\n\n  .lm-plugin .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n\n  .lm-plugin .form-inline .input-group .input-group-addon,\n  .lm-plugin .form-inline .input-group .input-group-lm-btn,\n  .lm-plugin .form-inline .input-group .lm-form-control,\n  .lm-plugin .form-inline .input-group .lm-control-row select,\n  .lm-plugin .lm-control-row .form-inline .input-group select,\n  .lm-plugin .form-inline .input-group .lm-control-row button,\n  .lm-plugin .lm-control-row .form-inline .input-group button,\n  .lm-plugin .form-inline .input-group .lm-control-row input[type=text],\n  .lm-plugin .lm-control-row .form-inline .input-group input[type=text] {\n    width: auto;\n  }\n\n  .lm-plugin .form-inline .input-group > .lm-form-control,\n  .lm-plugin .form-inline .lm-control-row .input-group > select,\n  .lm-plugin .lm-control-row .form-inline .input-group > select,\n  .lm-plugin .form-inline .lm-control-row .input-group > button,\n  .lm-plugin .lm-control-row .form-inline .input-group > button,\n  .lm-plugin .form-inline .lm-control-row .input-group > input[type=text],\n  .lm-plugin .lm-control-row .form-inline .input-group > input[type=text] {\n    width: 100%;\n  }\n\n  .lm-plugin .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n\n  .lm-plugin .form-inline .radio,\n  .lm-plugin .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n\n  .lm-plugin .form-inline .radio label,\n  .lm-plugin .form-inline .checkbox label {\n    padding-left: 0;\n  }\n\n  .lm-plugin .form-inline .radio input[type="radio"],\n  .lm-plugin .form-inline .checkbox input[type="checkbox"] {\n    position: relative;\n    margin-left: 0;\n  }\n\n  .lm-plugin .form-inline .has-feedback .lm-form-control-feedback {\n    top: 0;\n  }\n}\n.lm-plugin .form-horizontal .radio,\n.lm-plugin .form-horizontal .checkbox,\n.lm-plugin .form-horizontal .radio-inline,\n.lm-plugin .form-horizontal .checkbox-inline {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding-top: 7px;\n}\n.lm-plugin .form-horizontal .radio,\n.lm-plugin .form-horizontal .checkbox {\n  min-height: 27px;\n}\n.lm-plugin .form-horizontal .form-group {\n  margin-left: -15px;\n  margin-right: -15px;\n}\n.lm-plugin .form-horizontal .form-group:before,\n.lm-plugin .form-horizontal .form-group:after {\n  content: " ";\n  display: table;\n}\n.lm-plugin .form-horizontal .form-group:after {\n  clear: both;\n}\n@media (min-width: 768px) {\n  .lm-plugin .form-horizontal .control-label {\n    text-align: right;\n    margin-bottom: 0;\n    padding-top: 7px;\n  }\n}\n.lm-plugin .form-horizontal .has-feedback .lm-form-control-feedback {\n  right: 15px;\n}\n@media (min-width: 768px) {\n  .lm-plugin .form-horizontal .form-group-lg .control-label {\n    padding-top: 11px;\n    font-size: 18px;\n  }\n}\n@media (min-width: 768px) {\n  .lm-plugin .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px;\n  }\n}\n.lm-plugin .lm-btn,\n.lm-plugin .lm-control-row button {\n  display: inline-block;\n  margin-bottom: 0;\n  font-weight: normal;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857;\n  border-radius: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.lm-plugin .lm-btn:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-btn.focus,\n.lm-plugin .lm-control-row button.focus,\n.lm-plugin .lm-btn:active:focus,\n.lm-plugin .lm-control-row button:active:focus,\n.lm-plugin .lm-btn:active.focus,\n.lm-plugin .lm-control-row button:active.focus,\n.lm-plugin .lm-btn.active:focus,\n.lm-plugin .lm-control-row button.active:focus,\n.lm-plugin .lm-btn.active.focus,\n.lm-plugin .lm-control-row button.active.focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.lm-plugin .lm-btn:hover,\n.lm-plugin .lm-control-row button:hover,\n.lm-plugin .lm-btn:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-btn.focus,\n.lm-plugin .lm-control-row button.focus {\n  color: #333;\n  text-decoration: none;\n}\n.lm-plugin .lm-btn:active,\n.lm-plugin .lm-control-row button:active,\n.lm-plugin .lm-btn.active,\n.lm-plugin .lm-control-row button.active {\n  outline: 0;\n  background-image: none;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.lm-plugin .lm-btn.disabled,\n.lm-plugin .lm-control-row button.disabled,\n.lm-plugin .lm-btn[disabled],\n.lm-plugin .lm-control-row button[disabled],\nfieldset[disabled] .lm-plugin .lm-btn,\nfieldset[disabled] .lm-plugin .lm-control-row button {\n  cursor: not-allowed;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.lm-plugin a.lm-btn.disabled,\nfieldset[disabled] .lm-plugin a.lm-btn {\n  pointer-events: none;\n}\n.lm-plugin .lm-btn-default {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc;\n}\n.lm-plugin .lm-btn-default:focus,\n.lm-plugin .lm-btn-default.focus {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\n.lm-plugin .lm-btn-default:hover {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.lm-plugin .lm-btn-default:active,\n.lm-plugin .lm-btn-default.active,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.lm-plugin .lm-btn-default:active:hover,\n.lm-plugin .lm-btn-default:active:focus,\n.lm-plugin .lm-btn-default:active.focus,\n.lm-plugin .lm-btn-default.active:hover,\n.lm-plugin .lm-btn-default.active:focus,\n.lm-plugin .lm-btn-default.active.focus,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle.focus {\n  color: #333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\n.lm-plugin .lm-btn-default:active,\n.lm-plugin .lm-btn-default.active,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle {\n  background-image: none;\n}\n.lm-plugin .lm-btn-default.disabled:hover,\n.lm-plugin .lm-btn-default.disabled:focus,\n.lm-plugin .lm-btn-default.disabled.focus,\n.lm-plugin .lm-btn-default[disabled]:hover,\n.lm-plugin .lm-btn-default[disabled]:focus,\n.lm-plugin .lm-btn-default[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-default:hover,\nfieldset[disabled] .lm-plugin .lm-btn-default:focus,\nfieldset[disabled] .lm-plugin .lm-btn-default.focus {\n  background-color: #fff;\n  border-color: #ccc;\n}\n.lm-plugin .lm-btn-default .badge {\n  color: #fff;\n  background-color: #333;\n}\n.lm-plugin .lm-btn-primary {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.lm-plugin .lm-btn-primary:focus,\n.lm-plugin .lm-btn-primary.focus {\n  color: #fff;\n  background-color: #286090;\n  border-color: #122b40;\n}\n.lm-plugin .lm-btn-primary:hover {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.lm-plugin .lm-btn-primary:active,\n.lm-plugin .lm-btn-primary.active,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.lm-plugin .lm-btn-primary:active:hover,\n.lm-plugin .lm-btn-primary:active:focus,\n.lm-plugin .lm-btn-primary:active.focus,\n.lm-plugin .lm-btn-primary.active:hover,\n.lm-plugin .lm-btn-primary.active:focus,\n.lm-plugin .lm-btn-primary.active.focus,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle.focus {\n  color: #fff;\n  background-color: #204d74;\n  border-color: #122b40;\n}\n.lm-plugin .lm-btn-primary:active,\n.lm-plugin .lm-btn-primary.active,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle {\n  background-image: none;\n}\n.lm-plugin .lm-btn-primary.disabled:hover,\n.lm-plugin .lm-btn-primary.disabled:focus,\n.lm-plugin .lm-btn-primary.disabled.focus,\n.lm-plugin .lm-btn-primary[disabled]:hover,\n.lm-plugin .lm-btn-primary[disabled]:focus,\n.lm-plugin .lm-btn-primary[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-primary:hover,\nfieldset[disabled] .lm-plugin .lm-btn-primary:focus,\nfieldset[disabled] .lm-plugin .lm-btn-primary.focus {\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.lm-plugin .lm-btn-primary .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.lm-plugin .lm-btn-success {\n  color: #fff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.lm-plugin .lm-btn-success:focus,\n.lm-plugin .lm-btn-success.focus {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #255625;\n}\n.lm-plugin .lm-btn-success:hover {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.lm-plugin .lm-btn-success:active,\n.lm-plugin .lm-btn-success.active,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.lm-plugin .lm-btn-success:active:hover,\n.lm-plugin .lm-btn-success:active:focus,\n.lm-plugin .lm-btn-success:active.focus,\n.lm-plugin .lm-btn-success.active:hover,\n.lm-plugin .lm-btn-success.active:focus,\n.lm-plugin .lm-btn-success.active.focus,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle.focus {\n  color: #fff;\n  background-color: #398439;\n  border-color: #255625;\n}\n.lm-plugin .lm-btn-success:active,\n.lm-plugin .lm-btn-success.active,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle {\n  background-image: none;\n}\n.lm-plugin .lm-btn-success.disabled:hover,\n.lm-plugin .lm-btn-success.disabled:focus,\n.lm-plugin .lm-btn-success.disabled.focus,\n.lm-plugin .lm-btn-success[disabled]:hover,\n.lm-plugin .lm-btn-success[disabled]:focus,\n.lm-plugin .lm-btn-success[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-success:hover,\nfieldset[disabled] .lm-plugin .lm-btn-success:focus,\nfieldset[disabled] .lm-plugin .lm-btn-success.focus {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.lm-plugin .lm-btn-success .badge {\n  color: #5cb85c;\n  background-color: #fff;\n}\n.lm-plugin .lm-btn-info {\n  color: #fff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.lm-plugin .lm-btn-info:focus,\n.lm-plugin .lm-btn-info.focus {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #1b6d85;\n}\n.lm-plugin .lm-btn-info:hover {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.lm-plugin .lm-btn-info:active,\n.lm-plugin .lm-btn-info.active,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.lm-plugin .lm-btn-info:active:hover,\n.lm-plugin .lm-btn-info:active:focus,\n.lm-plugin .lm-btn-info:active.focus,\n.lm-plugin .lm-btn-info.active:hover,\n.lm-plugin .lm-btn-info.active:focus,\n.lm-plugin .lm-btn-info.active.focus,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle.focus {\n  color: #fff;\n  background-color: #269abc;\n  border-color: #1b6d85;\n}\n.lm-plugin .lm-btn-info:active,\n.lm-plugin .lm-btn-info.active,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle {\n  background-image: none;\n}\n.lm-plugin .lm-btn-info.disabled:hover,\n.lm-plugin .lm-btn-info.disabled:focus,\n.lm-plugin .lm-btn-info.disabled.focus,\n.lm-plugin .lm-btn-info[disabled]:hover,\n.lm-plugin .lm-btn-info[disabled]:focus,\n.lm-plugin .lm-btn-info[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-info:hover,\nfieldset[disabled] .lm-plugin .lm-btn-info:focus,\nfieldset[disabled] .lm-plugin .lm-btn-info.focus {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.lm-plugin .lm-btn-info .badge {\n  color: #5bc0de;\n  background-color: #fff;\n}\n.lm-plugin .lm-btn-warning {\n  color: #fff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.lm-plugin .lm-btn-warning:focus,\n.lm-plugin .lm-btn-warning.focus {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #985f0d;\n}\n.lm-plugin .lm-btn-warning:hover {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.lm-plugin .lm-btn-warning:active,\n.lm-plugin .lm-btn-warning.active,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.lm-plugin .lm-btn-warning:active:hover,\n.lm-plugin .lm-btn-warning:active:focus,\n.lm-plugin .lm-btn-warning:active.focus,\n.lm-plugin .lm-btn-warning.active:hover,\n.lm-plugin .lm-btn-warning.active:focus,\n.lm-plugin .lm-btn-warning.active.focus,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle.focus {\n  color: #fff;\n  background-color: #d58512;\n  border-color: #985f0d;\n}\n.lm-plugin .lm-btn-warning:active,\n.lm-plugin .lm-btn-warning.active,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle {\n  background-image: none;\n}\n.lm-plugin .lm-btn-warning.disabled:hover,\n.lm-plugin .lm-btn-warning.disabled:focus,\n.lm-plugin .lm-btn-warning.disabled.focus,\n.lm-plugin .lm-btn-warning[disabled]:hover,\n.lm-plugin .lm-btn-warning[disabled]:focus,\n.lm-plugin .lm-btn-warning[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-warning:hover,\nfieldset[disabled] .lm-plugin .lm-btn-warning:focus,\nfieldset[disabled] .lm-plugin .lm-btn-warning.focus {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.lm-plugin .lm-btn-warning .badge {\n  color: #f0ad4e;\n  background-color: #fff;\n}\n.lm-plugin .lm-btn-danger {\n  color: #fff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.lm-plugin .lm-btn-danger:focus,\n.lm-plugin .lm-btn-danger.focus {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #761c19;\n}\n.lm-plugin .lm-btn-danger:hover {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.lm-plugin .lm-btn-danger:active,\n.lm-plugin .lm-btn-danger.active,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.lm-plugin .lm-btn-danger:active:hover,\n.lm-plugin .lm-btn-danger:active:focus,\n.lm-plugin .lm-btn-danger:active.focus,\n.lm-plugin .lm-btn-danger.active:hover,\n.lm-plugin .lm-btn-danger.active:focus,\n.lm-plugin .lm-btn-danger.active.focus,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle.focus {\n  color: #fff;\n  background-color: #ac2925;\n  border-color: #761c19;\n}\n.lm-plugin .lm-btn-danger:active,\n.lm-plugin .lm-btn-danger.active,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle {\n  background-image: none;\n}\n.lm-plugin .lm-btn-danger.disabled:hover,\n.lm-plugin .lm-btn-danger.disabled:focus,\n.lm-plugin .lm-btn-danger.disabled.focus,\n.lm-plugin .lm-btn-danger[disabled]:hover,\n.lm-plugin .lm-btn-danger[disabled]:focus,\n.lm-plugin .lm-btn-danger[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-danger:hover,\nfieldset[disabled] .lm-plugin .lm-btn-danger:focus,\nfieldset[disabled] .lm-plugin .lm-btn-danger.focus {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.lm-plugin .lm-btn-danger .badge {\n  color: #d9534f;\n  background-color: #fff;\n}\n.lm-plugin .lm-btn-link {\n  color: #337ab7;\n  font-weight: normal;\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-link,\n.lm-plugin .lm-btn-link:active,\n.lm-plugin .lm-btn-link.active,\n.lm-plugin .lm-btn-link[disabled],\nfieldset[disabled] .lm-plugin .lm-btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.lm-plugin .lm-btn-link,\n.lm-plugin .lm-btn-link:hover,\n.lm-plugin .lm-btn-link:focus,\n.lm-plugin .lm-btn-link:active {\n  border-color: transparent;\n}\n.lm-plugin .lm-btn-link:hover,\n.lm-plugin .lm-btn-link:focus {\n  color: #23527c;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.lm-plugin .lm-btn-link[disabled]:hover,\n.lm-plugin .lm-btn-link[disabled]:focus,\nfieldset[disabled] .lm-plugin .lm-btn-link:hover,\nfieldset[disabled] .lm-plugin .lm-btn-link:focus {\n  color: #777777;\n  text-decoration: none;\n}\n.lm-plugin .lm-btn-lg,\n.lm-plugin .lm-btn-group-lg > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-lg > button {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-sm,\n.lm-plugin .lm-btn-group-sm > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-sm > button {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-xs,\n.lm-plugin .lm-btn-group-xs > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-xs > button {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-block,\n.lm-plugin .lm-control-row button {\n  display: block;\n  width: 100%;\n}\n.lm-plugin .lm-btn-block + .lm-btn-block,\n.lm-plugin .lm-control-row button + .lm-btn-block,\n.lm-plugin .lm-control-row .lm-btn-block + button,\n.lm-plugin .lm-control-row button + button {\n  margin-top: 5px;\n}\n.lm-plugin input[type="submit"].lm-btn-block,\n.lm-plugin input[type="reset"].lm-btn-block,\n.lm-plugin input[type="button"].lm-btn-block {\n  width: 100%;\n}\n.lm-plugin .lm-btn-group,\n.lm-plugin .lm-btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.lm-plugin .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group > button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button {\n  position: relative;\n  float: left;\n}\n.lm-plugin .lm-btn-group > .lm-btn:hover,\n.lm-plugin .lm-control-row .lm-btn-group > button:hover,\n.lm-plugin .lm-btn-group > .lm-btn:focus,\n.lm-plugin .lm-control-row .lm-btn-group > button:focus,\n.lm-plugin .lm-btn-group > .lm-btn:active,\n.lm-plugin .lm-control-row .lm-btn-group > button:active,\n.lm-plugin .lm-btn-group > .lm-btn.active,\n.lm-plugin .lm-control-row .lm-btn-group > button.active,\n.lm-plugin .lm-btn-group-vertical > .lm-btn:hover,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:hover,\n.lm-plugin .lm-btn-group-vertical > .lm-btn:focus,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:focus,\n.lm-plugin .lm-btn-group-vertical > .lm-btn:active,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:active,\n.lm-plugin .lm-btn-group-vertical > .lm-btn.active,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button.active {\n  z-index: 2;\n}\n.lm-plugin .lm-btn-group .lm-btn + .lm-btn,\n.lm-plugin .lm-btn-group .lm-control-row button + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group button + .lm-btn,\n.lm-plugin .lm-btn-group .lm-control-row .lm-btn + button,\n.lm-plugin .lm-control-row .lm-btn-group .lm-btn + button,\n.lm-plugin .lm-btn-group .lm-control-row button + button,\n.lm-plugin .lm-control-row .lm-btn-group button + button,\n.lm-plugin .lm-btn-group .lm-btn + .lm-btn-group,\n.lm-plugin .lm-btn-group .lm-control-row button + .lm-btn-group,\n.lm-plugin .lm-control-row .lm-btn-group button + .lm-btn-group,\n.lm-plugin .lm-btn-group .lm-btn-group + .lm-btn,\n.lm-plugin .lm-btn-group .lm-control-row .lm-btn-group + button,\n.lm-plugin .lm-control-row .lm-btn-group .lm-btn-group + button,\n.lm-plugin .lm-btn-group .lm-btn-group + .lm-btn-group {\n  margin-left: -1px;\n}\n.lm-plugin .lm-btn-toolbar {\n  margin-left: -5px;\n}\n.lm-plugin .lm-btn-toolbar:before,\n.lm-plugin .lm-btn-toolbar:after {\n  content: " ";\n  display: table;\n}\n.lm-plugin .lm-btn-toolbar:after {\n  clear: both;\n}\n.lm-plugin .lm-btn-toolbar .lm-btn,\n.lm-plugin .lm-btn-toolbar .lm-control-row button,\n.lm-plugin .lm-control-row .lm-btn-toolbar button,\n.lm-plugin .lm-btn-toolbar .lm-btn-group,\n.lm-plugin .lm-btn-toolbar .input-group {\n  float: left;\n}\n.lm-plugin .lm-btn-toolbar > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-toolbar > button,\n.lm-plugin .lm-btn-toolbar > .lm-btn-group,\n.lm-plugin .lm-btn-toolbar > .input-group {\n  margin-left: 5px;\n}\n.lm-plugin .lm-btn-group > .lm-btn:not(:first-child):not(:last-child):not(.dropdown-toggle),\n.lm-plugin .lm-control-row .lm-btn-group > button:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn:first-child,\n.lm-plugin .lm-control-row .lm-btn-group > button:first-child {\n  margin-left: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn:first-child:not(:last-child):not(.dropdown-toggle),\n.lm-plugin .lm-control-row .lm-btn-group > button:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn:last-child:not(:first-child),\n.lm-plugin .lm-control-row .lm-btn-group > button:last-child:not(:first-child),\n.lm-plugin .lm-btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group {\n  float: left;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group:not(:first-child):not(:last-child) > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group > .lm-btn-group:not(:first-child):not(:last-child) > button {\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group:first-child:not(:last-child) > .lm-btn:last-child,\n.lm-plugin .lm-control-row .lm-btn-group > .lm-btn-group:first-child:not(:last-child) > button:last-child,\n.lm-plugin .lm-btn-group > .lm-btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group:last-child:not(:first-child) > .lm-btn:first-child,\n.lm-plugin .lm-control-row .lm-btn-group > .lm-btn-group:last-child:not(:first-child) > button:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.lm-plugin .lm-btn-group .dropdown-toggle:active,\n.lm-plugin .lm-btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn + .dropdown-toggle,\n.lm-plugin .lm-control-row .lm-btn-group > button + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.lm-plugin .lm-btn-group > .lm-btn-lg + .dropdown-toggle,\n.lm-plugin .lm-btn-group-lg.lm-btn-group > .lm-btn + .dropdown-toggle,\n.lm-plugin .lm-control-row .lm-btn-group-lg.lm-btn-group > button + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n.lm-plugin .lm-btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.lm-plugin .lm-btn-group.open .dropdown-toggle.lm-btn-link {\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.lm-plugin .lm-btn .caret,\n.lm-plugin .lm-control-row button .caret {\n  margin-left: 0;\n}\n.lm-plugin .lm-btn-lg .caret,\n.lm-plugin .lm-btn-group-lg > .lm-btn .caret,\n.lm-plugin .lm-control-row .lm-btn-group-lg > button .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n.lm-plugin .dropup .lm-btn-lg .caret,\n.lm-plugin .dropup .lm-btn-group-lg > .lm-btn .caret,\n.lm-plugin .dropup .lm-control-row .lm-btn-group-lg > button .caret,\n.lm-plugin .lm-control-row .dropup .lm-btn-group-lg > button .caret {\n  border-width: 0 5px 5px;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group > button {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:before,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:after {\n  content: " ";\n  display: table;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:after {\n  clear: both;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group > button {\n  float: none;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn + button,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button + button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn + .lm-btn-group,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button + .lm-btn-group,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group + button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group + .lm-btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn:not(:first-child):not(:last-child),\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn:first-child:not(:last-child),\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:first-child:not(:last-child) {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn:last-child:not(:first-child),\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:last-child:not(:first-child) {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:not(:first-child):not(:last-child) > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group:not(:first-child):not(:last-child) > button {\n  border-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:first-child:not(:last-child) > .lm-btn:last-child,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group:first-child:not(:last-child) > button:last-child,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:last-child:not(:first-child) > .lm-btn:first-child,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group:last-child:not(:first-child) > button:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n}\n.lm-plugin .lm-btn-group-justified > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-justified > button,\n.lm-plugin .lm-btn-group-justified > .lm-btn-group {\n  float: none;\n  display: table-cell;\n  width: 1%;\n}\n.lm-plugin .lm-btn-group-justified > .lm-btn-group .lm-btn,\n.lm-plugin .lm-btn-group-justified > .lm-btn-group .lm-control-row button,\n.lm-plugin .lm-control-row .lm-btn-group-justified > .lm-btn-group button {\n  width: 100%;\n}\n.lm-plugin .lm-btn-group-justified > .lm-btn-group .dropdown-menu {\n  left: auto;\n}\n.lm-plugin [data-toggle="buttons"] > .lm-btn input[type="radio"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > button input[type="radio"],\n.lm-plugin [data-toggle="buttons"] > .lm-btn input[type="checkbox"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > button input[type="checkbox"],\n.lm-plugin [data-toggle="buttons"] > .lm-btn-group > .lm-btn input[type="radio"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > .lm-btn-group > button input[type="radio"],\n.lm-plugin [data-toggle="buttons"] > .lm-btn-group > .lm-btn input[type="checkbox"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > .lm-btn-group > button input[type="checkbox"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n.lm-plugin .input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n.lm-plugin .input-group[class*="col-"] {\n  float: none;\n  padding-left: 0;\n  padding-right: 0;\n}\n.lm-plugin .input-group .lm-form-control,\n.lm-plugin .input-group .lm-control-row select,\n.lm-plugin .lm-control-row .input-group select,\n.lm-plugin .input-group .lm-control-row button,\n.lm-plugin .lm-control-row .input-group button,\n.lm-plugin .input-group .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .input-group input[type=text] {\n  position: relative;\n  z-index: 2;\n  float: left;\n  width: 100%;\n  margin-bottom: 0;\n}\n.lm-plugin .input-group .lm-form-control:focus,\n.lm-plugin .input-group .lm-control-row select:focus,\n.lm-plugin .lm-control-row .input-group select:focus,\n.lm-plugin .input-group .lm-control-row button:focus,\n.lm-plugin .lm-control-row .input-group button:focus,\n.lm-plugin .input-group .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .input-group input:focus[type=text] {\n  z-index: 3;\n}\n.lm-plugin .input-group-addon,\n.lm-plugin .input-group-lm-btn,\n.lm-plugin .input-group .lm-form-control,\n.lm-plugin .input-group .lm-control-row select,\n.lm-plugin .lm-control-row .input-group select,\n.lm-plugin .input-group .lm-control-row button,\n.lm-plugin .lm-control-row .input-group button,\n.lm-plugin .input-group .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .input-group input[type=text] {\n  display: table-cell;\n}\n.lm-plugin .input-group-addon:not(:first-child):not(:last-child),\n.lm-plugin .input-group-lm-btn:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-form-control:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-control-row select:not(:first-child):not(:last-child),\n.lm-plugin .lm-control-row .input-group select:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-control-row button:not(:first-child):not(:last-child),\n.lm-plugin .lm-control-row .input-group button:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-control-row input:not(:first-child):not(:last-child)[type=text],\n.lm-plugin .lm-control-row .input-group input:not(:first-child):not(:last-child)[type=text] {\n  border-radius: 0;\n}\n.lm-plugin .input-group-addon,\n.lm-plugin .input-group-lm-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n.lm-plugin .input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  border-radius: 0;\n}\n.lm-plugin .input-group-addon.input-sm,\n.lm-plugin .lm-control-row .input-group-sm > select.input-group-addon,\n.lm-plugin .lm-control-row .input-group-sm > button.input-group-addon,\n.lm-plugin .lm-control-row .input-group-sm > input.input-group-addon[type=text],\n.lm-plugin .input-group-sm > .input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .input-group-addon.lm-btn,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button.input-group-addon {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 0;\n}\n.lm-plugin .input-group-addon.input-lg,\n.lm-plugin .lm-control-row .input-group-lg > select.input-group-addon,\n.lm-plugin .lm-control-row .input-group-lg > button.input-group-addon,\n.lm-plugin .lm-control-row .input-group-lg > input.input-group-addon[type=text],\n.lm-plugin .input-group-lg > .input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .input-group-addon.lm-btn,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button.input-group-addon {\n  padding: 10px 16px;\n  font-size: 18px;\n  border-radius: 0;\n}\n.lm-plugin .input-group-addon input[type="radio"],\n.lm-plugin .input-group-addon input[type="checkbox"] {\n  margin-top: 0;\n}\n.lm-plugin .input-group .lm-form-control:first-child,\n.lm-plugin .input-group .lm-control-row select:first-child,\n.lm-plugin .lm-control-row .input-group select:first-child,\n.lm-plugin .input-group .lm-control-row button:first-child,\n.lm-plugin .lm-control-row .input-group button:first-child,\n.lm-plugin .input-group .lm-control-row input:first-child[type=text],\n.lm-plugin .lm-control-row .input-group input:first-child[type=text],\n.lm-plugin .input-group-addon:first-child,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > button,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > .lm-btn-group > button,\n.lm-plugin .input-group-lm-btn:first-child > .dropdown-toggle,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn:not(:last-child):not(.dropdown-toggle),\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > button:not(:last-child):not(.dropdown-toggle),\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn-group:not(:last-child) > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > .lm-btn-group:not(:last-child) > button {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.lm-plugin .input-group-addon:first-child {\n  border-right: 0;\n}\n.lm-plugin .input-group .lm-form-control:last-child,\n.lm-plugin .input-group .lm-control-row select:last-child,\n.lm-plugin .lm-control-row .input-group select:last-child,\n.lm-plugin .input-group .lm-control-row button:last-child,\n.lm-plugin .lm-control-row .input-group button:last-child,\n.lm-plugin .input-group .lm-control-row input:last-child[type=text],\n.lm-plugin .lm-control-row .input-group input:last-child[type=text],\n.lm-plugin .input-group-addon:last-child,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > button,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > .lm-btn-group > button,\n.lm-plugin .input-group-lm-btn:last-child > .dropdown-toggle,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn:not(:first-child),\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > button:not(:first-child),\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn-group:not(:first-child) > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > .lm-btn-group:not(:first-child) > button {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.lm-plugin .input-group-addon:last-child {\n  border-left: 0;\n}\n.lm-plugin .input-group-lm-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n.lm-plugin .input-group-lm-btn > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn > button {\n  position: relative;\n}\n.lm-plugin .input-group-lm-btn > .lm-btn + .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn > button + .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn > .lm-btn + button,\n.lm-plugin .lm-control-row .input-group-lm-btn > button + button {\n  margin-left: -1px;\n}\n.lm-plugin .input-group-lm-btn > .lm-btn:hover,\n.lm-plugin .lm-control-row .input-group-lm-btn > button:hover,\n.lm-plugin .input-group-lm-btn > .lm-btn:focus,\n.lm-plugin .lm-control-row .input-group-lm-btn > button:focus,\n.lm-plugin .input-group-lm-btn > .lm-btn:active,\n.lm-plugin .lm-control-row .input-group-lm-btn > button:active {\n  z-index: 2;\n}\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > button,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn-group {\n  margin-right: -1px;\n}\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > button,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn-group {\n  z-index: 2;\n  margin-left: -1px;\n}\n.lm-plugin .label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\n.lm-plugin .label:empty {\n  display: none;\n}\n.lm-btn .lm-plugin .label,\n.lm-plugin .lm-control-row button .lm-plugin .label {\n  position: relative;\n  top: -1px;\n}\n.lm-plugin a.label:hover,\n.lm-plugin a.label:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.lm-plugin .label-default {\n  background-color: #777777;\n}\n.lm-plugin .label-default[href]:hover,\n.lm-plugin .label-default[href]:focus {\n  background-color: #5e5e5e;\n}\n.lm-plugin .label-primary {\n  background-color: #337ab7;\n}\n.lm-plugin .label-primary[href]:hover,\n.lm-plugin .label-primary[href]:focus {\n  background-color: #286090;\n}\n.lm-plugin .label-success {\n  background-color: #5cb85c;\n}\n.lm-plugin .label-success[href]:hover,\n.lm-plugin .label-success[href]:focus {\n  background-color: #449d44;\n}\n.lm-plugin .label-info {\n  background-color: #5bc0de;\n}\n.lm-plugin .label-info[href]:hover,\n.lm-plugin .label-info[href]:focus {\n  background-color: #31b0d5;\n}\n.lm-plugin .label-warning {\n  background-color: #f0ad4e;\n}\n.lm-plugin .label-warning[href]:hover,\n.lm-plugin .label-warning[href]:focus {\n  background-color: #ec971f;\n}\n.lm-plugin .label-danger {\n  background-color: #d9534f;\n}\n.lm-plugin .label-danger[href]:hover,\n.lm-plugin .label-danger[href]:focus {\n  background-color: #c9302c;\n}\n.lm-plugin .badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  color: #fff;\n  line-height: 1;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: #777777;\n  border-radius: 10px;\n}\n.lm-plugin .badge:empty {\n  display: none;\n}\n.lm-btn .lm-plugin .badge,\n.lm-plugin .lm-control-row button .lm-plugin .badge {\n  position: relative;\n  top: -1px;\n}\n.lm-btn-xs .lm-plugin .badge,\n.lm-plugin .lm-btn-group-xs > .lm-btn .lm-plugin .badge,\n.lm-plugin .lm-control-row .lm-btn-group-xs > button .lm-plugin .badge,\n.lm-btn-group-xs > .lm-btn .lm-plugin .badge,\n.lm-plugin .lm-control-row .lm-btn-group-xs > button .lm-plugin .badge {\n  top: 0;\n  padding: 1px 5px;\n}\n.list-group-item.active > .lm-plugin .badge,\n.nav-pills > .active > a > .lm-plugin .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.list-group-item > .lm-plugin .badge {\n  float: right;\n}\n.list-group-item > .lm-plugin .badge + .lm-plugin .badge {\n  margin-right: 5px;\n}\n.nav-pills > li > a > .lm-plugin .badge {\n  margin-left: 3px;\n}\n.lm-plugin a.badge:hover,\n.lm-plugin a.badge:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.lm-plugin [class^="lm-icon-"]:before,\n.lm-plugin [class*=" lm-icon-"]:before {\n  font-family: "fontello";\n  font-style: normal;\n  font-weight: normal;\n  speak: none;\n  display: inline-block;\n  text-decoration: inherit;\n  width: 1em;\n  margin-right: .2em;\n  text-align: center;\n  /* opacity: .8; */\n  /* For safety - reset parent styles, that can break glyph codes*/\n  font-variant: normal;\n  text-transform: none;\n  /* fix buttons height, for twitter bootstrap */\n  line-height: 1em;\n  /* Animation center compensation - margins should be symmetric */\n  /* remove if not needed */\n  margin-left: .2em;\n  /* you can be more comfortable with increased icons size */\n  /* font-size: 120%; */\n  /* Font smoothing. That was taken from TWBS */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  /* Uncomment for 3D effect */\n  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */\n}\n.lm-plugin .lm-icon-expand-layout:before {\n  content: "\\e84a";\n}\n.lm-plugin .lm-icon-plus:before {\n  content: "\\e816";\n}\n.lm-plugin .lm-icon-minus:before {\n  content: "\\e819";\n}\n.lm-plugin .lm-icon-reset-scene:before {\n  content: "\\e891";\n}\n.lm-plugin .lm-icon-ok:before {\n  content: "\\e812";\n}\n.lm-plugin .lm-icon-cross:before {\n  content: "\\e868";\n}\n.lm-plugin .lm-icon-off:before {\n  content: "\\e813";\n}\n.lm-plugin .lm-icon-expand:before {\n  content: "\\e885";\n}\n.lm-plugin .lm-icon-collapse:before {\n  content: "\\e883";\n}\n.lm-plugin .lm-icon-visual-visibility:before {\n  content: "\\e826";\n}\n.lm-plugin .lm-icon-abort:before {\n  content: "\\e814";\n}\n.lm-plugin .lm-icon-focus-on-visual:before {\n  content: "\\e8a3";\n}\n.lm-plugin .lm-icon-settings:before {\n  content: "\\e855";\n}\n.lm-plugin .lm-icon-tools:before {\n  content: "\\e856";\n}\n.lm-plugin .lm-icon-log:before {\n  content: "\\e8a5";\n}\n.lm-plugin .lm-icon-remove:before {\n  content: "\\e847";\n}\n.lm-plugin .lm-icon-help:before {\n  content: \'\\e81c\';\n}\n.lm-plugin .lm-icon-info:before {\n  content: \'\\e81e\';\n}\n.lm-plugin .lm-icon-left-open-big:before {\n  content: \'\\e87c\';\n}\n.lm-plugin .lm-icon-right-open-big:before {\n  content: \'\\e87d\';\n}\n.lm-plugin .lm-icon-left-open:before {\n  content: \'\\e874\';\n}\n.lm-plugin .lm-icon-right-open:before {\n  content: \'\\e875\';\n}\n.lm-plugin .lm-icon-screenshot:before {\n  content: "\\e80f";\n}\n.lm-plugin .lm-icon-help:before {\n  content: "\\e81c";\n}\n.lm-plugin .lm-icon-help-circle:before {\n  content: "\\e81d";\n}\n.lm-plugin .lm-layout-expanded,\n.lm-plugin .lm-layout-standard {\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n}\n.lm-plugin .lm-layout-region {\n  overflow: hidden;\n  background: #eeece7;\n}\n.lm-plugin .lm-layout-static,\n.lm-plugin .lm-layout-scrollable {\n  position: absolute;\n}\n.lm-plugin .lm-layout-scrollable {\n  overflow-y: auto;\n}\n.lm-plugin .lm-layout-static {\n  overflow: hidden;\n}\n.lm-plugin .lm-layout-main .lm-layout-static,\n.lm-plugin .lm-layout-bottom .lm-layout-static {\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n}\n.lm-plugin .lm-layout-right .lm-layout-static {\n  left: 0;\n  right: 0;\n  top: 0;\n  height: 42px;\n}\n.lm-plugin .lm-layout-right .lm-layout-scrollable {\n  left: 0;\n  right: 0;\n  top: 43px;\n  bottom: 0;\n}\n.lm-plugin .lm-layout-left .lm-layout-static {\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n}\n.lm-plugin .lm-layout-standard-outside {\n  position: absolute;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-main {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-top {\n  position: absolute;\n  right: 0;\n  height: 65px;\n  top: -65px;\n  width: 50%;\n  border-left: 1px solid #cec9ba;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-bottom {\n  position: absolute;\n  left: 0;\n  right: 0;\n  height: 65px;\n  top: -65px;\n  width: 50%;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-right {\n  position: absolute;\n  width: 50%;\n  right: 0;\n  bottom: -295px;\n  height: 295px;\n  border-left: 1px solid #cec9ba;\n  border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-left {\n  position: absolute;\n  width: 50%;\n  left: 0;\n  bottom: 0;\n  bottom: -295px;\n  height: 295px;\n  border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-right .lm-layout-right {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-right .lm-layout-left {\n  width: 100%;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-left .lm-layout-left {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-left .lm-layout-right {\n  width: 100%;\n  border-left: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-top .lm-layout-top {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-top .lm-layout-bottom {\n  width: 100%;\n  border-left: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-bottom .lm-layout-bottom {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-bottom .lm-layout-top {\n  width: 100%;\n  border-left: none;\n}\n.lm-plugin .lm-layout-standard-landscape {\n  position: absolute;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-main {\n  position: absolute;\n  left: 290px;\n  right: 290px;\n  bottom: 98px;\n  top: 100px;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-top {\n  position: absolute;\n  left: 290px;\n  right: 290px;\n  height: 100px;\n  top: 0;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-bottom {\n  position: absolute;\n  left: 290px;\n  right: 290px;\n  height: 98px;\n  bottom: 0;\n  border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-right {\n  position: absolute;\n  width: 290px;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  border-left: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-left {\n  position: absolute;\n  width: 290px;\n  left: 0;\n  bottom: 0;\n  top: 0;\n  border-right: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-right {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-main,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-top,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-bottom {\n  right: 0;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-left {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-main,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-top,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-bottom {\n  left: 0;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-bottom .lm-layout-bottom {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-bottom .lm-layout-main {\n  bottom: 0;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-top .lm-layout-top {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-top .lm-layout-main {\n  top: 0;\n}\n.lm-plugin .lm-layout-standard-portrait {\n  position: absolute;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-main {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 361px;\n  top: 65px;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-top {\n  position: absolute;\n  right: 0;\n  height: 65px;\n  top: 0;\n  width: 50%;\n  border-left: 1px solid #cec9ba;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-bottom {\n  position: absolute;\n  left: 0;\n  right: 0;\n  height: 65px;\n  width: 50%;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-right {\n  position: absolute;\n  width: 50%;\n  right: 0;\n  bottom: 0;\n  height: 361px;\n  border-left: 1px solid #cec9ba;\n  border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-left {\n  position: absolute;\n  width: 50%;\n  left: 0;\n  bottom: 0;\n  height: 361px;\n  border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-right .lm-layout-right {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-right .lm-layout-left {\n  width: 100%;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-left .lm-layout-left {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-left .lm-layout-right {\n  width: 100%;\n  border-left: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-right.lm-layout-hide-left .lm-layout-main {\n  bottom: 0;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-top .lm-layout-top {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-top .lm-layout-bottom {\n  width: 100%;\n  border-left: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-bottom .lm-layout-bottom {\n  display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-bottom .lm-layout-top {\n  width: 100%;\n  border-left: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-top.lm-layout-hide-bottom .lm-layout-main {\n  top: 0;\n}\n.lm-plugin .lm-layout-expanded {\n  position: fixed;\n}\n@media (orientation: landscape) {\n  .lm-plugin .lm-layout-expanded .lm-layout-main {\n    position: absolute;\n    left: 290px;\n    right: 290px;\n    bottom: 98px;\n    top: 100px;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-top {\n    position: absolute;\n    left: 290px;\n    right: 290px;\n    height: 100px;\n    top: 0;\n    border-bottom: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-bottom {\n    position: absolute;\n    left: 290px;\n    right: 290px;\n    height: 98px;\n    bottom: 0;\n    border-top: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-right {\n    position: absolute;\n    width: 290px;\n    right: 0;\n    bottom: 0;\n    top: 0;\n    border-left: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-left {\n    position: absolute;\n    width: 290px;\n    left: 0;\n    bottom: 0;\n    top: 0;\n    border-right: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-right {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-main,\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-top,\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-bottom {\n    right: 0;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-left {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-main,\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-top,\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-bottom {\n    left: 0;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-bottom {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-main {\n    bottom: 0;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-top {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-main {\n    top: 0;\n  }\n}\n@media (orientation: portrait) {\n  .lm-plugin .lm-layout-expanded .lm-layout-main {\n    position: absolute;\n    left: 0;\n    right: 0;\n    bottom: 361px;\n    top: 65px;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-top {\n    position: absolute;\n    right: 0;\n    height: 65px;\n    top: 0;\n    width: 50%;\n    border-left: 1px solid #cec9ba;\n    border-bottom: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-bottom {\n    position: absolute;\n    left: 0;\n    right: 0;\n    height: 65px;\n    width: 50%;\n    border-bottom: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-right {\n    position: absolute;\n    width: 50%;\n    right: 0;\n    bottom: 0;\n    height: 361px;\n    border-left: 1px solid #cec9ba;\n    border-top: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-left {\n    position: absolute;\n    width: 50%;\n    left: 0;\n    bottom: 0;\n    height: 361px;\n    border-top: 1px solid #cec9ba;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-right {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-left {\n    width: 100%;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-left {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-right {\n    width: 100%;\n    border-left: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-right.lm-layout-hide-left .lm-layout-main {\n    bottom: 0;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-top {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-bottom {\n    width: 100%;\n    border-left: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-bottom {\n    display: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-top {\n    width: 100%;\n    border-left: none;\n  }\n\n  .lm-plugin .lm-layout-expanded .lm-layout-hide-top.lm-layout-hide-bottom .lm-layout-main {\n    top: 0;\n  }\n}\n.lm-plugin ::-webkit-scrollbar {\n  width: 10px;\n  height: 10px;\n}\n.lm-plugin ::-webkit-scrollbar-track {\n  border-radius: 0;\n  background-color: #e9e6e0;\n}\n.lm-plugin ::-webkit-scrollbar-thumb {\n  border-radius: 0;\n  background-color: #f1f0eb;\n}\n.lm-plugin .lm-btn,\n.lm-plugin .lm-control-row button {\n  padding: 0 10px;\n  line-height: 32px;\n  border: none;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.lm-plugin .lm-btn,\n.lm-plugin .lm-control-row button,\n.lm-plugin .lm-btn:active,\n.lm-plugin .lm-control-row button:active,\n.lm-plugin .lm-btn-link:focus,\n.lm-plugin .lm-btn:hover,\n.lm-plugin .lm-control-row button:hover {\n  outline: none !important;\n}\n.lm-plugin .lm-btn-icon {\n  height: 32px;\n  width: 32px;\n  line-height: 32px;\n  padding: 0;\n  text-align: center;\n}\n.lm-plugin .lm-btn-link .lm-icon {\n  font-size: 100%;\n}\n.lm-plugin .lm-btn-link,\n.lm-plugin .lm-btn-link:active,\n.lm-plugin .lm-btn-link:focus {\n  color: #332b1f;\n  text-decoration: none;\n}\n.lm-plugin .lm-btn-link:hover {\n  color: #ae5d04;\n  text-decoration: none;\n}\n.lm-plugin .lm-btn-link-toggle-on {\n  color: #332b1f;\n}\n.lm-plugin .lm-btn-link-toggle-off,\n.lm-plugin .lm-btn-link-toggle-off:active,\n.lm-plugin .lm-btn-link-toggle-off:focus {\n  color: #9c835f;\n}\n.lm-plugin .lm-btn-link-toggle-off:hover,\n.lm-plugin .lm-btn-link-toggle-on:hover {\n  color: #ae5d04;\n}\n.lm-plugin .lm-btn-remove,\n.lm-plugin .lm-btn-remove:active,\n.lm-plugin .lm-btn-remove:focus {\n  color: #332b1f;\n  background: #DE0A28;\n}\n.lm-plugin .lm-btn-remove:hover {\n  color: #ae5d04;\n  background: #ea0b2a;\n}\n.lm-plugin .lm-btn-remove[disabled],\n.lm-plugin .lm-btn-remove[disabled]:hover,\n.lm-plugin .lm-btn-remove[disabled]:active,\n.lm-plugin .lm-btn-remove[disabled]:focus {\n  color: #362e21;\n}\n.lm-plugin .lm-btn-action,\n.lm-plugin .lm-btn-action:active,\n.lm-plugin .lm-btn-action:focus {\n  color: #332b1f;\n  background: #f3f2ee;\n}\n.lm-plugin .lm-btn-action:hover {\n  color: #ae5d04;\n  background: #f9f8f6;\n}\n.lm-plugin .lm-btn-action[disabled],\n.lm-plugin .lm-btn-action[disabled]:hover,\n.lm-plugin .lm-btn-action[disabled]:active,\n.lm-plugin .lm-btn-action[disabled]:focus {\n  color: #362e21;\n}\n.lm-plugin .lm-btn-commit-on,\n.lm-plugin .lm-btn-commit-on:active,\n.lm-plugin .lm-btn-commit-on:focus {\n  color: #974102;\n  background: #f2f1ed;\n}\n.lm-plugin .lm-btn-commit-on:hover {\n  color: #ae5d04;\n  background: #f8f7f4;\n}\n.lm-plugin .lm-btn-commit-on[disabled],\n.lm-plugin .lm-btn-commit-on[disabled]:hover,\n.lm-plugin .lm-btn-commit-on[disabled]:active,\n.lm-plugin .lm-btn-commit-on[disabled]:focus {\n  color: #9c4302;\n}\n.lm-plugin .lm-btn-commit-off,\n.lm-plugin .lm-btn-commit-off:active,\n.lm-plugin .lm-btn-commit-off:focus {\n  color: #332b1f;\n  background: #f6f5f3;\n}\n.lm-plugin .lm-btn-commit-off:hover {\n  color: #ae5d04;\n  background: #fcfbfa;\n}\n.lm-plugin .lm-btn-commit-off[disabled],\n.lm-plugin .lm-btn-commit-off[disabled]:hover,\n.lm-plugin .lm-btn-commit-off[disabled]:active,\n.lm-plugin .lm-btn-commit-off[disabled]:focus {\n  color: #362e21;\n}\n.lm-plugin .lm-btn-remove:hover {\n  color: #F2F4F7;\n}\n.lm-plugin .lm-btn-commit-on:hover {\n  color: #fc6c03;\n}\n.lm-plugin .lm-btn-action {\n  height: 32px;\n  line-height: 32px;\n}\n.lm-plugin .lm-form-control,\n.lm-plugin .lm-control-row select,\n.lm-plugin .lm-control-row button,\n.lm-plugin .lm-control-row input[type=text] {\n  width: 100%;\n  background: #f3f2ee;\n  color: #332b1f;\n  border: none !important;\n  padding: 0 10px;\n  line-height: 30px;\n  height: 32px;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  box-shadow: none !important;\n}\n.lm-plugin .lm-form-control:hover,\n.lm-plugin .lm-control-row select:hover,\n.lm-plugin .lm-control-row button:hover,\n.lm-plugin .lm-control-row input:hover[type=text] {\n  color: #ae5d04;\n  background-color: #e9e6e0;\n  border: none;\n  outline-offset: -1px;\n  outline: 1px solid #c9c3b3;\n}\n.lm-plugin .lm-form-control:active,\n.lm-plugin .lm-control-row select:active,\n.lm-plugin .lm-control-row button:active,\n.lm-plugin .lm-control-row input:active[type=text],\n.lm-plugin .lm-form-control:focus,\n.lm-plugin .lm-control-row select:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-control-row input:focus[type=text] {\n  color: #332b1f;\n  background-color: #f3f2ee;\n  border: none;\n  outline-offset: 0;\n  outline: none;\n}\n.lm-plugin .lm-btn-commit {\n  text-align: right;\n  padding-top: 0;\n  padding-bottom: 0;\n  padding-right: 10px;\n  padding-left: 0;\n  line-height: 32px;\n  border: none;\n  overflow: hidden;\n}\n.lm-plugin .lm-btn-commit .lm-icon {\n  display: block-inline;\n  line-height: 32px;\n  margin-right: 10px;\n  width: 32px;\n  text-align: center;\n  float: left;\n}\n.lm-plugin select.lm-form-control,\n.lm-plugin .lm-control-row select {\n  background: none;\n  background-color: #f3f2ee;\n  background-size: 8px 12px;\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC);\n  background-repeat: no-repeat;\n  background-position: right 10px top 10px;\n}\n.lm-plugin select.lm-form-control:-moz-focusring,\n.lm-plugin .lm-control-row select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #332b1f;\n}\n.lm-plugin .lm-control-row {\n  position: relative;\n  height: 32px;\n  background: #eeece7;\n  margin-top: 1px;\n}\n.lm-plugin .lm-control-row > span {\n  line-height: 32px;\n  display: block;\n  width: 120px;\n  text-align: right;\n  padding: 0 10px;\n  color: #63533c;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-control-row > div:nth-child(2) {\n  background: #f3f2ee;\n  position: absolute;\n  left: 120px;\n  top: 0;\n  right: 0;\n  bottom: 0;\n}\n.lm-plugin .lm-control-group {\n  position: relative;\n}\n.lm-plugin .lm-toggle-button .lm-icon {\n  display: inline-block;\n  margin-right: 6px;\n}\n.lm-plugin .lm-toggle-button > div > button:hover {\n  border-color: #e9e6e0 !important;\n  border: none;\n  outline-offset: -1px  !important;\n  outline: 1px solid #c9c3b3 !important;\n}\n.lm-plugin .lm-slider > div > div:first-child {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  width: 100%;\n  padding-right: 50px;\n  display: table;\n}\n.lm-plugin .lm-slider > div > div:first-child > div {\n  height: 32px;\n  display: table-cell;\n  vertical-align: middle;\n  padding: 0 14px;\n}\n.lm-plugin .lm-slider > div > div:last-child {\n  position: absolute;\n  height: 32px;\n  right: 0;\n  width: 50px;\n  top: 0;\n  bottom: 0;\n}\n.lm-plugin .lm-slider input[type=text] {\n  text-align: right;\n}\n.lm-plugin .lm-slider input[type=range] {\n  width: 100%;\n}\n.lm-plugin .lm-toggle-color-picker button {\n  border: 10px solid #f3f2ee !important;\n  margin: 0;\n  text-align: center;\n  padding-right: 10px;\n  padding-left: 10px;\n}\n.lm-plugin .lm-toggle-color-picker button:hover {\n  border-color: #e9e6e0 !important;\n  border: none;\n  outline-offset: -1px  !important;\n  outline: 1px solid #c9c3b3 !important;\n}\n.lm-plugin .lm-toggle-color-picker .lm-color-picker {\n  position: absolute;\n  z-index: 100000;\n  background: #eeece7;\n  border-top: 1px solid #eeece7;\n  padding-bottom: 5px;\n  width: 100%;\n}\n.lm-plugin .lm-toggle-color-picker-above .lm-color-picker {\n  top: -85px;\n  height: 85px;\n}\n.lm-plugin .lm-toggle-color-picker-below .lm-color-picker {\n  top: 32px;\n  height: 80px;\n}\n.lm-plugin .lm-control-subgroup {\n  margin-top: 1px;\n}\n.lm-plugin .lm-control-subgroup .lm-control-row {\n  margin-left: 10px !important;\n}\n.lm-plugin .lm-control-subgroup .lm-control-row > span {\n  width: 110px !important;\n}\n.lm-plugin .lm-control-subgroup .lm-control-row > div:nth-child(2) {\n  left: 110px !important;\n}\n.lm-plugin .lm-conrol-group-expander {\n  display: block;\n  position: absolute;\n  line-height: 32px;\n  padding: 0;\n  left: 0;\n  top: 0;\n  width: 120px;\n  text-align: left;\n}\n.lm-plugin .lm-conrol-group-expander .lm-icon {\n  line-height: 29px;\n  width: 31px;\n  text-align: center;\n  display: inline-block;\n  font-size: 100%;\n}\n.lm-plugin .lm-plugin-layout_controls {\n  position: absolute;\n  left: 10px;\n  top: 10px;\n}\n.lm-plugin .lm-plugin-layout_controls > button:first-child {\n  margin-right: 6px;\n}\n.lm-plugin .lm-empty-control {\n  display: none;\n}\n.lm-plugin .lm-control .lm-btn-block,\n.lm-plugin .lm-control .lm-control-row button,\n.lm-plugin .lm-control-row .lm-control button {\n  margin-bottom: 0px;\n  margin-top: 0px;\n}\n.lm-plugin .lm-row-text > div {\n  line-height: 32px;\n  text-align: center;\n}\n.lm-plugin .lm-slider-base {\n  position: relative;\n  height: 14px;\n  padding: 5px 0;\n  width: 100%;\n  border-radius: 6px;\n  box-sizing: border-box;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.lm-plugin .lm-slider-base * {\n  box-sizing: border-box;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.lm-plugin .lm-slider-base-rail {\n  position: absolute;\n  width: 100%;\n  background-color: #cec9ba;\n  height: 4px;\n  border-radius: 2px;\n}\n.lm-plugin .lm-slider-base-track {\n  position: absolute;\n  left: 0;\n  height: 4px;\n  border-radius: 6px;\n  background-color: tint(#332b1f, 60%);\n}\n.lm-plugin .lm-slider-base-handle {\n  position: absolute;\n  margin-left: -11px;\n  margin-top: -9px;\n  width: 22px;\n  height: 22px;\n  cursor: pointer;\n  border-radius: 50%;\n  background-color: #332b1f;\n  border: 4px solid #cec9ba;\n}\n.lm-plugin .lm-slider-base-handle:hover {\n  background-color: #ae5d04;\n}\n.lm-plugin .lm-slider-base-mark {\n  position: absolute;\n  top: 18px;\n  left: 0;\n  width: 100%;\n  font-size: 12px;\n}\n.lm-plugin .lm-slider-base-mark-text {\n  position: absolute;\n  display: inline-block;\n  vertical-align: middle;\n  text-align: center;\n  cursor: pointer;\n  color: #999;\n}\n.lm-plugin .lm-slider-base-mark-text-active {\n  color: #666;\n}\n.lm-plugin .lm-slider-base-step {\n  position: absolute;\n  width: 100%;\n  height: 4px;\n  background: transparent;\n}\n.lm-plugin .lm-slider-base-dot {\n  position: absolute;\n  bottom: -2px;\n  margin-left: -4px;\n  width: 8px;\n  height: 8px;\n  border: 2px solid #e9e9e9;\n  background-color: #fff;\n  cursor: pointer;\n  border-radius: 50%;\n  vertical-align: middle;\n}\n.lm-plugin .lm-slider-base-dot:first-child {\n  margin-left: -4px;\n}\n.lm-plugin .lm-slider-base-dot:last-child {\n  margin-left: -4px;\n}\n.lm-plugin .lm-slider-base-dot-active {\n  border-color: tint(#332b1f, 50%);\n}\n.lm-plugin .lm-slider-base-disabled {\n  background-color: #e9e9e9;\n}\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-track {\n  background-color: #ccc;\n}\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-handle,\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-dot {\n  border-color: #ccc;\n  background-color: #fff;\n  cursor: not-allowed;\n}\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-mark-text,\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-dot {\n  cursor: not-allowed !important;\n}\n.lm-plugin .lm-slider-base-vertical {\n  width: 14px;\n  height: 100%;\n  padding: 0 5px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-rail {\n  height: 100%;\n  width: 4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-track {\n  left: 5px;\n  bottom: 0;\n  width: 4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-handle {\n  margin-left: -5px;\n  margin-bottom: -7px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-mark {\n  top: 0;\n  left: 18px;\n  height: 100%;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-step {\n  height: 100%;\n  width: 4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-dot {\n  left: 2px;\n  margin-bottom: -4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-dot:first-child {\n  margin-bottom: -4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-dot:last-child {\n  margin-bottom: -4px;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander {\n  display: block;\n  width: 100%;\n  text-align: left;\n}\n.lm-plugin .lm-panel-header {\n  height: 32px;\n  border-color: #cec9ba;\n  position: relative;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 64px;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper button {\n  display: block;\n  width: 100%;\n  text-align: left;\n  height: 32px;\n  line-height: 32px;\n  border: none;\n  font-weight: bold;\n  padding-left: 0;\n  background: #f6f5f3;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper button .lm-icon {\n  display: inline-block;\n  margin-right: 10px;\n  width: 32px;\n  text-align: center;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper button:hover {\n  background: #f6f5f3;\n}\n.lm-plugin .lm-panel-header .lm-panel-description-standalone {\n  width: 64px;\n}\n.lm-plugin .lm-panel-header .lm-panel-description-standalone > .lm-icon {\n  margin-left: 32px;\n}\n.lm-plugin .lm-panel-header .lm-panel-description-with-action {\n  width: 32px;\n  margin-right: 32px;\n}\n.lm-plugin .lm-panel-header .lm-panel-description {\n  color: #332b1f;\n  float: right;\n  background: #f6f5f3;\n}\n.lm-plugin .lm-panel-header .lm-panel-description > .lm-icon {\n  display: block;\n  width: 32px;\n  height: 32px;\n  line-height: 32px;\n  text-align: center;\n  font-size: 70%;\n  cursor: default;\n  background: #f6f5f3;\n  color: #dcd4c6;\n}\n.lm-plugin .lm-panel-header .lm-panel-description .lm-panel-description-content {\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n  color: #332b1f;\n  display: none;\n  position: absolute;\n  left: 0;\n  width: 100%;\n  background: #c9c3b3;\n  min-height: 32px;\n  z-index: 1000000;\n  padding: 6px 10px 6px 42px;\n  text-align: left;\n}\n.lm-plugin .lm-panel-header .lm-panel-description .lm-panel-description-content > .lm-icon {\n  position: absolute;\n  width: 32px;\n  height: 32px;\n  line-height: 32px;\n  text-align: center;\n  font-size: 80%;\n  cursor: default;\n  top: 0;\n  left: 0;\n}\n.lm-plugin .lm-panel-header .lm-panel-description:hover {\n  color: #ae5d04;\n}\n.lm-plugin .lm-panel-header .lm-panel-description:hover > .lm-icon {\n  color: #ae5d04;\n}\n.lm-plugin .lm-panel-header .lm-panel-description:hover .lm-panel-description-content {\n  display: block;\n}\n.lm-plugin .lm-panel-body {\n  background: #e0ddd4;\n}\n.lm-plugin .lm-panel {\n  margin-bottom: 10px;\n}\n.lm-plugin .lm-transform-view {\n  padding-top: 10px;\n}\n.lm-plugin .lm-expandable-group-color-stripe {\n  position: absolute;\n  left: 0;\n  top: 30px;\n  width: 120px;\n  height: 2px;\n}\n.lm-plugin .lm-description {\n  padding: 10px;\n  font-size: 85%;\n  background: #eeece7;\n  text-align: center;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  font-weight: light;\n  cursor: default;\n}\n.lm-plugin .lm-description:not(:first-child) {\n  border-top: 1px solid #e0ddd4;\n}\n.lm-plugin .lm-color-picker input {\n  color: black !important;\n}\n.lm-plugin .lm-no-webgl {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  left: 0;\n  top: 0;\n  display: table;\n  text-align: center;\n}\n.lm-plugin .lm-no-webgl > div {\n  display: table-cell;\n  vertical-align: middle;\n  text-align: center;\n  width: 100%;\n  height: 100%;\n}\n.lm-plugin .lm-no-webgl > div b {\n  font-size: 120%;\n}\n.lm-plugin .lm-loader-lm-btn-file {\n  position: relative;\n  overflow: hidden;\n}\n.lm-plugin .lm-loader-lm-btn-file input[type=file] {\n  position: absolute;\n  top: 0;\n  right: 0;\n  min-width: 100%;\n  min-height: 100%;\n  font-size: 100px;\n  text-align: right;\n  filter: alpha(opacity=0);\n  opacity: 0;\n  outline: none;\n  background: white;\n  cursor: inherit;\n  display: block;\n}\n.lm-plugin .lm-entity-tree {\n  overflow: hidden;\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  top: 0;\n  padding-top: 10px;\n  background: #e0ddd4;\n}\n.lm-plugin .lm-entity-tree .lm-entity-tree-children {\n  overflow-x: hidden;\n  overflow-y: auto;\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  top: 43px;\n  padding: 10px 0;\n}\n.lm-plugin .lm-entity-store-header {\n  height: 33px;\n  position: relative;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-entity-store-header > span {\n  margin-left: 6px;\n  display: inline-block;\n  line-height: 32px;\n  font-weight: bold;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-entity-store-header button {\n  display: block !important;\n  height: 32px !important;\n  margin: 0 !important;\n  line-height: 32px !important;\n  border: none !important;\n  position: absolute;\n  top: 0;\n}\n.lm-plugin .lm-entity-store-root {\n  overflow-x: hidden;\n  overflow-y: auto;\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  top: 33px;\n  right: 0;\n}\n.lm-plugin .lm-entity-tree-entry {\n  height: 33px;\n  position: relative;\n  border-bottom: 1px solid #e0ddd4;\n}\n.lm-plugin .lm-entity-tree-entry-current {\n  background: #f6f5f3 !important;\n}\n.lm-plugin .lm-entity-tree-entry-current .lm-entity-tree-entry-label {\n  color: #974102;\n  font-weight: bold;\n}\n.lm-plugin .lm-entity-tree-entry-current .lm-entity-tree-entry-label .lm-entity-tree-entry-label-tag {\n  font-weight: normal;\n}\n.lm-plugin .lm-entity-tree-entry-current .lm-entity-tree-entry-label:hover {\n  color: #ae5d04;\n}\n.lm-plugin .lm-entity-tree-entry-current-path {\n  background: #f2f1ed !important;\n}\n.lm-plugin .lm-entity-tree-entry-current-path .lm-entity-tree-entry-label {\n  color: #b04c02;\n}\n.lm-plugin .lm-entity-tree-entry-current-path .lm-entity-tree-entry-label:hover {\n  color: #ae5d04;\n}\n.lm-plugin .lm-entity-tree-entry button,\n.lm-plugin .lm-entity-tree-entry > div {\n  display: block !important;\n  height: 32px !important;\n  margin: 0 !important;\n  line-height: 32px !important;\n  border: none !important;\n  position: absolute;\n  top: 0;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-group {\n  width: 32px;\n  height: 32px;\n  padding: 0;\n  left: 0;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible {\n  width: 32px;\n  right: 0;\n  padding: 0 !important;\n  font-size: 80%;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible-full,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-full:focus,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-full:active {\n  color: #332b1f;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible-partial,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-partial:focus,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-partial:active {\n  color: #9c835f;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible-none,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-none:focus,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-none:active {\n  color: #dcd4c6;\n}\n.lm-plugin .lm-entity-tree-entry-remove {\n  width: 32px;\n  height: 32px;\n  right: 32px;\n  padding: 0 !important;\n  text-align: center;\n  font-size: 80%;\n  color: #dcd4c6;\n}\n.lm-plugin .lm-entity-tree-entry-body {\n  position: absolute;\n  left: 32px;\n  border-radius: 0 0 0 8px;\n  right: 0;\n  background: #eeece7;\n}\n.lm-plugin .lm-entity-tree-entry .lm-entity-badge {\n  width: 32px;\n  position: absolute;\n  height: 32px;\n  left: 0;\n  top: 0;\n  border-radius: 0 8px 0 8px;\n}\n.lm-plugin .lm-entity-tree-entry-label-wrap {\n  right: 64px;\n  overflow: hidden;\n  left: 32px;\n  height: 32px;\n  position: absolute;\n}\n.lm-plugin .lm-entity-tree-entry-label {\n  position: absolute;\n  right: 0;\n  top: 0;\n  left: 0;\n  text-align: left !important;\n  width: 100%;\n  padding: 0 10px !important;\n}\n.lm-plugin .lm-entity-tree-entry-label-tag {\n  color: #726046;\n  font-size: 70%;\n  display: inline-block;\n  margin-left: 6px;\n}\n.lm-plugin .lm-entity-tree-children-wrap {\n  padding-left: 8px;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry {\n  background: #eeece7;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-badge {\n  border-top-right-radius: 0;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-tree-entry-label {\n  font-weight: bold;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-tree-entry-toggle-group {\n  display: none !important;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-tree-entry-body {\n  left: 24px !important;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-children-wrap {\n  margin-top: 10px;\n  padding-left: 0 !important;\n}\n.lm-plugin .lm-panel .lm-entity-tree-entry-toggle-visible {\n  position: absolute;\n  top: 0;\n  right: 0;\n  height: 32px;\n  font-size: 100%;\n  background: #eeece7;\n}\n.lm-plugin .lm-layout-hide-right .lm-entity-info {\n  display: none;\n}\n.lm-plugin .lm-entity-info {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  top: 0;\n  padding-top: 10px;\n  background: #e0ddd4;\n}\n.lm-plugin .lm-entity-info .lm-entity-badge {\n  position: absolute;\n  width: 32px;\n  height: 32px;\n  left: 0;\n  top: 0;\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-entity-info > div {\n  position: relative;\n  height: 32px;\n  line-height: 32px;\n  background: #eeece7;\n  border-bottom: 1px solid #cec9ba;\n  padding: 0 42px;\n  text-align: center;\n}\n.lm-plugin .lm-entity-info > div > span {\n  font-weight: bold;\n}\n.lm-plugin .lm-entity-info > div > span > span {\n  display: inline-block;\n  margin-left: 6px;\n  font-size: 80%;\n  color: #726046;\n  font-weight: normal;\n}\n.lm-plugin .lm-entity-info .lm-remove-entity {\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n.lm-plugin .lm-entity-badge {\n  font-weight: bold;\n  color: #eceff3;\n  text-align: center;\n  display: table;\n  cursor: default;\n}\n.lm-plugin .lm-entity-badge > div {\n  margin: auto;\n  display: inline-block;\n  display: table-cell;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-entity-badge-Root {\n  background: #eeece7;\n}\n.lm-plugin .lm-entity-badge-Group {\n  background: #e98b39;\n}\n.lm-plugin .lm-entity-badge-Data {\n  background: #bfc8c9;\n}\n.lm-plugin .lm-entity-badge-Object {\n  background: #54d98c;\n}\n.lm-plugin .lm-entity-badge-Visual {\n  background: #4aa3df;\n}\n.lm-plugin .lm-entity-badge-Selection {\n  background: #ef8b80;\n}\n.lm-plugin .lm-entity-badge-Action {\n  background: #46637f;\n}\n.lm-plugin .lm-entity-badge-Behaviour {\n  background: #b07cc6;\n}\n.lm-plugin .lm-entity-badge-Root {\n  background-repeat: no-repeat;\n  background-position: center;\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAACKUExURQAAAM4+K84/LM4+K5BhopJboCue1XmKi5RbpSud1R2tcolpRx2scys8Sis8Sn6SlOCFOiqYzhUYMDRPYSue1n6SlMiDTR6ncbVfNd+EOeCEOeCEOeCEORYZMMk/LH6RkxUcMhUYMSs8S32Rkyye1BUZL9+FOVpORWRSRCw8SxYYMB6tcxYZMSw9S+ECnyoAAAArdFJOUwB5/uoyc/FX9DjdS5SzyPT+acsS/fwdWEmk1NidrGb6bq+HgJY7eFVH955mjSdVAAAAn0lEQVQ4y93TyxaCIBCA4alQpFQsSs1Ku997/9drRtoxwV5Ww/m/BXAOAENc8hTonRb+3sn86OkrLfNPVgd6Ox55ezWb8KLUtr+mvLg2kjpAyguxLprbI6ORFVESobjbDSdE0ouSZrPvRQuO2BYbFGbxJmGcQ/wE9sP8nFbuNayoqS9jxT0ECey7f51E5O24Qh0uT3/HO8b+DqDUIH/SF4XSDWWIL+vnAAAAAElFTkSuQmCC);\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-general {\n  padding: 6px 10px 6px 66px;\n  position: relative;\n  background: #f6f5f3;\n  margin-bottom: 10px;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-general .lm-icon {\n  display: block;\n  width: 32px;\n  height: 32px;\n  line-height: 32px;\n  position: absolute;\n  text-align: center;\n  left: 24px;\n  top: 0;\n  font-size: 80%;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-general > div {\n  position: absolute;\n  width: 56px;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  background: #eeece7;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class {\n  margin-bottom: 1px;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child {\n  background: #f6f5f3;\n  line-height: 32px;\n  padding-left: 66px;\n  font-weight: bold;\n  position: relative;\n  cursor: pointer;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child:hover {\n  color: #ae5d04;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child > span {\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n  cursor: pointer;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child > div:first-child {\n  position: absolute;\n  width: 24px;\n  height: 32px;\n  left: 0;\n  top: 0;\n  background: #eeece7;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child > div:nth-child(2) {\n  position: absolute;\n  width: 32px;\n  height: 32px;\n  left: 24px;\n  top: 0;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:nth-child(2) {\n  padding: 6px 10px 6px 66px;\n  margin-top: 1px;\n  background: #eeece7;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class-expanded > div:nth-child(2) {\n  display: block;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class-collapsed > div:nth-child(2) {\n  display: none;\n}\n.lm-plugin .lm-task-state {\n  line-height: 32px;\n}\n.lm-plugin .lm-task-state > span {\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  z-index: 1000;\n}\n.lm-plugin .lm-overlay .lm-overlay-background {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: transparent;\n}\n.lm-plugin .lm-overlay .lm-overlay-content-wrap {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.lm-plugin .lm-overlay .lm-overlay-content {\n  text-align: center;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div {\n  padding-top: 64px;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state {\n  text-align: center;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state > div {\n  height: 32px;\n  margin-top: 10px;\n  position: relative;\n  text-align: center;\n  width: 100%;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state > div > div {\n  height: 32px;\n  line-height: 32px;\n  display: inline-block;\n  background: #eeece7;\n  padding: 0 10px;\n  font-weight: bold;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state > div > button {\n  display: inline-block;\n  margin-top: -3px;\n  font-size: 140%;\n}\n.lm-plugin .lm-background-tasks {\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  z-index: 1000;\n}\n.lm-plugin .lm-background-tasks .lm-task-state > div {\n  height: 32px;\n  margin-top: 1px;\n  position: relative;\n  width: 100%;\n  background: #eeece7;\n}\n.lm-plugin .lm-background-tasks .lm-task-state > div > div {\n  height: 32px;\n  line-height: 32px;\n  display: inline-block;\n  padding: 0 10px;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-background-tasks .lm-task-state > div > button {\n  display: inline-block;\n  margin-top: -3px;\n  font-size: 140%;\n}\n.lm-plugin .lm-viewport {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  background: black;\n}\n.lm-plugin .lm-viewport .lm-btn-link {\n  background: rgba(0, 0, 0, 0.2);\n}\n.lm-plugin .lm-viewport-expanded {\n  position: fixed;\n  z-index: 1000;\n}\n.lm-plugin .lm-viewport-host3d {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  -webkit-user-select: none;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n  -webkit-touch-callout: none;\n}\n.lm-plugin .lm-viewport-controls {\n  position: absolute;\n  right: 10px;\n  top: 10px;\n}\n.lm-plugin .lm-viewport-controls-buttons {\n  text-align: right;\n}\n.lm-plugin .lm-viewport-controls-buttons > button {\n  padding: 0;\n  text-align: center;\n  width: 32px;\n}\n.lm-plugin .lm-viewport-controls-buttons > button:last-child {\n  margin-left: 10px;\n}\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link,\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link-toggle-on {\n  color: #eee;\n}\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link-toggle-off {\n  color: #9c835f;\n}\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link:hover {\n  color: #ae5d04;\n}\n.lm-plugin .lm-viewport-controls-scene-options {\n  width: 290px;\n  background: #e0ddd4;\n}\n.lm-plugin .lm-highlight-info {\n  color: #ae5d04;\n  padding: 6px 10px;\n  background: #eeece7;\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  text-align: left;\n  min-height: 32px;\n  max-width: 95%;\n  z-index: 10000;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-highlight-info-additional {\n  font-size: 85%;\n  display: inline-block;\n  color: #fa911e;\n}\n.lm-plugin .lm-log-wrap {\n  position: absolute;\n  right: 0;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  overflow: hidden;\n}\n.lm-plugin .lm-log {\n  position: absolute;\n  right: -20px;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  overflow-y: scroll;\n  overflow-x: hidden;\n  font-size: 90%;\n  background: #e0ddd4;\n}\n.lm-plugin .lm-log {\n  color: #433829;\n}\n.lm-plugin .lm-log ul {\n  padding: 0;\n  margin: 0;\n}\n.lm-plugin .lm-log li {\n  clear: both;\n  margin: 0;\n  background: #eeece7;\n  position: relative;\n}\n.lm-plugin .lm-log li:not(:last-child) {\n  border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-log .lm-log-entry {\n  margin-left: 110px;\n  background: #ebe8e3;\n  padding: 6px 25px 6px 10px;\n}\n.lm-plugin .lm-log .lm-log-timestamp {\n  padding: 7px 10px 5px 10px;\n  float: left;\n  text-align: right;\n  width: 110px;\n  color: #726046;\n  font-size: 90%;\n}\n.lm-plugin .lm-log .lm-log-timestamp small {\n  font-size: 90%;\n}\n.lm-plugin .lm-log .label {\n  margin-top: -3px;\n  font-size: 7pt;\n}\n.lm-plugin .lm-log-entry-badge {\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  width: 6px;\n}\n.lm-plugin .lm-log-entry-message {\n  background: #0CCA5D;\n}\n.lm-plugin .lm-log-entry-info {\n  background: #5E3673;\n}\n.lm-plugin .lm-log-entry-error {\n  background: #FD354B;\n}\n.lm-plugin .lm-log-entry-warning {\n  background: #FCC937;\n}\n.lm-plugin .lm-transformer .lm-entity-badge {\n  position: absolute;\n  top: 0;\n  right: 0;\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n.lm-plugin .lm-layout-right {\n  background: #e0ddd4;\n}\n.lm-plugin .lm-transformer-wrapper {\n  position: relative;\n}\n.lm-plugin .lm-transformer-wrapper .lm-entity-badge {\n  left: 0;\n  top: 0;\n}\n.lm-plugin .lm-transformer-wrapper:first-child .lm-panel-description-content {\n  top: 33px;\n}\n.lm-plugin .lm-transformer-wrapper:not(:first-child) .lm-panel-description-content {\n  bottom: 33px;\n}\n.lm-plugin .lm-toast-container {\n  position: absolute;\n  max-width: 100%;\n  bottom: 10px;\n  right: 10px;\n  margin-left: 10px;\n  z-index: 1001;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry {\n  color: #332b1f;\n  background: #e0ddd4;\n  position: relative;\n  min-height: 32px;\n  margin-top: 10px;\n  border: 1px solid #cec9ba;\n  display: table;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-title {\n  height: 100%;\n  line-height: 32px;\n  padding: 0 10px;\n  background: #eeece7;\n  font-weight: bold;\n  display: table-cell;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  font-weight: light;\n  cursor: pointer;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message {\n  padding: 6px 42px 6px 10px;\n  display: table-cell;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a {\n  text-decoration: none;\n  color: #974102;\n  font-weight: bold;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a:hover {\n  text-decoration: underline;\n  color: #fc6c03;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a:active,\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a:focus {\n  color: #974102;\n  outline-offset: 0;\n  outline: none;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-hide {\n  position: absolute;\n  width: 42px;\n  right: 0;\n  top: 0;\n  bottom: 0;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-hide .lm-btn-icon {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0;\n  width: 100%;\n  text-align: right;\n  padding-right: 5px;\n}\n.lm-plugin .lm-help-row {\n  position: relative;\n  height: 32px;\n  background: #eeece7;\n  margin-top: 1px;\n  display: table;\n  width: 100%;\n}\n.lm-plugin .lm-help-row > span {\n  width: 120px;\n  text-align: right;\n  padding: 6px 10px;\n  color: #63533c;\n  display: table-cell;\n  font-weight: bold;\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n}\n.lm-plugin .lm-help-row > div {\n  background: #f3f2ee;\n  position: relative;\n  padding: 6px 10px;\n  display: table-cell;\n}\n.lm-plugin .lm-logo {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  display: table;\n  width: 100%;\n  height: 100%;\n}\n.lm-plugin .lm-logo > div {\n  display: table-cell;\n  vertical-align: middle;\n  text-align: center;\n}\n.lm-plugin .lm-logo > div > div {\n  display: inline-block;\n  position: relative;\n  width: 50%;\n  max-width: 450px;\n  height: 130px;\n}\n.lm-plugin .lm-logo > div > div > div {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n}\n.lm-plugin .lm-logo > div > div > div:first-child {\n  background: rgba(204, 201, 193, 0.85);\n}\n.lm-plugin .lm-logo-image {\n  -webkit-user-select: none;\n  /* Chrome/Safari */\n  -moz-user-select: none;\n  /* Firefox */\n  -ms-user-select: none;\n  /* IE10+ */\n  /* Rules below not implemented in browsers yet */\n  -o-user-select: none;\n  user-select: none;\n  cursor: default;\n  margin: 20px;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: contain;\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAABSCAMAAAASJ/28AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAACuUExURQAAAP7+/v///////6upo////////84/LP7+/v7+/v///////////////7Jod/7+/v///////x5eU/7+/h9TTf///y6e1B4nO/7+/pRcpSue1pRcpX6Skys8Siue1f///yk4RxUYMOCFOR2tcsdJPn+SlM4+K9+BOdJRL84+Kyud1uCFOR2tc3+SlB6sch6tch2tcrfBw////5RcpX+SlCw9S+CFOhYZMR6tcyye1o20WrIAAAAydFJOUwC5VEEKn3z/c9bHFIRoG5jyNB77NCY+lObZ+I3E6VY7bNvX6jSxcLdQ6PGYhJNeb8aMIUgcaQAABuVJREFUeNrt3Oly2zYQAGASBGnxMknTtJmjkZvmcNK67TBOHL//i5XiJRy74AHImk6wfzKREMn6vLgWUBxncdw4NnTi4fHBImj5PVpBTT8rqOtnBbfGx8dHK2jE7+2l1dDyo45zbUG0/O6+31oSLb/vVnBNUNnPCur6WUFdPyuo6/ebnYq1/eyCUM/v08W9FdLyu7CCmn6/tiCNu6B4g7ezfr+0oNd0QbT8Vgi6YfqyHzANpwiwNuTYJjEMqPRz7i9WC4ZN8LKAu2aKGutn0bGNbxZQ6Ue3CC4BLDJyEsAGSf6iORUg4/dR8vvrj6sNgksA66asTgIYwU2yUwGq/X7+3CK4DLDhAeOqMgLYFFCLOD8R4JzfJsFNXXjXuGYAs9kWBgHn/QbBL5PgpxNNIsYA8xj8kU4D+DDv1wt+WCN4XkBoGvGaU2fgR0dav0yAqwXPBVj3f4RyA3+YYMwC3n+moyDgpyF4LkB/6Kh7aQope+CdUcD7Hz9GwYPf7dHvamixVfBsgBhQ0D8eGAVs/UZBxG+z4NkAh0wrY3nN1D1sErDz6wUfML+tgmcDHMc64e1J/6jrGAQc/DpB3G+j4PkA98NsIhQ3+kc9FeA+cMO8zEM38egSwM8/WME7zG+b4KKFdDr+OF7ahduEKRdiP9zvfNd1s7RSAI7rPa6zVdPkjAHGQc0uJLN4HpBygvQW89skuAQwmRLOb+DgtmRxcvyIIcEB07G3cm/VxQ4FTHPhrcuEKgFv3oiCQx8G/LYIrgNMsy6ips64qISPmLsBIWnithNFVGGAtLdgCxW0nmYWEDB2gd9eWCkA33z7xgu+H3IQ9HOcf46C14sE1wHOj4HUPaQdnZKxbHKCAI5Vl0SaQnwHBoxDMP/rAgVs/WBBxG+9oGFAGgl9qgqbkiCAlVRXjY6rawAQ8WtfoUIAOz9A0Lm9Qj/tSkHDgK7A1ZHmFQw4ehGhkho6MOA0Aud+uq8Kkk1jbURBwMEPElTEOkGzgCmwi2/zJkIAiVBXzaYpBAIk47Qxzbw0GKeUAAKkr74hgpfmBI0CxjlU4StKtujCwgxzxliuHSqpfY1LBhw6cO6xr12LdTE2Ay85QUdX8MvlqQGTpoYKfD5bdOFgEq6umrJPSYBDAgpDRJELKciNgVsE764RQdDPKGCbUOCLVWzRhYOp+g1xTtkUK2BAFy5ip0JdjJ+F1wvePT3BgrCfUUBPLg2Mk2sCA44qXRffcyOiCEiR4oMwDIjrQEHwzznB1q8T/FsURPyMAiZQfbR/IkIAPSZ/fK5ILQIWwL6FHQZSZCeyTvD26QkW/Hz5AgtpFz4kOgxfOQI4VK8OXTzmurMEmDIzNLR3S7C98BrBwQ8QNLQXVgOGTVaA0X74GAE8/nXHj3EiYICddcR8Q7mYsFxw8nv63VkqaBKwbvCoEMBjXTXkG4qACXIEMAK6eDVmqSDj14lNgv/SlwKsQyywDBxHvp0nLKqRDPTWZ+BSQd7v5mYSVPkZ7sK7FQXVsXQ4TCOu8MGRMVA+By34rg+eiSwRFPy+vh4FlX4vM4moAPlz9GNhQWznYRXqHT+7wKdy84Ki3/PzIKj2M7yMiTYApixggrYbjzupvMjkBkfkXHhOUPYbBGf8jAISbCGtBGTvEjHFValdBK9jBrBx9YPeTFALMn5Xo18vOBcbAcFUo/mCQVAuEjC32VxFu+GBvHKgGmvmzACigu8/YH6t4NVpAFNky+Hjl04VgMx9SrIgU8MYqPEfUxe/GwMLqvye350oA7FNb1XOvxpQKJ1u9NbKdsHY6riUKULpDpLifiAkCPi9XuO3DbAd0AnSsvSAgmCmBiTyFAK1o9N87ZLD7y8mbjmaxksAAcHDAKjltw2wXbBE2JFILu0VSI4VVIWCSlmpoStmuslrdu7xnEWAkqC+30ZAj7+SQQpmTC/5tS5NysalShin2ndRzHR1x8vBbSL3jupb+oKgwu/1Mr+NgIcN2HQyUflNOAnF7YAWkeNfd212ZXQGZuFY2W5boO02f2469z0RXlDbrwWsIzQqFPBw/JtnqeeRpBXLUz7jmtrfkcNzh0GqJvMwSwGhk3Xh5H72m0qT4CsD+SdspMTYo4DMgVhT+vxHqDKmp4U76hgEbIEi/loCgRfW+DdbRkEzfk4aKGLopPsA+nFikrlR5GZEXtFQL/Gjw3PA7aKif+nZr+7g7YokGi6FhJlc3ar6f6f4HkYvKPu92+L3f4242Bebv6tyEPzF/TSDvrJ+moLWTzusn15cY372/1NdKdj5PVu/rYLWT0+Q779frd9KQT7/rN9qQeunHdZPc0X91frpxXiCZP30BK2fnqD10xO0fpqC1s/GCeI/6y9FSRCu10QAAAAASUVORK5CYII=);\n}\n.lm-plugin .lm-plugin-content {\n  color: #332b1f;\n}\n/*!\n * # Semantic UI 2.2.12 - Label\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.ui.label {\n  display: inline-block;\n  line-height: 1;\n  vertical-align: baseline;\n  margin: 0 .14285714em;\n  background-color: #e8e8e8;\n  background-image: none;\n  padding: .5833em .833em;\n  color: rgba(0,0,0,.6);\n  text-transform: none;\n  font-weight: 700;\n  border: 0 solid transparent;\n  border-radius: .28571429rem;\n  -webkit-transition: background .1s ease;\n  transition: background .1s ease;\n}\n.ui.label:first-child {\n  margin-left: 0;\n}\n.ui.label:last-child {\n  margin-right: 0;\n}\na.ui.label {\n  cursor: pointer;\n}\n.ui.label>a {\n  cursor: pointer;\n  color: inherit;\n  opacity: .5;\n  -webkit-transition: .1s opacity ease;\n  transition: .1s opacity ease;\n}\n.ui.label>a:hover {\n  opacity: 1;\n}\n.ui.label>img {\n  width: auto!important;\n  vertical-align: middle;\n  height: 2.1666em!important;\n}\n.ui.label>.icon {\n  width: auto;\n  margin: 0 .75em 0 0;\n}\n.ui.label>.detail {\n  display: inline-block;\n  vertical-align: top;\n  font-weight: 700;\n  margin-left: 1em;\n  opacity: .8;\n}\n.ui.label>.detail .icon {\n  margin: 0 .25em 0 0;\n}\n.ui.label>.close.icon,\n.ui.label>.delete.icon {\n  cursor: pointer;\n  margin-right: 0;\n  margin-left: .5em;\n  font-size: .92857143em;\n  opacity: .5;\n  -webkit-transition: background .1s ease;\n  transition: background .1s ease;\n}\n.ui.label>.delete.icon:hover {\n  opacity: 1;\n}\n.ui.labels>.label {\n  margin: 0 .5em .5em 0;\n}\n.ui.header>.ui.label {\n  margin-top: -.29165em;\n}\n.ui.attached.segment>.ui.top.left.attached.label,\n.ui.bottom.attached.segment>.ui.top.left.attached.label {\n  border-top-left-radius: 0;\n}\n.ui.attached.segment>.ui.top.right.attached.label,\n.ui.bottom.attached.segment>.ui.top.right.attached.label {\n  border-top-right-radius: 0;\n}\n.ui.top.attached.segment>.ui.bottom.left.attached.label {\n  border-bottom-left-radius: 0;\n}\n.ui.top.attached.segment>.ui.bottom.right.attached.label {\n  border-bottom-right-radius: 0;\n}\n.ui.top.attached.label+[class*="right floated"]+*,\n.ui.top.attached.label:first-child+:not(.attached) {\n  margin-top: 2rem!important;\n}\n.ui.bottom.attached.label:first-child~:last-child:not(.attached) {\n  margin-top: 0;\n  margin-bottom: 2rem!important;\n}\n.ui.image.label {\n  width: auto!important;\n  margin-top: 0;\n  margin-bottom: 0;\n  max-width: 9999px;\n  vertical-align: baseline;\n  text-transform: none;\n  background: #e8e8e8;\n  padding: .5833em .833em .5833em .5em;\n  border-radius: .28571429rem;\n  box-shadow: none;\n}\n.ui.image.label img {\n  display: inline-block;\n  vertical-align: top;\n  height: 2.1666em;\n  margin: -.5833em .5em -.5833em -.5em;\n  border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui.image.label .detail {\n  background: rgba(0,0,0,.1);\n  margin: -.5833em -.833em -.5833em .5em;\n  padding: .5833em .833em;\n  border-radius: 0 .28571429rem .28571429rem 0;\n}\n.ui.tag.label,\n.ui.tag.labels .label {\n  margin-left: 1em;\n  position: relative;\n  padding-left: 1.5em;\n  padding-right: 1.5em;\n  border-radius: 0 .28571429rem .28571429rem 0;\n  -webkit-transition: none;\n  transition: none;\n}\n.ui.tag.label:before,\n.ui.tag.labels .label:before {\n  position: absolute;\n  -webkit-transform: translateY(-50%) translateX(50%) rotate(-45deg);\n  transform: translateY(-50%) translateX(50%) rotate(-45deg);\n  top: 50%;\n  right: 100%;\n  content: \'\';\n  background-color: inherit;\n  background-image: none;\n  width: 1.56em;\n  height: 1.56em;\n  -webkit-transition: none;\n  transition: none;\n}\n.ui.tag.label:after,\n.ui.tag.labels .label:after {\n  position: absolute;\n  content: \'\';\n  top: 50%;\n  left: -.25em;\n  margin-top: -.25em;\n  background-color: #fff!important;\n  width: .5em;\n  height: .5em;\n  box-shadow: 0 -1px 1px 0 rgba(0,0,0,.3);\n  border-radius: 500rem;\n}\n.ui.corner.label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  margin: 0;\n  padding: 0;\n  text-align: center;\n  border-color: #e8e8e8;\n  width: 4em;\n  height: 4em;\n  z-index: 1;\n  -webkit-transition: border-color .1s ease;\n  transition: border-color .1s ease;\n}\n.ui.corner.label {\n  background-color: transparent!important;\n}\n.ui.corner.label:after {\n  position: absolute;\n  content: "";\n  right: 0;\n  top: 0;\n  z-index: -1;\n  width: 0;\n  height: 0;\n  background-color: transparent!important;\n  border-top: 0 solid transparent;\n  border-right: 4em solid transparent;\n  border-bottom: 4em solid transparent;\n  border-left: 0 solid transparent;\n  border-right-color: inherit;\n  -webkit-transition: border-color .1s ease;\n  transition: border-color .1s ease;\n}\n.ui.corner.label .icon {\n  cursor: default;\n  position: relative;\n  top: .64285714em;\n  left: .78571429em;\n  font-size: 1.14285714em;\n  margin: 0;\n}\n.ui.left.corner.label,\n.ui.left.corner.label:after {\n  right: auto;\n  left: 0;\n}\n.ui.left.corner.label:after {\n  border-top: 4em solid transparent;\n  border-right: 4em solid transparent;\n  border-bottom: 0 solid transparent;\n  border-left: 0 solid transparent;\n  border-top-color: inherit;\n}\n.ui.left.corner.label .icon {\n  left: -.78571429em;\n}\n.ui.segment>.ui.corner.label {\n  top: -1px;\n  right: -1px;\n}\n.ui.segment>.ui.left.corner.label {\n  right: auto;\n  left: -1px;\n}\n.ui.ribbon.label {\n  position: relative;\n  margin: 0;\n  min-width: -webkit-max-content;\n  min-width: -moz-max-content;\n  min-width: max-content;\n  border-radius: 0 .28571429rem .28571429rem 0;\n  border-color: rgba(0,0,0,.15);\n}\n.ui.ribbon.label:after {\n  position: absolute;\n  content: \'\';\n  top: 100%;\n  left: 0;\n  background-color: transparent!important;\n  border-style: solid;\n  border-width: 0 1.2em 1.2em 0;\n  border-color: transparent;\n  border-right-color: inherit;\n  width: 0;\n  height: 0;\n}\n.ui.ribbon.label {\n  left: calc(-1rem - 1.2em);\n  margin-right: -1.2em;\n  padding-left: calc(1rem + 1.2em);\n  padding-right: 1.2em;\n}\n.ui[class*="right ribbon"].label {\n  left: calc(100% + 1rem + 1.2em);\n  padding-left: 1.2em;\n  padding-right: calc(1rem + 1.2em);\n}\n.ui[class*="right ribbon"].label {\n  text-align: left;\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n  border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui[class*="right ribbon"].label:after {\n  left: auto;\n  right: 0;\n  border-style: solid;\n  border-width: 1.2em 1.2em 0 0;\n  border-color: transparent;\n  border-top-color: inherit;\n}\n.ui.card .image>.ribbon.label,\n.ui.image>.ribbon.label {\n  position: absolute;\n  top: 1rem;\n}\n.ui.card .image>.ui.ribbon.label,\n.ui.image>.ui.ribbon.label {\n  left: calc(.05rem - 1.2em);\n}\n.ui.card .image>.ui[class*="right ribbon"].label,\n.ui.image>.ui[class*="right ribbon"].label {\n  left: calc(100% + -.05rem + 1.2em);\n  padding-left: .833em;\n}\n.ui.table td>.ui.ribbon.label {\n  left: calc(-.78571429em - 1.2em);\n}\n.ui.table td>.ui[class*="right ribbon"].label {\n  left: calc(100% + .78571429em + 1.2em);\n  padding-left: .833em;\n}\n.ui.attached.label,\n.ui[class*="top attached"].label {\n  width: 100%;\n  position: absolute;\n  margin: 0;\n  top: 0;\n  left: 0;\n  padding: .75em 1em;\n  border-radius: .21428571rem .21428571rem 0 0;\n}\n.ui[class*="bottom attached"].label {\n  top: auto;\n  bottom: 0;\n  border-radius: 0 0 .21428571rem .21428571rem;\n}\n.ui[class*="top left attached"].label {\n  width: auto;\n  margin-top: 0!important;\n  border-radius: .21428571rem 0 .28571429rem 0;\n}\n.ui[class*="top right attached"].label {\n  width: auto;\n  left: auto;\n  right: 0;\n  border-radius: 0 .21428571rem 0 .28571429rem;\n}\n.ui[class*="bottom left attached"].label {\n  width: auto;\n  top: auto;\n  bottom: 0;\n  border-radius: 0 .28571429rem 0 .21428571rem;\n}\n.ui[class*="bottom right attached"].label {\n  top: auto;\n  bottom: 0;\n  left: auto;\n  right: 0;\n  width: auto;\n  border-radius: .28571429rem 0 .21428571rem 0;\n}\n.ui.label.disabled {\n  opacity: .5;\n}\na.ui.label:hover,\na.ui.labels .label:hover {\n  background-color: #e0e0e0;\n  border-color: #e0e0e0;\n  background-image: none;\n  color: rgba(0,0,0,.8);\n}\n.ui.labels a.label:hover:before,\na.ui.label:hover:before {\n  color: rgba(0,0,0,.8);\n}\n.ui.active.label {\n  background-color: #d0d0d0;\n  border-color: #d0d0d0;\n  background-image: none;\n  color: rgba(0,0,0,.95);\n}\n.ui.active.label:before {\n  background-color: #d0d0d0;\n  background-image: none;\n  color: rgba(0,0,0,.95);\n}\na.ui.active.label:hover,\na.ui.labels .active.label:hover {\n  background-color: #c8c8c8;\n  border-color: #c8c8c8;\n  background-image: none;\n  color: rgba(0,0,0,.95);\n}\n.ui.labels a.active.label:ActiveHover:before,\na.ui.active.label:ActiveHover:before {\n  background-color: #c8c8c8;\n  background-image: none;\n  color: rgba(0,0,0,.95);\n}\n.ui.label.visible:not(.dropdown),\n.ui.labels.visible .label {\n  display: inline-block!important;\n}\n.ui.label.hidden,\n.ui.labels.hidden .label {\n  display: none!important;\n}\n.ui.red.label,\n.ui.red.labels .label {\n  background-color: #db2828!important;\n  border-color: #db2828!important;\n  color: #fff!important;\n}\n.ui.red.labels .label:hover,\na.ui.red.label:hover {\n  background-color: #d01919!important;\n  border-color: #d01919!important;\n  color: #fff!important;\n}\n.ui.red.corner.label,\n.ui.red.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.red.ribbon.label {\n  border-color: #b21e1e!important;\n}\n.ui.basic.red.label {\n  background-color: #fff!important;\n  color: #db2828!important;\n  border-color: #db2828!important;\n}\n.ui.basic.red.labels a.label:hover,\na.ui.basic.red.label:hover {\n  background-color: #fff!important;\n  color: #d01919!important;\n  border-color: #d01919!important;\n}\n.ui.orange.label,\n.ui.orange.labels .label {\n  background-color: #f2711c!important;\n  border-color: #f2711c!important;\n  color: #fff!important;\n}\n.ui.orange.labels .label:hover,\na.ui.orange.label:hover {\n  background-color: #f26202!important;\n  border-color: #f26202!important;\n  color: #fff!important;\n}\n.ui.orange.corner.label,\n.ui.orange.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.orange.ribbon.label {\n  border-color: #cf590c!important;\n}\n.ui.basic.orange.label {\n  background-color: #fff!important;\n  color: #f2711c!important;\n  border-color: #f2711c!important;\n}\n.ui.basic.orange.labels a.label:hover,\na.ui.basic.orange.label:hover {\n  background-color: #fff!important;\n  color: #f26202!important;\n  border-color: #f26202!important;\n}\n.ui.yellow.label,\n.ui.yellow.labels .label {\n  background-color: #fbbd08!important;\n  border-color: #fbbd08!important;\n  color: #fff!important;\n}\n.ui.yellow.labels .label:hover,\na.ui.yellow.label:hover {\n  background-color: #eaae00!important;\n  border-color: #eaae00!important;\n  color: #fff!important;\n}\n.ui.yellow.corner.label,\n.ui.yellow.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.yellow.ribbon.label {\n  border-color: #cd9903!important;\n}\n.ui.basic.yellow.label {\n  background-color: #fff!important;\n  color: #fbbd08!important;\n  border-color: #fbbd08!important;\n}\n.ui.basic.yellow.labels a.label:hover,\na.ui.basic.yellow.label:hover {\n  background-color: #fff!important;\n  color: #eaae00!important;\n  border-color: #eaae00!important;\n}\n.ui.olive.label,\n.ui.olive.labels .label {\n  background-color: #b5cc18!important;\n  border-color: #b5cc18!important;\n  color: #fff!important;\n}\n.ui.olive.labels .label:hover,\na.ui.olive.label:hover {\n  background-color: #a7bd0d!important;\n  border-color: #a7bd0d!important;\n  color: #fff!important;\n}\n.ui.olive.corner.label,\n.ui.olive.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.olive.ribbon.label {\n  border-color: #198f35!important;\n}\n.ui.basic.olive.label {\n  background-color: #fff!important;\n  color: #b5cc18!important;\n  border-color: #b5cc18!important;\n}\n.ui.basic.olive.labels a.label:hover,\na.ui.basic.olive.label:hover {\n  background-color: #fff!important;\n  color: #a7bd0d!important;\n  border-color: #a7bd0d!important;\n}\n.ui.green.label,\n.ui.green.labels .label {\n  background-color: #21ba45!important;\n  border-color: #21ba45!important;\n  color: #fff!important;\n}\n.ui.green.labels .label:hover,\na.ui.green.label:hover {\n  background-color: #16ab39!important;\n  border-color: #16ab39!important;\n  color: #fff!important;\n}\n.ui.green.corner.label,\n.ui.green.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.green.ribbon.label {\n  border-color: #198f35!important;\n}\n.ui.basic.green.label {\n  background-color: #fff!important;\n  color: #21ba45!important;\n  border-color: #21ba45!important;\n}\n.ui.basic.green.labels a.label:hover,\na.ui.basic.green.label:hover {\n  background-color: #fff!important;\n  color: #16ab39!important;\n  border-color: #16ab39!important;\n}\n.ui.teal.label,\n.ui.teal.labels .label {\n  background-color: #00b5ad!important;\n  border-color: #00b5ad!important;\n  color: #fff!important;\n}\n.ui.teal.labels .label:hover,\na.ui.teal.label:hover {\n  background-color: #009c95!important;\n  border-color: #009c95!important;\n  color: #fff!important;\n}\n.ui.teal.corner.label,\n.ui.teal.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.teal.ribbon.label {\n  border-color: #00827c!important;\n}\n.ui.basic.teal.label {\n  background-color: #fff!important;\n  color: #00b5ad!important;\n  border-color: #00b5ad!important;\n}\n.ui.basic.teal.labels a.label:hover,\na.ui.basic.teal.label:hover {\n  background-color: #fff!important;\n  color: #009c95!important;\n  border-color: #009c95!important;\n}\n.ui.blue.label,\n.ui.blue.labels .label {\n  background-color: #2185d0!important;\n  border-color: #2185d0!important;\n  color: #fff!important;\n}\n.ui.blue.labels .label:hover,\na.ui.blue.label:hover {\n  background-color: #1678c2!important;\n  border-color: #1678c2!important;\n  color: #fff!important;\n}\n.ui.blue.corner.label,\n.ui.blue.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.blue.ribbon.label {\n  border-color: #1a69a4!important;\n}\n.ui.basic.blue.label {\n  background-color: #fff!important;\n  color: #2185d0!important;\n  border-color: #2185d0!important;\n}\n.ui.basic.blue.labels a.label:hover,\na.ui.basic.blue.label:hover {\n  background-color: #fff!important;\n  color: #1678c2!important;\n  border-color: #1678c2!important;\n}\n.ui.violet.label,\n.ui.violet.labels .label {\n  background-color: #6435c9!important;\n  border-color: #6435c9!important;\n  color: #fff!important;\n}\n.ui.violet.labels .label:hover,\na.ui.violet.label:hover {\n  background-color: #5829bb!important;\n  border-color: #5829bb!important;\n  color: #fff!important;\n}\n.ui.violet.corner.label,\n.ui.violet.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.violet.ribbon.label {\n  border-color: #502aa1!important;\n}\n.ui.basic.violet.label {\n  background-color: #fff!important;\n  color: #6435c9!important;\n  border-color: #6435c9!important;\n}\n.ui.basic.violet.labels a.label:hover,\na.ui.basic.violet.label:hover {\n  background-color: #fff!important;\n  color: #5829bb!important;\n  border-color: #5829bb!important;\n}\n.ui.purple.label,\n.ui.purple.labels .label {\n  background-color: #a333c8!important;\n  border-color: #a333c8!important;\n  color: #fff!important;\n}\n.ui.purple.labels .label:hover,\na.ui.purple.label:hover {\n  background-color: #9627ba!important;\n  border-color: #9627ba!important;\n  color: #fff!important;\n}\n.ui.purple.corner.label,\n.ui.purple.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.purple.ribbon.label {\n  border-color: #82299f!important;\n}\n.ui.basic.purple.label {\n  background-color: #fff!important;\n  color: #a333c8!important;\n  border-color: #a333c8!important;\n}\n.ui.basic.purple.labels a.label:hover,\na.ui.basic.purple.label:hover {\n  background-color: #fff!important;\n  color: #9627ba!important;\n  border-color: #9627ba!important;\n}\n.ui.pink.label,\n.ui.pink.labels .label {\n  background-color: #e03997!important;\n  border-color: #e03997!important;\n  color: #fff!important;\n}\n.ui.pink.labels .label:hover,\na.ui.pink.label:hover {\n  background-color: #e61a8d!important;\n  border-color: #e61a8d!important;\n  color: #fff!important;\n}\n.ui.pink.corner.label,\n.ui.pink.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.pink.ribbon.label {\n  border-color: #c71f7e!important;\n}\n.ui.basic.pink.label {\n  background-color: #fff!important;\n  color: #e03997!important;\n  border-color: #e03997!important;\n}\n.ui.basic.pink.labels a.label:hover,\na.ui.basic.pink.label:hover {\n  background-color: #fff!important;\n  color: #e61a8d!important;\n  border-color: #e61a8d!important;\n}\n.ui.brown.label,\n.ui.brown.labels .label {\n  background-color: #a5673f!important;\n  border-color: #a5673f!important;\n  color: #fff!important;\n}\n.ui.brown.labels .label:hover,\na.ui.brown.label:hover {\n  background-color: #975b33!important;\n  border-color: #975b33!important;\n  color: #fff!important;\n}\n.ui.brown.corner.label,\n.ui.brown.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.brown.ribbon.label {\n  border-color: #805031!important;\n}\n.ui.basic.brown.label {\n  background-color: #fff!important;\n  color: #a5673f!important;\n  border-color: #a5673f!important;\n}\n.ui.basic.brown.labels a.label:hover,\na.ui.basic.brown.label:hover {\n  background-color: #fff!important;\n  color: #975b33!important;\n  border-color: #975b33!important;\n}\n.ui.grey.label,\n.ui.grey.labels .label {\n  background-color: #767676!important;\n  border-color: #767676!important;\n  color: #fff!important;\n}\n.ui.grey.labels .label:hover,\na.ui.grey.label:hover {\n  background-color: #838383!important;\n  border-color: #838383!important;\n  color: #fff!important;\n}\n.ui.grey.corner.label,\n.ui.grey.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.grey.ribbon.label {\n  border-color: #805031!important;\n}\n.ui.basic.grey.label {\n  background-color: #fff!important;\n  color: #767676!important;\n  border-color: #767676!important;\n}\n.ui.basic.grey.labels a.label:hover,\na.ui.basic.grey.label:hover {\n  background-color: #fff!important;\n  color: #838383!important;\n  border-color: #838383!important;\n}\n.ui.black.label,\n.ui.black.labels .label {\n  background-color: #1b1c1d!important;\n  border-color: #1b1c1d!important;\n  color: #fff!important;\n}\n.ui.black.labels .label:hover,\na.ui.black.label:hover {\n  background-color: #27292a!important;\n  border-color: #27292a!important;\n  color: #fff!important;\n}\n.ui.black.corner.label,\n.ui.black.corner.label:hover {\n  background-color: transparent!important;\n}\n.ui.black.ribbon.label {\n  border-color: #805031!important;\n}\n.ui.basic.black.label {\n  background-color: #fff!important;\n  color: #1b1c1d!important;\n  border-color: #1b1c1d!important;\n}\n.ui.basic.black.labels a.label:hover,\na.ui.basic.black.label:hover {\n  background-color: #fff!important;\n  color: #27292a!important;\n  border-color: #27292a!important;\n}\n.ui.basic.label {\n  background: none #fff;\n  border: 1px solid rgba(34,36,38,.15);\n  color: rgba(0,0,0,.87);\n  box-shadow: none;\n}\na.ui.basic.label:hover {\n  text-decoration: none;\n  background: none #fff;\n  color: #1e70bf;\n  box-shadow: 1px solid rgba(34,36,38,.15);\n  box-shadow: none;\n}\n.ui.basic.pointing.label:before {\n  border-color: inherit;\n}\n.ui.fluid.labels>.label,\n.ui.label.fluid {\n  width: 100%;\n  box-sizing: border-box;\n}\n.ui.inverted.label,\n.ui.inverted.labels .label {\n  color: rgba(255,255,255,.9)!important;\n}\n.ui.horizontal.label,\n.ui.horizontal.labels .label {\n  margin: 0 .5em 0 0;\n  padding: .4em .833em;\n  min-width: 3em;\n  text-align: center;\n}\n.ui.circular.label,\n.ui.circular.labels .label {\n  min-width: 2em;\n  min-height: 2em;\n  padding: .5em!important;\n  line-height: 1em;\n  text-align: center;\n  border-radius: 500rem;\n}\n.ui.empty.circular.label,\n.ui.empty.circular.labels .label {\n  min-width: 0;\n  min-height: 0;\n  overflow: hidden;\n  width: .5em;\n  height: .5em;\n  vertical-align: baseline;\n}\n.ui.pointing.label {\n  position: relative;\n}\n.ui.attached.pointing.label {\n  position: absolute;\n}\n.ui.pointing.label:before {\n  background-color: inherit;\n  background-image: inherit;\n  border-width: none;\n  border-style: solid;\n  border-color: inherit;\n}\n.ui.pointing.label:before {\n  position: absolute;\n  content: \'\';\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  background-image: none;\n  z-index: 2;\n  width: .6666em;\n  height: .6666em;\n  -webkit-transition: background .1s ease;\n  transition: background .1s ease;\n}\n.ui.pointing.label,\n.ui[class*="pointing above"].label {\n  margin-top: 1em;\n}\n.ui.pointing.label:before,\n.ui[class*="pointing above"].label:before {\n  border-width: 1px 0 0 1px;\n  -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n  transform: translateX(-50%) translateY(-50%) rotate(45deg);\n  top: 0;\n  left: 50%;\n}\n.ui[class*="bottom pointing"].label,\n.ui[class*="pointing below"].label {\n  margin-top: 0;\n  margin-bottom: 1em;\n}\n.ui[class*="bottom pointing"].label:before,\n.ui[class*="pointing below"].label:before {\n  border-width: 0 1px 1px 0;\n  top: auto;\n  right: auto;\n  -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n  transform: translateX(-50%) translateY(-50%) rotate(45deg);\n  top: 100%;\n  left: 50%;\n}\n.ui[class*="left pointing"].label {\n  margin-top: 0;\n  margin-left: .6666em;\n}\n.ui[class*="left pointing"].label:before {\n  border-width: 0 0 1px 1px;\n  -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n  transform: translateX(-50%) translateY(-50%) rotate(45deg);\n  bottom: auto;\n  right: auto;\n  top: 50%;\n  left: 0;\n}\n.ui[class*="right pointing"].label {\n  margin-top: 0;\n  margin-right: .6666em;\n}\n.ui[class*="right pointing"].label:before {\n  border-width: 1px 1px 0 0;\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n  top: 50%;\n  right: 0;\n  bottom: auto;\n  left: auto;\n}\n.ui.basic.pointing.label:before,\n.ui.basic[class*="pointing above"].label:before {\n  margin-top: -1px;\n}\n.ui.basic[class*="bottom pointing"].label:before,\n.ui.basic[class*="pointing below"].label:before {\n  bottom: auto;\n  top: 100%;\n  margin-top: 1px;\n}\n.ui.basic[class*="left pointing"].label:before {\n  top: 50%;\n  left: -1px;\n}\n.ui.basic[class*="right pointing"].label:before {\n  top: 50%;\n  right: -1px;\n}\n.ui.floating.label {\n  position: absolute;\n  z-index: 100;\n  top: -1em;\n  left: 100%;\n  margin: 0 0 0 -1.5em!important;\n}\n.ui.mini.label,\n.ui.mini.labels .label {\n  font-size: .64285714rem;\n}\n.ui.tiny.label,\n.ui.tiny.labels .label {\n  font-size: .71428571rem;\n}\n.ui.small.label,\n.ui.small.labels .label {\n  font-size: .78571429rem;\n}\n.ui.label,\n.ui.labels .label {\n  font-size: .85714286rem;\n}\n.ui.large.label,\n.ui.large.labels .label {\n  font-size: 1rem;\n}\n.ui.big.label,\n.ui.big.labels .label {\n  font-size: 1.28571429rem;\n}\n.ui.huge.label,\n.ui.huge.labels .label {\n  font-size: 1.42857143rem;\n}\n.ui.massive.label,\n.ui.massive.labels .label {\n  font-size: 1.71428571rem;\n}\n/*!\n * # Semantic UI 2.2.12 - Dropdown\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.ui.dropdown {\n  cursor: pointer;\n  position: relative;\n  display: inline-block;\n  outline: 0;\n  text-align: left;\n  -webkit-transition: box-shadow .1s ease,width .1s ease;\n  transition: box-shadow .1s ease,width .1s ease;\n  -webkit-tap-highlight-color: transparent;\n}\n.ui.dropdown .menu {\n  cursor: auto;\n  position: absolute;\n  display: none;\n  outline: 0;\n  top: 100%;\n  min-width: -webkit-max-content;\n  min-width: -moz-max-content;\n  min-width: max-content;\n  margin: 0;\n  padding: 0 0;\n  background: #fff;\n  font-size: 1em;\n  text-shadow: none;\n  text-align: left;\n  box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n  border: 1px solid rgba(34,36,38,.15);\n  border-radius: .28571429rem;\n  -webkit-transition: opacity .1s ease;\n  transition: opacity .1s ease;\n  z-index: 11;\n  will-change: transform,opacity;\n}\n.ui.dropdown .menu>* {\n  white-space: nowrap;\n}\n.ui.dropdown>input:not(.search):first-child,\n.ui.dropdown>select {\n  display: none!important;\n}\n.ui.dropdown>.dropdown.icon {\n  position: relative;\n  width: auto;\n  font-size: .85714286em;\n  margin: 0 0 0 1em;\n}\n.ui.dropdown .menu>.item .dropdown.icon {\n  width: auto;\n  float: right;\n  margin: 0 0 0 1em;\n}\n.ui.dropdown .menu>.item .dropdown.icon+.text {\n  margin-right: 1em;\n}\n.ui.dropdown>.text {\n  display: inline-block;\n  -webkit-transition: none;\n  transition: none;\n}\n.ui.dropdown .menu>.item {\n  position: relative;\n  cursor: pointer;\n  display: block;\n  border: none;\n  height: auto;\n  text-align: left;\n  border-top: none;\n  line-height: 1em;\n  color: rgba(0,0,0,.87);\n  padding: .78571429rem 1.14285714rem!important;\n  font-size: 1rem;\n  text-transform: none;\n  font-weight: 400;\n  box-shadow: none;\n  -webkit-touch-callout: none;\n}\n.ui.dropdown .menu>.item:first-child {\n  border-top-width: 0;\n}\n.ui.dropdown .menu .item>[class*="right floated"],\n.ui.dropdown>.text>[class*="right floated"] {\n  float: right!important;\n  margin-right: 0!important;\n  margin-left: 1em!important;\n}\n.ui.dropdown .menu .item>[class*="left floated"],\n.ui.dropdown>.text>[class*="left floated"] {\n  float: left!important;\n  margin-left: 0!important;\n  margin-right: 1em!important;\n}\n.ui.dropdown .menu .item>.flag.floated,\n.ui.dropdown .menu .item>.icon.floated,\n.ui.dropdown .menu .item>.image.floated,\n.ui.dropdown .menu .item>img.floated {\n  margin-top: 0;\n}\n.ui.dropdown .menu>.header {\n  margin: 1rem 0 .75rem;\n  padding: 0 1.14285714rem;\n  color: rgba(0,0,0,.85);\n  font-size: .78571429em;\n  font-weight: 700;\n  text-transform: uppercase;\n}\n.ui.dropdown .menu>.divider {\n  border-top: 1px solid rgba(34,36,38,.1);\n  height: 0;\n  margin: .5em 0;\n}\n.ui.dropdown .menu>.input {\n  width: auto;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  margin: 1.14285714rem .78571429rem;\n  min-width: 10rem;\n}\n.ui.dropdown .menu>.header+.input {\n  margin-top: 0;\n}\n.ui.dropdown .menu>.input:not(.transparent) input {\n  padding: .5em 1em;\n}\n.ui.dropdown .menu>.input:not(.transparent) .button,\n.ui.dropdown .menu>.input:not(.transparent) .icon,\n.ui.dropdown .menu>.input:not(.transparent) .label {\n  padding-top: .5em;\n  padding-bottom: .5em;\n}\n.ui.dropdown .menu>.item>.description,\n.ui.dropdown>.text>.description {\n  float: right;\n  margin: 0 0 0 1em;\n  color: rgba(0,0,0,.4);\n}\n.ui.dropdown .menu>.message {\n  padding: .78571429rem 1.14285714rem;\n  font-weight: 400;\n}\n.ui.dropdown .menu>.message:not(.ui) {\n  color: rgba(0,0,0,.4);\n}\n.ui.dropdown .menu .menu {\n  top: 0!important;\n  left: 100%;\n  right: auto;\n  margin: 0 0 0 -.5em!important;\n  border-radius: .28571429rem!important;\n  z-index: 21!important;\n}\n.ui.dropdown .menu .menu:after {\n  display: none;\n}\n.ui.dropdown>.text>.flag,\n.ui.dropdown>.text>.icon,\n.ui.dropdown>.text>.image,\n.ui.dropdown>.text>.label,\n.ui.dropdown>.text>img {\n  margin-top: 0;\n}\n.ui.dropdown .menu>.item>.flag,\n.ui.dropdown .menu>.item>.icon,\n.ui.dropdown .menu>.item>.image,\n.ui.dropdown .menu>.item>.label,\n.ui.dropdown .menu>.item>img {\n  margin-top: 0;\n}\n.ui.dropdown .menu>.item>.flag,\n.ui.dropdown .menu>.item>.icon,\n.ui.dropdown .menu>.item>.image,\n.ui.dropdown .menu>.item>.label,\n.ui.dropdown .menu>.item>img,\n.ui.dropdown>.text>.flag,\n.ui.dropdown>.text>.icon,\n.ui.dropdown>.text>.image,\n.ui.dropdown>.text>.label,\n.ui.dropdown>.text>img {\n  margin-left: 0;\n  float: none;\n  margin-right: .78571429rem;\n}\n.ui.dropdown .menu>.item>.image,\n.ui.dropdown .menu>.item>img,\n.ui.dropdown>.text>.image,\n.ui.dropdown>.text>img {\n  display: inline-block;\n  vertical-align: top;\n  width: auto;\n  margin-top: -.5em;\n  margin-bottom: -.5em;\n  max-height: 2em;\n}\n.ui.dropdown .ui.menu>.item:before,\n.ui.menu .ui.dropdown .menu>.item:before {\n  display: none;\n}\n.ui.menu .ui.dropdown .menu .active.item {\n  border-left: none;\n}\n.ui.buttons>.ui.dropdown:last-child .menu,\n.ui.menu .right.dropdown.item .menu,\n.ui.menu .right.menu .dropdown:last-child .menu {\n  left: auto;\n  right: 0;\n}\n.ui.label.dropdown .menu {\n  min-width: 100%;\n}\n.ui.dropdown.icon.button>.dropdown.icon {\n  margin: 0;\n}\n.ui.button.dropdown .menu {\n  min-width: 100%;\n}\n.ui.selection.dropdown {\n  cursor: pointer;\n  word-wrap: break-word;\n  line-height: 1em;\n  white-space: normal;\n  outline: 0;\n  -webkit-transform: rotateZ(0);\n  transform: rotateZ(0);\n  min-width: 14em;\n  min-height: 2.71428571em;\n  background: #fff;\n  display: inline-block;\n  padding: .78571429em 2.1em .78571429em 1em;\n  color: rgba(0,0,0,.87);\n  box-shadow: none;\n  border: 1px solid rgba(34,36,38,.15);\n  border-radius: .28571429rem;\n  -webkit-transition: box-shadow .1s ease,width .1s ease;\n  transition: box-shadow .1s ease,width .1s ease;\n}\n.ui.selection.dropdown.active,\n.ui.selection.dropdown.visible {\n  z-index: 10;\n}\nselect.ui.dropdown {\n  height: 38px;\n  padding: .5em;\n  border: 1px solid rgba(34,36,38,.15);\n  visibility: visible;\n}\n.ui.selection.dropdown>.delete.icon,\n.ui.selection.dropdown>.dropdown.icon,\n.ui.selection.dropdown>.search.icon {\n  cursor: pointer;\n  position: absolute;\n  width: auto;\n  height: auto;\n  line-height: 1.21428571em;\n  top: .78571429em;\n  right: 1em;\n  z-index: 3;\n  margin: -.78571429em;\n  padding: .91666667em;\n  opacity: .8;\n  -webkit-transition: opacity .1s ease;\n  transition: opacity .1s ease;\n}\n.ui.compact.selection.dropdown {\n  min-width: 0;\n}\n.ui.selection.dropdown .menu {\n  overflow-x: hidden;\n  overflow-y: auto;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  -webkit-overflow-scrolling: touch;\n  border-top-width: 0!important;\n  width: auto;\n  outline: 0;\n  margin: 0 -1px;\n  min-width: calc(100% + 2px);\n  width: calc(100% + 2px);\n  border-radius: 0 0 .28571429rem .28571429rem;\n  box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n  -webkit-transition: opacity .1s ease;\n  transition: opacity .1s ease;\n}\n.ui.selection.dropdown .menu:after,\n.ui.selection.dropdown .menu:before {\n  display: none;\n}\n.ui.selection.dropdown .menu>.message {\n  padding: .78571429rem 1.14285714rem;\n}\n@media only screen and (max-width:767px) {\n  .ui.selection.dropdown .menu {\n    max-height: 8.01428571rem;\n  }\n}\n@media only screen and (min-width:768px) {\n  .ui.selection.dropdown .menu {\n    max-height: 10.68571429rem;\n  }\n}\n@media only screen and (min-width:992px) {\n  .ui.selection.dropdown .menu {\n    max-height: 16.02857143rem;\n  }\n}\n@media only screen and (min-width:1920px) {\n  .ui.selection.dropdown .menu {\n    max-height: 21.37142857rem;\n  }\n}\n.ui.selection.dropdown .menu>.item {\n  border-top: 1px solid #fafafa;\n  padding: .78571429rem 1.14285714rem!important;\n  white-space: normal;\n  word-wrap: normal;\n}\n.ui.selection.dropdown .menu>.hidden.addition.item {\n  display: none;\n}\n.ui.selection.dropdown:hover {\n  border-color: rgba(34,36,38,.35);\n  box-shadow: none;\n}\n.ui.selection.active.dropdown {\n  border-color: #96c8da;\n  box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.active.dropdown .menu {\n  border-color: #96c8da;\n  box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.dropdown:focus {\n  border-color: #96c8da;\n  box-shadow: none;\n}\n.ui.selection.dropdown:focus .menu {\n  border-color: #96c8da;\n  box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.visible.dropdown>.text:not(.default) {\n  font-weight: 400;\n  color: rgba(0,0,0,.8);\n}\n.ui.selection.active.dropdown:hover {\n  border-color: #96c8da;\n  box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.active.dropdown:hover .menu {\n  border-color: #96c8da;\n  box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.active.selection.dropdown>.dropdown.icon,\n.ui.visible.selection.dropdown>.dropdown.icon {\n  opacity: 1;\n  z-index: 3;\n}\n.ui.active.selection.dropdown {\n  border-bottom-left-radius: 0!important;\n  border-bottom-right-radius: 0!important;\n}\n.ui.active.empty.selection.dropdown {\n  border-radius: .28571429rem!important;\n  box-shadow: none!important;\n}\n.ui.active.empty.selection.dropdown .menu {\n  border: none!important;\n  box-shadow: none!important;\n}\n.ui.search.dropdown {\n  min-width: \'\';\n}\n.ui.search.dropdown>input.search {\n  background: none transparent!important;\n  border: none!important;\n  box-shadow: none!important;\n  cursor: text;\n  top: 0;\n  left: 1px;\n  width: 100%;\n  outline: 0;\n  -webkit-tap-highlight-color: rgba(255,255,255,0);\n  padding: inherit;\n}\n.ui.search.dropdown>input.search {\n  position: absolute;\n  z-index: 2;\n}\n.ui.search.dropdown>.text {\n  cursor: text;\n  position: relative;\n  left: 1px;\n  z-index: 3;\n}\n.ui.search.selection.dropdown>input.search {\n  line-height: 1.21428571em;\n  padding: .67857143em 2.1em .67857143em 1em;\n}\n.ui.search.selection.dropdown>span.sizer {\n  line-height: 1.21428571em;\n  padding: .67857143em 2.1em .67857143em 1em;\n  display: none;\n  white-space: pre;\n}\n.ui.search.dropdown.active>input.search,\n.ui.search.dropdown.visible>input.search {\n  cursor: auto;\n}\n.ui.search.dropdown.active>.text,\n.ui.search.dropdown.visible>.text {\n  pointer-events: none;\n}\n.ui.active.search.dropdown input.search:focus+.text .flag,\n.ui.active.search.dropdown input.search:focus+.text .icon {\n  opacity: .45;\n}\n.ui.active.search.dropdown input.search:focus+.text {\n  color: rgba(115,115,115,.87)!important;\n}\n.ui.search.dropdown .menu {\n  overflow-x: hidden;\n  overflow-y: auto;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  -webkit-overflow-scrolling: touch;\n}\n@media only screen and (max-width:767px) {\n  .ui.search.dropdown .menu {\n    max-height: 8.01428571rem;\n  }\n}\n@media only screen and (min-width:768px) {\n  .ui.search.dropdown .menu {\n    max-height: 10.68571429rem;\n  }\n}\n@media only screen and (min-width:992px) {\n  .ui.search.dropdown .menu {\n    max-height: 16.02857143rem;\n  }\n}\n@media only screen and (min-width:1920px) {\n  .ui.search.dropdown .menu {\n    max-height: 21.37142857rem;\n  }\n}\n.ui.multiple.dropdown {\n  padding: .22619048em 2.1em .22619048em .35714286em;\n}\n.ui.multiple.dropdown .menu {\n  cursor: auto;\n}\n.ui.multiple.search.dropdown,\n.ui.multiple.search.dropdown>input.search {\n  cursor: text;\n}\n.ui.multiple.dropdown>.label {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  display: inline-block;\n  vertical-align: top;\n  white-space: normal;\n  font-size: 1em;\n  padding: .35714286em .78571429em;\n  margin: .14285714rem .28571429rem .14285714rem 0;\n  box-shadow: 0 0 0 1px rgba(34,36,38,.15) inset;\n}\n.ui.multiple.dropdown .dropdown.icon {\n  margin: \'\';\n  padding: \'\';\n}\n.ui.multiple.dropdown>.text {\n  position: static;\n  padding: 0;\n  max-width: 100%;\n  margin: .45238095em 0 .45238095em .64285714em;\n  line-height: 1.21428571em;\n}\n.ui.multiple.dropdown>.label~input.search {\n  margin-left: .14285714em!important;\n}\n.ui.multiple.dropdown>.label~.text {\n  display: none;\n}\n.ui.multiple.search.dropdown>.text {\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  padding: inherit;\n  margin: .45238095em 0 .45238095em .64285714em;\n  line-height: 1.21428571em;\n}\n.ui.multiple.search.dropdown>.label~.text {\n  display: none;\n}\n.ui.multiple.search.dropdown>input.search {\n  position: static;\n  padding: 0;\n  max-width: 100%;\n  margin: .45238095em 0 .45238095em .64285714em;\n  width: 2.2em;\n  line-height: 1.21428571em;\n}\n.ui.inline.dropdown {\n  cursor: pointer;\n  display: inline-block;\n  color: inherit;\n}\n.ui.inline.dropdown .dropdown.icon {\n  margin: 0 .5em 0 .21428571em;\n  vertical-align: baseline;\n}\n.ui.inline.dropdown>.text {\n  font-weight: 700;\n}\n.ui.inline.dropdown .menu {\n  cursor: auto;\n  margin-top: .21428571em;\n  border-radius: .28571429rem;\n}\n.ui.dropdown .menu .active.item {\n  background: 0 0;\n  font-weight: 700;\n  color: rgba(0,0,0,.95);\n  box-shadow: none;\n  z-index: 12;\n}\n.ui.dropdown .menu>.item:hover {\n  background: rgba(0,0,0,.05);\n  color: rgba(0,0,0,.95);\n  z-index: 13;\n}\n.ui.loading.dropdown>i.icon {\n  height: 1em!important;\n}\n.ui.loading.selection.dropdown>i.icon {\n  padding: 1.5em 1.28571429em!important;\n}\n.ui.loading.dropdown>i.icon:before {\n  position: absolute;\n  content: \'\';\n  top: 50%;\n  left: 50%;\n  margin: -.64285714em 0 0 -.64285714em;\n  width: 1.28571429em;\n  height: 1.28571429em;\n  border-radius: 500rem;\n  border: .2em solid rgba(0,0,0,.1);\n}\n.ui.loading.dropdown>i.icon:after {\n  position: absolute;\n  content: \'\';\n  top: 50%;\n  left: 50%;\n  box-shadow: 0 0 0 1px transparent;\n  margin: -.64285714em 0 0 -.64285714em;\n  width: 1.28571429em;\n  height: 1.28571429em;\n  -webkit-animation: dropdown-spin .6s linear;\n  animation: dropdown-spin .6s linear;\n  -webkit-animation-iteration-count: infinite;\n  animation-iteration-count: infinite;\n  border-radius: 500rem;\n  border-color: #767676 transparent transparent;\n  border-style: solid;\n  border-width: .2em;\n}\n.ui.loading.dropdown.button>i.icon:after,\n.ui.loading.dropdown.button>i.icon:before {\n  display: none;\n}\n@-webkit-keyframes dropdown-spin {\n  from {\n    -webkit-transform: rotate(0);\n    transform: rotate(0);\n  }\n\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n@keyframes dropdown-spin {\n  from {\n    -webkit-transform: rotate(0);\n    transform: rotate(0);\n  }\n\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n.ui.default.dropdown:not(.button)>.text,\n.ui.dropdown:not(.button)>.default.text {\n  color: rgba(191,191,191,.87);\n}\n.ui.default.dropdown:not(.button)>input:focus~.text,\n.ui.dropdown:not(.button)>input:focus~.default.text {\n  color: rgba(115,115,115,.87);\n}\n.ui.loading.dropdown>.text {\n  -webkit-transition: none;\n  transition: none;\n}\n.ui.dropdown .loading.menu {\n  display: block;\n  visibility: hidden;\n  z-index: -1;\n}\n.ui.dropdown>.loading.menu {\n  left: 0!important;\n  right: auto!important;\n}\n.ui.dropdown>.menu .loading.menu {\n  left: 100%!important;\n  right: auto!important;\n}\n.ui.dropdown .menu .selected.item,\n.ui.dropdown.selected {\n  background: rgba(0,0,0,.03);\n  color: rgba(0,0,0,.95);\n}\n.ui.dropdown>.filtered.text {\n  visibility: hidden;\n}\n.ui.dropdown .filtered.item {\n  display: none!important;\n}\n.ui.dropdown.error,\n.ui.dropdown.error>.default.text,\n.ui.dropdown.error>.text {\n  color: #9f3a38;\n}\n.ui.selection.dropdown.error {\n  background: #fff6f6;\n  border-color: #e0b4b4;\n}\n.ui.selection.dropdown.error:hover {\n  border-color: #e0b4b4;\n}\n.ui.dropdown.error>.menu,\n.ui.dropdown.error>.menu .menu {\n  border-color: #e0b4b4;\n}\n.ui.dropdown.error>.menu>.item {\n  color: #9f3a38;\n}\n.ui.multiple.selection.error.dropdown>.label {\n  border-color: #e0b4b4;\n}\n.ui.dropdown.error>.menu>.item:hover {\n  background-color: #fff2f2;\n}\n.ui.dropdown.error>.menu .active.item {\n  background-color: #fdcfcf;\n}\n.ui.disabled.dropdown,\n.ui.dropdown .menu>.disabled.item {\n  cursor: default;\n  pointer-events: none;\n  opacity: .45;\n}\n.ui.dropdown .menu {\n  left: 0;\n}\n.ui.dropdown .menu .right.menu,\n.ui.dropdown .right.menu>.menu {\n  left: 100%!important;\n  right: auto!important;\n  border-radius: .28571429rem!important;\n}\n.ui.dropdown>.left.menu {\n  left: auto!important;\n  right: 0!important;\n}\n.ui.dropdown .menu .left.menu,\n.ui.dropdown>.left.menu .menu {\n  left: auto;\n  right: 100%;\n  margin: 0 -.5em 0 0!important;\n  border-radius: .28571429rem!important;\n}\n.ui.dropdown .item .left.dropdown.icon,\n.ui.dropdown .left.menu .item .dropdown.icon {\n  width: auto;\n  float: left;\n  margin: 0;\n}\n.ui.dropdown .item .left.dropdown.icon,\n.ui.dropdown .left.menu .item .dropdown.icon {\n  width: auto;\n  float: left;\n  margin: 0;\n}\n.ui.dropdown .item .left.dropdown.icon+.text,\n.ui.dropdown .left.menu .item .dropdown.icon+.text {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ui.upward.dropdown>.menu {\n  top: auto;\n  bottom: 100%;\n  box-shadow: 0 0 3px 0 rgba(0,0,0,.08);\n  border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui.dropdown .upward.menu {\n  top: auto!important;\n  bottom: 0!important;\n}\n.ui.simple.upward.active.dropdown,\n.ui.simple.upward.dropdown:hover {\n  border-radius: .28571429rem .28571429rem 0 0!important;\n}\n.ui.upward.dropdown.button:not(.pointing):not(.floating).active {\n  border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui.upward.selection.dropdown .menu {\n  border-top-width: 1px!important;\n  border-bottom-width: 0!important;\n  box-shadow: 0 -2px 3px 0 rgba(0,0,0,.08);\n}\n.ui.upward.selection.dropdown:hover {\n  box-shadow: 0 0 2px 0 rgba(0,0,0,.05);\n}\n.ui.active.upward.selection.dropdown {\n  border-radius: 0 0 .28571429rem .28571429rem!important;\n}\n.ui.upward.selection.dropdown.visible {\n  box-shadow: 0 0 3px 0 rgba(0,0,0,.08);\n  border-radius: 0 0 .28571429rem .28571429rem!important;\n}\n.ui.upward.active.selection.dropdown:hover {\n  box-shadow: 0 0 3px 0 rgba(0,0,0,.05);\n}\n.ui.upward.active.selection.dropdown:hover .menu {\n  box-shadow: 0 -2px 3px 0 rgba(0,0,0,.08);\n}\n.ui.dropdown .scrolling.menu,\n.ui.scrolling.dropdown .menu {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n.ui.scrolling.dropdown .menu {\n  overflow-x: hidden;\n  overflow-y: auto;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  -webkit-overflow-scrolling: touch;\n  min-width: 100%!important;\n  width: auto!important;\n}\n.ui.dropdown .scrolling.menu {\n  position: static;\n  overflow-y: auto;\n  border: none;\n  box-shadow: none!important;\n  border-radius: 0!important;\n  margin: 0!important;\n  min-width: 100%!important;\n  width: auto!important;\n  border-top: 1px solid rgba(34,36,38,.15);\n}\n.ui.dropdown .scrolling.menu>.item.item.item,\n.ui.scrolling.dropdown .menu .item.item.item {\n  border-top: none;\n}\n.ui.dropdown .scrolling.menu .item:first-child,\n.ui.scrolling.dropdown .menu .item:first-child {\n  border-top: none;\n}\n.ui.dropdown>.animating.menu .scrolling.menu,\n.ui.dropdown>.visible.menu .scrolling.menu {\n  display: block;\n}\n@media all and (-ms-high-contrast:none) {\n  .ui.dropdown .scrolling.menu,\n  .ui.scrolling.dropdown .menu {\n    min-width: calc(100% - 17px);\n  }\n}\n@media only screen and (max-width:767px) {\n  .ui.dropdown .scrolling.menu,\n  .ui.scrolling.dropdown .menu {\n    max-height: 10.28571429rem;\n  }\n}\n@media only screen and (min-width:768px) {\n  .ui.dropdown .scrolling.menu,\n  .ui.scrolling.dropdown .menu {\n    max-height: 15.42857143rem;\n  }\n}\n@media only screen and (min-width:992px) {\n  .ui.dropdown .scrolling.menu,\n  .ui.scrolling.dropdown .menu {\n    max-height: 20.57142857rem;\n  }\n}\n@media only screen and (min-width:1920px) {\n  .ui.dropdown .scrolling.menu,\n  .ui.scrolling.dropdown .menu {\n    max-height: 20.57142857rem;\n  }\n}\n.ui.simple.dropdown .menu:after,\n.ui.simple.dropdown .menu:before {\n  display: none;\n}\n.ui.simple.dropdown .menu {\n  position: absolute;\n  display: block;\n  overflow: hidden;\n  top: -9999px!important;\n  opacity: 0;\n  width: 0;\n  height: 0;\n  -webkit-transition: opacity .1s ease;\n  transition: opacity .1s ease;\n}\n.ui.simple.active.dropdown,\n.ui.simple.dropdown:hover {\n  border-bottom-left-radius: 0!important;\n  border-bottom-right-radius: 0!important;\n}\n.ui.simple.active.dropdown>.menu,\n.ui.simple.dropdown:hover>.menu {\n  overflow: visible;\n  width: auto;\n  height: auto;\n  top: 100%!important;\n  opacity: 1;\n}\n.ui.simple.dropdown:hover>.menu>.item:hover>.menu,\n.ui.simple.dropdown>.menu>.item:active>.menu {\n  overflow: visible;\n  width: auto;\n  height: auto;\n  top: 0!important;\n  left: 100%!important;\n  opacity: 1;\n}\n.ui.simple.disabled.dropdown:hover .menu {\n  display: none;\n  height: 0;\n  width: 0;\n  overflow: hidden;\n}\n.ui.simple.visible.dropdown>.menu {\n  display: block;\n}\n.ui.fluid.dropdown {\n  display: block;\n  width: 100%;\n  min-width: 0;\n}\n.ui.fluid.dropdown>.dropdown.icon {\n  float: right;\n}\n.ui.floating.dropdown .menu {\n  left: 0;\n  right: auto;\n  box-shadow: 0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)!important;\n  border-radius: .28571429rem!important;\n}\n.ui.floating.dropdown>.menu {\n  margin-top: .5em!important;\n  border-radius: .28571429rem!important;\n}\n.ui.pointing.dropdown>.menu {\n  top: 100%;\n  margin-top: .78571429rem;\n  border-radius: .28571429rem;\n}\n.ui.pointing.dropdown>.menu:after {\n  display: block;\n  position: absolute;\n  pointer-events: none;\n  content: \'\';\n  visibility: visible;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: .5em;\n  height: .5em;\n  box-shadow: -1px -1px 0 0 rgba(34,36,38,.15);\n  background: #fff;\n  z-index: 2;\n}\n.ui.pointing.dropdown>.menu:after {\n  top: -.25em;\n  left: 50%;\n  margin: 0 0 0 -.25em;\n}\n.ui.top.left.pointing.dropdown>.menu {\n  top: 100%;\n  bottom: auto;\n  left: 0;\n  right: auto;\n  margin: 1em 0 0;\n}\n.ui.top.left.pointing.dropdown>.menu {\n  top: 100%;\n  bottom: auto;\n  left: 0;\n  right: auto;\n  margin: 1em 0 0;\n}\n.ui.top.left.pointing.dropdown>.menu:after {\n  top: -.25em;\n  left: 1em;\n  right: auto;\n  margin: 0;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n}\n.ui.top.right.pointing.dropdown>.menu {\n  top: 100%;\n  bottom: auto;\n  right: 0;\n  left: auto;\n  margin: 1em 0 0;\n}\n.ui.top.pointing.dropdown>.left.menu:after,\n.ui.top.right.pointing.dropdown>.menu:after {\n  top: -.25em;\n  left: auto!important;\n  right: 1em!important;\n  margin: 0;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n}\n.ui.left.pointing.dropdown>.menu {\n  top: 0;\n  left: 100%;\n  right: auto;\n  margin: 0 0 0 1em;\n}\n.ui.left.pointing.dropdown>.menu:after {\n  top: 1em;\n  left: -.25em;\n  margin: 0;\n  -webkit-transform: rotate(-45deg);\n  transform: rotate(-45deg);\n}\n.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu {\n  left: auto!important;\n  right: 100%!important;\n  margin: 0 1em 0 0;\n}\n.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu:after {\n  top: 1em;\n  left: auto;\n  right: -.25em;\n  margin: 0;\n  -webkit-transform: rotate(135deg);\n  transform: rotate(135deg);\n}\n.ui.right.pointing.dropdown>.menu {\n  top: 0;\n  left: auto;\n  right: 100%;\n  margin: 0 1em 0 0;\n}\n.ui.right.pointing.dropdown>.menu:after {\n  top: 1em;\n  left: auto;\n  right: -.25em;\n  margin: 0;\n  -webkit-transform: rotate(135deg);\n  transform: rotate(135deg);\n}\n.ui.bottom.pointing.dropdown>.menu {\n  top: auto;\n  bottom: 100%;\n  left: 0;\n  right: auto;\n  margin: 0 0 1em;\n}\n.ui.bottom.pointing.dropdown>.menu:after {\n  top: auto;\n  bottom: -.25em;\n  right: auto;\n  margin: 0;\n  -webkit-transform: rotate(-135deg);\n  transform: rotate(-135deg);\n}\n.ui.bottom.pointing.dropdown>.menu .menu {\n  top: auto!important;\n  bottom: 0!important;\n}\n.ui.bottom.left.pointing.dropdown>.menu {\n  left: 0;\n  right: auto;\n}\n.ui.bottom.left.pointing.dropdown>.menu:after {\n  left: 1em;\n  right: auto;\n}\n.ui.bottom.right.pointing.dropdown>.menu {\n  right: 0;\n  left: auto;\n}\n.ui.bottom.right.pointing.dropdown>.menu:after {\n  left: auto;\n  right: 1em;\n}\n.ui.pointing.upward.dropdown .menu,\n.ui.top.pointing.upward.dropdown .menu {\n  top: auto!important;\n  bottom: 100%!important;\n  margin: 0 0 .78571429rem;\n  border-radius: .28571429rem;\n}\n.ui.pointing.upward.dropdown .menu:after,\n.ui.top.pointing.upward.dropdown .menu:after {\n  top: 100%!important;\n  bottom: auto!important;\n  box-shadow: 1px 1px 0 0 rgba(34,36,38,.15);\n  margin: -.25em 0 0;\n}\n.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu {\n  top: auto!important;\n  bottom: 0!important;\n  margin: 0 1em 0 0;\n}\n.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {\n  top: auto!important;\n  bottom: 0!important;\n  margin: 0 0 1em 0;\n  box-shadow: -1px -1px 0 0 rgba(34,36,38,.15);\n}\n.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu {\n  top: auto!important;\n  bottom: 0!important;\n  margin: 0 0 0 1em;\n}\n.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {\n  top: auto!important;\n  bottom: 0!important;\n  margin: 0 0 1em 0;\n  box-shadow: -1px -1px 0 0 rgba(34,36,38,.15);\n}\n@font-face {\n  font-family: Dropdown;\n  src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format(\'truetype\'),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format(\'woff\');\n  font-weight: 400;\n  font-style: normal;\n}\n.ui.dropdown>.dropdown.icon {\n  font-family: Dropdown;\n  line-height: 1;\n  height: 1em;\n  width: 1.23em;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  font-weight: 400;\n  font-style: normal;\n  text-align: center;\n}\n.ui.dropdown>.dropdown.icon {\n  width: auto;\n}\n.ui.dropdown>.dropdown.icon:before {\n  content: \'\\f0d7\';\n}\n.ui.dropdown .menu .item .dropdown.icon:before {\n  content: \'\\f0da\';\n}\n.ui.dropdown .item .left.dropdown.icon:before,\n.ui.dropdown .left.menu .item .dropdown.icon:before {\n  content: "\\f0d9";\n}\n.ui.vertical.menu .dropdown.item>.dropdown.icon:before {\n  content: "\\f0da";\n}\n/*!\n * # Semantic UI 2.2.12 - Transition\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.transition {\n  -webkit-animation-iteration-count: 1;\n  animation-iteration-count: 1;\n  -webkit-animation-duration: .3s;\n  animation-duration: .3s;\n  -webkit-animation-timing-function: ease;\n  animation-timing-function: ease;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n.animating.transition {\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  visibility: visible!important;\n}\n.loading.transition {\n  position: absolute;\n  top: -99999px;\n  left: -99999px;\n}\n.hidden.transition {\n  display: none;\n  visibility: hidden;\n}\n.visible.transition {\n  display: block!important;\n  visibility: visible!important;\n}\n.disabled.transition {\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused;\n}\n.looping.transition {\n  -webkit-animation-iteration-count: infinite;\n  animation-iteration-count: infinite;\n}\n.transition.browse {\n  -webkit-animation-duration: .5s;\n  animation-duration: .5s;\n}\n.transition.browse.in {\n  -webkit-animation-name: browseIn;\n  animation-name: browseIn;\n}\n.transition.browse.left.out,\n.transition.browse.out {\n  -webkit-animation-name: browseOutLeft;\n  animation-name: browseOutLeft;\n}\n.transition.browse.right.out {\n  -webkit-animation-name: browseOutRight;\n  animation-name: browseOutRight;\n}\n@-webkit-keyframes browseIn {\n  0% {\n    -webkit-transform: scale(.8) translateZ(0);\n    transform: scale(.8) translateZ(0);\n    z-index: -1;\n  }\n\n  10% {\n    -webkit-transform: scale(.8) translateZ(0);\n    transform: scale(.8) translateZ(0);\n    z-index: -1;\n    opacity: .7;\n  }\n\n  80% {\n    -webkit-transform: scale(1.05) translateZ(0);\n    transform: scale(1.05) translateZ(0);\n    opacity: 1;\n    z-index: 999;\n  }\n\n  100% {\n    -webkit-transform: scale(1) translateZ(0);\n    transform: scale(1) translateZ(0);\n    z-index: 999;\n  }\n}\n@keyframes browseIn {\n  0% {\n    -webkit-transform: scale(.8) translateZ(0);\n    transform: scale(.8) translateZ(0);\n    z-index: -1;\n  }\n\n  10% {\n    -webkit-transform: scale(.8) translateZ(0);\n    transform: scale(.8) translateZ(0);\n    z-index: -1;\n    opacity: .7;\n  }\n\n  80% {\n    -webkit-transform: scale(1.05) translateZ(0);\n    transform: scale(1.05) translateZ(0);\n    opacity: 1;\n    z-index: 999;\n  }\n\n  100% {\n    -webkit-transform: scale(1) translateZ(0);\n    transform: scale(1) translateZ(0);\n    z-index: 999;\n  }\n}\n@-webkit-keyframes browseOutLeft {\n  0% {\n    z-index: 999;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n    transform: translateX(0) rotateY(0) rotateX(0);\n  }\n\n  50% {\n    z-index: -1;\n    -webkit-transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n    transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n  }\n\n  80% {\n    opacity: 1;\n  }\n\n  100% {\n    z-index: -1;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    opacity: 0;\n  }\n}\n@keyframes browseOutLeft {\n  0% {\n    z-index: 999;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n    transform: translateX(0) rotateY(0) rotateX(0);\n  }\n\n  50% {\n    z-index: -1;\n    -webkit-transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n    transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n  }\n\n  80% {\n    opacity: 1;\n  }\n\n  100% {\n    z-index: -1;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    opacity: 0;\n  }\n}\n@-webkit-keyframes browseOutRight {\n  0% {\n    z-index: 999;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n    transform: translateX(0) rotateY(0) rotateX(0);\n  }\n\n  50% {\n    z-index: 1;\n    -webkit-transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n    transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n  }\n\n  80% {\n    opacity: 1;\n  }\n\n  100% {\n    z-index: 1;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    opacity: 0;\n  }\n}\n@keyframes browseOutRight {\n  0% {\n    z-index: 999;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n    transform: translateX(0) rotateY(0) rotateX(0);\n  }\n\n  50% {\n    z-index: 1;\n    -webkit-transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n    transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n  }\n\n  80% {\n    opacity: 1;\n  }\n\n  100% {\n    z-index: 1;\n    -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n    opacity: 0;\n  }\n}\n.drop.transition {\n  -webkit-transform-origin: top center;\n  transform-origin: top center;\n  -webkit-animation-duration: .4s;\n  animation-duration: .4s;\n  -webkit-animation-timing-function: cubic-bezier(.34,1.61,.7,1);\n  animation-timing-function: cubic-bezier(.34,1.61,.7,1);\n}\n.drop.transition.in {\n  -webkit-animation-name: dropIn;\n  animation-name: dropIn;\n}\n.drop.transition.out {\n  -webkit-animation-name: dropOut;\n  animation-name: dropOut;\n}\n@-webkit-keyframes dropIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n}\n@keyframes dropIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n}\n@-webkit-keyframes dropOut {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n}\n@keyframes dropOut {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n}\n.transition.fade.in {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n}\n.transition[class*="fade up"].in {\n  -webkit-animation-name: fadeInUp;\n  animation-name: fadeInUp;\n}\n.transition[class*="fade down"].in {\n  -webkit-animation-name: fadeInDown;\n  animation-name: fadeInDown;\n}\n.transition[class*="fade left"].in {\n  -webkit-animation-name: fadeInLeft;\n  animation-name: fadeInLeft;\n}\n.transition[class*="fade right"].in {\n  -webkit-animation-name: fadeInRight;\n  animation-name: fadeInRight;\n}\n.transition.fade.out {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n}\n.transition[class*="fade up"].out {\n  -webkit-animation-name: fadeOutUp;\n  animation-name: fadeOutUp;\n}\n.transition[class*="fade down"].out {\n  -webkit-animation-name: fadeOutDown;\n  animation-name: fadeOutDown;\n}\n.transition[class*="fade left"].out {\n  -webkit-animation-name: fadeOutLeft;\n  animation-name: fadeOutLeft;\n}\n.transition[class*="fade right"].out {\n  -webkit-animation-name: fadeOutRight;\n  animation-name: fadeOutRight;\n}\n@-webkit-keyframes fadeIn {\n  0% {\n    opacity: 0;\n  }\n\n  100% {\n    opacity: 1;\n  }\n}\n@keyframes fadeIn {\n  0% {\n    opacity: 0;\n  }\n\n  100% {\n    opacity: 1;\n  }\n}\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(10%);\n    transform: translateY(10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n}\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(10%);\n    transform: translateY(10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n}\n@-webkit-keyframes fadeInDown {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(-10%);\n    transform: translateY(-10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n}\n@keyframes fadeInDown {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(-10%);\n    transform: translateY(-10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n}\n@-webkit-keyframes fadeInLeft {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(10%);\n    transform: translateX(10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n}\n@keyframes fadeInLeft {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(10%);\n    transform: translateX(10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n}\n@-webkit-keyframes fadeInRight {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-10%);\n    transform: translateX(-10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n}\n@keyframes fadeInRight {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-10%);\n    transform: translateX(-10%);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n}\n@-webkit-keyframes fadeOut {\n  0% {\n    opacity: 1;\n  }\n\n  100% {\n    opacity: 0;\n  }\n}\n@keyframes fadeOut {\n  0% {\n    opacity: 1;\n  }\n\n  100% {\n    opacity: 0;\n  }\n}\n@-webkit-keyframes fadeOutUp {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(5%);\n    transform: translateY(5%);\n  }\n}\n@keyframes fadeOutUp {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(5%);\n    transform: translateY(5%);\n  }\n}\n@-webkit-keyframes fadeOutDown {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-5%);\n    transform: translateY(-5%);\n  }\n}\n@keyframes fadeOutDown {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-5%);\n    transform: translateY(-5%);\n  }\n}\n@-webkit-keyframes fadeOutLeft {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateX(5%);\n    transform: translateX(5%);\n  }\n}\n@keyframes fadeOutLeft {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateX(5%);\n    transform: translateX(5%);\n  }\n}\n@-webkit-keyframes fadeOutRight {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateX(-5%);\n    transform: translateX(-5%);\n  }\n}\n@keyframes fadeOutRight {\n  0% {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translateX(-5%);\n    transform: translateX(-5%);\n  }\n}\n.flip.transition.in,\n.flip.transition.out {\n  -webkit-animation-duration: .6s;\n  animation-duration: .6s;\n}\n.horizontal.flip.transition.in {\n  -webkit-animation-name: horizontalFlipIn;\n  animation-name: horizontalFlipIn;\n}\n.horizontal.flip.transition.out {\n  -webkit-animation-name: horizontalFlipOut;\n  animation-name: horizontalFlipOut;\n}\n.vertical.flip.transition.in {\n  -webkit-animation-name: verticalFlipIn;\n  animation-name: verticalFlipIn;\n}\n.vertical.flip.transition.out {\n  -webkit-animation-name: verticalFlipOut;\n  animation-name: verticalFlipOut;\n}\n@-webkit-keyframes horizontalFlipIn {\n  0% {\n    -webkit-transform: perspective(2000px) rotateY(-90deg);\n    transform: perspective(2000px) rotateY(-90deg);\n    opacity: 0;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateY(0);\n    transform: perspective(2000px) rotateY(0);\n    opacity: 1;\n  }\n}\n@keyframes horizontalFlipIn {\n  0% {\n    -webkit-transform: perspective(2000px) rotateY(-90deg);\n    transform: perspective(2000px) rotateY(-90deg);\n    opacity: 0;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateY(0);\n    transform: perspective(2000px) rotateY(0);\n    opacity: 1;\n  }\n}\n@-webkit-keyframes verticalFlipIn {\n  0% {\n    -webkit-transform: perspective(2000px) rotateX(-90deg);\n    transform: perspective(2000px) rotateX(-90deg);\n    opacity: 0;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateX(0);\n    transform: perspective(2000px) rotateX(0);\n    opacity: 1;\n  }\n}\n@keyframes verticalFlipIn {\n  0% {\n    -webkit-transform: perspective(2000px) rotateX(-90deg);\n    transform: perspective(2000px) rotateX(-90deg);\n    opacity: 0;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateX(0);\n    transform: perspective(2000px) rotateX(0);\n    opacity: 1;\n  }\n}\n@-webkit-keyframes horizontalFlipOut {\n  0% {\n    -webkit-transform: perspective(2000px) rotateY(0);\n    transform: perspective(2000px) rotateY(0);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateY(90deg);\n    transform: perspective(2000px) rotateY(90deg);\n    opacity: 0;\n  }\n}\n@keyframes horizontalFlipOut {\n  0% {\n    -webkit-transform: perspective(2000px) rotateY(0);\n    transform: perspective(2000px) rotateY(0);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateY(90deg);\n    transform: perspective(2000px) rotateY(90deg);\n    opacity: 0;\n  }\n}\n@-webkit-keyframes verticalFlipOut {\n  0% {\n    -webkit-transform: perspective(2000px) rotateX(0);\n    transform: perspective(2000px) rotateX(0);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateX(-90deg);\n    transform: perspective(2000px) rotateX(-90deg);\n    opacity: 0;\n  }\n}\n@keyframes verticalFlipOut {\n  0% {\n    -webkit-transform: perspective(2000px) rotateX(0);\n    transform: perspective(2000px) rotateX(0);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(2000px) rotateX(-90deg);\n    transform: perspective(2000px) rotateX(-90deg);\n    opacity: 0;\n  }\n}\n.scale.transition.in {\n  -webkit-animation-name: scaleIn;\n  animation-name: scaleIn;\n}\n.scale.transition.out {\n  -webkit-animation-name: scaleOut;\n  animation-name: scaleOut;\n}\n@-webkit-keyframes scaleIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(.8);\n    transform: scale(.8);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n}\n@keyframes scaleIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(.8);\n    transform: scale(.8);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n}\n@-webkit-keyframes scaleOut {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(.9);\n    transform: scale(.9);\n  }\n}\n@keyframes scaleOut {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(.9);\n    transform: scale(.9);\n  }\n}\n.transition.fly {\n  -webkit-animation-duration: .6s;\n  animation-duration: .6s;\n  -webkit-transition-timing-function: cubic-bezier(.215,.61,.355,1);\n  transition-timing-function: cubic-bezier(.215,.61,.355,1);\n}\n.transition.fly.in {\n  -webkit-animation-name: flyIn;\n  animation-name: flyIn;\n}\n.transition[class*="fly up"].in {\n  -webkit-animation-name: flyInUp;\n  animation-name: flyInUp;\n}\n.transition[class*="fly down"].in {\n  -webkit-animation-name: flyInDown;\n  animation-name: flyInDown;\n}\n.transition[class*="fly left"].in {\n  -webkit-animation-name: flyInLeft;\n  animation-name: flyInLeft;\n}\n.transition[class*="fly right"].in {\n  -webkit-animation-name: flyInRight;\n  animation-name: flyInRight;\n}\n.transition.fly.out {\n  -webkit-animation-name: flyOut;\n  animation-name: flyOut;\n}\n.transition[class*="fly up"].out {\n  -webkit-animation-name: flyOutUp;\n  animation-name: flyOutUp;\n}\n.transition[class*="fly down"].out {\n  -webkit-animation-name: flyOutDown;\n  animation-name: flyOutDown;\n}\n.transition[class*="fly left"].out {\n  -webkit-animation-name: flyOutLeft;\n  animation-name: flyOutLeft;\n}\n.transition[class*="fly right"].out {\n  -webkit-animation-name: flyOutRight;\n  animation-name: flyOutRight;\n}\n@-webkit-keyframes flyIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale3d(.3,.3,.3);\n    transform: scale3d(.3,.3,.3);\n  }\n\n  20% {\n    -webkit-transform: scale3d(1.1,1.1,1.1);\n    transform: scale3d(1.1,1.1,1.1);\n  }\n\n  40% {\n    -webkit-transform: scale3d(.9,.9,.9);\n    transform: scale3d(.9,.9,.9);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: scale3d(1.03,1.03,1.03);\n    transform: scale3d(1.03,1.03,1.03);\n  }\n\n  80% {\n    -webkit-transform: scale3d(.97,.97,.97);\n    transform: scale3d(.97,.97,.97);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scale3d(1,1,1);\n    transform: scale3d(1,1,1);\n  }\n}\n@keyframes flyIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale3d(.3,.3,.3);\n    transform: scale3d(.3,.3,.3);\n  }\n\n  20% {\n    -webkit-transform: scale3d(1.1,1.1,1.1);\n    transform: scale3d(1.1,1.1,1.1);\n  }\n\n  40% {\n    -webkit-transform: scale3d(.9,.9,.9);\n    transform: scale3d(.9,.9,.9);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: scale3d(1.03,1.03,1.03);\n    transform: scale3d(1.03,1.03,1.03);\n  }\n\n  80% {\n    -webkit-transform: scale3d(.97,.97,.97);\n    transform: scale3d(.97,.97,.97);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scale3d(1,1,1);\n    transform: scale3d(1,1,1);\n  }\n}\n@-webkit-keyframes flyInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,1500px,0);\n    transform: translate3d(0,1500px,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,-20px,0);\n    transform: translate3d(0,-20px,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(0,10px,0);\n    transform: translate3d(0,10px,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(0,-5px,0);\n    transform: translate3d(0,-5px,0);\n  }\n\n  100% {\n    -webkit-transform: translate3d(0,0,0);\n    transform: translate3d(0,0,0);\n  }\n}\n@keyframes flyInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,1500px,0);\n    transform: translate3d(0,1500px,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,-20px,0);\n    transform: translate3d(0,-20px,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(0,10px,0);\n    transform: translate3d(0,10px,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(0,-5px,0);\n    transform: translate3d(0,-5px,0);\n  }\n\n  100% {\n    -webkit-transform: translate3d(0,0,0);\n    transform: translate3d(0,0,0);\n  }\n}\n@-webkit-keyframes flyInDown {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,-1500px,0);\n    transform: translate3d(0,-1500px,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,25px,0);\n    transform: translate3d(0,25px,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(0,-10px,0);\n    transform: translate3d(0,-10px,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(0,5px,0);\n    transform: translate3d(0,5px,0);\n  }\n\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n@keyframes flyInDown {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,-1500px,0);\n    transform: translate3d(0,-1500px,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,25px,0);\n    transform: translate3d(0,25px,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(0,-10px,0);\n    transform: translate3d(0,-10px,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(0,5px,0);\n    transform: translate3d(0,5px,0);\n  }\n\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n@-webkit-keyframes flyInLeft {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(1500px,0,0);\n    transform: translate3d(1500px,0,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(-25px,0,0);\n    transform: translate3d(-25px,0,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(10px,0,0);\n    transform: translate3d(10px,0,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(-5px,0,0);\n    transform: translate3d(-5px,0,0);\n  }\n\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n@keyframes flyInLeft {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(1500px,0,0);\n    transform: translate3d(1500px,0,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(-25px,0,0);\n    transform: translate3d(-25px,0,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(10px,0,0);\n    transform: translate3d(10px,0,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(-5px,0,0);\n    transform: translate3d(-5px,0,0);\n  }\n\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n@-webkit-keyframes flyInRight {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(-1500px,0,0);\n    transform: translate3d(-1500px,0,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(25px,0,0);\n    transform: translate3d(25px,0,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(-10px,0,0);\n    transform: translate3d(-10px,0,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(5px,0,0);\n    transform: translate3d(5px,0,0);\n  }\n\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n@keyframes flyInRight {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(-1500px,0,0);\n    transform: translate3d(-1500px,0,0);\n  }\n\n  60% {\n    opacity: 1;\n    -webkit-transform: translate3d(25px,0,0);\n    transform: translate3d(25px,0,0);\n  }\n\n  75% {\n    -webkit-transform: translate3d(-10px,0,0);\n    transform: translate3d(-10px,0,0);\n  }\n\n  90% {\n    -webkit-transform: translate3d(5px,0,0);\n    transform: translate3d(5px,0,0);\n  }\n\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n@-webkit-keyframes flyOut {\n  20% {\n    -webkit-transform: scale3d(.9,.9,.9);\n    transform: scale3d(.9,.9,.9);\n  }\n\n  50%, 55% {\n    opacity: 1;\n    -webkit-transform: scale3d(1.1,1.1,1.1);\n    transform: scale3d(1.1,1.1,1.1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scale3d(.3,.3,.3);\n    transform: scale3d(.3,.3,.3);\n  }\n}\n@keyframes flyOut {\n  20% {\n    -webkit-transform: scale3d(.9,.9,.9);\n    transform: scale3d(.9,.9,.9);\n  }\n\n  50%, 55% {\n    opacity: 1;\n    -webkit-transform: scale3d(1.1,1.1,1.1);\n    transform: scale3d(1.1,1.1,1.1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scale3d(.3,.3,.3);\n    transform: scale3d(.3,.3,.3);\n  }\n}\n@-webkit-keyframes flyOutUp {\n  20% {\n    -webkit-transform: translate3d(0,10px,0);\n    transform: translate3d(0,10px,0);\n  }\n\n  40%, 45% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,-20px,0);\n    transform: translate3d(0,-20px,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,2000px,0);\n    transform: translate3d(0,2000px,0);\n  }\n}\n@keyframes flyOutUp {\n  20% {\n    -webkit-transform: translate3d(0,10px,0);\n    transform: translate3d(0,10px,0);\n  }\n\n  40%, 45% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,-20px,0);\n    transform: translate3d(0,-20px,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,2000px,0);\n    transform: translate3d(0,2000px,0);\n  }\n}\n@-webkit-keyframes flyOutDown {\n  20% {\n    -webkit-transform: translate3d(0,-10px,0);\n    transform: translate3d(0,-10px,0);\n  }\n\n  40%, 45% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,20px,0);\n    transform: translate3d(0,20px,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,-2000px,0);\n    transform: translate3d(0,-2000px,0);\n  }\n}\n@keyframes flyOutDown {\n  20% {\n    -webkit-transform: translate3d(0,-10px,0);\n    transform: translate3d(0,-10px,0);\n  }\n\n  40%, 45% {\n    opacity: 1;\n    -webkit-transform: translate3d(0,20px,0);\n    transform: translate3d(0,20px,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(0,-2000px,0);\n    transform: translate3d(0,-2000px,0);\n  }\n}\n@-webkit-keyframes flyOutRight {\n  20% {\n    opacity: 1;\n    -webkit-transform: translate3d(20px,0,0);\n    transform: translate3d(20px,0,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(-2000px,0,0);\n    transform: translate3d(-2000px,0,0);\n  }\n}\n@keyframes flyOutRight {\n  20% {\n    opacity: 1;\n    -webkit-transform: translate3d(20px,0,0);\n    transform: translate3d(20px,0,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(-2000px,0,0);\n    transform: translate3d(-2000px,0,0);\n  }\n}\n@-webkit-keyframes flyOutLeft {\n  20% {\n    opacity: 1;\n    -webkit-transform: translate3d(-20px,0,0);\n    transform: translate3d(-20px,0,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(2000px,0,0);\n    transform: translate3d(2000px,0,0);\n  }\n}\n@keyframes flyOutLeft {\n  20% {\n    opacity: 1;\n    -webkit-transform: translate3d(-20px,0,0);\n    transform: translate3d(-20px,0,0);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: translate3d(2000px,0,0);\n    transform: translate3d(2000px,0,0);\n  }\n}\n.transition.slide.in,\n.transition[class*="slide down"].in {\n  -webkit-animation-name: slideInY;\n  animation-name: slideInY;\n  -webkit-transform-origin: top center;\n  transform-origin: top center;\n}\n.transition[class*="slide up"].in {\n  -webkit-animation-name: slideInY;\n  animation-name: slideInY;\n  -webkit-transform-origin: bottom center;\n  transform-origin: bottom center;\n}\n.transition[class*="slide left"].in {\n  -webkit-animation-name: slideInX;\n  animation-name: slideInX;\n  -webkit-transform-origin: center right;\n  transform-origin: center right;\n}\n.transition[class*="slide right"].in {\n  -webkit-animation-name: slideInX;\n  animation-name: slideInX;\n  -webkit-transform-origin: center left;\n  transform-origin: center left;\n}\n.transition.slide.out,\n.transition[class*="slide down"].out {\n  -webkit-animation-name: slideOutY;\n  animation-name: slideOutY;\n  -webkit-transform-origin: top center;\n  transform-origin: top center;\n}\n.transition[class*="slide up"].out {\n  -webkit-animation-name: slideOutY;\n  animation-name: slideOutY;\n  -webkit-transform-origin: bottom center;\n  transform-origin: bottom center;\n}\n.transition[class*="slide left"].out {\n  -webkit-animation-name: slideOutX;\n  animation-name: slideOutX;\n  -webkit-transform-origin: center right;\n  transform-origin: center right;\n}\n.transition[class*="slide right"].out {\n  -webkit-animation-name: slideOutX;\n  animation-name: slideOutX;\n  -webkit-transform-origin: center left;\n  transform-origin: center left;\n}\n@-webkit-keyframes slideInY {\n  0% {\n    opacity: 0;\n    -webkit-transform: scaleY(0);\n    transform: scaleY(0);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1);\n  }\n}\n@keyframes slideInY {\n  0% {\n    opacity: 0;\n    -webkit-transform: scaleY(0);\n    transform: scaleY(0);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1);\n  }\n}\n@-webkit-keyframes slideInX {\n  0% {\n    opacity: 0;\n    -webkit-transform: scaleX(0);\n    transform: scaleX(0);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1);\n  }\n}\n@keyframes slideInX {\n  0% {\n    opacity: 0;\n    -webkit-transform: scaleX(0);\n    transform: scaleX(0);\n  }\n\n  100% {\n    opacity: 1;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1);\n  }\n}\n@-webkit-keyframes slideOutY {\n  0% {\n    opacity: 1;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scaleY(0);\n    transform: scaleY(0);\n  }\n}\n@keyframes slideOutY {\n  0% {\n    opacity: 1;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scaleY(0);\n    transform: scaleY(0);\n  }\n}\n@-webkit-keyframes slideOutX {\n  0% {\n    opacity: 1;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scaleX(0);\n    transform: scaleX(0);\n  }\n}\n@keyframes slideOutX {\n  0% {\n    opacity: 1;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1);\n  }\n\n  100% {\n    opacity: 0;\n    -webkit-transform: scaleX(0);\n    transform: scaleX(0);\n  }\n}\n.transition.swing {\n  -webkit-animation-duration: .8s;\n  animation-duration: .8s;\n}\n.transition[class*="swing down"].in {\n  -webkit-animation-name: swingInX;\n  animation-name: swingInX;\n  -webkit-transform-origin: top center;\n  transform-origin: top center;\n}\n.transition[class*="swing up"].in {\n  -webkit-animation-name: swingInX;\n  animation-name: swingInX;\n  -webkit-transform-origin: bottom center;\n  transform-origin: bottom center;\n}\n.transition[class*="swing left"].in {\n  -webkit-animation-name: swingInY;\n  animation-name: swingInY;\n  -webkit-transform-origin: center right;\n  transform-origin: center right;\n}\n.transition[class*="swing right"].in {\n  -webkit-animation-name: swingInY;\n  animation-name: swingInY;\n  -webkit-transform-origin: center left;\n  transform-origin: center left;\n}\n.transition.swing.out,\n.transition[class*="swing down"].out {\n  -webkit-animation-name: swingOutX;\n  animation-name: swingOutX;\n  -webkit-transform-origin: top center;\n  transform-origin: top center;\n}\n.transition[class*="swing up"].out {\n  -webkit-animation-name: swingOutX;\n  animation-name: swingOutX;\n  -webkit-transform-origin: bottom center;\n  transform-origin: bottom center;\n}\n.transition[class*="swing left"].out {\n  -webkit-animation-name: swingOutY;\n  animation-name: swingOutY;\n  -webkit-transform-origin: center right;\n  transform-origin: center right;\n}\n.transition[class*="swing right"].out {\n  -webkit-animation-name: swingOutY;\n  animation-name: swingOutY;\n  -webkit-transform-origin: center left;\n  transform-origin: center left;\n}\n@-webkit-keyframes swingInX {\n  0% {\n    -webkit-transform: perspective(1000px) rotateX(90deg);\n    transform: perspective(1000px) rotateX(90deg);\n    opacity: 0;\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateX(-30deg);\n    transform: perspective(1000px) rotateX(-30deg);\n    opacity: 1;\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateX(15deg);\n    transform: perspective(1000px) rotateX(15deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n    transform: perspective(1000px) rotateX(-7.5deg);\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateX(0);\n    transform: perspective(1000px) rotateX(0);\n  }\n}\n@keyframes swingInX {\n  0% {\n    -webkit-transform: perspective(1000px) rotateX(90deg);\n    transform: perspective(1000px) rotateX(90deg);\n    opacity: 0;\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateX(-30deg);\n    transform: perspective(1000px) rotateX(-30deg);\n    opacity: 1;\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateX(15deg);\n    transform: perspective(1000px) rotateX(15deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n    transform: perspective(1000px) rotateX(-7.5deg);\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateX(0);\n    transform: perspective(1000px) rotateX(0);\n  }\n}\n@-webkit-keyframes swingInY {\n  0% {\n    -webkit-transform: perspective(1000px) rotateY(-90deg);\n    transform: perspective(1000px) rotateY(-90deg);\n    opacity: 0;\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateY(30deg);\n    transform: perspective(1000px) rotateY(30deg);\n    opacity: 1;\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateY(-17.5deg);\n    transform: perspective(1000px) rotateY(-17.5deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateY(7.5deg);\n    transform: perspective(1000px) rotateY(7.5deg);\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateY(0);\n    transform: perspective(1000px) rotateY(0);\n  }\n}\n@keyframes swingInY {\n  0% {\n    -webkit-transform: perspective(1000px) rotateY(-90deg);\n    transform: perspective(1000px) rotateY(-90deg);\n    opacity: 0;\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateY(30deg);\n    transform: perspective(1000px) rotateY(30deg);\n    opacity: 1;\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateY(-17.5deg);\n    transform: perspective(1000px) rotateY(-17.5deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateY(7.5deg);\n    transform: perspective(1000px) rotateY(7.5deg);\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateY(0);\n    transform: perspective(1000px) rotateY(0);\n  }\n}\n@-webkit-keyframes swingOutX {\n  0% {\n    -webkit-transform: perspective(1000px) rotateX(0);\n    transform: perspective(1000px) rotateX(0);\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n    transform: perspective(1000px) rotateX(-7.5deg);\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateX(17.5deg);\n    transform: perspective(1000px) rotateX(17.5deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateX(-30deg);\n    transform: perspective(1000px) rotateX(-30deg);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateX(90deg);\n    transform: perspective(1000px) rotateX(90deg);\n    opacity: 0;\n  }\n}\n@keyframes swingOutX {\n  0% {\n    -webkit-transform: perspective(1000px) rotateX(0);\n    transform: perspective(1000px) rotateX(0);\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n    transform: perspective(1000px) rotateX(-7.5deg);\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateX(17.5deg);\n    transform: perspective(1000px) rotateX(17.5deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateX(-30deg);\n    transform: perspective(1000px) rotateX(-30deg);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateX(90deg);\n    transform: perspective(1000px) rotateX(90deg);\n    opacity: 0;\n  }\n}\n@-webkit-keyframes swingOutY {\n  0% {\n    -webkit-transform: perspective(1000px) rotateY(0);\n    transform: perspective(1000px) rotateY(0);\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateY(7.5deg);\n    transform: perspective(1000px) rotateY(7.5deg);\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateY(-10deg);\n    transform: perspective(1000px) rotateY(-10deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateY(30deg);\n    transform: perspective(1000px) rotateY(30deg);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateY(-90deg);\n    transform: perspective(1000px) rotateY(-90deg);\n    opacity: 0;\n  }\n}\n@keyframes swingOutY {\n  0% {\n    -webkit-transform: perspective(1000px) rotateY(0);\n    transform: perspective(1000px) rotateY(0);\n  }\n\n  40% {\n    -webkit-transform: perspective(1000px) rotateY(7.5deg);\n    transform: perspective(1000px) rotateY(7.5deg);\n  }\n\n  60% {\n    -webkit-transform: perspective(1000px) rotateY(-10deg);\n    transform: perspective(1000px) rotateY(-10deg);\n  }\n\n  80% {\n    -webkit-transform: perspective(1000px) rotateY(30deg);\n    transform: perspective(1000px) rotateY(30deg);\n    opacity: 1;\n  }\n\n  100% {\n    -webkit-transform: perspective(1000px) rotateY(-90deg);\n    transform: perspective(1000px) rotateY(-90deg);\n    opacity: 0;\n  }\n}\n.flash.transition {\n  -webkit-animation-duration: 750ms;\n  animation-duration: 750ms;\n  -webkit-animation-name: flash;\n  animation-name: flash;\n}\n.shake.transition {\n  -webkit-animation-duration: 750ms;\n  animation-duration: 750ms;\n  -webkit-animation-name: shake;\n  animation-name: shake;\n}\n.bounce.transition {\n  -webkit-animation-duration: 750ms;\n  animation-duration: 750ms;\n  -webkit-animation-name: bounce;\n  animation-name: bounce;\n}\n.tada.transition {\n  -webkit-animation-duration: 750ms;\n  animation-duration: 750ms;\n  -webkit-animation-name: tada;\n  animation-name: tada;\n}\n.pulse.transition {\n  -webkit-animation-duration: .5s;\n  animation-duration: .5s;\n  -webkit-animation-name: pulse;\n  animation-name: pulse;\n}\n.jiggle.transition {\n  -webkit-animation-duration: 750ms;\n  animation-duration: 750ms;\n  -webkit-animation-name: jiggle;\n  animation-name: jiggle;\n}\n@-webkit-keyframes flash {\n  0%, 100%, 50% {\n    opacity: 1;\n  }\n\n  25%, 75% {\n    opacity: 0;\n  }\n}\n@keyframes flash {\n  0%, 100%, 50% {\n    opacity: 1;\n  }\n\n  25%, 75% {\n    opacity: 0;\n  }\n}\n@-webkit-keyframes shake {\n  0%, 100% {\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n\n  10%, 30%, 50%, 70%, 90% {\n    -webkit-transform: translateX(-10px);\n    transform: translateX(-10px);\n  }\n\n  20%, 40%, 60%, 80% {\n    -webkit-transform: translateX(10px);\n    transform: translateX(10px);\n  }\n}\n@keyframes shake {\n  0%, 100% {\n    -webkit-transform: translateX(0);\n    transform: translateX(0);\n  }\n\n  10%, 30%, 50%, 70%, 90% {\n    -webkit-transform: translateX(-10px);\n    transform: translateX(-10px);\n  }\n\n  20%, 40%, 60%, 80% {\n    -webkit-transform: translateX(10px);\n    transform: translateX(10px);\n  }\n}\n@-webkit-keyframes bounce {\n  0%, 100%, 20%, 50%, 80% {\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n\n  40% {\n    -webkit-transform: translateY(-30px);\n    transform: translateY(-30px);\n  }\n\n  60% {\n    -webkit-transform: translateY(-15px);\n    transform: translateY(-15px);\n  }\n}\n@keyframes bounce {\n  0%, 100%, 20%, 50%, 80% {\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n\n  40% {\n    -webkit-transform: translateY(-30px);\n    transform: translateY(-30px);\n  }\n\n  60% {\n    -webkit-transform: translateY(-15px);\n    transform: translateY(-15px);\n  }\n}\n@-webkit-keyframes tada {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n\n  10%, 20% {\n    -webkit-transform: scale(.9) rotate(-3deg);\n    transform: scale(.9) rotate(-3deg);\n  }\n\n  30%, 50%, 70%, 90% {\n    -webkit-transform: scale(1.1) rotate(3deg);\n    transform: scale(1.1) rotate(3deg);\n  }\n\n  40%, 60%, 80% {\n    -webkit-transform: scale(1.1) rotate(-3deg);\n    transform: scale(1.1) rotate(-3deg);\n  }\n\n  100% {\n    -webkit-transform: scale(1) rotate(0);\n    transform: scale(1) rotate(0);\n  }\n}\n@keyframes tada {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n  }\n\n  10%, 20% {\n    -webkit-transform: scale(.9) rotate(-3deg);\n    transform: scale(.9) rotate(-3deg);\n  }\n\n  30%, 50%, 70%, 90% {\n    -webkit-transform: scale(1.1) rotate(3deg);\n    transform: scale(1.1) rotate(3deg);\n  }\n\n  40%, 60%, 80% {\n    -webkit-transform: scale(1.1) rotate(-3deg);\n    transform: scale(1.1) rotate(-3deg);\n  }\n\n  100% {\n    -webkit-transform: scale(1) rotate(0);\n    transform: scale(1) rotate(0);\n  }\n}\n@-webkit-keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    opacity: 1;\n  }\n\n  50% {\n    -webkit-transform: scale(.9);\n    transform: scale(.9);\n    opacity: .7;\n  }\n\n  100% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    opacity: 1;\n  }\n}\n@keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    opacity: 1;\n  }\n\n  50% {\n    -webkit-transform: scale(.9);\n    transform: scale(.9);\n    opacity: .7;\n  }\n\n  100% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    opacity: 1;\n  }\n}\n@-webkit-keyframes jiggle {\n  0% {\n    -webkit-transform: scale3d(1,1,1);\n    transform: scale3d(1,1,1);\n  }\n\n  30% {\n    -webkit-transform: scale3d(1.25,.75,1);\n    transform: scale3d(1.25,.75,1);\n  }\n\n  40% {\n    -webkit-transform: scale3d(.75,1.25,1);\n    transform: scale3d(.75,1.25,1);\n  }\n\n  50% {\n    -webkit-transform: scale3d(1.15,.85,1);\n    transform: scale3d(1.15,.85,1);\n  }\n\n  65% {\n    -webkit-transform: scale3d(.95,1.05,1);\n    transform: scale3d(.95,1.05,1);\n  }\n\n  75% {\n    -webkit-transform: scale3d(1.05,.95,1);\n    transform: scale3d(1.05,.95,1);\n  }\n\n  100% {\n    -webkit-transform: scale3d(1,1,1);\n    transform: scale3d(1,1,1);\n  }\n}\n@keyframes jiggle {\n  0% {\n    -webkit-transform: scale3d(1,1,1);\n    transform: scale3d(1,1,1);\n  }\n\n  30% {\n    -webkit-transform: scale3d(1.25,.75,1);\n    transform: scale3d(1.25,.75,1);\n  }\n\n  40% {\n    -webkit-transform: scale3d(.75,1.25,1);\n    transform: scale3d(.75,1.25,1);\n  }\n\n  50% {\n    -webkit-transform: scale3d(1.15,.85,1);\n    transform: scale3d(1.15,.85,1);\n  }\n\n  65% {\n    -webkit-transform: scale3d(.95,1.05,1);\n    transform: scale3d(.95,1.05,1);\n  }\n\n  75% {\n    -webkit-transform: scale3d(1.05,.95,1);\n    transform: scale3d(1.05,.95,1);\n  }\n\n  100% {\n    -webkit-transform: scale3d(1,1,1);\n    transform: scale3d(1,1,1);\n  }\n}\n/*@import "../../node_modules/semantic-ui-modal/modal.min.css";*/\n/*@import "../../node_modules/semantic-ui-dimmer/dimmer.min.css";*/\n/*!\n * # Semantic UI 2.2.12 - Button\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.ui.button {\n  cursor: pointer;\n  display: inline-block;\n  min-height: 1em;\n  outline: 0;\n  border: none;\n  vertical-align: baseline;\n  background: #e0e1e2 none;\n  color: rgba(0,0,0,.6);\n  font-family: Lato,\'Helvetica Neue\',Arial,Helvetica,sans-serif;\n  margin: 0 .25em 0 0;\n  padding: .78571429em 1.5em .78571429em;\n  text-transform: none;\n  text-shadow: none;\n  font-weight: 700;\n  line-height: 1em;\n  font-style: normal;\n  text-align: center;\n  text-decoration: none;\n  border-radius: .28571429rem;\n  box-shadow: 0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  -webkit-transition: opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;\n  transition: opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;\n  will-change: \'\';\n  -webkit-tap-highlight-color: transparent;\n}\n.ui.button:hover {\n  background-color: #cacbcd;\n  background-image: none;\n  box-shadow: 0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset;\n  color: rgba(0,0,0,.8);\n}\n.ui.button:hover .icon {\n  opacity: .85;\n}\n.ui.button:focus {\n  background-color: #cacbcd;\n  color: rgba(0,0,0,.8);\n  background-image: \'\'!important;\n  box-shadow: \'\'!important;\n}\n.ui.button:focus .icon {\n  opacity: .85;\n}\n.ui.active.button:active,\n.ui.button:active {\n  background-color: #babbbc;\n  background-image: \'\';\n  color: rgba(0,0,0,.9);\n  box-shadow: 0 0 0 1px transparent inset,none;\n}\n.ui.active.button {\n  background-color: #c0c1c2;\n  background-image: none;\n  box-shadow: 0 0 0 1px transparent inset;\n  color: rgba(0,0,0,.95);\n}\n.ui.active.button:hover {\n  background-color: #c0c1c2;\n  background-image: none;\n  color: rgba(0,0,0,.95);\n}\n.ui.active.button:active {\n  background-color: #c0c1c2;\n  background-image: none;\n}\n.ui.loading.loading.loading.loading.loading.loading.button {\n  position: relative;\n  cursor: default;\n  text-shadow: none!important;\n  color: transparent!important;\n  opacity: 1;\n  pointer-events: auto;\n  -webkit-transition: all 0s linear,opacity .1s ease;\n  transition: all 0s linear,opacity .1s ease;\n}\n.ui.loading.button:before {\n  position: absolute;\n  content: \'\';\n  top: 50%;\n  left: 50%;\n  margin: -.64285714em 0 0 -.64285714em;\n  width: 1.28571429em;\n  height: 1.28571429em;\n  border-radius: 500rem;\n  border: .2em solid rgba(0,0,0,.15);\n}\n.ui.loading.button:after {\n  position: absolute;\n  content: \'\';\n  top: 50%;\n  left: 50%;\n  margin: -.64285714em 0 0 -.64285714em;\n  width: 1.28571429em;\n  height: 1.28571429em;\n  -webkit-animation: button-spin .6s linear;\n  animation: button-spin .6s linear;\n  -webkit-animation-iteration-count: infinite;\n  animation-iteration-count: infinite;\n  border-radius: 500rem;\n  border-color: #fff transparent transparent;\n  border-style: solid;\n  border-width: .2em;\n  box-shadow: 0 0 0 1px transparent;\n}\n.ui.labeled.icon.loading.button .icon {\n  background-color: transparent;\n  box-shadow: none;\n}\n@-webkit-keyframes button-spin {\n  from {\n    -webkit-transform: rotate(0);\n    transform: rotate(0);\n  }\n\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n@keyframes button-spin {\n  from {\n    -webkit-transform: rotate(0);\n    transform: rotate(0);\n  }\n\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n.ui.basic.loading.button:not(.inverted):before {\n  border-color: rgba(0,0,0,.1);\n}\n.ui.basic.loading.button:not(.inverted):after {\n  border-top-color: #767676;\n}\n.ui.button:disabled,\n.ui.buttons .disabled.button,\n.ui.disabled.active.button,\n.ui.disabled.button,\n.ui.disabled.button:hover {\n  cursor: default;\n  opacity: .45!important;\n  background-image: none!important;\n  box-shadow: none!important;\n  pointer-events: none!important;\n}\n.ui.basic.buttons .ui.disabled.button {\n  border-color: rgba(34,36,38,.5);\n}\n.ui.animated.button {\n  position: relative;\n  overflow: hidden;\n  padding-right: 0!important;\n  vertical-align: middle;\n  z-index: 1;\n}\n.ui.animated.button .content {\n  will-change: transform,opacity;\n}\n.ui.animated.button .visible.content {\n  position: relative;\n  margin-right: 1.5em;\n}\n.ui.animated.button .hidden.content {\n  position: absolute;\n  width: 100%;\n}\n.ui.animated.button .hidden.content,\n.ui.animated.button .visible.content {\n  -webkit-transition: right .3s ease 0s;\n  transition: right .3s ease 0s;\n}\n.ui.animated.button .visible.content {\n  left: auto;\n  right: 0;\n}\n.ui.animated.button .hidden.content {\n  top: 50%;\n  left: auto;\n  right: -100%;\n  margin-top: -.5em;\n}\n.ui.animated.button:focus .visible.content,\n.ui.animated.button:hover .visible.content {\n  left: auto;\n  right: 200%;\n}\n.ui.animated.button:focus .hidden.content,\n.ui.animated.button:hover .hidden.content {\n  left: auto;\n  right: 0;\n}\n.ui.vertical.animated.button .hidden.content,\n.ui.vertical.animated.button .visible.content {\n  -webkit-transition: top .3s ease,-webkit-transform .3s ease;\n  transition: top .3s ease,-webkit-transform .3s ease;\n  transition: top .3s ease,transform .3s ease;\n  transition: top .3s ease,transform .3s ease,-webkit-transform .3s ease;\n}\n.ui.vertical.animated.button .visible.content {\n  -webkit-transform: translateY(0);\n  transform: translateY(0);\n  right: auto;\n}\n.ui.vertical.animated.button .hidden.content {\n  top: -50%;\n  left: 0;\n  right: auto;\n}\n.ui.vertical.animated.button:focus .visible.content,\n.ui.vertical.animated.button:hover .visible.content {\n  -webkit-transform: translateY(200%);\n  transform: translateY(200%);\n  right: auto;\n}\n.ui.vertical.animated.button:focus .hidden.content,\n.ui.vertical.animated.button:hover .hidden.content {\n  top: 50%;\n  right: auto;\n}\n.ui.fade.animated.button .hidden.content,\n.ui.fade.animated.button .visible.content {\n  -webkit-transition: opacity .3s ease,-webkit-transform .3s ease;\n  transition: opacity .3s ease,-webkit-transform .3s ease;\n  transition: opacity .3s ease,transform .3s ease;\n  transition: opacity .3s ease,transform .3s ease,-webkit-transform .3s ease;\n}\n.ui.fade.animated.button .visible.content {\n  left: auto;\n  right: auto;\n  opacity: 1;\n  -webkit-transform: scale(1);\n  transform: scale(1);\n}\n.ui.fade.animated.button .hidden.content {\n  opacity: 0;\n  left: 0;\n  right: auto;\n  -webkit-transform: scale(1.5);\n  transform: scale(1.5);\n}\n.ui.fade.animated.button:focus .visible.content,\n.ui.fade.animated.button:hover .visible.content {\n  left: auto;\n  right: auto;\n  opacity: 0;\n  -webkit-transform: scale(.75);\n  transform: scale(.75);\n}\n.ui.fade.animated.button:focus .hidden.content,\n.ui.fade.animated.button:hover .hidden.content {\n  left: 0;\n  right: auto;\n  opacity: 1;\n  -webkit-transform: scale(1);\n  transform: scale(1);\n}\n.ui.inverted.button {\n  box-shadow: 0 0 0 2px #fff inset!important;\n  background: transparent none;\n  color: #fff;\n  text-shadow: none!important;\n}\n.ui.inverted.buttons .button {\n  margin: 0 0 0 -2px;\n}\n.ui.inverted.buttons .button:first-child {\n  margin-left: 0;\n}\n.ui.inverted.vertical.buttons .button {\n  margin: 0 0 -2px 0;\n}\n.ui.inverted.vertical.buttons .button:first-child {\n  margin-top: 0;\n}\n.ui.inverted.button:hover {\n  background: #fff;\n  box-shadow: 0 0 0 2px #fff inset!important;\n  color: rgba(0,0,0,.8);\n}\n.ui.inverted.button.active,\n.ui.inverted.button:focus {\n  background: #fff;\n  box-shadow: 0 0 0 2px #fff inset!important;\n  color: rgba(0,0,0,.8);\n}\n.ui.inverted.button.active:focus {\n  background: #dcddde;\n  box-shadow: 0 0 0 2px #dcddde inset!important;\n  color: rgba(0,0,0,.8);\n}\n.ui.labeled.button:not(.icon) {\n  display: -webkit-inline-box;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-box-orient: horizontal;\n  -webkit-box-direction: normal;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  background: 0 0!important;\n  padding: 0!important;\n  border: none!important;\n  box-shadow: none!important;\n}\n.ui.labeled.button>.button {\n  margin: 0;\n}\n.ui.labeled.button>.label {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-align: center;\n  -ms-flex-align: center;\n  align-items: center;\n  margin: 0 0 0 -1px!important;\n  padding: \'\';\n  font-size: 1em;\n  border-color: rgba(34,36,38,.15);\n}\n.ui.labeled.button>.tag.label:before {\n  width: 1.85em;\n  height: 1.85em;\n}\n.ui.labeled.button:not([class*="left labeled"])>.button {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.ui.labeled.button:not([class*="left labeled"])>.label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.ui[class*="left labeled"].button>.button {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.ui[class*="left labeled"].button>.label {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.ui.facebook.button {\n  background-color: #3b5998;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.facebook.button:hover {\n  background-color: #304d8a;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.facebook.button:active {\n  background-color: #2d4373;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.twitter.button {\n  background-color: #55acee;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.twitter.button:hover {\n  background-color: #35a2f4;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.twitter.button:active {\n  background-color: #2795e9;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.google.plus.button {\n  background-color: #dd4b39;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.google.plus.button:hover {\n  background-color: #e0321c;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.google.plus.button:active {\n  background-color: #c23321;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.linkedin.button {\n  background-color: #1f88be;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.linkedin.button:hover {\n  background-color: #147baf;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.linkedin.button:active {\n  background-color: #186992;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.youtube.button {\n  background-color: #cc181e;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.youtube.button:hover {\n  background-color: #bd0d13;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.youtube.button:active {\n  background-color: #9e1317;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.instagram.button {\n  background-color: #49769c;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.instagram.button:hover {\n  background-color: #3d698e;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.instagram.button:active {\n  background-color: #395c79;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.pinterest.button {\n  background-color: #bd081c;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.pinterest.button:hover {\n  background-color: #ac0013;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.pinterest.button:active {\n  background-color: #8c0615;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.vk.button {\n  background-color: #4d7198;\n  color: #fff;\n  background-image: none;\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.vk.button:hover {\n  background-color: #41648a;\n  color: #fff;\n}\n.ui.vk.button:active {\n  background-color: #3c5876;\n  color: #fff;\n}\n.ui.button>.icon:not(.button) {\n  height: .85714286em;\n  opacity: .8;\n  margin: 0 .42857143em 0 -.21428571em;\n  -webkit-transition: opacity .1s ease;\n  transition: opacity .1s ease;\n  vertical-align: \'\';\n  color: \'\';\n}\n.ui.button:not(.icon)>.icon:not(.button):not(.dropdown) {\n  margin: 0 .42857143em 0 -.21428571em;\n}\n.ui.button:not(.icon)>.right.icon:not(.button):not(.dropdown) {\n  margin: 0 -.21428571em 0 .42857143em;\n}\n.ui[class*="left floated"].button,\n.ui[class*="left floated"].buttons {\n  float: left;\n  margin-left: 0;\n  margin-right: .25em;\n}\n.ui[class*="right floated"].button,\n.ui[class*="right floated"].buttons {\n  float: right;\n  margin-right: 0;\n  margin-left: .25em;\n}\n.ui.compact.button,\n.ui.compact.buttons .button {\n  padding: .58928571em 1.125em .58928571em;\n}\n.ui.compact.icon.button,\n.ui.compact.icon.buttons .button {\n  padding: .58928571em .58928571em .58928571em;\n}\n.ui.compact.labeled.icon.button,\n.ui.compact.labeled.icon.buttons .button {\n  padding: .58928571em 3.69642857em .58928571em;\n}\n.ui.mini.button,\n.ui.mini.buttons .button,\n.ui.mini.buttons .or {\n  font-size: .78571429rem;\n}\n.ui.tiny.button,\n.ui.tiny.buttons .button,\n.ui.tiny.buttons .or {\n  font-size: .85714286rem;\n}\n.ui.small.button,\n.ui.small.buttons .button,\n.ui.small.buttons .or {\n  font-size: .92857143rem;\n}\n.ui.button,\n.ui.buttons .button,\n.ui.buttons .or {\n  font-size: 1rem;\n}\n.ui.large.button,\n.ui.large.buttons .button,\n.ui.large.buttons .or {\n  font-size: 1.14285714rem;\n}\n.ui.big.button,\n.ui.big.buttons .button,\n.ui.big.buttons .or {\n  font-size: 1.28571429rem;\n}\n.ui.huge.button,\n.ui.huge.buttons .button,\n.ui.huge.buttons .or {\n  font-size: 1.42857143rem;\n}\n.ui.massive.button,\n.ui.massive.buttons .button,\n.ui.massive.buttons .or {\n  font-size: 1.71428571rem;\n}\n.ui.icon.button,\n.ui.icon.buttons .button {\n  padding: .78571429em .78571429em .78571429em;\n}\n.ui.icon.button>.icon,\n.ui.icon.buttons .button>.icon {\n  opacity: .9;\n  margin: 0!important;\n  vertical-align: top;\n}\n.ui.basic.button,\n.ui.basic.buttons .button {\n  background: transparent none!important;\n  color: rgba(0,0,0,.6)!important;\n  font-weight: 400;\n  border-radius: .28571429rem;\n  text-transform: none;\n  text-shadow: none!important;\n  box-shadow: 0 0 0 1px rgba(34,36,38,.15) inset;\n}\n.ui.basic.buttons {\n  box-shadow: none;\n  border: 1px solid rgba(34,36,38,.15);\n  border-radius: .28571429rem;\n}\n.ui.basic.buttons .button {\n  border-radius: 0;\n}\n.ui.basic.button:hover,\n.ui.basic.buttons .button:hover {\n  background: #fff!important;\n  color: rgba(0,0,0,.8)!important;\n  box-shadow: 0 0 0 1px rgba(34,36,38,.35) inset,0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.basic.button:focus,\n.ui.basic.buttons .button:focus {\n  background: #fff!important;\n  color: rgba(0,0,0,.8)!important;\n  box-shadow: 0 0 0 1px rgba(34,36,38,.35) inset,0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.basic.button:active,\n.ui.basic.buttons .button:active {\n  background: #f8f8f8!important;\n  color: rgba(0,0,0,.9)!important;\n  box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset,0 1px 4px 0 rgba(34,36,38,.15) inset;\n}\n.ui.basic.active.button,\n.ui.basic.buttons .active.button {\n  background: rgba(0,0,0,.05)!important;\n  box-shadow: \'\'!important;\n  color: rgba(0,0,0,.95);\n}\n.ui.basic.active.button:hover,\n.ui.basic.buttons .active.button:hover {\n  background-color: rgba(0,0,0,.05);\n}\n.ui.basic.buttons .button:hover {\n  box-shadow: 0 0 0 1px rgba(34,36,38,.35) inset,0 0 0 0 rgba(34,36,38,.15) inset inset;\n}\n.ui.basic.buttons .button:active {\n  box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset,0 1px 4px 0 rgba(34,36,38,.15) inset inset;\n}\n.ui.basic.buttons .active.button {\n  box-shadow: \'\'!important;\n}\n.ui.basic.inverted.button,\n.ui.basic.inverted.buttons .button {\n  background-color: transparent!important;\n  color: #f9fafb!important;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n}\n.ui.basic.inverted.button:hover,\n.ui.basic.inverted.buttons .button:hover {\n  color: #fff!important;\n  box-shadow: 0 0 0 2px #fff inset!important;\n}\n.ui.basic.inverted.button:focus,\n.ui.basic.inverted.buttons .button:focus {\n  color: #fff!important;\n  box-shadow: 0 0 0 2px #fff inset!important;\n}\n.ui.basic.inverted.button:active,\n.ui.basic.inverted.buttons .button:active {\n  background-color: rgba(255,255,255,.08)!important;\n  color: #fff!important;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.9) inset!important;\n}\n.ui.basic.inverted.active.button,\n.ui.basic.inverted.buttons .active.button {\n  background-color: rgba(255,255,255,.08);\n  color: #fff;\n  text-shadow: none;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.7) inset;\n}\n.ui.basic.inverted.active.button:hover,\n.ui.basic.inverted.buttons .active.button:hover {\n  background-color: rgba(255,255,255,.15);\n  box-shadow: 0 0 0 2px #fff inset!important;\n}\n.ui.basic.buttons .button {\n  border-left: 1px solid rgba(34,36,38,.15);\n  box-shadow: none;\n}\n.ui.basic.vertical.buttons .button {\n  border-left: none;\n}\n.ui.basic.vertical.buttons .button {\n  border-left-width: 0;\n  border-top: 1px solid rgba(34,36,38,.15);\n}\n.ui.basic.vertical.buttons .button:first-child {\n  border-top-width: 0;\n}\n.ui.labeled.icon.button,\n.ui.labeled.icon.buttons .button {\n  position: relative;\n  padding-left: 4.07142857em!important;\n  padding-right: 1.5em!important;\n}\n.ui.labeled.icon.button>.icon,\n.ui.labeled.icon.buttons>.button>.icon {\n  position: absolute;\n  height: 100%;\n  line-height: 1;\n  border-radius: 0;\n  border-top-left-radius: inherit;\n  border-bottom-left-radius: inherit;\n  text-align: center;\n  margin: 0;\n  width: 2.57142857em;\n  background-color: rgba(0,0,0,.05);\n  color: \'\';\n  box-shadow: -1px 0 0 0 transparent inset;\n}\n.ui.labeled.icon.button>.icon,\n.ui.labeled.icon.buttons>.button>.icon {\n  top: 0;\n  left: 0;\n}\n.ui[class*="right labeled"].icon.button {\n  padding-right: 4.07142857em!important;\n  padding-left: 1.5em!important;\n}\n.ui[class*="right labeled"].icon.button>.icon {\n  left: auto;\n  right: 0;\n  border-radius: 0;\n  border-top-right-radius: inherit;\n  border-bottom-right-radius: inherit;\n  box-shadow: 1px 0 0 0 transparent inset;\n}\n.ui.labeled.icon.button>.icon:after,\n.ui.labeled.icon.button>.icon:before,\n.ui.labeled.icon.buttons>.button>.icon:after,\n.ui.labeled.icon.buttons>.button>.icon:before {\n  display: block;\n  position: absolute;\n  width: 100%;\n  top: 50%;\n  text-align: center;\n  -webkit-transform: translateY(-50%);\n  transform: translateY(-50%);\n}\n.ui.labeled.icon.buttons .button>.icon {\n  border-radius: 0;\n}\n.ui.labeled.icon.buttons .button:first-child>.icon {\n  border-top-left-radius: .28571429rem;\n  border-bottom-left-radius: .28571429rem;\n}\n.ui.labeled.icon.buttons .button:last-child>.icon {\n  border-top-right-radius: .28571429rem;\n  border-bottom-right-radius: .28571429rem;\n}\n.ui.vertical.labeled.icon.buttons .button:first-child>.icon {\n  border-radius: 0;\n  border-top-left-radius: .28571429rem;\n}\n.ui.vertical.labeled.icon.buttons .button:last-child>.icon {\n  border-radius: 0;\n  border-bottom-left-radius: .28571429rem;\n}\n.ui.fluid[class*="left labeled"].icon.button,\n.ui.fluid[class*="right labeled"].icon.button {\n  padding-left: 1.5em!important;\n  padding-right: 1.5em!important;\n}\n.ui.button.toggle.active,\n.ui.buttons .button.toggle.active,\n.ui.toggle.buttons .active.button {\n  background-color: #21ba45!important;\n  box-shadow: none!important;\n  text-shadow: none;\n  color: #fff!important;\n}\n.ui.button.toggle.active:hover {\n  background-color: #16ab39!important;\n  text-shadow: none;\n  color: #fff!important;\n}\n.ui.circular.button {\n  border-radius: 10em;\n}\n.ui.circular.button>.icon {\n  width: 1em;\n  vertical-align: baseline;\n}\n.ui.buttons .or {\n  position: relative;\n  width: .3em;\n  height: 2.57142857em;\n  z-index: 3;\n}\n.ui.buttons .or:before {\n  position: absolute;\n  text-align: center;\n  border-radius: 500rem;\n  content: \'or\';\n  top: 50%;\n  left: 50%;\n  background-color: #fff;\n  text-shadow: none;\n  margin-top: -.89285714em;\n  margin-left: -.89285714em;\n  width: 1.78571429em;\n  height: 1.78571429em;\n  line-height: 1.78571429em;\n  color: rgba(0,0,0,.4);\n  font-style: normal;\n  font-weight: 700;\n  box-shadow: 0 0 0 1px transparent inset;\n}\n.ui.buttons .or[data-text]:before {\n  content: attr(data-text);\n}\n.ui.fluid.buttons .or {\n  width: 0!important;\n}\n.ui.fluid.buttons .or:after {\n  display: none;\n}\n.ui.attached.button {\n  position: relative;\n  display: block;\n  margin: 0;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(34,36,38,.15)!important;\n}\n.ui.attached.top.button {\n  border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui.attached.bottom.button {\n  border-radius: 0 0 .28571429rem .28571429rem;\n}\n.ui.left.attached.button {\n  display: inline-block;\n  border-left: none;\n  text-align: right;\n  padding-right: .75em;\n  border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui.right.attached.button {\n  display: inline-block;\n  text-align: left;\n  padding-left: .75em;\n  border-radius: 0 .28571429rem .28571429rem 0;\n}\n.ui.attached.buttons {\n  position: relative;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  border-radius: 0;\n  width: auto!important;\n  z-index: 2;\n  margin-left: -1px;\n  margin-right: -1px;\n}\n.ui.attached.buttons .button {\n  margin: 0;\n}\n.ui.attached.buttons .button:first-child {\n  border-radius: 0;\n}\n.ui.attached.buttons .button:last-child {\n  border-radius: 0;\n}\n.ui[class*="top attached"].buttons {\n  margin-bottom: -1px;\n  border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui[class*="top attached"].buttons .button:first-child {\n  border-radius: .28571429rem 0 0 0;\n}\n.ui[class*="top attached"].buttons .button:last-child {\n  border-radius: 0 .28571429rem 0 0;\n}\n.ui[class*="bottom attached"].buttons {\n  margin-top: -1px;\n  border-radius: 0 0 .28571429rem .28571429rem;\n}\n.ui[class*="bottom attached"].buttons .button:first-child {\n  border-radius: 0 0 0 .28571429rem;\n}\n.ui[class*="bottom attached"].buttons .button:last-child {\n  border-radius: 0 0 .28571429rem 0;\n}\n.ui[class*="left attached"].buttons {\n  display: -webkit-inline-box;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 0;\n  margin-left: -1px;\n  border-radius: 0 .28571429rem .28571429rem 0;\n}\n.ui[class*="left attached"].buttons .button:first-child {\n  margin-left: -1px;\n  border-radius: 0 .28571429rem 0 0;\n}\n.ui[class*="left attached"].buttons .button:last-child {\n  margin-left: -1px;\n  border-radius: 0 0 .28571429rem 0;\n}\n.ui[class*="right attached"].buttons {\n  display: -webkit-inline-box;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-left: 0;\n  margin-right: -1px;\n  border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui[class*="right attached"].buttons .button:first-child {\n  margin-left: -1px;\n  border-radius: .28571429rem 0 0 0;\n}\n.ui[class*="right attached"].buttons .button:last-child {\n  margin-left: -1px;\n  border-radius: 0 0 0 .28571429rem;\n}\n.ui.fluid.button,\n.ui.fluid.buttons {\n  width: 100%;\n}\n.ui.fluid.button {\n  display: block;\n}\n.ui.two.buttons {\n  width: 100%;\n}\n.ui.two.buttons>.button {\n  width: 50%;\n}\n.ui.three.buttons {\n  width: 100%;\n}\n.ui.three.buttons>.button {\n  width: 33.333%;\n}\n.ui.four.buttons {\n  width: 100%;\n}\n.ui.four.buttons>.button {\n  width: 25%;\n}\n.ui.five.buttons {\n  width: 100%;\n}\n.ui.five.buttons>.button {\n  width: 20%;\n}\n.ui.six.buttons {\n  width: 100%;\n}\n.ui.six.buttons>.button {\n  width: 16.666%;\n}\n.ui.seven.buttons {\n  width: 100%;\n}\n.ui.seven.buttons>.button {\n  width: 14.285%;\n}\n.ui.eight.buttons {\n  width: 100%;\n}\n.ui.eight.buttons>.button {\n  width: 12.5%;\n}\n.ui.nine.buttons {\n  width: 100%;\n}\n.ui.nine.buttons>.button {\n  width: 11.11%;\n}\n.ui.ten.buttons {\n  width: 100%;\n}\n.ui.ten.buttons>.button {\n  width: 10%;\n}\n.ui.eleven.buttons {\n  width: 100%;\n}\n.ui.eleven.buttons>.button {\n  width: 9.09%;\n}\n.ui.twelve.buttons {\n  width: 100%;\n}\n.ui.twelve.buttons>.button {\n  width: 8.3333%;\n}\n.ui.fluid.vertical.buttons,\n.ui.fluid.vertical.buttons>.button {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  width: auto;\n}\n.ui.two.vertical.buttons>.button {\n  height: 50%;\n}\n.ui.three.vertical.buttons>.button {\n  height: 33.333%;\n}\n.ui.four.vertical.buttons>.button {\n  height: 25%;\n}\n.ui.five.vertical.buttons>.button {\n  height: 20%;\n}\n.ui.six.vertical.buttons>.button {\n  height: 16.666%;\n}\n.ui.seven.vertical.buttons>.button {\n  height: 14.285%;\n}\n.ui.eight.vertical.buttons>.button {\n  height: 12.5%;\n}\n.ui.nine.vertical.buttons>.button {\n  height: 11.11%;\n}\n.ui.ten.vertical.buttons>.button {\n  height: 10%;\n}\n.ui.eleven.vertical.buttons>.button {\n  height: 9.09%;\n}\n.ui.twelve.vertical.buttons>.button {\n  height: 8.3333%;\n}\n.ui.black.button,\n.ui.black.buttons .button {\n  background-color: #1b1c1d;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.black.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.black.button:hover,\n.ui.black.buttons .button:hover {\n  background-color: #27292a;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.black.button:focus,\n.ui.black.buttons .button:focus {\n  background-color: #2f3032;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.black.button:active,\n.ui.black.buttons .button:active {\n  background-color: #343637;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.black.active.button,\n.ui.black.button .active.button:active,\n.ui.black.buttons .active.button,\n.ui.black.buttons .active.button:active {\n  background-color: #0f0f10;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.black.button,\n.ui.basic.black.buttons .button {\n  box-shadow: 0 0 0 1px #1b1c1d inset!important;\n  color: #1b1c1d!important;\n}\n.ui.basic.black.button:hover,\n.ui.basic.black.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #27292a inset!important;\n  color: #27292a!important;\n}\n.ui.basic.black.button:focus,\n.ui.basic.black.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #2f3032 inset!important;\n  color: #27292a!important;\n}\n.ui.basic.black.active.button,\n.ui.basic.black.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #0f0f10 inset!important;\n  color: #343637!important;\n}\n.ui.basic.black.button:active,\n.ui.basic.black.buttons .button:active {\n  box-shadow: 0 0 0 1px #343637 inset!important;\n  color: #343637!important;\n}\n.ui.buttons:not(.vertical)>.basic.black.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.black.button,\n.ui.inverted.black.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #d4d4d5 inset!important;\n  color: #fff;\n}\n.ui.inverted.black.button.active,\n.ui.inverted.black.button:active,\n.ui.inverted.black.button:focus,\n.ui.inverted.black.button:hover,\n.ui.inverted.black.buttons .button.active,\n.ui.inverted.black.buttons .button:active,\n.ui.inverted.black.buttons .button:focus,\n.ui.inverted.black.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.black.button:hover,\n.ui.inverted.black.buttons .button:hover {\n  background-color: #000;\n}\n.ui.inverted.black.button:focus,\n.ui.inverted.black.buttons .button:focus {\n  background-color: #000;\n}\n.ui.inverted.black.active.button,\n.ui.inverted.black.buttons .active.button {\n  background-color: #000;\n}\n.ui.inverted.black.button:active,\n.ui.inverted.black.buttons .button:active {\n  background-color: #000;\n}\n.ui.inverted.black.basic.button,\n.ui.inverted.black.basic.buttons .button,\n.ui.inverted.black.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.black.basic.button:hover,\n.ui.inverted.black.basic.buttons .button:hover,\n.ui.inverted.black.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #000 inset!important;\n  color: #fff!important;\n}\n.ui.inverted.black.basic.button:focus,\n.ui.inverted.black.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #000 inset!important;\n  color: #545454!important;\n}\n.ui.inverted.black.basic.active.button,\n.ui.inverted.black.basic.buttons .active.button,\n.ui.inverted.black.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #000 inset!important;\n  color: #fff!important;\n}\n.ui.inverted.black.basic.button:active,\n.ui.inverted.black.basic.buttons .button:active,\n.ui.inverted.black.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #000 inset!important;\n  color: #fff!important;\n}\n.ui.grey.button,\n.ui.grey.buttons .button {\n  background-color: #767676;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.grey.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.grey.button:hover,\n.ui.grey.buttons .button:hover {\n  background-color: #838383;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.grey.button:focus,\n.ui.grey.buttons .button:focus {\n  background-color: #8a8a8a;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.grey.button:active,\n.ui.grey.buttons .button:active {\n  background-color: #909090;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.grey.active.button,\n.ui.grey.button .active.button:active,\n.ui.grey.buttons .active.button,\n.ui.grey.buttons .active.button:active {\n  background-color: #696969;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.grey.button,\n.ui.basic.grey.buttons .button {\n  box-shadow: 0 0 0 1px #767676 inset!important;\n  color: #767676!important;\n}\n.ui.basic.grey.button:hover,\n.ui.basic.grey.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #838383 inset!important;\n  color: #838383!important;\n}\n.ui.basic.grey.button:focus,\n.ui.basic.grey.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #8a8a8a inset!important;\n  color: #838383!important;\n}\n.ui.basic.grey.active.button,\n.ui.basic.grey.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #696969 inset!important;\n  color: #909090!important;\n}\n.ui.basic.grey.button:active,\n.ui.basic.grey.buttons .button:active {\n  box-shadow: 0 0 0 1px #909090 inset!important;\n  color: #909090!important;\n}\n.ui.buttons:not(.vertical)>.basic.grey.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.grey.button,\n.ui.inverted.grey.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #d4d4d5 inset!important;\n  color: #fff;\n}\n.ui.inverted.grey.button.active,\n.ui.inverted.grey.button:active,\n.ui.inverted.grey.button:focus,\n.ui.inverted.grey.button:hover,\n.ui.inverted.grey.buttons .button.active,\n.ui.inverted.grey.buttons .button:active,\n.ui.inverted.grey.buttons .button:focus,\n.ui.inverted.grey.buttons .button:hover {\n  box-shadow: none!important;\n  color: rgba(0,0,0,.6);\n}\n.ui.inverted.grey.button:hover,\n.ui.inverted.grey.buttons .button:hover {\n  background-color: #cfd0d2;\n}\n.ui.inverted.grey.button:focus,\n.ui.inverted.grey.buttons .button:focus {\n  background-color: #c7c9cb;\n}\n.ui.inverted.grey.active.button,\n.ui.inverted.grey.buttons .active.button {\n  background-color: #cfd0d2;\n}\n.ui.inverted.grey.button:active,\n.ui.inverted.grey.buttons .button:active {\n  background-color: #c2c4c5;\n}\n.ui.inverted.grey.basic.button,\n.ui.inverted.grey.basic.buttons .button,\n.ui.inverted.grey.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.grey.basic.button:hover,\n.ui.inverted.grey.basic.buttons .button:hover,\n.ui.inverted.grey.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #cfd0d2 inset!important;\n  color: #fff!important;\n}\n.ui.inverted.grey.basic.button:focus,\n.ui.inverted.grey.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #c7c9cb inset!important;\n  color: #dcddde!important;\n}\n.ui.inverted.grey.basic.active.button,\n.ui.inverted.grey.basic.buttons .active.button,\n.ui.inverted.grey.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #cfd0d2 inset!important;\n  color: #fff!important;\n}\n.ui.inverted.grey.basic.button:active,\n.ui.inverted.grey.basic.buttons .button:active,\n.ui.inverted.grey.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #c2c4c5 inset!important;\n  color: #fff!important;\n}\n.ui.brown.button,\n.ui.brown.buttons .button {\n  background-color: #a5673f;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.brown.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.brown.button:hover,\n.ui.brown.buttons .button:hover {\n  background-color: #975b33;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.brown.button:focus,\n.ui.brown.buttons .button:focus {\n  background-color: #90532b;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.brown.button:active,\n.ui.brown.buttons .button:active {\n  background-color: #805031;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.brown.active.button,\n.ui.brown.button .active.button:active,\n.ui.brown.buttons .active.button,\n.ui.brown.buttons .active.button:active {\n  background-color: #995a31;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.brown.button,\n.ui.basic.brown.buttons .button {\n  box-shadow: 0 0 0 1px #a5673f inset!important;\n  color: #a5673f!important;\n}\n.ui.basic.brown.button:hover,\n.ui.basic.brown.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #975b33 inset!important;\n  color: #975b33!important;\n}\n.ui.basic.brown.button:focus,\n.ui.basic.brown.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #90532b inset!important;\n  color: #975b33!important;\n}\n.ui.basic.brown.active.button,\n.ui.basic.brown.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #995a31 inset!important;\n  color: #805031!important;\n}\n.ui.basic.brown.button:active,\n.ui.basic.brown.buttons .button:active {\n  box-shadow: 0 0 0 1px #805031 inset!important;\n  color: #805031!important;\n}\n.ui.buttons:not(.vertical)>.basic.brown.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.brown.button,\n.ui.inverted.brown.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #d67c1c inset!important;\n  color: #d67c1c;\n}\n.ui.inverted.brown.button.active,\n.ui.inverted.brown.button:active,\n.ui.inverted.brown.button:focus,\n.ui.inverted.brown.button:hover,\n.ui.inverted.brown.buttons .button.active,\n.ui.inverted.brown.buttons .button:active,\n.ui.inverted.brown.buttons .button:focus,\n.ui.inverted.brown.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.brown.button:hover,\n.ui.inverted.brown.buttons .button:hover {\n  background-color: #c86f11;\n}\n.ui.inverted.brown.button:focus,\n.ui.inverted.brown.buttons .button:focus {\n  background-color: #c16808;\n}\n.ui.inverted.brown.active.button,\n.ui.inverted.brown.buttons .active.button {\n  background-color: #cc6f0d;\n}\n.ui.inverted.brown.button:active,\n.ui.inverted.brown.buttons .button:active {\n  background-color: #a96216;\n}\n.ui.inverted.brown.basic.button,\n.ui.inverted.brown.basic.buttons .button,\n.ui.inverted.brown.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.brown.basic.button:hover,\n.ui.inverted.brown.basic.buttons .button:hover,\n.ui.inverted.brown.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #c86f11 inset!important;\n  color: #d67c1c!important;\n}\n.ui.inverted.brown.basic.button:focus,\n.ui.inverted.brown.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #c16808 inset!important;\n  color: #d67c1c!important;\n}\n.ui.inverted.brown.basic.active.button,\n.ui.inverted.brown.basic.buttons .active.button,\n.ui.inverted.brown.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #cc6f0d inset!important;\n  color: #d67c1c!important;\n}\n.ui.inverted.brown.basic.button:active,\n.ui.inverted.brown.basic.buttons .button:active,\n.ui.inverted.brown.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #a96216 inset!important;\n  color: #d67c1c!important;\n}\n.ui.blue.button,\n.ui.blue.buttons .button {\n  background-color: #2185d0;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.blue.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.blue.button:hover,\n.ui.blue.buttons .button:hover {\n  background-color: #1678c2;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.blue.button:focus,\n.ui.blue.buttons .button:focus {\n  background-color: #0d71bb;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.blue.button:active,\n.ui.blue.buttons .button:active {\n  background-color: #1a69a4;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.blue.active.button,\n.ui.blue.button .active.button:active,\n.ui.blue.buttons .active.button,\n.ui.blue.buttons .active.button:active {\n  background-color: #1279c6;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.blue.button,\n.ui.basic.blue.buttons .button {\n  box-shadow: 0 0 0 1px #2185d0 inset!important;\n  color: #2185d0!important;\n}\n.ui.basic.blue.button:hover,\n.ui.basic.blue.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #1678c2 inset!important;\n  color: #1678c2!important;\n}\n.ui.basic.blue.button:focus,\n.ui.basic.blue.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #0d71bb inset!important;\n  color: #1678c2!important;\n}\n.ui.basic.blue.active.button,\n.ui.basic.blue.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #1279c6 inset!important;\n  color: #1a69a4!important;\n}\n.ui.basic.blue.button:active,\n.ui.basic.blue.buttons .button:active {\n  box-shadow: 0 0 0 1px #1a69a4 inset!important;\n  color: #1a69a4!important;\n}\n.ui.buttons:not(.vertical)>.basic.blue.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.blue.button,\n.ui.inverted.blue.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #54c8ff inset!important;\n  color: #54c8ff;\n}\n.ui.inverted.blue.button.active,\n.ui.inverted.blue.button:active,\n.ui.inverted.blue.button:focus,\n.ui.inverted.blue.button:hover,\n.ui.inverted.blue.buttons .button.active,\n.ui.inverted.blue.buttons .button:active,\n.ui.inverted.blue.buttons .button:focus,\n.ui.inverted.blue.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.blue.button:hover,\n.ui.inverted.blue.buttons .button:hover {\n  background-color: #3ac0ff;\n}\n.ui.inverted.blue.button:focus,\n.ui.inverted.blue.buttons .button:focus {\n  background-color: #2bbbff;\n}\n.ui.inverted.blue.active.button,\n.ui.inverted.blue.buttons .active.button {\n  background-color: #3ac0ff;\n}\n.ui.inverted.blue.button:active,\n.ui.inverted.blue.buttons .button:active {\n  background-color: #21b8ff;\n}\n.ui.inverted.blue.basic.button,\n.ui.inverted.blue.basic.buttons .button,\n.ui.inverted.blue.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.blue.basic.button:hover,\n.ui.inverted.blue.basic.buttons .button:hover,\n.ui.inverted.blue.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #3ac0ff inset!important;\n  color: #54c8ff!important;\n}\n.ui.inverted.blue.basic.button:focus,\n.ui.inverted.blue.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #2bbbff inset!important;\n  color: #54c8ff!important;\n}\n.ui.inverted.blue.basic.active.button,\n.ui.inverted.blue.basic.buttons .active.button,\n.ui.inverted.blue.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #3ac0ff inset!important;\n  color: #54c8ff!important;\n}\n.ui.inverted.blue.basic.button:active,\n.ui.inverted.blue.basic.buttons .button:active,\n.ui.inverted.blue.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #21b8ff inset!important;\n  color: #54c8ff!important;\n}\n.ui.green.button,\n.ui.green.buttons .button {\n  background-color: #21ba45;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.green.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.green.button:hover,\n.ui.green.buttons .button:hover {\n  background-color: #16ab39;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.green.button:focus,\n.ui.green.buttons .button:focus {\n  background-color: #0ea432;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.green.button:active,\n.ui.green.buttons .button:active {\n  background-color: #198f35;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.green.active.button,\n.ui.green.button .active.button:active,\n.ui.green.buttons .active.button,\n.ui.green.buttons .active.button:active {\n  background-color: #13ae38;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.green.button,\n.ui.basic.green.buttons .button {\n  box-shadow: 0 0 0 1px #21ba45 inset!important;\n  color: #21ba45!important;\n}\n.ui.basic.green.button:hover,\n.ui.basic.green.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #16ab39 inset!important;\n  color: #16ab39!important;\n}\n.ui.basic.green.button:focus,\n.ui.basic.green.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #0ea432 inset!important;\n  color: #16ab39!important;\n}\n.ui.basic.green.active.button,\n.ui.basic.green.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #13ae38 inset!important;\n  color: #198f35!important;\n}\n.ui.basic.green.button:active,\n.ui.basic.green.buttons .button:active {\n  box-shadow: 0 0 0 1px #198f35 inset!important;\n  color: #198f35!important;\n}\n.ui.buttons:not(.vertical)>.basic.green.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.green.button,\n.ui.inverted.green.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #2ecc40 inset!important;\n  color: #2ecc40;\n}\n.ui.inverted.green.button.active,\n.ui.inverted.green.button:active,\n.ui.inverted.green.button:focus,\n.ui.inverted.green.button:hover,\n.ui.inverted.green.buttons .button.active,\n.ui.inverted.green.buttons .button:active,\n.ui.inverted.green.buttons .button:focus,\n.ui.inverted.green.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.green.button:hover,\n.ui.inverted.green.buttons .button:hover {\n  background-color: #22be34;\n}\n.ui.inverted.green.button:focus,\n.ui.inverted.green.buttons .button:focus {\n  background-color: #19b82b;\n}\n.ui.inverted.green.active.button,\n.ui.inverted.green.buttons .active.button {\n  background-color: #1fc231;\n}\n.ui.inverted.green.button:active,\n.ui.inverted.green.buttons .button:active {\n  background-color: #25a233;\n}\n.ui.inverted.green.basic.button,\n.ui.inverted.green.basic.buttons .button,\n.ui.inverted.green.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.green.basic.button:hover,\n.ui.inverted.green.basic.buttons .button:hover,\n.ui.inverted.green.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #22be34 inset!important;\n  color: #2ecc40!important;\n}\n.ui.inverted.green.basic.button:focus,\n.ui.inverted.green.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #19b82b inset!important;\n  color: #2ecc40!important;\n}\n.ui.inverted.green.basic.active.button,\n.ui.inverted.green.basic.buttons .active.button,\n.ui.inverted.green.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #1fc231 inset!important;\n  color: #2ecc40!important;\n}\n.ui.inverted.green.basic.button:active,\n.ui.inverted.green.basic.buttons .button:active,\n.ui.inverted.green.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #25a233 inset!important;\n  color: #2ecc40!important;\n}\n.ui.orange.button,\n.ui.orange.buttons .button {\n  background-color: #f2711c;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.orange.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.orange.button:hover,\n.ui.orange.buttons .button:hover {\n  background-color: #f26202;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.orange.button:focus,\n.ui.orange.buttons .button:focus {\n  background-color: #e55b00;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.orange.button:active,\n.ui.orange.buttons .button:active {\n  background-color: #cf590c;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.orange.active.button,\n.ui.orange.button .active.button:active,\n.ui.orange.buttons .active.button,\n.ui.orange.buttons .active.button:active {\n  background-color: #f56100;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.orange.button,\n.ui.basic.orange.buttons .button {\n  box-shadow: 0 0 0 1px #f2711c inset!important;\n  color: #f2711c!important;\n}\n.ui.basic.orange.button:hover,\n.ui.basic.orange.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #f26202 inset!important;\n  color: #f26202!important;\n}\n.ui.basic.orange.button:focus,\n.ui.basic.orange.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #e55b00 inset!important;\n  color: #f26202!important;\n}\n.ui.basic.orange.active.button,\n.ui.basic.orange.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #f56100 inset!important;\n  color: #cf590c!important;\n}\n.ui.basic.orange.button:active,\n.ui.basic.orange.buttons .button:active {\n  box-shadow: 0 0 0 1px #cf590c inset!important;\n  color: #cf590c!important;\n}\n.ui.buttons:not(.vertical)>.basic.orange.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.orange.button,\n.ui.inverted.orange.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #ff851b inset!important;\n  color: #ff851b;\n}\n.ui.inverted.orange.button.active,\n.ui.inverted.orange.button:active,\n.ui.inverted.orange.button:focus,\n.ui.inverted.orange.button:hover,\n.ui.inverted.orange.buttons .button.active,\n.ui.inverted.orange.buttons .button:active,\n.ui.inverted.orange.buttons .button:focus,\n.ui.inverted.orange.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.orange.button:hover,\n.ui.inverted.orange.buttons .button:hover {\n  background-color: #ff7701;\n}\n.ui.inverted.orange.button:focus,\n.ui.inverted.orange.buttons .button:focus {\n  background-color: #f17000;\n}\n.ui.inverted.orange.active.button,\n.ui.inverted.orange.buttons .active.button {\n  background-color: #ff7701;\n}\n.ui.inverted.orange.button:active,\n.ui.inverted.orange.buttons .button:active {\n  background-color: #e76b00;\n}\n.ui.inverted.orange.basic.button,\n.ui.inverted.orange.basic.buttons .button,\n.ui.inverted.orange.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.orange.basic.button:hover,\n.ui.inverted.orange.basic.buttons .button:hover,\n.ui.inverted.orange.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #ff7701 inset!important;\n  color: #ff851b!important;\n}\n.ui.inverted.orange.basic.button:focus,\n.ui.inverted.orange.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #f17000 inset!important;\n  color: #ff851b!important;\n}\n.ui.inverted.orange.basic.active.button,\n.ui.inverted.orange.basic.buttons .active.button,\n.ui.inverted.orange.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #ff7701 inset!important;\n  color: #ff851b!important;\n}\n.ui.inverted.orange.basic.button:active,\n.ui.inverted.orange.basic.buttons .button:active,\n.ui.inverted.orange.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #e76b00 inset!important;\n  color: #ff851b!important;\n}\n.ui.pink.button,\n.ui.pink.buttons .button {\n  background-color: #e03997;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.pink.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.pink.button:hover,\n.ui.pink.buttons .button:hover {\n  background-color: #e61a8d;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.pink.button:focus,\n.ui.pink.buttons .button:focus {\n  background-color: #e10f85;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.pink.button:active,\n.ui.pink.buttons .button:active {\n  background-color: #c71f7e;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.pink.active.button,\n.ui.pink.button .active.button:active,\n.ui.pink.buttons .active.button,\n.ui.pink.buttons .active.button:active {\n  background-color: #ea158d;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.pink.button,\n.ui.basic.pink.buttons .button {\n  box-shadow: 0 0 0 1px #e03997 inset!important;\n  color: #e03997!important;\n}\n.ui.basic.pink.button:hover,\n.ui.basic.pink.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #e61a8d inset!important;\n  color: #e61a8d!important;\n}\n.ui.basic.pink.button:focus,\n.ui.basic.pink.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #e10f85 inset!important;\n  color: #e61a8d!important;\n}\n.ui.basic.pink.active.button,\n.ui.basic.pink.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #ea158d inset!important;\n  color: #c71f7e!important;\n}\n.ui.basic.pink.button:active,\n.ui.basic.pink.buttons .button:active {\n  box-shadow: 0 0 0 1px #c71f7e inset!important;\n  color: #c71f7e!important;\n}\n.ui.buttons:not(.vertical)>.basic.pink.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.pink.button,\n.ui.inverted.pink.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #ff8edf inset!important;\n  color: #ff8edf;\n}\n.ui.inverted.pink.button.active,\n.ui.inverted.pink.button:active,\n.ui.inverted.pink.button:focus,\n.ui.inverted.pink.button:hover,\n.ui.inverted.pink.buttons .button.active,\n.ui.inverted.pink.buttons .button:active,\n.ui.inverted.pink.buttons .button:focus,\n.ui.inverted.pink.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.pink.button:hover,\n.ui.inverted.pink.buttons .button:hover {\n  background-color: #ff74d8;\n}\n.ui.inverted.pink.button:focus,\n.ui.inverted.pink.buttons .button:focus {\n  background-color: #ff65d3;\n}\n.ui.inverted.pink.active.button,\n.ui.inverted.pink.buttons .active.button {\n  background-color: #ff74d8;\n}\n.ui.inverted.pink.button:active,\n.ui.inverted.pink.buttons .button:active {\n  background-color: #ff5bd1;\n}\n.ui.inverted.pink.basic.button,\n.ui.inverted.pink.basic.buttons .button,\n.ui.inverted.pink.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.pink.basic.button:hover,\n.ui.inverted.pink.basic.buttons .button:hover,\n.ui.inverted.pink.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #ff74d8 inset!important;\n  color: #ff8edf!important;\n}\n.ui.inverted.pink.basic.button:focus,\n.ui.inverted.pink.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #ff65d3 inset!important;\n  color: #ff8edf!important;\n}\n.ui.inverted.pink.basic.active.button,\n.ui.inverted.pink.basic.buttons .active.button,\n.ui.inverted.pink.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #ff74d8 inset!important;\n  color: #ff8edf!important;\n}\n.ui.inverted.pink.basic.button:active,\n.ui.inverted.pink.basic.buttons .button:active,\n.ui.inverted.pink.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #ff5bd1 inset!important;\n  color: #ff8edf!important;\n}\n.ui.violet.button,\n.ui.violet.buttons .button {\n  background-color: #6435c9;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.violet.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.violet.button:hover,\n.ui.violet.buttons .button:hover {\n  background-color: #5829bb;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.violet.button:focus,\n.ui.violet.buttons .button:focus {\n  background-color: #4f20b5;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.violet.button:active,\n.ui.violet.buttons .button:active {\n  background-color: #502aa1;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.violet.active.button,\n.ui.violet.button .active.button:active,\n.ui.violet.buttons .active.button,\n.ui.violet.buttons .active.button:active {\n  background-color: #5626bf;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.violet.button,\n.ui.basic.violet.buttons .button {\n  box-shadow: 0 0 0 1px #6435c9 inset!important;\n  color: #6435c9!important;\n}\n.ui.basic.violet.button:hover,\n.ui.basic.violet.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #5829bb inset!important;\n  color: #5829bb!important;\n}\n.ui.basic.violet.button:focus,\n.ui.basic.violet.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #4f20b5 inset!important;\n  color: #5829bb!important;\n}\n.ui.basic.violet.active.button,\n.ui.basic.violet.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #5626bf inset!important;\n  color: #502aa1!important;\n}\n.ui.basic.violet.button:active,\n.ui.basic.violet.buttons .button:active {\n  box-shadow: 0 0 0 1px #502aa1 inset!important;\n  color: #502aa1!important;\n}\n.ui.buttons:not(.vertical)>.basic.violet.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.violet.button,\n.ui.inverted.violet.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #a291fb inset!important;\n  color: #a291fb;\n}\n.ui.inverted.violet.button.active,\n.ui.inverted.violet.button:active,\n.ui.inverted.violet.button:focus,\n.ui.inverted.violet.button:hover,\n.ui.inverted.violet.buttons .button.active,\n.ui.inverted.violet.buttons .button:active,\n.ui.inverted.violet.buttons .button:focus,\n.ui.inverted.violet.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.violet.button:hover,\n.ui.inverted.violet.buttons .button:hover {\n  background-color: #8a73ff;\n}\n.ui.inverted.violet.button:focus,\n.ui.inverted.violet.buttons .button:focus {\n  background-color: #7d64ff;\n}\n.ui.inverted.violet.active.button,\n.ui.inverted.violet.buttons .active.button {\n  background-color: #8a73ff;\n}\n.ui.inverted.violet.button:active,\n.ui.inverted.violet.buttons .button:active {\n  background-color: #7860f9;\n}\n.ui.inverted.violet.basic.button,\n.ui.inverted.violet.basic.buttons .button,\n.ui.inverted.violet.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.violet.basic.button:hover,\n.ui.inverted.violet.basic.buttons .button:hover,\n.ui.inverted.violet.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #8a73ff inset!important;\n  color: #a291fb!important;\n}\n.ui.inverted.violet.basic.button:focus,\n.ui.inverted.violet.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #7d64ff inset!important;\n  color: #a291fb!important;\n}\n.ui.inverted.violet.basic.active.button,\n.ui.inverted.violet.basic.buttons .active.button,\n.ui.inverted.violet.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #8a73ff inset!important;\n  color: #a291fb!important;\n}\n.ui.inverted.violet.basic.button:active,\n.ui.inverted.violet.basic.buttons .button:active,\n.ui.inverted.violet.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #7860f9 inset!important;\n  color: #a291fb!important;\n}\n.ui.purple.button,\n.ui.purple.buttons .button {\n  background-color: #a333c8;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.purple.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.purple.button:hover,\n.ui.purple.buttons .button:hover {\n  background-color: #9627ba;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.purple.button:focus,\n.ui.purple.buttons .button:focus {\n  background-color: #8f1eb4;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.purple.button:active,\n.ui.purple.buttons .button:active {\n  background-color: #82299f;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.purple.active.button,\n.ui.purple.button .active.button:active,\n.ui.purple.buttons .active.button,\n.ui.purple.buttons .active.button:active {\n  background-color: #9724be;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.purple.button,\n.ui.basic.purple.buttons .button {\n  box-shadow: 0 0 0 1px #a333c8 inset!important;\n  color: #a333c8!important;\n}\n.ui.basic.purple.button:hover,\n.ui.basic.purple.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #9627ba inset!important;\n  color: #9627ba!important;\n}\n.ui.basic.purple.button:focus,\n.ui.basic.purple.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #8f1eb4 inset!important;\n  color: #9627ba!important;\n}\n.ui.basic.purple.active.button,\n.ui.basic.purple.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #9724be inset!important;\n  color: #82299f!important;\n}\n.ui.basic.purple.button:active,\n.ui.basic.purple.buttons .button:active {\n  box-shadow: 0 0 0 1px #82299f inset!important;\n  color: #82299f!important;\n}\n.ui.buttons:not(.vertical)>.basic.purple.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.purple.button,\n.ui.inverted.purple.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #dc73ff inset!important;\n  color: #dc73ff;\n}\n.ui.inverted.purple.button.active,\n.ui.inverted.purple.button:active,\n.ui.inverted.purple.button:focus,\n.ui.inverted.purple.button:hover,\n.ui.inverted.purple.buttons .button.active,\n.ui.inverted.purple.buttons .button:active,\n.ui.inverted.purple.buttons .button:focus,\n.ui.inverted.purple.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.purple.button:hover,\n.ui.inverted.purple.buttons .button:hover {\n  background-color: #d65aff;\n}\n.ui.inverted.purple.button:focus,\n.ui.inverted.purple.buttons .button:focus {\n  background-color: #d24aff;\n}\n.ui.inverted.purple.active.button,\n.ui.inverted.purple.buttons .active.button {\n  background-color: #d65aff;\n}\n.ui.inverted.purple.button:active,\n.ui.inverted.purple.buttons .button:active {\n  background-color: #cf40ff;\n}\n.ui.inverted.purple.basic.button,\n.ui.inverted.purple.basic.buttons .button,\n.ui.inverted.purple.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.purple.basic.button:hover,\n.ui.inverted.purple.basic.buttons .button:hover,\n.ui.inverted.purple.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #d65aff inset!important;\n  color: #dc73ff!important;\n}\n.ui.inverted.purple.basic.button:focus,\n.ui.inverted.purple.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #d24aff inset!important;\n  color: #dc73ff!important;\n}\n.ui.inverted.purple.basic.active.button,\n.ui.inverted.purple.basic.buttons .active.button,\n.ui.inverted.purple.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #d65aff inset!important;\n  color: #dc73ff!important;\n}\n.ui.inverted.purple.basic.button:active,\n.ui.inverted.purple.basic.buttons .button:active,\n.ui.inverted.purple.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #cf40ff inset!important;\n  color: #dc73ff!important;\n}\n.ui.red.button,\n.ui.red.buttons .button {\n  background-color: #db2828;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.red.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.red.button:hover,\n.ui.red.buttons .button:hover {\n  background-color: #d01919;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.red.button:focus,\n.ui.red.buttons .button:focus {\n  background-color: #ca1010;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.red.button:active,\n.ui.red.buttons .button:active {\n  background-color: #b21e1e;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.red.active.button,\n.ui.red.button .active.button:active,\n.ui.red.buttons .active.button,\n.ui.red.buttons .active.button:active {\n  background-color: #d41515;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.red.button,\n.ui.basic.red.buttons .button {\n  box-shadow: 0 0 0 1px #db2828 inset!important;\n  color: #db2828!important;\n}\n.ui.basic.red.button:hover,\n.ui.basic.red.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #d01919 inset!important;\n  color: #d01919!important;\n}\n.ui.basic.red.button:focus,\n.ui.basic.red.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #ca1010 inset!important;\n  color: #d01919!important;\n}\n.ui.basic.red.active.button,\n.ui.basic.red.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #d41515 inset!important;\n  color: #b21e1e!important;\n}\n.ui.basic.red.button:active,\n.ui.basic.red.buttons .button:active {\n  box-shadow: 0 0 0 1px #b21e1e inset!important;\n  color: #b21e1e!important;\n}\n.ui.buttons:not(.vertical)>.basic.red.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.red.button,\n.ui.inverted.red.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #ff695e inset!important;\n  color: #ff695e;\n}\n.ui.inverted.red.button.active,\n.ui.inverted.red.button:active,\n.ui.inverted.red.button:focus,\n.ui.inverted.red.button:hover,\n.ui.inverted.red.buttons .button.active,\n.ui.inverted.red.buttons .button:active,\n.ui.inverted.red.buttons .button:focus,\n.ui.inverted.red.buttons .button:hover {\n  box-shadow: none!important;\n  color: #fff;\n}\n.ui.inverted.red.button:hover,\n.ui.inverted.red.buttons .button:hover {\n  background-color: #ff5144;\n}\n.ui.inverted.red.button:focus,\n.ui.inverted.red.buttons .button:focus {\n  background-color: #ff4335;\n}\n.ui.inverted.red.active.button,\n.ui.inverted.red.buttons .active.button {\n  background-color: #ff5144;\n}\n.ui.inverted.red.button:active,\n.ui.inverted.red.buttons .button:active {\n  background-color: #ff392b;\n}\n.ui.inverted.red.basic.button,\n.ui.inverted.red.basic.buttons .button,\n.ui.inverted.red.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.red.basic.button:hover,\n.ui.inverted.red.basic.buttons .button:hover,\n.ui.inverted.red.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #ff5144 inset!important;\n  color: #ff695e!important;\n}\n.ui.inverted.red.basic.button:focus,\n.ui.inverted.red.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #ff4335 inset!important;\n  color: #ff695e!important;\n}\n.ui.inverted.red.basic.active.button,\n.ui.inverted.red.basic.buttons .active.button,\n.ui.inverted.red.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #ff5144 inset!important;\n  color: #ff695e!important;\n}\n.ui.inverted.red.basic.button:active,\n.ui.inverted.red.basic.buttons .button:active,\n.ui.inverted.red.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #ff392b inset!important;\n  color: #ff695e!important;\n}\n.ui.teal.button,\n.ui.teal.buttons .button {\n  background-color: #00b5ad;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.teal.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.teal.button:hover,\n.ui.teal.buttons .button:hover {\n  background-color: #009c95;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.teal.button:focus,\n.ui.teal.buttons .button:focus {\n  background-color: #008c86;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.teal.button:active,\n.ui.teal.buttons .button:active {\n  background-color: #00827c;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.teal.active.button,\n.ui.teal.button .active.button:active,\n.ui.teal.buttons .active.button,\n.ui.teal.buttons .active.button:active {\n  background-color: #009c95;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.teal.button,\n.ui.basic.teal.buttons .button {\n  box-shadow: 0 0 0 1px #00b5ad inset!important;\n  color: #00b5ad!important;\n}\n.ui.basic.teal.button:hover,\n.ui.basic.teal.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #009c95 inset!important;\n  color: #009c95!important;\n}\n.ui.basic.teal.button:focus,\n.ui.basic.teal.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #008c86 inset!important;\n  color: #009c95!important;\n}\n.ui.basic.teal.active.button,\n.ui.basic.teal.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #009c95 inset!important;\n  color: #00827c!important;\n}\n.ui.basic.teal.button:active,\n.ui.basic.teal.buttons .button:active {\n  box-shadow: 0 0 0 1px #00827c inset!important;\n  color: #00827c!important;\n}\n.ui.buttons:not(.vertical)>.basic.teal.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.teal.button,\n.ui.inverted.teal.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #6dffff inset!important;\n  color: #6dffff;\n}\n.ui.inverted.teal.button.active,\n.ui.inverted.teal.button:active,\n.ui.inverted.teal.button:focus,\n.ui.inverted.teal.button:hover,\n.ui.inverted.teal.buttons .button.active,\n.ui.inverted.teal.buttons .button:active,\n.ui.inverted.teal.buttons .button:focus,\n.ui.inverted.teal.buttons .button:hover {\n  box-shadow: none!important;\n  color: rgba(0,0,0,.6);\n}\n.ui.inverted.teal.button:hover,\n.ui.inverted.teal.buttons .button:hover {\n  background-color: #54ffff;\n}\n.ui.inverted.teal.button:focus,\n.ui.inverted.teal.buttons .button:focus {\n  background-color: #4ff;\n}\n.ui.inverted.teal.active.button,\n.ui.inverted.teal.buttons .active.button {\n  background-color: #54ffff;\n}\n.ui.inverted.teal.button:active,\n.ui.inverted.teal.buttons .button:active {\n  background-color: #3affff;\n}\n.ui.inverted.teal.basic.button,\n.ui.inverted.teal.basic.buttons .button,\n.ui.inverted.teal.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.teal.basic.button:hover,\n.ui.inverted.teal.basic.buttons .button:hover,\n.ui.inverted.teal.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #54ffff inset!important;\n  color: #6dffff!important;\n}\n.ui.inverted.teal.basic.button:focus,\n.ui.inverted.teal.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #4ff inset!important;\n  color: #6dffff!important;\n}\n.ui.inverted.teal.basic.active.button,\n.ui.inverted.teal.basic.buttons .active.button,\n.ui.inverted.teal.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #54ffff inset!important;\n  color: #6dffff!important;\n}\n.ui.inverted.teal.basic.button:active,\n.ui.inverted.teal.basic.buttons .button:active,\n.ui.inverted.teal.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #3affff inset!important;\n  color: #6dffff!important;\n}\n.ui.olive.button,\n.ui.olive.buttons .button {\n  background-color: #b5cc18;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.olive.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.olive.button:hover,\n.ui.olive.buttons .button:hover {\n  background-color: #a7bd0d;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.olive.button:focus,\n.ui.olive.buttons .button:focus {\n  background-color: #a0b605;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.olive.button:active,\n.ui.olive.buttons .button:active {\n  background-color: #8d9e13;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.olive.active.button,\n.ui.olive.button .active.button:active,\n.ui.olive.buttons .active.button,\n.ui.olive.buttons .active.button:active {\n  background-color: #aac109;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.olive.button,\n.ui.basic.olive.buttons .button {\n  box-shadow: 0 0 0 1px #b5cc18 inset!important;\n  color: #b5cc18!important;\n}\n.ui.basic.olive.button:hover,\n.ui.basic.olive.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #a7bd0d inset!important;\n  color: #a7bd0d!important;\n}\n.ui.basic.olive.button:focus,\n.ui.basic.olive.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #a0b605 inset!important;\n  color: #a7bd0d!important;\n}\n.ui.basic.olive.active.button,\n.ui.basic.olive.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #aac109 inset!important;\n  color: #8d9e13!important;\n}\n.ui.basic.olive.button:active,\n.ui.basic.olive.buttons .button:active {\n  box-shadow: 0 0 0 1px #8d9e13 inset!important;\n  color: #8d9e13!important;\n}\n.ui.buttons:not(.vertical)>.basic.olive.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.olive.button,\n.ui.inverted.olive.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #d9e778 inset!important;\n  color: #d9e778;\n}\n.ui.inverted.olive.button.active,\n.ui.inverted.olive.button:active,\n.ui.inverted.olive.button:focus,\n.ui.inverted.olive.button:hover,\n.ui.inverted.olive.buttons .button.active,\n.ui.inverted.olive.buttons .button:active,\n.ui.inverted.olive.buttons .button:focus,\n.ui.inverted.olive.buttons .button:hover {\n  box-shadow: none!important;\n  color: rgba(0,0,0,.6);\n}\n.ui.inverted.olive.button:hover,\n.ui.inverted.olive.buttons .button:hover {\n  background-color: #d8ea5c;\n}\n.ui.inverted.olive.button:focus,\n.ui.inverted.olive.buttons .button:focus {\n  background-color: #daef47;\n}\n.ui.inverted.olive.active.button,\n.ui.inverted.olive.buttons .active.button {\n  background-color: #daed59;\n}\n.ui.inverted.olive.button:active,\n.ui.inverted.olive.buttons .button:active {\n  background-color: #cddf4d;\n}\n.ui.inverted.olive.basic.button,\n.ui.inverted.olive.basic.buttons .button,\n.ui.inverted.olive.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.olive.basic.button:hover,\n.ui.inverted.olive.basic.buttons .button:hover,\n.ui.inverted.olive.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #d8ea5c inset!important;\n  color: #d9e778!important;\n}\n.ui.inverted.olive.basic.button:focus,\n.ui.inverted.olive.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #daef47 inset!important;\n  color: #d9e778!important;\n}\n.ui.inverted.olive.basic.active.button,\n.ui.inverted.olive.basic.buttons .active.button,\n.ui.inverted.olive.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #daed59 inset!important;\n  color: #d9e778!important;\n}\n.ui.inverted.olive.basic.button:active,\n.ui.inverted.olive.basic.buttons .button:active,\n.ui.inverted.olive.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #cddf4d inset!important;\n  color: #d9e778!important;\n}\n.ui.yellow.button,\n.ui.yellow.buttons .button {\n  background-color: #fbbd08;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.yellow.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.yellow.button:hover,\n.ui.yellow.buttons .button:hover {\n  background-color: #eaae00;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.yellow.button:focus,\n.ui.yellow.buttons .button:focus {\n  background-color: #daa300;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.yellow.button:active,\n.ui.yellow.buttons .button:active {\n  background-color: #cd9903;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.yellow.active.button,\n.ui.yellow.button .active.button:active,\n.ui.yellow.buttons .active.button,\n.ui.yellow.buttons .active.button:active {\n  background-color: #eaae00;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.yellow.button,\n.ui.basic.yellow.buttons .button {\n  box-shadow: 0 0 0 1px #fbbd08 inset!important;\n  color: #fbbd08!important;\n}\n.ui.basic.yellow.button:hover,\n.ui.basic.yellow.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #eaae00 inset!important;\n  color: #eaae00!important;\n}\n.ui.basic.yellow.button:focus,\n.ui.basic.yellow.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #daa300 inset!important;\n  color: #eaae00!important;\n}\n.ui.basic.yellow.active.button,\n.ui.basic.yellow.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #eaae00 inset!important;\n  color: #cd9903!important;\n}\n.ui.basic.yellow.button:active,\n.ui.basic.yellow.buttons .button:active {\n  box-shadow: 0 0 0 1px #cd9903 inset!important;\n  color: #cd9903!important;\n}\n.ui.buttons:not(.vertical)>.basic.yellow.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.inverted.yellow.button,\n.ui.inverted.yellow.buttons .button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px #ffe21f inset!important;\n  color: #ffe21f;\n}\n.ui.inverted.yellow.button.active,\n.ui.inverted.yellow.button:active,\n.ui.inverted.yellow.button:focus,\n.ui.inverted.yellow.button:hover,\n.ui.inverted.yellow.buttons .button.active,\n.ui.inverted.yellow.buttons .button:active,\n.ui.inverted.yellow.buttons .button:focus,\n.ui.inverted.yellow.buttons .button:hover {\n  box-shadow: none!important;\n  color: rgba(0,0,0,.6);\n}\n.ui.inverted.yellow.button:hover,\n.ui.inverted.yellow.buttons .button:hover {\n  background-color: #ffdf05;\n}\n.ui.inverted.yellow.button:focus,\n.ui.inverted.yellow.buttons .button:focus {\n  background-color: #f5d500;\n}\n.ui.inverted.yellow.active.button,\n.ui.inverted.yellow.buttons .active.button {\n  background-color: #ffdf05;\n}\n.ui.inverted.yellow.button:active,\n.ui.inverted.yellow.buttons .button:active {\n  background-color: #ebcd00;\n}\n.ui.inverted.yellow.basic.button,\n.ui.inverted.yellow.basic.buttons .button,\n.ui.inverted.yellow.buttons .basic.button {\n  background-color: transparent;\n  box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n  color: #fff!important;\n}\n.ui.inverted.yellow.basic.button:hover,\n.ui.inverted.yellow.basic.buttons .button:hover,\n.ui.inverted.yellow.buttons .basic.button:hover {\n  box-shadow: 0 0 0 2px #ffdf05 inset!important;\n  color: #ffe21f!important;\n}\n.ui.inverted.yellow.basic.button:focus,\n.ui.inverted.yellow.basic.buttons .button:focus {\n  box-shadow: 0 0 0 2px #f5d500 inset!important;\n  color: #ffe21f!important;\n}\n.ui.inverted.yellow.basic.active.button,\n.ui.inverted.yellow.basic.buttons .active.button,\n.ui.inverted.yellow.buttons .basic.active.button {\n  box-shadow: 0 0 0 2px #ffdf05 inset!important;\n  color: #ffe21f!important;\n}\n.ui.inverted.yellow.basic.button:active,\n.ui.inverted.yellow.basic.buttons .button:active,\n.ui.inverted.yellow.buttons .basic.button:active {\n  box-shadow: 0 0 0 2px #ebcd00 inset!important;\n  color: #ffe21f!important;\n}\n.ui.primary.button,\n.ui.primary.buttons .button {\n  background-color: #2185d0;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.primary.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.primary.button:hover,\n.ui.primary.buttons .button:hover {\n  background-color: #1678c2;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.primary.button:focus,\n.ui.primary.buttons .button:focus {\n  background-color: #0d71bb;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.primary.button:active,\n.ui.primary.buttons .button:active {\n  background-color: #1a69a4;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.primary.active.button,\n.ui.primary.button .active.button:active,\n.ui.primary.buttons .active.button,\n.ui.primary.buttons .active.button:active {\n  background-color: #1279c6;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.primary.button,\n.ui.basic.primary.buttons .button {\n  box-shadow: 0 0 0 1px #2185d0 inset!important;\n  color: #2185d0!important;\n}\n.ui.basic.primary.button:hover,\n.ui.basic.primary.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #1678c2 inset!important;\n  color: #1678c2!important;\n}\n.ui.basic.primary.button:focus,\n.ui.basic.primary.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #0d71bb inset!important;\n  color: #1678c2!important;\n}\n.ui.basic.primary.active.button,\n.ui.basic.primary.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #1279c6 inset!important;\n  color: #1a69a4!important;\n}\n.ui.basic.primary.button:active,\n.ui.basic.primary.buttons .button:active {\n  box-shadow: 0 0 0 1px #1a69a4 inset!important;\n  color: #1a69a4!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.secondary.button,\n.ui.secondary.buttons .button {\n  background-color: #1b1c1d;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.secondary.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.secondary.button:hover,\n.ui.secondary.buttons .button:hover {\n  background-color: #27292a;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.secondary.button:focus,\n.ui.secondary.buttons .button:focus {\n  background-color: #2e3032;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.secondary.button:active,\n.ui.secondary.buttons .button:active {\n  background-color: #343637;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.secondary.active.button,\n.ui.secondary.button .active.button:active,\n.ui.secondary.buttons .active.button,\n.ui.secondary.buttons .active.button:active {\n  background-color: #27292a;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.secondary.button,\n.ui.basic.secondary.buttons .button {\n  box-shadow: 0 0 0 1px #1b1c1d inset!important;\n  color: #1b1c1d!important;\n}\n.ui.basic.secondary.button:hover,\n.ui.basic.secondary.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #27292a inset!important;\n  color: #27292a!important;\n}\n.ui.basic.secondary.button:focus,\n.ui.basic.secondary.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #2e3032 inset!important;\n  color: #27292a!important;\n}\n.ui.basic.secondary.active.button,\n.ui.basic.secondary.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #27292a inset!important;\n  color: #343637!important;\n}\n.ui.basic.secondary.button:active,\n.ui.basic.secondary.buttons .button:active {\n  box-shadow: 0 0 0 1px #343637 inset!important;\n  color: #343637!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.positive.button,\n.ui.positive.buttons .button {\n  background-color: #21ba45;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.positive.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.positive.button:hover,\n.ui.positive.buttons .button:hover {\n  background-color: #16ab39;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.positive.button:focus,\n.ui.positive.buttons .button:focus {\n  background-color: #0ea432;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.positive.button:active,\n.ui.positive.buttons .button:active {\n  background-color: #198f35;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.positive.active.button,\n.ui.positive.button .active.button:active,\n.ui.positive.buttons .active.button,\n.ui.positive.buttons .active.button:active {\n  background-color: #13ae38;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.positive.button,\n.ui.basic.positive.buttons .button {\n  box-shadow: 0 0 0 1px #21ba45 inset!important;\n  color: #21ba45!important;\n}\n.ui.basic.positive.button:hover,\n.ui.basic.positive.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #16ab39 inset!important;\n  color: #16ab39!important;\n}\n.ui.basic.positive.button:focus,\n.ui.basic.positive.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #0ea432 inset!important;\n  color: #16ab39!important;\n}\n.ui.basic.positive.active.button,\n.ui.basic.positive.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #13ae38 inset!important;\n  color: #198f35!important;\n}\n.ui.basic.positive.button:active,\n.ui.basic.positive.buttons .button:active {\n  box-shadow: 0 0 0 1px #198f35 inset!important;\n  color: #198f35!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.negative.button,\n.ui.negative.buttons .button {\n  background-color: #db2828;\n  color: #fff;\n  text-shadow: none;\n  background-image: none;\n}\n.ui.negative.button {\n  box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.negative.button:hover,\n.ui.negative.buttons .button:hover {\n  background-color: #d01919;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.negative.button:focus,\n.ui.negative.buttons .button:focus {\n  background-color: #ca1010;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.negative.button:active,\n.ui.negative.buttons .button:active {\n  background-color: #b21e1e;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.negative.active.button,\n.ui.negative.button .active.button:active,\n.ui.negative.buttons .active.button,\n.ui.negative.buttons .active.button:active {\n  background-color: #d41515;\n  color: #fff;\n  text-shadow: none;\n}\n.ui.basic.negative.button,\n.ui.basic.negative.buttons .button {\n  box-shadow: 0 0 0 1px #db2828 inset!important;\n  color: #db2828!important;\n}\n.ui.basic.negative.button:hover,\n.ui.basic.negative.buttons .button:hover {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #d01919 inset!important;\n  color: #d01919!important;\n}\n.ui.basic.negative.button:focus,\n.ui.basic.negative.buttons .button:focus {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #ca1010 inset!important;\n  color: #d01919!important;\n}\n.ui.basic.negative.active.button,\n.ui.basic.negative.buttons .active.button {\n  background: 0 0!important;\n  box-shadow: 0 0 0 1px #d41515 inset!important;\n  color: #b21e1e!important;\n}\n.ui.basic.negative.button:active,\n.ui.basic.negative.buttons .button:active {\n  box-shadow: 0 0 0 1px #b21e1e inset!important;\n  color: #b21e1e!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n  margin-left: -1px;\n}\n.ui.buttons {\n  display: -webkit-inline-box;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-box-orient: horizontal;\n  -webkit-box-direction: normal;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  font-size: 0;\n  vertical-align: baseline;\n  margin: 0 .25em 0 0;\n}\n.ui.buttons:not(.basic):not(.inverted) {\n  box-shadow: none;\n}\n.ui.buttons:after {\n  content: ".";\n  display: block;\n  height: 0;\n  clear: both;\n  visibility: hidden;\n}\n.ui.buttons .button {\n  -webkit-box-flex: 1;\n  -ms-flex: 1 0 auto;\n  flex: 1 0 auto;\n  margin: 0;\n  border-radius: 0;\n  margin: 0;\n}\n.ui.buttons:not(.basic):not(.inverted)>.button,\n.ui.buttons>.ui.button:not(.basic):not(.inverted) {\n  box-shadow: 0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.buttons .button:first-child {\n  border-left: none;\n  margin-left: 0;\n  border-top-left-radius: .28571429rem;\n  border-bottom-left-radius: .28571429rem;\n}\n.ui.buttons .button:last-child {\n  border-top-right-radius: .28571429rem;\n  border-bottom-right-radius: .28571429rem;\n}\n.ui.vertical.buttons {\n  display: -webkit-inline-box;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-box-orient: vertical;\n  -webkit-box-direction: normal;\n  -ms-flex-direction: column;\n  flex-direction: column;\n}\n.ui.vertical.buttons .button {\n  display: block;\n  float: none;\n  width: 100%;\n  margin: 0;\n  box-shadow: none;\n  border-radius: 0;\n}\n.ui.vertical.buttons .button:first-child {\n  border-top-left-radius: .28571429rem;\n  border-top-right-radius: .28571429rem;\n}\n.ui.vertical.buttons .button:last-child {\n  margin-bottom: 0;\n  border-bottom-left-radius: .28571429rem;\n  border-bottom-right-radius: .28571429rem;\n}\n.ui.vertical.buttons .button:only-child {\n  border-radius: .28571429rem;\n}\n/*!\r\n * # Range slider for Semantic UI.\r\n * \r\n */\n.ui.range {\n  width: 100%;\n  height: 20px;\n}\n.ui.range .inner {\n  margin: 0 10px 0 10px;\n  height: 20px;\n  position: relative;\n}\n.ui.range .inner:hover {\n  cursor: pointer;\n}\n.ui.range .inner .track {\n  position: absolute;\n  width: 100%;\n  height: 4px;\n  border-radius: 4px;\n  top: 9px;\n  left: 0;\n  background-color: rgba(0,0,0,.05);\n}\n.ui.inverted.range .inner .track {\n  background-color: rgba(255,255,255,.08);\n}\n.ui.range .inner .track-fill {\n  position: absolute;\n  width: 0;\n  height: 4px;\n  border-radius: 4px;\n  top: 9px;\n  left: 0;\n  background-color: #1b1c1d;\n}\n.ui.inverted.range .inner .track-fill {\n  background-color: #545454;\n}\n.ui.range .inner .thumb {\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 20px;\n  width: 20px;\n  background: #fff linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n  background: #fff -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n  background: #fff -o-linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n  background: #fff -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n  border-radius: 100%;\n  box-shadow: 0 1px 2px 0 rgba(34,36,38,.15),0 0 0 1px rgba(34,36,38,.15) inset;\n}\n/*--------------\r\n     Colors\r\n---------------*/\n/* Red */\n.ui.red.range .inner .track-fill {\n  background-color: #DB2828;\n}\n.ui.red.inverted.range .inner .track-fill {\n  background-color: #FF695E;\n}\n/* Orange */\n.ui.orange.range .inner .track-fill {\n  background-color: #F2711C;\n}\n.ui.orange.inverted.range .inner .track-fill {\n  background-color: #FF851B;\n}\n/* Yellow */\n.ui.yellow.range .inner .track-fill {\n  background-color: #FBBD08;\n}\n.ui.yellow.inverted.range .inner .track-fill {\n  background-color: #FFE21F;\n}\n/* Olive */\n.ui.olive.range .inner .track-fill {\n  background-color: #B5CC18;\n}\n.ui.olive.inverted.range .inner .track-fill {\n  background-color: #D9E778;\n}\n/* Green */\n.ui.green.range .inner .track-fill {\n  background-color: #21BA45;\n}\n.ui.green.inverted.range .inner .track-fill {\n  background-color: #2ECC40;\n}\n/* Teal */\n.ui.teal.range .inner .track-fill {\n  background-color: #00B5AD;\n}\n.ui.teal.inverted.range .inner .track-fill {\n  background-color: #6DFFFF;\n}\n/* Blue */\n.ui.blue.range .inner .track-fill {\n  background-color: #2185D0;\n}\n.ui.blue.inverted.range .inner .track-fill {\n  background-color: #54C8FF;\n}\n/* Violet */\n.ui.violet.range .inner .track-fill {\n  background-color: #6435C9;\n}\n.ui.violet.inverted.range .inner .track-fill {\n  background-color: #A291FB;\n}\n/* Purple */\n.ui.purple.range .inner .track-fill {\n  background-color: #A333C8;\n}\n.ui.purple.inverted.range .inner .track-fill {\n  background-color: #DC73FF;\n}\n/* Pink */\n.ui.pink.range .inner .track-fill {\n  background-color: #E03997;\n}\n.ui.pink.inverted.range .inner .track-fill {\n  background-color: #FF8EDF;\n}\n/* Brown */\n.ui.brown.range .inner .track-fill {\n  background-color: #A5673F;\n}\n.ui.brown.inverted.range .inner .track-fill {\n  background-color: #D67C1C;\n}\n/* Grey */\n.ui.grey.range .inner .track-fill {\n  background-color: #767676;\n}\n.ui.grey.inverted.range .inner .track-fill {\n  background-color: #DCDDDE;\n}\n/* Black */\n.ui.black.range .inner .track-fill {\n  background-color: #1b1c1d;\n}\n.ui.black.inverted.range .inner .track-fill {\n  background-color: #545454;\n}\n/*--------------\r\n    Disabled\r\n---------------*/\n.ui.range.disabled {\n  opacity: .5;\n}\n.ui.range.disabled .inner:hover {\n  cursor: auto;\n}\n.ui.range.disabled .inner .track-fill {\n  background: #ccc;\n}\n/* padding so that track headers do not interfere with arrows */\n.up_pftv_track-header,\n.up_pftv_category-name {\n  padding-right: 25px;\n}\n.pv-inner-container {\n  width: 100%;\n  height: 100%;\n  overflow-x: auto;\n  position: relative;\n  /*white-space: nowrap;*/\n}\n.pv-inner-container .logo {\n  position: absolute;\n  z-index: 1000;\n  left: 5px;\n  top: 4px;\n  font-size: 13px;\n  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n  background-color: whitesmoke;\n  /*font-weight: bold;*/\n  /*padding: 5px;*/\n  /*border-radius: 5px;*/\n}\n.pv-inner-container .logo a {\n  text-decoration: none;\n}\n.pv3d-pv {\n  height: 100%;\n  /*min-width: 400px;*/\n}\n.pv3d-lm {\n  /*min-width: 400px;*/\n}\n.pv3d-invisible {\n  display: none;\n}\n.pv3d-div-table {\n  display: table;\n}\n.pv3d-div-table-column {\n  display: table-row;\n}\n.pv3d-div-table-column {\n  display: table-column;\n}\n.pv3d-svg-icon {\n  fill: rgba(0, 0, 0, 0.5);\n  cursor: pointer !important;\n}\n.up_pftv_container .pv3d-svg-icon {\n  position: absolute;\n}\n.up_pftv_container .pv3d-svg-icon.selected {\n  fill: rgba(0, 0, 0, 1);\n}\n.pv3d-lm-transparency-slider {\n  width: 100%;\n}\n.pv3d-header {\n  position: absolute;\n  z-index: 100;\n  padding-top: 5px;\n  padding-bottom: 3px;\n  border-bottom: 1px dotted lightgray;\n  margin-bottom: 3px;\n}\n.pv3d-header * {\n  vertical-align: middle;\n  box-sizing: border-box;\n}\n.pv3d-header .label {\n  font-size: 13px;\n}\n.pv3d-header-pv,\n.pv3d-header-lm {\n  display: inline-block;\n  width: 100%;\n}\n.pv3d-header-pv {\n  text-align: right;\n  background-color: white;\n}\n.pv3d-content.pv-container {\n  width: 100%;\n  position: absolute;\n}\n.pv3d-content.lm-container {\n  width: 50%;\n  position: absolute;\n  top: 0;\n}\n.pv3d-footer {\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.pv3d-header,\n.pv3d-footer {\n  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n  font-size: 13px;\n  font-style: normal;\n  font-variant: normal;\n  font-weight: 500;\n  box-sizing: border-box;\n}\n.pv3d-header-pv .unp-link {\n  display: inline-block;\n  float: right;\n}\n.pv3d-header-lm .lm-list {\n  display: inline-block;\n}\n/* !IMPORTANT needed to overwrite the semantics ui styles*/\n.pv3d-header-lm .dropdown input {\n  padding-top: 4px !important;\n  padding-bottom: 4px !important;\n}\n.pv3d-header-lm .dropdown.icon {\n  top: 4px !important;\n}\n.pv3d-header-lm .selection.dropdown {\n  min-height: 0;\n  min-width: 95px;\n  padding-top: 4px;\n  padding-bottom: 4px;\n  line-height: 13px;\n}\n.pv3d-header-lm .selection.dropdown .menu>.item {\n  font-size: 13px;\n}\n.pv3d-header-lm .confidence {\n  padding-top: 4px;\n  padding-bottom: 4px;\n  font-size: 13px;\n  line-height: 13px;\n  display: none;\n}\n.pv3d-header-lm .pv3d-svg-icon {\n  position: relative;\n  height: 25px;\n  width: 25px;\n  /* IE needs both width and height */\n  fill: #c2c2c2;\n  display: inline;\n  /* For example vuetify sets display:block for all svg elements which causes the arrows to be placed in separate rows making the header three times as high as it should be */\n}\n.pv3d-header .pdb-link {\n  display: inline-block;\n  left: 0;\n}\n.pv3d-pv {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  width: calc(50% - 2px);\n}\n.pv3d-split-bar {\n  vertical-align: top;\n  height: 100%;\n  display: inline-block;\n  width: 4px;\n  background: transparent;\n  cursor: col-resize;\n}\n.pv3d-lm {\n  vertical-align: top;\n  position: relative;\n  display: inline-block;\n  width: calc(50% - 2px);\n  height: 100%;\n  top: 0;\n}\n.pv3d-content .lm-component-container {\n  position: relative;\n}\n.pv3d-footer  .pv3d-lm-transparency-slider {\n  vertical-align: middle;\n}\n.pv3d-pv-bars {\n  position: absolute;\n  top: 0;\n  height: 100%;\n  overflow: hidden;\n  pointer-events: none;\n}\n.pv3d-pv-structure-bar,\n.pv3d-pv-highlight-bar {\n  position: absolute;\n  top: 0;\n  height: 100%;\n  display: none;\n}\n.pv3d-pv-highlight-bar {\n  background-color: rgba(255, 255, 0, 0.5);\n}\n.pv3d-pv-structure-bar {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n.message-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  background-color: rgba(0, 0, 0, 0.8);\n  z-index: 1000;\n  color: white;\n  text-align: center;\n  display: none;\n}\n.message {\n  position: relative;\n  top: 50%;\n  font-weight: bold;\n}\n.ui.range .inner .thumb {\n  width: 15px;\n  height: 15px;\n  top: 2.5px;\n}\n.pv3d-button {\n  font-size: 17px;\n  /*padding-top: 2px;*/\n  background: rgba(0, 0, 0, 0.2);\n  cursor: pointer;\n  width: 23px;\n  height: 23px;\n  border-radius: 3px;\n  text-align: center;\n}\n.pv3d-button:hover {\n  background: rgba(0, 0, 0, 0.4);\n}\n.pv3d-download {\n  float: right;\n  padding-top: 3px;\n  margin-right: 10px;\n}\n.user-highlights {\n  /*float: right;*/\n  padding-top: 3px;\n  margin-right: 10px;\n  background-color: rgba(50,50,50,0.3);\n}\n.pv3d-download>svg {\n  width: 13px;\n  height: 13px;\n}\n.pv3d-download>svg path {\n  fill: rgba(0, 0, 0, 0.6);\n}\n.pv3d-download>svg:hover path {\n  fill: rgba(0, 0, 0, 1);\n}\n.pv3d-error-close-button {\n  color: #f6f5f3;\n  font-sze: 20px;\n  position: absolute;\n  right: 10px;\n  text-decoration: none;\n  top: 10px;\n}\n.pv3d-error-close-button:after {\n  content: \'✖\';\n  /* UTF-8 symbol */\n}\n.pv3d-lm .user-highlights div.item.selected {\n  font-weight: bold;\n}\n.pv3d-loader-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  background-color: rgba(0, 0, 0, 0.5);\n  z-index: 1000;\n  color: white;\n  text-align: center;\n}\n.pv3d-loader {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  margin-left: -50px;\n  margin-top: -50px;\n  border: 16px solid #f3f3f3;\n  /* Light grey */\n  border-top: 16px solid #3498db;\n  /* Blue */\n  border-radius: 50%;\n  width: 120px;\n  height: 120px;\n  animation: pv3d-spin 2s linear infinite;\n}\n@keyframes pv3d-spin {\n  0% {\n    transform: rotate(0deg);\n  }\n\n  100% {\n    transform: rotate(360deg);\n  }\n}\n.up_pftv_category-name {\n  vertical-align: inherit;\n}\n.center-items {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n';
+          t('browserify-css').createStyle(
+            r,
+            { href: 'src\\css\\styles.css' },
+            { insertAt: 'bottom' },
+          ),
+            (e.exports = r);
+        },
+        { 'browserify-css': 24 },
+      ],
+      76: [
+        function (t, e, n) {
+          'use strict';
+          var g, m;
+          (g = jQuery),
+            window,
+            (m = document),
+            (g.fn.range = function (h) {
+              var t = g(this),
+                p = h,
+                d = 'string' == typeof p,
+                f = [].slice.call(arguments, 1);
+              return (
+                t.each(function () {
+                  var l,
+                    e,
+                    n,
+                    i,
+                    u = g.isPlainObject(h)
+                      ? g.extend(!0, {}, g.fn.range.settings, h)
+                      : g.extend({}, g.fn.range.settings),
+                    t = u.namespace,
+                    o = (u.min, u.max, u.step),
+                    r = (u.start, u.input, 'module-' + t),
+                    a = g(this),
+                    c = this,
+                    s = a.data(r),
+                    A = {
+                      initialize: function () {
+                        A.instantiate(), A.sanitize();
+                      },
+                      instantiate: function () {
+                        (s = A),
+                          a.data(r, A),
+                          g(c).html(
+                            "<div class='inner'><div class='track'></div><div class='track-fill'></div><div class='thumb'></div></div>",
+                          ),
+                          (l = g(c).children('.inner')[0]),
+                          (e = g(c).find('.thumb')[0]),
+                          (n = g(c).find('.track-fill')[0]),
+                          A.determinePrecision(),
+                          A.setValuePosition(u.start),
+                          g(c)
+                            .find('.track, .thumb, .inner')
+                            .on('mousedown', function (t) {
+                              t.stopImmediatePropagation(),
+                                t.preventDefault(),
+                                g(this).closest('.range').trigger('mousedown', t);
+                            }),
+                          g(c)
+                            .find('.track, .thumb, .inner')
+                            .on('touchstart', function (t) {
+                              t.stopImmediatePropagation(),
+                                t.preventDefault(),
+                                g(this).closest('.range').trigger('touchstart', t);
+                            }),
+                          g(c).on('mousedown', function (t, e) {
+                            A.rangeMousedown(t, !1, e);
+                          }),
+                          g(c).on('touchstart', function (t, e) {
+                            A.rangeMousedown(t, !0, e);
+                          });
+                      },
+                      sanitize: function () {
+                        'number' != typeof u.min && (u.min = parseInt(u.min) || 0),
+                          'number' != typeof u.max && (u.max = parseInt(u.max) || !1),
+                          'number' != typeof u.start && (u.start = parseInt(u.start) || 0);
+                      },
+                      determinePrecision: function () {
+                        var t = String(u.step).split('.'),
+                          t = 2 == t.length ? t[1].length : 0;
+                        i = Math.pow(10, t);
+                      },
+                      determineValue: function (t, e, n) {
+                        var r = u.max - u.min,
+                          n = Math.round((((n - t) / (e - t)) * r) / o) * o;
+                        return Math.round(n * i) / i + u.min;
+                      },
+                      determinePosition: function (t) {
+                        t = (t - u.min) / (u.max - u.min);
+                        return Math.round(t * g(l).width()) + g(n).position().left - 10;
+                      },
+                      setValue: function (t, e) {
+                        void 0 === e && (e = !0),
+                          u.input && g(u.input).val(t),
+                          u.onChange && u.onChange(t, { triggeredByUser: e });
+                      },
+                      setPosition: function (t) {
+                        g(e).css({ left: String(t) + 'px' }),
+                          g(n).css({ width: String(t + 10) + 'px' });
+                      },
+                      rangeMousedown: function (t, n, e) {
+                        var r, i, o, a, s;
+                        g(c).hasClass('disabled') ||
+                          (t.preventDefault(),
+                          (r = g(l).offset().left),
+                          (i = r + g(l).width()),
+                          (o = (n ? e.originalEvent.touches[0] : void 0 !== t.pageX ? t : e).pageX),
+                          (a = A.determineValue(r, i, o)),
+                          r <= o && o <= i && (A.setPosition(o - r - 10), A.setValue(a)),
+                          (s = function (t) {
+                            t.preventDefault(),
+                              (o = (n ? t.originalEvent.touches[0] : t).pageX),
+                              (a = A.determineValue(r, i, o)),
+                              r <= o &&
+                                o <= i &&
+                                a >= u.min &&
+                                a <= u.max &&
+                                (A.setPosition(o - r - 10), A.setValue(a));
+                          }),
+                          (t = function t(e) {
+                            n
+                              ? (g(m).off('touchmove', s), g(m).off('touchend', t))
+                              : (g(m).off('mousemove', s), g(m).off('mouseup', t));
+                          }),
+                          n
+                            ? (g(m).on('touchmove', s), g(m).on('touchend', t))
+                            : (g(m).on('mousemove', s), g(m).on('mouseup', t)));
+                      },
+                      setValuePosition: function (t, e) {
+                        void 0 === e && (e = !0);
+                        var n = A.determinePosition(t);
+                        A.setPosition(n), A.setValue(t, e);
+                      },
+                      invoke: function (t) {
+                        'set value' === t && 0 < f.length && s.setValuePosition(f[0], !1);
+                      },
+                    };
+                  d ? (void 0 === s && A.initialize(), A.invoke(p)) : A.initialize();
+                }),
+                this
+              );
+            }),
+            (g.fn.range.settings = {
+              name: 'Range',
+              namespace: 'range',
+              min: 0,
+              max: !1,
+              step: 1,
+              start: 0,
+              input: !1,
+              onChange: function (t) {},
+            });
+        },
+        {},
+      ],
+      77: [
+        function (t, e, n) {
+          'use strict';
+          function Y(t, e) {
+            if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function');
+          }
+          var O = t('./lm.plugin.js'),
+            G = t('./settings');
+          t('../node_modules/semantic-ui-transition/transition.min'),
+            t('../node_modules/semantic-ui-dropdown/dropdown.min'),
+            t('./lib/semantic-ui-range/range');
+          e.exports = function () {
+            var c = O(),
+              u =
+                ((t.prototype.setPdbRecord = function (t) {
+                  this.pdbRecord = t;
+                }),
+                (t.prototype.getPdbRecord = function () {
+                  return this.pdbRecord;
+                }),
+                (t.prototype.setModelId = function (t) {
+                  this.modelId = t;
+                }),
+                (t.prototype.getModelId = function () {
+                  return this.modelId;
+                }),
+                (t.prototype.setSelectionId = function (t) {
+                  this.selectionId = t;
+                }),
+                (t.prototype.getSelectionId = function () {
+                  return this.selectionId;
+                }),
+                (t.prototype.setInteractiveHighlightsGroupId = function (t) {
+                  this.interactiveHighlightsGroupId = t;
+                }),
+                (t.prototype.getInteractiveHighlightsGroupId = function () {
+                  return this.interactiveHighlightsGroupId;
+                }),
+                (t.prototype.setSelectionGroupId = function (t) {
+                  this.selectionGroupId = t;
+                }),
+                (t.prototype.getSelectionGroupId = function () {
+                  return this.selectionGroupId;
+                }),
+                (t.prototype.setObservedResidues = function (t) {
+                  this.observedResidues = t;
+                }),
+                (t.prototype.getObservedResidues = function () {
+                  return this.observedResidues;
+                }),
+                (t.prototype.setUserHighlightVisualIds = function (t) {
+                  this.userHighlightVisualIds = t;
+                }),
+                (t.prototype.getUserHighlightVisualIds = function () {
+                  return this.userHighlightVisualIds;
+                }),
+                (t.prototype.setUserHighlightSelectionIds = function (t) {
+                  this.userHighlightSelectionIds = t;
+                }),
+                (t.prototype.getUserHighlightSelectionIds = function () {
+                  return this.userHighlightSelectionIds;
+                }),
+                t);
+            function t() {
+              Y(this, t),
+                (this.pdbRecord = void 0),
+                (this.modelId = void 0),
+                (this.selectionId = void 0),
+                (this.selectionGroupId = void 0),
+                (this.interactiveHighlightsGroupId = void 0),
+                (this.observedResidues = []),
+                (this.userHighlightVisualIds = []);
+            }
+            n.prototype.exportToPyMol = function () {};
+            var U = n;
+            function n(t, e) {
+              Y(this, n), (this.selectionDef = t), (this.visualDef = e);
+            }
+            var A = void 0,
+              h = {},
+              p = void 0,
+              d = {};
+            function r(t) {
+              var e = [];
+              return (
+                t.forEach(function (t) {
+                  -1 === e.indexOf(t) && e.push(t);
+                }),
+                e
+              );
+            }
+            function o(e) {
+              return r(
+                A.pdbRecords
+                  .filter(function (t) {
+                    return t.getPdbId() === e;
+                  })
+                  .map(function (t) {
+                    return t.getChainId();
+                  }),
+              );
+            }
+            function i(t) {
+              var t = void 0 === t ? l() : t,
+                e = s(),
+                t = o(t).map(function (t) {
+                  return { name: t, value: t };
+                });
+              0 !== t.length &&
+                ((t[0].selected = !0),
+                e.dropdown('change values', t),
+                s().dropdown('set selected', A.activeStructure.chainId));
+            }
+            function e() {
+              var t = a(),
+                e = r(
+                  A.pdbRecords.map(function (t) {
+                    return t.getPdbId();
+                  }),
+                ).map(function (t) {
+                  return { name: t, value: t };
+                });
+              (e[0].selected = !0), t.dropdown({ values: e, action: 'activate' }), i();
+            }
+            function a() {
+              return A.container.find('.lm-pdb-id-list');
+            }
+            function s() {
+              return A.container.find('.lm-pdb-chain-list');
+            }
+            function f() {
+              return A.container.find('.user-highlights');
+            }
+            function g(t) {
+              return $(f().find('div.item')[t]).hasClass('selected');
+            }
+            function l() {
+              return a().find('.text').text();
+            }
+            function m() {
+              return s().dropdown('get value');
+            }
+            function v() {
+              return A.container.find('.pv3d-header-lm .pdb-link');
+            }
+            function b() {
+              a().dropdown('setting', 'onChange', function (t, e, n) {
+                i(t);
+              }),
+                s().dropdown('setting', 'onChange', function (t) {
+                  t && N();
+                });
+            }
+            function y() {
+              var t = v(),
+                e = (t.removeClass('pv3d-invisible'), A.activeStructure.record.getSource());
+              'PDB' === e
+                ? ((t[0].childNodes[0].nodeValue = 'PDB: '),
+                  t.attr('href', 'https://www.ebi.ac.uk/pdbe/entry/pdb/' + A.activeStructure.pdbId),
+                  t.find('.detail').text(A.activeStructure.pdbId))
+                : 'SMR' === e
+                  ? ((t[0].childNodes[0].nodeValue = 'SMR: '),
+                    t.attr(
+                      'href',
+                      'https://swissmodel.expasy.org/repository/uniprot/' + A.uniprotId,
+                    ),
+                    t.find('.detail').text(A.uniprotId + ' (' + A.activeStructure.pdbId + ')'))
+                  : 'AF' === e
+                    ? ((t[0].childNodes[0].nodeValue = 'AF: '),
+                      t.attr('href', 'https://alphafold.ebi.ac.uk/entry/' + A.uniprotId),
+                      t.find('.detail').text(A.uniprotId + ' (' + A.activeStructure.pdbId + ')'))
+                    : t.css('display', 'none');
+            }
+            function w(t) {
+              for (var e = l(), n = a().find('.item'), r = void 0, i = 0; i < n.length; i++)
+                if (A.container.find(n[i]).attr('data-value') === e) {
+                  r = i;
+                  break;
+                }
+              var t = r + t;
+              0 <= t &&
+                t < n.length &&
+                ((t = A.container.find(n[t]).attr('data-value')),
+                A.activeStructure.set(t, o(t)[0]));
+            }
+            function E(t) {
+              A.container
+                .find('.transparency-slider')
+                .attr('title', 'Surface transparency:  ' + t + '%');
+            }
+            function B(t) {
+              t.data && 0 < t.data.residues.length
+                ? (A.pv.highlightActivePosition(t.data.residues[0].seqNumber),
+                  ((t = t.data.residues[0]).unpSeqNumber = A.activeStructure.record.mapPosPdbToUnp(
+                    t.seqNumber,
+                  )),
+                  A.eventEmitter.emit('structureMouseOn', t))
+                : (A.pv.dehighlightActivePosition(), A.eventEmitter.emit('structureMouseOff'));
+            }
+            function C() {
+              var t;
+              (t = G.lmInitSurfaceTransparency),
+                A.container.find('.transparency-slider').range({
+                  min: 0,
+                  max: 100,
+                  start: 2 * t,
+                  onChange: function (t) {
+                    R(parseFloat(t) / 100), E(t);
+                  },
+                }),
+                R(t / 100),
+                E(t),
+                b(),
+                A.container.find('.pv3d-header .shift-left').on('click', function () {
+                  return w(-1);
+                }),
+                A.container.find('.pv3d-header .shift-right').on('click', function () {
+                  return w(1);
+                }),
+                c.registerHighlightCallback(B);
+            }
+            function N() {
+              A.activeStructure.set(l(), m());
+            }
+            function x() {
+              I &&
+                (c.setAFConfidenceVisibility(h[p].getModelId(), A.afConfident),
+                _(h[p].getPdbRecord().getPdbId()));
+            }
+            var I = function () {
+              var t = h[p].getPdbRecord().getSource();
+              return (
+                A.opts.alphaFoldConfidence &&
+                ('AF' === t || ('USER' == t && A.opts.alphaFoldConfidence.applyToUserStructures))
+              );
+            };
+            function M(t) {
+              var e = h[t.getId()].getModelId(),
+                n = t.getChainId(),
+                r = c.getController().context.select(e)[0].props.model.data.residues.isHet,
+                i = c.getController().context.select(e)[0].props.model.data.residues.seqNumber,
+                o = c.getController().context.select(e)[0].props.model.data.residues.authAsymId;
+              t.setObservedResidues(
+                i.filter(function (t, e) {
+                  return o[e] === n && !r[e];
+                }),
+              );
+            }
+            var D = function (t, e) {
+              return '' + G.interactiveSelectionPrefix + t + '-' + e;
+            };
+            function S(i, o, e) {
+              var n,
+                t = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : void 0;
+              {
+                if (0 !== o.sequenceNumbers.length)
+                  return (
+                    (n = []),
+                    (t ? [t] : Object.keys(h)).forEach(function (r) {
+                      var t = c
+                        .createGroup(
+                          'interactive_highlights',
+                          'Interactive highlights',
+                          h[r].getSelectionId(),
+                        )
+                        .then(function (t) {
+                          var e = D(r, i),
+                            n = h[r];
+                          return c.createSelectionFromList({
+                            rootId: t,
+                            name: e,
+                            chainId: n.getPdbRecord().getChainId(),
+                            sequenceNumbers: o.sequenceNumbers.map(function (t) {
+                              return n.getPdbRecord().mapPosUnpToPdb(t);
+                            }),
+                            atomNames: o.atomNames,
+                            selectionId: e,
+                          });
+                        })
+                        .then(function (t) {
+                          return c
+                            .createVisual(
+                              t,
+                              { style: c.getStyleDefinition(e.type, e.params, e.color, e.alpha) },
+                              !0,
+                            )
+                            .then(function () {
+                              return c.hideEntityIfInHiddenModel(t);
+                            });
+                        });
+                      n.push(t);
+                    }),
+                    Promise.all(n).then(function () {
+                      d[i] = new U(o, e);
+                    })
+                  );
+                console.warn('Setting interative visual with empty selection.');
+              }
+            }
+            function k(t) {
+              if (!(Object.keys(d).indexOf(t) < 0)) {
+                for (var e in h) c.removeEntity(D(e, t));
+                delete d[t];
+              }
+            }
+            function F(e) {
+              var t,
+                u = {};
+              for (t in h)
+                (function (t) {
+                  var a = h[t].getModelId();
+                  if ((a in u || (u[a] = []), !h[t].getPdbRecord())) return;
+                  var s = h[t].getPdbRecord(),
+                    l = s.getChainId();
+                  e.forEach(function (n) {
+                    var r = s.mapPosUnpToPdb(n.seqBegin),
+                      i = s.mapPosUnpToPdb(n.seqEnd),
+                      o = n.boundary;
+                    ((o && (s.isValidPdbPos(r) || s.isValidPdbPos(i))) || !o) &&
+                      (o
+                        ? u[a].push({
+                            chainId: l,
+                            begin: r,
+                            end: i,
+                            color: n.color,
+                            boundaryOnly: o,
+                          })
+                        : s.getObservedRanges().forEach(function (t) {
+                            var e = s.mapPosStructToUnp(t.start.posPDBSequence),
+                              t = s.mapPosStructToUnp(t.end.posPDBSequence);
+                            n.seqEnd < e ||
+                              n.seqBegin > t ||
+                              ((r = Math.max(s.mapPosUnpToPdb(Math.max(n.seqBegin, e)), 0)),
+                              (i = Math.min(
+                                s.mapPosUnpToPdb(Math.min(n.seqEnd, t)),
+                                s.getPdbEnd(),
+                              )),
+                              u[a].push({
+                                chainId: l,
+                                begin: r,
+                                end: i,
+                                color: n.color,
+                                boundaryOnly: o,
+                              }));
+                          }));
+                  }),
+                    (u[a] = u[a].concat([]));
+                })(t);
+              Object.keys(u).forEach(function (t) {
+                return c.colorSelections(t, u[t], [
+                  G.userSelectionPrefix,
+                  G.interactiveSelectionPrefix,
+                ]);
+              });
+            }
+            function Q() {
+              c.resetVisuals(G.userSelectionPrefix);
+            }
+            function _(t) {
+              var e,
+                n = [];
+              for (e in h)
+                h[e].getPdbRecord().getPdbId() === t &&
+                  (n = n.concat(h[e].getUserHighlightVisualIds()));
+              var r = A.afConfident;
+              f()
+                .find('div.item')
+                .each(function (e) {
+                  A.opts.extraHighlights.content[e].visualIds &&
+                    A.opts.extraHighlights.content[e].visualIds.forEach(function (t) {
+                      (void 0 === n || 0 <= n.indexOf(t)) &&
+                        (g(e) ? c.showSelectionVisual(t, r) : c.hideSelectionVisual(t, r));
+                    });
+                });
+            }
+            function T() {
+              c.dehighlightAll();
+            }
+            function P() {
+              return c;
+            }
+            function R(t) {
+              return c.setSurfaceTransparency(t, G.userSelectionPrefix);
+            }
+            function L() {
+              var n,
+                l = f();
+              A.opts.extraHighlights &&
+              0 < A.opts.extraHighlights.content.length &&
+              A.opts.extraHighlights.controlVisibility
+                ? ((n = []),
+                  A.opts.extraHighlights.content.forEach(function (t, e) {
+                    n.push({ name: t.label, value: e });
+                  }),
+                  l.dropdown({
+                    placeholder: A.opts.extraHighlights.label,
+                    values: n,
+                    action: 'hide',
+                    onChange: function (n) {
+                      var t = l.find('div.item').filter(function (t, e) {
+                        return $(e).data('value') == n;
+                      });
+                      if (t.length) {
+                        t.toggleClass('selected');
+                        var e = n,
+                          r = t.hasClass('selected'),
+                          i = A.activeStructure.pdbId;
+                        if (A.opts.extraHighlights.content[e].visualIds) {
+                          var o,
+                            a = A.afConfident,
+                            s = [];
+                          for (o in h)
+                            h[o].getPdbRecord().getPdbId() == i &&
+                              (s = s.concat(h[o].getUserHighlightVisualIds()));
+                          A.opts.extraHighlights.content[e].visualIds.forEach(function (t) {
+                            0 <= s.indexOf(t) &&
+                              (r ? c.showSelectionVisual(t, a) : c.hideSelectionVisual(t, a));
+                          });
+                        }
+                      }
+                    },
+                  }),
+                  l.find('div.item').each(function (t, e) {
+                    A.opts.extraHighlights.content[t].showOnStart && $(e).addClass('selected');
+                  }),
+                  l.find('div.text').removeClass('default'))
+                : l.css('display', 'none');
+            }
+            return {
+              initialize: function (t) {
+                (A = t.globals),
+                  (t = A.opts).lmInitSurfaceTransparency &&
+                    (G.lmInitSurfaceTransparency = t.lmInitSurfaceTransparency),
+                  c.initializePlugin(A),
+                  L(),
+                  'pdbRecords' in A && e(),
+                  C();
+              },
+              destroy: function () {
+                c.destroyPlugin();
+              },
+              loadRecord: function (i) {
+                var t,
+                  n =
+                    1 < arguments.length && void 0 !== arguments[1]
+                      ? arguments[1]
+                      : { focus: !0, hideOthers: !0 },
+                  o = i.getId();
+                if ((p = o) in h)
+                  return (
+                    n.focus && c.focusSelection(h[o].getSelectionId()),
+                    n.hideOthers &&
+                      c.hideModelsExcept([h[o].getModelId()]).then(function () {
+                        return _(h[o].getPdbRecord().getPdbId());
+                      }),
+                    ((t = i.getObservedResidues()) && 0 !== t.length) || M(i),
+                    y(),
+                    x(),
+                    Promise.resolve()
+                  );
+                h[o] = new u();
+                var e,
+                  r,
+                  a = void 0,
+                  s = A.opts.extraHighlights ? A.opts.extraHighlights.content : [],
+                  l = [];
+                return (
+                  (e = i),
+                  (r = n.hideOthers),
+                  c
+                    .loadMolecule(
+                      e.getPdbId(),
+                      e.getSource(),
+                      e.getFormat(),
+                      e.getCoordinatesFile(),
+                      A.opts.alphaFoldConfidence ? A.opts.alphaFoldConfidence.threshold : void 0,
+                    )
+                    .then(function (t) {
+                      return (
+                        h[e.getId()].setPdbRecord(e),
+                        h[e.getId()].setModelId(t),
+                        r ? c.hideModelsExcept([t]) : Promise.resolve()
+                      );
+                    })
+                    .then(function () {
+                      return y(), Promise.resolve();
+                    })
+                    .then(function () {
+                      return M(i), Promise.resolve();
+                    })
+                    .then(function () {
+                      return c.createGroup(
+                        A.settings.pvMappedStructuresCat.name,
+                        'Uniprot mapping',
+                        h[i.getId()].getModelId(),
+                      );
+                    })
+                    .then(function (t) {
+                      return (
+                        (t = t),
+                        (n =
+                          (e = i).getPdbId().toUpperCase() +
+                          ':' +
+                          e.getChainId() +
+                          ' (' +
+                          e.getPdbStart() +
+                          '-' +
+                          e.getPdbEnd() +
+                          ')'),
+                        c.createSelectionFromRange({
+                          rootId: t,
+                          name: n,
+                          chainId: e.getChainId(),
+                          beginIx: e.getPdbStart(),
+                          endIx: e.getPdbEnd(),
+                          selectionId: t + '_' + n,
+                        })
+                      );
+                      var e, n;
+                    })
+                    .then(function (t) {
+                      if (((a = t), 0 === c.getEntity(a).length))
+                        throw Error(
+                          'Invalid mapping (the structure file does not contain the selection)',
+                        );
+                      return (
+                        h[o].setSelectionId(a), n.focus && c.focusSelection(a), c.createVisual(a)
+                      );
+                    })
+                    .then(function (t) {
+                      var e;
+                      return I()
+                        ? ((e = h[i.getId()].getModelId()),
+                          c
+                            .createVisualsForAFConfidence(
+                              e,
+                              t,
+                              A.opts.alphaFoldConfidence.threshold,
+                            )
+                            .then(x))
+                        : Promise.resolve();
+                    })
+                    .then(function () {
+                      return c.createGroup('Selections', 'Selections', a);
+                    })
+                    .then(function (r) {
+                      h[o].setSelectionGroupId(r);
+                      var t = s.map(function (t, e) {
+                        var n = t.sequenceNumbers.join();
+                        return c.createSelectionFromList({
+                          rootId: r,
+                          name: n,
+                          chainId: i.getChainId(),
+                          sequenceNumbers: t.sequenceNumbers.map(function (t) {
+                            return i.mapPosUnpToPdb(t);
+                          }),
+                          atomNames: t.atomNames,
+                          selectionId: '' + G.userSelectionPrefix + r + '_sel' + e,
+                        });
+                      });
+                      return Promise.all(t);
+                    })
+                    .then(function (t) {
+                      return (
+                        h[o].setUserHighlightSelectionIds(
+                          t.filter(function (t) {
+                            return void 0 !== t;
+                          }),
+                        ),
+                        (l = t),
+                        I()
+                          ? Promise.all(
+                              t
+                                .filter(function (t) {
+                                  return void 0 !== t;
+                                })
+                                .map(function (t) {
+                                  return c.createSubSelectionForAFCofidence(
+                                    t,
+                                    A.opts.alphaFoldConfidence.threshold,
+                                  );
+                                }),
+                            ).then(function () {
+                              return t;
+                            })
+                          : Promise.resolve(t)
+                      );
+                    })
+                    .then(function (t) {
+                      t = t.map(function (t, e) {
+                        return void 0 !== t
+                          ? c.createVisual(
+                              t,
+                              (n = {
+                                style: c.getStyleDefinition(
+                                  s[e].visual.type,
+                                  s[e].visual.params,
+                                  s[e].visual.color,
+                                  s[e].visual.alpha,
+                                ),
+                              }),
+                              I(),
+                            )
+                          : Promise.resolve(void 0);
+                      });
+                      return Promise.all(t);
+                    })
+                    .then(function (t) {
+                      var e = t.filter(function (t) {
+                        return void 0 !== t;
+                      });
+                      h[o].setUserHighlightVisualIds(e),
+                        t.forEach(function (t, e) {
+                          var n;
+                          void 0 !== t &&
+                            ((n = l[e]),
+                            (s[e].selectionId = n),
+                            g(e) || !A.opts.extraHighlights.controlVisibility
+                              ? c.showEntity(n, A.afConfident)
+                              : c.hideEntity(n),
+                            void 0 === s[e].visualIds && (s[e].visualIds = []),
+                            s[e].visualIds.push(t));
+                        });
+                    })
+                    .then(function () {
+                      Object.keys(d).forEach(function (t) {
+                        var e = d[t];
+                        return S(t, e.selectionDef, e.visualDef, o);
+                      });
+                    })
+                );
+              },
+              mapFeatures: function (t, n) {
+                F(
+                  t.map(function (t, e) {
+                    return {
+                      seqBegin: t.begin,
+                      seqEnd: t.end,
+                      color: { r: (e = (e = n[e]).split(/[(,)]/))[1], g: e[2], b: e[3] },
+                      boundary: 0 <= A.settings.boundaryFeatureTypes.indexOf(t.type),
+                    };
+                  }),
+                );
+              },
+              unmapFeature: function (t) {
+                Q();
+              },
+              getPlugin: P,
+              highlightResidue: function (t) {
+                for (var e in (T(), h)) {
+                  var n;
+                  !h[e].getPdbRecord() ||
+                    ((n = h[e].getPdbRecord()).isInObservedRanges(t) &&
+                      c.highlightResidue(h[e].getModelId(), n.getChainId(), n.mapPosUnpToPdb(t)));
+                }
+              },
+              focusResidue: function (t, e) {
+                for (var n in h) {
+                  var r;
+                  !h[n].getPdbRecord() ||
+                    ((r = h[n].getPdbRecord()).isInObservedRanges(t) &&
+                      c.focusResidue(h[n].getModelId(), r.getChainId(), r.mapPosUnpToPdb(t), e));
+                }
+              },
+              dehighlightAll: T,
+              moleculeLoaded: function () {
+                return c.moleculeLoaded();
+              },
+              setSurfaceTransparency: R,
+              populateHeaderPdbIds: e,
+              updateHeader: function () {
+                (A.activeStructure.pdbId === l() && A.activeStructure.chainId === m()) ||
+                  (a().dropdown('setting', 'onChange', function (t) {}),
+                  s().dropdown('setting', 'onChange', function (t) {}),
+                  l() !== A.activeStructure.pdbId &&
+                    a().dropdown('set selected', A.activeStructure.pdbId),
+                  i(),
+                  b());
+              },
+              registerCallbacksAndEvents: C,
+              showErrorMessage: function (t) {
+                (A.lmErrorMessageContainer.find('.message')[0].innerHTML = t),
+                  A.lmErrorMessageContainer.css('display', 'block');
+              },
+              hideErrorMessage: function () {
+                A.lmErrorMessageContainer.css('display', 'none');
+              },
+              getAuthSeqNumber: function (t, e) {
+                var n = h[t.getId()].getModelId();
+                return c.getAuthSeqNumber(n, t.getChainId(), e);
+              },
+              getAuthSeqNumberRange: function (t, e, n) {
+                var r = h[t.getId()].getModelId();
+                return c.getAuthSeqNumberRange(r, t.getChainId(), e, n);
+              },
+              highlightRegion: function (t, e) {
+                F([{ seqBegin: t, seqEnd: e, color: G.colors.lmHighlight }]);
+              },
+              highlightCallback: B,
+              resetVisuals: Q,
+              groupSelected: function () {
+                return 1 <= A.pvContainer.find('.pv3d-svg-icon.selected').length;
+              },
+              setVisualInteractive: S,
+              clearVisualInteractive: k,
+              clearVisualInteractiveAll: function () {
+                Object.keys(d).forEach(k);
+              },
+              getVisualsInteractive: function () {
+                return d;
+              },
+              getHeaderPdbId: l,
+              getHeaderChainId: m,
+              getHeaderPdbIdList: a,
+              getHeaderPdbChainList: s,
+              getHeaderLinkContainer: v,
+              setAFConfidenceVisibility: x,
+            };
+          };
+        },
+        {
+          '../node_modules/semantic-ui-dropdown/dropdown.min': 62,
+          '../node_modules/semantic-ui-transition/transition.min': 63,
+          './lib/semantic-ui-range/range': 76,
+          './lm.plugin.js': 78,
+          './settings': 82,
+        },
+      ],
+      78: [
+        function (t, e, n) {
+          'use strict';
+          var C =
+            Object.assign ||
+            function (t) {
+              for (var e = 1; e < arguments.length; e++) {
+                var n,
+                  r = arguments[e];
+                for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]);
+              }
+              return t;
+            };
+          function x(t) {
+            if (Array.isArray(t)) {
+              for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e];
+              return n;
+            }
+            return Array.from(t);
+          }
+          var r,
+            b,
+            y,
+            a,
+            w,
+            E,
+            B = t('color-blend'),
+            I = t('litemol').default,
+            M =
+              (t('./settings'),
+              t('browserify-css/config/jshint').globals,
+              (window.LiteMol = I),
+              t('./pdb.mapping.js').STRUCTURE_FORMAT),
+            D =
+              ((r = 0),
+              (b = I.Core),
+              (y = I.Visualization),
+              (a = I.Bootstrap),
+              (w = b.Structure.Query),
+              Object.defineProperty(i.prototype, 'colorMap', {
+                get: function () {
+                  var n = b.Utils.FastMap.create();
+                  return (
+                    this.uniqueColors.forEach(function (t, e) {
+                      return n.set(e, t);
+                    }),
+                    n
+                  );
+                },
+                enumerable: !0,
+                configurable: !0,
+              }),
+              (i.prototype.addColor = function (t) {
+                var e = t.r + '-' + t.g + '-' + t.b;
+                if (this.map.has(e)) return this.map.get(e);
+                var n = this.uniqueColors.length;
+                return (
+                  this.uniqueColors.push(y.Color.fromRgb(t.r, t.g, t.b)), this.map.set(e, n), n
+                );
+              }),
+              (E = i),
+              {
+                createTheme: function (t, e) {
+                  for (
+                    var n,
+                      r,
+                      i = new E(),
+                      o = (i.addColor(e.base), new Uint8Array(t.data.atoms.count)),
+                      a = 0,
+                      s = e.entries;
+                    a < s.length;
+                    a++
+                  )
+                    for (
+                      var l = s[a],
+                        u = void 0,
+                        u = (
+                          ('query' in l)
+                            ? l.query
+                            : l.boundaryOnly
+                              ? w.or(
+                                  k(
+                                    l.entity_id.toString(),
+                                    { authAsymId: l.struct_asym_id },
+                                    { seqNumber: l.start_residue_number },
+                                    { seqNumber: l.start_residue_number },
+                                  ),
+                                  k(
+                                    l.entity_id.toString(),
+                                    { authAsymId: l.struct_asym_id },
+                                    { seqNumber: l.end_residue_number },
+                                    { seqNumber: l.end_residue_number },
+                                  ),
+                                )
+                              : k(
+                                  l.entity_id.toString(),
+                                  { authAsymId: l.struct_asym_id },
+                                  { seqNumber: l.start_residue_number },
+                                  { seqNumber: l.end_residue_number },
+                                )
+                        ).compile(),
+                        c = i.addColor(l.color),
+                        A = 0,
+                        h = u(t.queryContext).fragments;
+                      A < h.length;
+                      A++
+                    )
+                      for (var p = 0, d = h[A].atomIndices; p < d.length; p++) {
+                        var f,
+                          g = d[p],
+                          m = c;
+                        0 != o[g] &&
+                          ((f = {
+                            r: 255 * (f = i.uniqueColors[o[g]]).r,
+                            g: 255 * f.g,
+                            b: 255 * f.b,
+                          }),
+                          (m = i.addColor(
+                            ((f = f),
+                            (n = l.color),
+                            (r = void 0) === r && (r = 0.2),
+                            (f.a = 1),
+                            (n.a = 1),
+                            B.darken(f, n)),
+                          ))),
+                          (o[g] = m);
+                      }
+                  var e = { r: 0.6, g: 0.6, b: 0.6 },
+                    v = b.Utils.FastMap.create(),
+                    e =
+                      (v.set('Uniform', e),
+                      v.set('Selection', { r: 0, g: 0, b: 1 }),
+                      v.set('Highlight', { r: 1, g: 1, b: 0 }),
+                      y.Theme.createColorMapMapping(
+                        function (t) {
+                          return o[t];
+                        },
+                        i.colorMap,
+                        e,
+                      ));
+                  return y.Theme.createMapping(e, { colors: v, isSticky: !0 });
+                },
+                applyTheme: function (t, e, n) {
+                  for (
+                    var r = 0,
+                      i = t.selectEntities(
+                        a.Tree.Selection.byRef(e).subtree().ofType(a.Entity.Molecule.Visual),
+                      );
+                    r < i.length;
+                    r++
+                  ) {
+                    var o = i[r];
+                    t.command(a.Command.Visual.UpdateBasicTheme, { visual: o, theme: n });
+                  }
+                },
+              });
+          function i() {
+            (this.uniqueColors = []), (this.map = b.Utils.FastMap.create());
+          }
+          var S = I.Core.Structure.Query;
+          function k(t, e, n, r, i) {
+            return S.Builder.build(function () {
+              return (
+                (b = e),
+                (y = n),
+                (w = r),
+                (E = i),
+                function (t) {
+                  for (
+                    var e = t.structure.data,
+                      n = e.residues,
+                      e = e.chains,
+                      r = n.seqNumber,
+                      i = n.atomStartIndex,
+                      o = n.atomEndIndex,
+                      a = (e.entityId, e.count),
+                      s = e.residueStartIndex,
+                      l = e.residueEndIndex,
+                      u = new S.FragmentSeqBuilder(t),
+                      c = t.structure.parent,
+                      A = e.sourceChainIndex,
+                      h = c && A,
+                      p = new F('string' == typeof b ? { asymId: b } : b, h ? c.data.chains : e),
+                      d = 0;
+                    d < a;
+                    d++
+                  )
+                    if (p.isSatisfied(h ? A[d] : d)) {
+                      for (var f, g = s[d], m = l[d], v = -1; g < m; g++)
+                        if (r[g] >= y.seqNumber) {
+                          v = g;
+                          break;
+                        }
+                      if (g !== m) {
+                        for (g = v; g < m && !(r[g] >= w.seqNumber); g++);
+                        (f = g),
+                          t.hasRange(i[v], o[f]) &&
+                            (!n.isHet.reduce(function (t, e) {
+                              return t && e;
+                            }, !0) ||
+                              E) &&
+                            u.add(S.Fragment.ofIndexRange(t, i[v], o[f]));
+                      }
+                    }
+                  return u.getSeq();
+                }
+              );
+              var b, y, w, E;
+            });
+          }
+          o.prototype.isSatisfied = function (t) {
+            for (var e = 0, n = this.columns; e < n.length; e++) {
+              var r = n[e];
+              if (r.value !== r.array[t]) return !1;
+            }
+            return !0;
+          };
+          var F = o;
+          function o(t, e) {
+            this.columns = [];
+            for (var n = 0, r = Object.keys(t); n < r.length; n++) {
+              var i = r[n];
+              void 0 !== t[i] && e[i] && this.columns.push({ value: t[i], array: e[i] });
+            }
+          }
+          e.exports = function () {
+            return (
+              (u = I = I || {}),
+              (p = {
+                surfaceTransparencyAlpha: 0.3,
+                modelPrefix: 'mod',
+                selectionPrefix: 'sel',
+                visualPrefix: 'vis',
+                groupPrefix: 'gr',
+                confidenceInfix: 'confidence',
+              }),
+              (d = void 0),
+              (c = {}),
+              u.Plugin.Views,
+              (f = u.Bootstrap),
+              (g = u.Core.Structure.Query),
+              (m = g.Algebraic),
+              (v = f.Entity.Transformer),
+              (o = f.Tree),
+              (b = o.Transform),
+              f.Components.LayoutRegion,
+              u.Visualization,
+              (i = f.Visualization),
+              (a = f.Command),
+              (n = f.Event),
+              (r = []),
+              (y = function () {
+                A();
+                var t = i.Molecule.Default.ForType.get('Surface');
+                return (
+                  (t.theme.transparency.alpha = p.surfaceTransparencyAlpha),
+                  (t.theme.colors = t.theme.colors.set('Uniform', { r: 0.75, g: 0.75, b: 0.75 })),
+                  t
+                );
+              }),
+              (s = function (t) {
+                var e = t.rootId,
+                  n = t.name,
+                  r = t.chainId,
+                  i = t.residues,
+                  o = t.atomNames;
+                if (0 === i.length) return Promise.resolve(void 0);
+                A();
+                var a = h(e)[0];
+                if (!a) return Promise.reject('Non-existing entity');
+                var s = i
+                    .map(function (t) {
+                      return '' + t.authAsymId + t.seqNumber;
+                    })
+                    .join(''),
+                  l =
+                    void 0 !== t.selectionId
+                      ? t.selectionId
+                      : ((t = e),
+                        (e = r),
+                        (r = s),
+                        p.selectionPrefix +
+                          (t ? t + '-' : '') +
+                          (e ? e + '-' : '') +
+                          (r ? r + '-' : ''));
+                if (0 < h(l).length) return Promise.resolve(l);
+                s = g.residues.apply(null, i);
+                if (o && 0 < o.length) {
+                  for (var u = m.equal(m.atomName, m.value(o[0])), c = 1; c < o.length; c++)
+                    u = m.or(u, m.equal(m.atomName, m.value(o[c])));
+                  s = s.intersectWith(m.query(u));
+                }
+                t = f.Tree.Transform.build().add(
+                  a,
+                  v.Molecule.CreateSelectionFromQuery,
+                  { query: s, name: n },
+                  { ref: l, isBinding: !1 },
+                );
+                return d.applyTransform(t).then(function () {
+                  return Promise.resolve(l);
+                });
+              }),
+              (w = function (t, e) {
+                A();
+                t = d.context.select(t)[0];
+                f.Command.Entity.SetVisibility.dispatch(d.context, { entity: t, visible: e });
+              }),
+              {
+                initializePlugin: function (t) {
+                  var e = t.lmContainerId,
+                    i = t.activeStructure,
+                    o = t.opts.labelCallback;
+                  d ||
+                    ((t = u.Plugin.getDefaultSpecification()),
+                    o &&
+                      t.behaviours.push(function (t) {
+                        t.highlight.addProvider(function (t) {
+                          if (0 === t.kind) return null;
+                          for (
+                            var e = t.elements[0], n = t.source;
+                            'M_M' != n.type.info.shortName;
+
+                          )
+                            n = n.parent;
+                          var t = n.props.model.data.atoms,
+                            r = {
+                              authName: t.authName[e],
+                              elementSymbol: t.elementSymbol[e],
+                              name: t.name[e],
+                            },
+                            t = t.residueIndex[e],
+                            e = n.props.model.data.residues;
+                          if (e.isHet[t]) return null;
+                          (e = {
+                            asymId: e.asymId[t],
+                            authAsymId: e.authAsymId[t],
+                            authName: e.authName[t],
+                            authSeqNumber: e.authSeqNumber[t],
+                            entityId: e.entityId[t],
+                            name: e.name[t],
+                            seqNumber: e.seqNumber[t],
+                          }),
+                            (e.unpSeqNumber = e.authSeqNumber),
+                            (t = i.record.mapPosPdbToUnp(e.seqNumber));
+                          return o({ atomInfo: r, resInfo: e, unpPos: t });
+                        });
+                      }),
+                    (d = u.Plugin.create({
+                      target: '#' + e,
+                      viewportBackground: '#ffffff',
+                      layoutState: {
+                        collapsedControlsLayout:
+                          u.Bootstrap.Components.CollapsedControlsLayout.Landscape,
+                        hideControls: !0,
+                        isExpanded: !1,
+                      },
+                      allowAnalytics: !1,
+                      customSpecification: t,
+                    })),
+                    n.Molecule.ModelHighlight.getStream(d.context).subscribe(function (e) {
+                      r.forEach(function (t) {
+                        t(e);
+                      });
+                    }));
+                },
+                destroyPlugin: function () {
+                  A(), d.destroy();
+                },
+                loadMolecule: function (t, e, n, r, i) {
+                  A();
+                  var o = p.modelPrefix + t,
+                    a = l(o);
+                  if (0 < h(o).length) return Promise.resolve(o);
+                  var s = void 0;
+                  if (n === M.mmCIF) s = u.Core.Formats.Molecule.SupportedFormats.mmCIF;
+                  else {
+                    if (n !== M.PDB) throw Error('Unsuported format of the structure file');
+                    s = u.Core.Formats.Molecule.SupportedFormats.PDB;
+                  }
+                  n = b
+                    .build()
+                    .add(d.context.tree.root, v.Data.Download, { url: r, type: 'String', id: t })
+                    .then(v.Molecule.CreateFromData, { format: s, customId: t }, { isBinding: !0 })
+                    .then(v.Molecule.CreateModel, { modelIndex: 0 }, { isBinding: !1, ref: o })
+                    .then(v.Molecule.CreateMacromoleculeVisual, {
+                      polymer: !0,
+                      polymerRef: a,
+                      het: !0,
+                      water: !0,
+                    });
+                  return d.applyTransform(n).then(function () {
+                    var t = h(a);
+                    if (0 === t.length)
+                      throw Error(
+                        'Litemol could not access or process the structure file <br/> (' + r + ')',
+                      );
+                    return (
+                      (c[a] = C({}, t[0].props.model.theme, { isSticky: !0 })), Promise.resolve(o)
+                    );
+                  });
+                },
+                registerHighlightCallback: function (t) {
+                  r.push(t);
+                },
+                highlightResidue: function (t, e, n) {
+                  A();
+                  t = d.selectEntities(t)[0];
+                  t &&
+                    ((e = k(0, { authAsymId: e }, { seqNumber: n }, { seqNumber: n })),
+                    a.Molecule.Highlight.dispatch(d.context, { model: t, query: e, isOn: !0 }));
+                },
+                focusResidue: function (t, e, n, r) {
+                  A();
+                  t = d.selectEntities(t)[0];
+                  t &&
+                    ((e = k(
+                      0,
+                      { authAsymId: e },
+                      { seqNumber: n },
+                      { seqNumber: n },
+                    ).ambientResidues(r)),
+                    a.Molecule.FocusQuery.dispatch(d.context, { model: t, query: e }));
+                },
+                dehighlightAll: function () {
+                  A(),
+                    d
+                      .selectEntities(o.Selection.subtree().ofType(f.Entity.Molecule.Model))
+                      .forEach(function (t) {
+                        a.Molecule.Highlight.dispatch(d.context, {
+                          model: t,
+                          query: u.Core.Structure.Query.everything(),
+                          isOn: !1,
+                        });
+                      });
+                },
+                createSelectionFromRange: function (t) {
+                  t.residues = [];
+                  for (var e = t.beginIx; e <= t.endIx; e++)
+                    t.residues.push({ authAsymId: t.chainId, seqNumber: e });
+                  return s(t);
+                },
+                createSelectionFromList: function (e) {
+                  return (
+                    (e.residues = e.sequenceNumbers.map(function (t) {
+                      return { authAsymId: e.chainId, seqNumber: t };
+                    })),
+                    s(e)
+                  );
+                },
+                colorSelections: function (t, n) {
+                  var r,
+                    e,
+                    l,
+                    u,
+                    c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [];
+                  A(),
+                    0 != n.length &&
+                      (t = d.selectEntities(t)[0]) &&
+                      ((r = []),
+                      n.forEach(function (t) {
+                        var e;
+                        'selectionId' in n[0]
+                          ? 0 < (e = d.context.select(t.selectionId)).length &&
+                            r.push({
+                              query: e[0].transform.params.query,
+                              color: { r: t.color.r, g: t.color.g, b: t.color.b },
+                            })
+                          : r.push({
+                              entity_id: '1',
+                              struct_asym_id: t.chainId,
+                              start_residue_number: t.begin,
+                              end_residue_number: t.end,
+                              boundaryOnly: t.boundaryOnly,
+                              color: { r: t.color.r, g: t.color.g, b: t.color.b },
+                            });
+                      }),
+                      (e = { base: { r: 192, g: 192, b: 192 }, entries: r }),
+                      (l = D.createTheme(t.props.model, e)),
+                      ((u = D.createTheme(t.props.model, e)).transparency = {
+                        alpha: p.surfaceTransparencyAlpha,
+                      }),
+                      d
+                        .selectEntities(
+                          f.Tree.Selection.subtree(t).ofType(f.Entity.Molecule.Visual),
+                        )
+                        .forEach(function (t) {
+                          var e = !0,
+                            n = !0,
+                            r = !1,
+                            i = void 0;
+                          try {
+                            for (
+                              var o, a = c[Symbol.iterator]();
+                              !(n = (o = a.next()).done);
+                              n = !0
+                            ) {
+                              var s = o.value;
+                              if (0 <= t.ref.search(s)) {
+                                e = !1;
+                                break;
+                              }
+                            }
+                          } catch (t) {
+                            (r = !0), (i = t);
+                          } finally {
+                            try {
+                              !n && a.return && a.return();
+                            } finally {
+                              if (r) throw i;
+                            }
+                          }
+                          0 == t.ref.search(p.visualPrefix) &&
+                            e &&
+                            ('Surface' === t.props.style.type
+                              ? D.applyTheme(d, t.ref, u)
+                              : D.applyTheme(d, t.ref, l));
+                        }));
+                },
+                focusSelection: function (t) {
+                  A(), a.Entity.Focus.dispatch(d.context, h(t));
+                },
+                hideModelsExcept: function (e) {
+                  A();
+                  var n = [];
+                  return (
+                    d
+                      .selectEntities(f.Tree.Selection.subtree().ofType(f.Entity.Molecule.Model))
+                      .forEach(function (t) {
+                        n.push(
+                          f.Command.Entity.SetVisibility.dispatch(d.context, {
+                            entity: t,
+                            visible: 0 <= e.indexOf(t.ref),
+                          }),
+                        );
+                      }),
+                    Promise.all(n)
+                  );
+                },
+                hideEntity: (E = function (t) {
+                  A(), w(t, !1);
+                }),
+                hideEntityIfInHiddenModel: function (t) {
+                  for (var e = h(t)[0]; e.type.id != f.Entity.Molecule.Model.id; ) e = e.parent;
+                  0 < e.state.visibility && E(t);
+                },
+                showEntity: (B = function (e) {
+                  var t = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1];
+                  A(),
+                    t
+                      ? w(e, !0)
+                      : d
+                          .selectEntities(o.Selection.subtree().ofType(f.Entity.Molecule.Model))
+                          .forEach(function (t) {
+                            t.ref.indexOf(p.confidenceInfix) < 0 && w(e, !0);
+                          });
+                }),
+                toggleEntity: function (t, e) {
+                  A();
+                  t = h(t)[0];
+                  (t.state.isCollapsed && !1 === e) ||
+                    (!t.state.isCollapsed && !0 === e) ||
+                    d.command(u.Bootstrap.Command.Entity.ToggleExpanded, t);
+                },
+                createGroup: function (t, e, n) {
+                  A();
+                  var r = p.groupPrefix + t + '-' + n;
+                  if (0 < h(r).length) return Promise.resolve(r);
+                  n = f.Tree.Transform.build().add(
+                    h(n)[0],
+                    v.Basic.CreateGroup,
+                    { label: t, description: e },
+                    { ref: r },
+                  );
+                  return d.applyTransform(n).then(function () {
+                    return Promise.resolve(r);
+                  });
+                },
+                removeEntity: function (t) {
+                  A();
+                  t = h(t);
+                  0 < t.length && d.command(u.Bootstrap.Command.Tree.RemoveNode, t[0]);
+                },
+                createVisual: function (e, t) {
+                  var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2];
+                  if ((A(), 0 == h(e).length))
+                    return (
+                      console.warn('Trying to create visual for non-existing entity ' + e),
+                      Promise.resolve(void 0)
+                    );
+                  var r = y(),
+                    i = (void 0 === t && (t = { style: r }), l(e));
+                  if (0 < h(i).length) return Promise.resolve(i);
+                  var o = p.confidenceInfix + '-' + i,
+                    r = h(e)[0],
+                    a = void 0,
+                    s =
+                      (!n ||
+                        (0 <
+                          (s = d
+                            .selectEntities(
+                              f.Tree.Selection.subtree(r).ofType(f.Entity.Molecule.Selection),
+                            )
+                            .filter(function (t) {
+                              return t.ref !== e;
+                            })).length &&
+                          (a = s[0])),
+                      f.Tree.Transform.build().add(r, v.Molecule.CreateVisual, t, { ref: i }));
+                  return (
+                    n && a && s.add(a, v.Molecule.CreateVisual, t, { ref: o }),
+                    d.applyTransform(s).then(function () {
+                      return (
+                        (c[i] = C({}, h(i)[0].props.model.theme, { isSticky: !0 })),
+                        n && a && (c[o] = C({}, h(o)[0].props.model.theme, { isSticky: !0 })),
+                        i
+                      );
+                    })
+                  );
+                },
+                resetVisuals: function () {
+                  var t,
+                    e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : '';
+                  for (t in (A(), c)) {
+                    var n,
+                      r = h(t)[0];
+                    0 <= r.ref.search(e) ||
+                      ((n = c[t]),
+                      'Surface' == r.props.style.type &&
+                        (n.transparency.alpha = p.surfaceTransparencyAlpha),
+                      d.command(f.Command.Visual.UpdateBasicTheme, { visual: r, theme: n }));
+                  }
+                },
+                moleculeLoaded: function () {
+                  return (
+                    A(),
+                    0 <
+                      d.selectEntities(f.Tree.Selection.subtree().ofType(f.Entity.Molecule.Visual))
+                        .length
+                  );
+                },
+                setSurfaceTransparency: function (t, n) {
+                  A(),
+                    (p.surfaceTransparencyAlpha = t),
+                    d
+                      .selectEntities(f.Tree.Selection.subtree().ofType(f.Entity.Molecule.Visual))
+                      .forEach(function (t) {
+                        var e;
+                        'Surface' === t.props.style.type &&
+                          t.ref.search(n) < 0 &&
+                          (((e = C({}, t.props.model.theme, { isSticky: !0 })).transparency = {
+                            alpha: p.surfaceTransparencyAlpha,
+                          }),
+                          D.applyTheme(d, t.ref, e));
+                      });
+                },
+                selectNodes: h,
+                getController: function () {
+                  return d;
+                },
+                getLiteMol: function () {
+                  return u;
+                },
+                getEntity: h,
+                getStyleDefinition: function (t, e, n, r) {
+                  return {
+                    type: t,
+                    params: e,
+                    theme: {
+                      template: i.Molecule.Default.UniformThemeTemplate,
+                      colors: i.Molecule.Default.UniformThemeTemplate.colors.set('Uniform', n),
+                      transparency: { alpha: r },
+                    },
+                  };
+                },
+                getAuthSeqNumber: function (t, e, n) {
+                  if (0 !== (t = h(t)).length) {
+                    (e = g.residues({ authAsymId: e, seqNumber: n })),
+                      (n = g.apply(e, t[0].props.model).unionFragment());
+                    if (0 !== n.residueIndices.length)
+                      return t[0].props.model.data.residues.authSeqNumber[n.residueIndices[0]];
+                  }
+                },
+                getAuthSeqNumberRange: function (t, e, n, r) {
+                  var i = h(t);
+                  if (0 === i.length) return [];
+                  for (var o = void 0, a = n; a <= r; a++)
+                    var s = { authAsymId: e, seqNumber: a },
+                      o = o ? g.or(o, g.residues(s)) : g.residues(s);
+                  return 0 ===
+                    (t = g.apply(o, i[0].props.model).unionFragment()).residueIndices.length
+                    ? []
+                    : t.residueIndices.map(function (t) {
+                        return i[0].props.model.data.residues.authSeqNumber[t];
+                      });
+                },
+                createVisualsForAFConfidence: function (t, e, n) {
+                  var r = d.selectEntities(t)[0],
+                    i = [].concat(
+                      x(
+                        new Set(
+                          r.props.model.data.atoms.residueIndex.filter(function (t, e) {
+                            return r.props.model.data.atoms.tempFactor[e] > n;
+                          }),
+                        ),
+                      ),
+                    ),
+                    o = g.residuesFromIndices(i),
+                    i = '' + p.selectionPrefix + p.confidenceInfix + '-' + t,
+                    a = '' + p.visualPrefix + p.confidenceInfix + '-' + t,
+                    s = i + '-surf',
+                    l = a + '-surf',
+                    t = f.Tree.Transform.build()
+                      .add(
+                        r,
+                        v.Molecule.CreateSelectionFromQuery,
+                        { query: o, name: 'Confident' },
+                        { ref: i, isBinding: !1 },
+                      )
+                      .then(
+                        v.Molecule.CreateVisual,
+                        { style: f.Visualization.Molecule.Default.ForType.get('Cartoons') },
+                        { ref: a },
+                      );
+                  return d
+                    .applyTransform(t)
+                    .then(function () {
+                      var t = d.selectEntities(e)[0].parent,
+                        t = f.Tree.Transform.build()
+                          .add(
+                            t,
+                            v.Molecule.CreateSelectionFromQuery,
+                            { query: o, name: 'Confident surface' },
+                            { ref: s, isBinding: !1 },
+                          )
+                          .then(v.Molecule.CreateVisual, { style: y() }, { ref: l });
+                      return d.applyTransform(t);
+                    })
+                    .then(function () {
+                      var t = h(a)[0];
+                      (c[a] = C({}, t.props.model.theme, { isSticky: !0 })),
+                        (t = h(l)[0]),
+                        (c[l] = C({}, t.props.model.theme, { isSticky: !0 })),
+                        E(a),
+                        E(l);
+                    });
+                },
+                setAFConfidenceVisibility: function (t, e) {
+                  var t = d.selectEntities(t)[0],
+                    n = d
+                      .selectEntities(f.Tree.Selection.subtree(t).ofType(f.Entity.Molecule.Visual))
+                      .filter(function (t) {
+                        return 0 <= t.ref.indexOf('' + p.confidenceInfix);
+                      }),
+                    r = [t.children[0].ref, t.children[1].children[0].children[0]];
+                  d.selectEntities(f.Tree.Selection.subtree(t).ofType(f.Entity.Group)),
+                    e
+                      ? (r.forEach(function (t) {
+                          return E(t);
+                        }),
+                        n.forEach(function (t) {
+                          return B(t);
+                        }))
+                      : (n.forEach(function (t) {
+                          return E(t);
+                        }),
+                        r.forEach(function (t) {
+                          return B(t);
+                        }));
+                },
+                createSubSelectionForAFCofidence: function (t, n) {
+                  var e = d.selectEntities(t)[0],
+                    r = d.selectEntities(
+                      f.Tree.Selection.byRef(t).ancestorOfType(f.Entity.Molecule.Model),
+                    )[0],
+                    i = [].concat(
+                      x(
+                        new Set(
+                          r.props.model.data.atoms.residueIndex.filter(function (t, e) {
+                            return r.props.model.data.atoms.tempFactor[e] > n;
+                          }),
+                        ),
+                      ),
+                    ),
+                    i = g.residuesFromIndices(i),
+                    t = t + '-' + p.confidenceInfix,
+                    e = f.Tree.Transform.build().add(
+                      e,
+                      v.Molecule.CreateSelectionFromQuery,
+                      { query: i, name: 'Confident' },
+                      { ref: t, isBinding: !1 },
+                    );
+                  return d.applyTransform(e);
+                },
+                showSelectionVisual: function (t, e) {
+                  var t = h(t)[0].parent,
+                    t = d.selectEntities(o.Selection.subtree(t).ofType(f.Entity.Molecule.Visual)),
+                    n = t.filter(function (t) {
+                      return 0 <= t.ref.indexOf(p.confidenceInfix);
+                    }),
+                    t = t.filter(function (t) {
+                      return t.ref.indexOf(p.confidenceInfix) < 0;
+                    }),
+                    r = !0,
+                    i = !1;
+                  e || (i = !(r = !1)),
+                    n.forEach(function (t) {
+                      return w(t.ref, r);
+                    }),
+                    t.forEach(function (t) {
+                      return w(t.ref, i);
+                    });
+                },
+                hideSelectionVisual: function (t) {
+                  E(h(t)[0].parent);
+                },
+              }
+            );
+            function A() {
+              if (!d.instance) throw new ReferenceError('LiteMol plugin controller not available.');
+            }
+            function h(t) {
+              return A(), d.context.select(t);
+            }
+            function l(t) {
+              return p.visualPrefix + t;
+            }
+            var u, p, d, c, f, g, m, v, o, b, i, a, n, r, y, s, w, E, B;
+          };
+        },
+        {
+          './pdb.mapping.js': 79,
+          './settings': 82,
+          'browserify-css/config/jshint': 25,
+          'color-blend': 28,
+          litemol: 43,
+        },
+      ],
+      79: [
+        function (t, e, n) {
+          'use strict';
+          function r(t, e) {
+            if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function');
+          }
+          function O(t) {
+            r(this, O), (this.start = new i(t.start)), (this.end = new i(t.end));
+          }
+          function G(t, e) {
+            r(this, G), (this.start = t), (this.end = e);
+          }
+          function z(t) {
+            r(this, z),
+              (this.unpStart = t.unp_start),
+              (this.pdbStart = t.start),
+              (this.unpEnd = t.unp_end),
+              (this.pdbEnd = t.end);
+          }
+          var H = t('lodash'),
+            j = t('./settings').useCorsForSmr,
+            V = t('./settings').corsServer,
+            q = { PDB: 0, mmCIF: 1 },
+            i = function t(e) {
+              r(this, t),
+                (this.posPDBStructure = e.author_residue_number),
+                (this.insertionCode = e.author_insertion_code),
+                (this.posPDBSequence = e.residue_number);
+            };
+          e.exports = {
+            pdbMapping: function (t) {
+              var r = void 0,
+                i = void 0,
+                e = void 0,
+                n = void 0,
+                o = void 0,
+                a = void 0,
+                s = void 0,
+                l = void 0,
+                u = void 0,
+                c = void 0,
+                A = void 0,
+                h = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'PDB',
+                p = void 0;
+              if ('PDB' === h)
+                (r = t.pdb_id),
+                  (i = t.chain_id),
+                  (e = q.mmCIF),
+                  (o = t.experimental_method),
+                  (a = t.coverage),
+                  (s = parseInt(t.start)),
+                  (l = parseInt(t.end)),
+                  (u = parseInt(t.unp_start)),
+                  (c = parseInt(t.unp_end)),
+                  (p = 'https://www.ebi.ac.uk/pdbe/static/entry/' + r + '_updated.cif'),
+                  (A = t.tax_id);
+              else if ('SMR' === h) {
+                var d = t.template.match(/(.+)\.(.+)+\.(.+)/),
+                  r = d[1] + '.' + d[2],
+                  i = d[3],
+                  e = q.PDB,
+                  o = t.provider + ' (' + t.method + ')',
+                  a = t.coverage,
+                  s = parseInt(t.from),
+                  l = parseInt(t.to),
+                  u = parseInt(t.from),
+                  c = parseInt(t.to),
+                  p = t.coordinates;
+                j && (p = V + p);
+              } else if ('AF' === h)
+                (r = t.entryId),
+                  (i = 'A'),
+                  (e = q.mmCIF),
+                  (n = t.uniprotDescription),
+                  (s = parseInt(t.uniprotStart)),
+                  (l = parseInt(t.uniprotEnd)),
+                  (u = parseInt(t.uniprotStart)),
+                  (c = parseInt(t.uniprotEnd)),
+                  (p = t.cifUrl);
+              else {
+                if ('USER' !== h) throw Error('Unknown source of PDB mapping data');
+                if (
+                  ((r = t.id),
+                  (i = t.chainId),
+                  (e = 'PDB' === t.structure.format.toUpperCase() ? q.PDB : q.mmCIF),
+                  (o = 'unknown'),
+                  (a =
+                    (parseInt(t.end) - parseInt(t.start)) /
+                    (parseInt(t.seqEnd) - parseInt(t.seqStart))),
+                  (s = parseInt(t.start)),
+                  (l = parseInt(t.end)),
+                  (u = parseInt(t.seqStart)),
+                  (c = parseInt(t.seqEnd)),
+                  void 0 !== t.structure.uri)
+                )
+                  p = t.structure.uri;
+                else {
+                  if (void 0 === t.structure.data)
+                    throw Error(
+                      'Structure information parameter requires information about uri or data.',
+                    );
+                  p = 'data:text/plain;base64,' + btoa(t.structure.data);
+                }
+              }
+              function f() {
+                return g() + m();
+              }
+              function g() {
+                return r;
+              }
+              function m() {
+                return i;
+              }
+              function v() {
+                return e;
+              }
+              function b() {
+                return o;
+              }
+              function y() {
+                return n;
+              }
+              function w() {
+                return a;
+              }
+              function E() {
+                return s;
+              }
+              function B() {
+                return l;
+              }
+              function C() {
+                return u;
+              }
+              function x() {
+                return c;
+              }
+              function I() {
+                return A;
+              }
+              function M() {
+                return R;
+              }
+              function D() {
+                return k;
+              }
+              function S() {
+                return h;
+              }
+              var R = [],
+                U = [
+                  P(
+                    new O({
+                      start: {
+                        author_residue_number: s,
+                        author_insertion_code: void 0,
+                        residue_number: 1,
+                      },
+                      end: {
+                        author_residue_number: l,
+                        author_insertion_code: void 0,
+                        residue_number: c - u,
+                      },
+                    }),
+                  ),
+                ],
+                k = [],
+                N = [],
+                F = function () {
+                  return x() - C();
+                },
+                Q = function () {
+                  return U;
+                };
+              function P(t) {
+                t = H.cloneDeep(t);
+                return (
+                  'SMR' === h
+                    ? (t.end.posPDBSequence += 1)
+                    : ((t.start.posPDBSequence -= s - 1), (t.end.posPDBSequence -= s - 1)),
+                  t
+                );
+              }
+              function _(t) {
+                var e = 0,
+                  n = null,
+                  r = !0,
+                  i = !1,
+                  o = void 0;
+                try {
+                  for (var a, s = Y()[Symbol.iterator](); !(r = (a = s.next()).done); r = !0) {
+                    var l = a.value;
+                    if (l.start > t) break;
+                    n &&
+                      (e +=
+                        parseInt(l.pdbStart.residue_number) -
+                        parseInt(n.pdbEnd.residue_number) -
+                        1),
+                      (n = l);
+                  }
+                } catch (t) {
+                  (i = !0), (o = t);
+                } finally {
+                  try {
+                    !r && s.return && s.return();
+                  } finally {
+                    if (i) throw o;
+                  }
+                }
+                return e;
+              }
+              function T(t) {
+                return C() + t - 1 - _(t);
+              }
+              function L() {
+                return n ? y() : 'Experimental method: ' + b();
+              }
+              var Y = function () {
+                return N;
+              };
+              return {
+                getId: f,
+                getPdbId: g,
+                getChainId: m,
+                getFormat: v,
+                getUniprotDescription: y,
+                getExperimentalMethod: b,
+                getCoverage: w,
+                getLength: F,
+                getPdbStart: E,
+                getPdbEnd: B,
+                getUnpStart: C,
+                getUnpEnd: x,
+                mapPosUnpToPdb: function (t) {
+                  return E() + parseInt(t) + _(t) - C();
+                },
+                mapPosPdbToUnp: function (t) {
+                  return C() + parseInt(t) - _(t) - E();
+                },
+                mapPosStructToUnp: T,
+                getTaxId: I,
+                getSource: S,
+                getCoordinatesFile: function () {
+                  return p;
+                },
+                getDescription: L,
+                getObservedResidues: M,
+                setObservedResidues: function (t) {
+                  R = t;
+                },
+                getObservedRanges: Q,
+                setObservedRanges: function (t) {
+                  U = t
+                    .filter(function (t) {
+                      return t.start.posPDBSequence <= l && t.end.posPDBSequence >= s;
+                    })
+                    .map(P);
+                  var e = Q().sort(function (t, e) {
+                    return t.start.posPDBSequence - e.start.posPDBSequence;
+                  });
+                  if (0 === e.length)
+                    console.warn(
+                      'Structure ' + r + ':' + i + ' has no observed range in the mapped region.',
+                    );
+                  else {
+                    (k = []),
+                      1 < e[0].start.posPDBSequence &&
+                        k.push(new G(1, e[0].start.posPDBSequence - 1));
+                    for (var n = 1; n < e.length; n++)
+                      k.push(new G(e[n - 1].end.posPDBSequence + 1, e[n].start.posPDBSequence - 1));
+                    F() >= e[e.length - 1].end.posPDBSequence &&
+                      k.push(new G(e[e.length - 1].end.posPDBSequence + 1, F() + 1));
+                  }
+                },
+                getInsertedRanges: Y,
+                parseInsertedRanges: function (t, e) {
+                  var n = Object.keys(t)[0];
+                  N = t[n].UniProt[e].mappings
+                    .filter(function (t) {
+                      return t.chain_id.toUpperCase() === m().toUpperCase();
+                    })
+                    .map(function (t) {
+                      return new z(t);
+                    });
+                },
+                getUnobservedRanges: D,
+                getSeqRangeFromObservedRange: function (t) {
+                  return [
+                    Math.max(this.getUnpStart(), this.mapPosStructToUnp(t.start.posPDBSequence)),
+                    Math.min(this.mapPosStructToUnp(t.end.posPDBSequence), this.getUnpEnd()),
+                  ];
+                },
+                setTaxId: function (t) {
+                  A = t;
+                },
+                isValidPdbPos: function (t) {
+                  return E() <= t && t <= B();
+                },
+                isValidPdbRegion: function (t, e) {
+                  return (E() <= t && t <= B()) || (E() <= e && e <= B()) || (t <= E() && B() <= e);
+                },
+                isInObservedRanges: function (t) {
+                  for (var e = Q(), n = 0; n < e.length; ++n) {
+                    var r = e[n];
+                    if (t >= T(r.start.posPDBSequence) && t <= T(r.end.posPDBSequence)) return !0;
+                  }
+                  return !1;
+                },
+                idMatch: function (t, e) {
+                  return (
+                    g().toLowerCase() === t.toLowerCase() && m().toLowerCase() === e.toLowerCase()
+                  );
+                },
+                isPDB: function () {
+                  return 'PDB' === S();
+                },
+                content: {
+                  id: f(),
+                  pdbId: g(),
+                  chainId: m(),
+                  format: v(),
+                  description: L(),
+                  experimentalMethod: b(),
+                  coverage: w(),
+                  pdbStart: E(),
+                  podbEnd: B(),
+                  unpStart: C(),
+                  unpEnd: x(),
+                  taxId: I(),
+                  source: S(),
+                  observedResidues: M(),
+                  observedRanges: Q(),
+                  unobservedRanges: D(),
+                },
+              };
+            },
+            ObservedRange: O,
+            STRUCTURE_FORMAT: q,
+          };
+        },
+        { './settings': 82, lodash: 44 },
+      ],
+      80: [
+        function (t, e, n) {
+          'use strict';
+          var v =
+            Object.assign ||
+            function (t) {
+              for (var e = 1; e < arguments.length; e++) {
+                var n,
+                  r = arguments[e];
+                for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]);
+              }
+              return t;
+            };
+          var b = t('downloadjs'),
+            y = t('./svg.symbols'),
+            w = t('ProtVista'),
+            E = t('./settings').pvPredictProteinCat.id,
+            B = t('./settings').urlPredictProtein;
+          function C(t, e) {
+            return (t = t.closest('.up_pftv_category')), (e = e), t.parent().hasClass(e);
+          }
+          function x(t) {
+            return 0 <= t.attr('class').indexOf('selected');
+          }
+          e.exports = function () {
+            var l = void 0,
+              u = void 0,
+              o = [],
+              r = { highlightByHovering: !1 };
+            function i() {
+              return u.container.find('.pv3d-header-pv .unp-link');
+            }
+            function t() {
+              u.pvContainer
+                .find('.up_pftv_category-name, .up_pftv_track-header')
+                .each(function (t, e) {
+                  var n,
+                    r,
+                    i,
+                    e = $(e);
+                  0 <
+                    e.parents(
+                      'div[class="up_pftv_category_' + u.settings.pvMappedStructuresCat.id + '"]',
+                    ).length ||
+                    0 <
+                      e.parents(
+                        'div[class="up_pftv_category_' +
+                          u.settings.pvMappedStructuresCat.idPredicted +
+                          '"]',
+                      ).length ||
+                    0 <
+                      e.parents(
+                        'div[class="up_pftv_category_' +
+                          u.settings.pvMappedStructuresCat.idProvided +
+                          '"]',
+                      ).length ||
+                    (e.hasClass('up_pftv_track-header') &&
+                      0 <
+                        e.parents('div[class="' + u.settings.pvVariationCat.clazz + '"]').length) ||
+                    ((i = e.closest('.up_pftv_category')),
+                    0 < e.parent().find(y.svgIconSelector).length ||
+                      ((0 <= e.attr('class').split(' ').indexOf('up_pftv_track-header')
+                        ? e.parent().parent()
+                        : i
+                      ).css('position', 'relative'),
+                      (n = 0.5 * (i = i.find('a')).outerHeight()),
+                      (r = i.outerWidth() - 1.2 * n),
+                      (i = i.outerHeight() / 2 - n / 2),
+                      (i = y.createJQSvgIcon(y.arrowCircleRight, i, r, n)).prependTo(e.parent()),
+                      C(i, u.settings.pvVariationCat.clazz) && o.push(i)));
+                });
+            }
+            function e() {
+              t(), u.pvContainer.find(c()).css('cursor', 'pointer');
+            }
+            function a(t) {
+              var i = u.settings.variationColors.min,
+                e = u.settings.variationColors.max,
+                o = [e[0] - i[0], e[1] - i[1], e[2] - i[2]];
+              for (var n = void 0, r = g(), a = 0; a < r.length; a++) {
+                var s = r[a];
+                u.pvContainer.find(s.categoryContainer[0]).parent().is(t) &&
+                  !(function () {
+                    var t = s.categoryViewer.variationCountArray,
+                      e = Math.max.apply(
+                        Math,
+                        (function (t) {
+                          if (Array.isArray(t)) {
+                            for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e];
+                            return n;
+                          }
+                          return Array.from(t);
+                        })(t),
+                      );
+                    n = t.map(function (t) {
+                      return t / e;
+                    });
+                  })();
+              }
+              return {
+                catData: n.map(function (t, e) {
+                  return { begin: e, end: e, type: 'VARIANT' };
+                }),
+                catColors: n.map(function (t) {
+                  for (var e = t, n = [0, 0, 0], r = 0; r < 3; r++) n[r] = i[r] + o[r] * e;
+                  return '(' + n[0] + ',' + n[1] + ',' + n[2] + ')';
+                }),
+              };
+            }
+            function n() {
+              var t, e, n, r;
+              u.activeStructure.isSet() &&
+                ((e = u.activeStructure.record.getUnpStart()),
+                (r = u.activeStructure.record.getUnpEnd()),
+                (t = (n = l.xScale)(2) - n(1)),
+                (e = n(e) - t / 2),
+                (n = n(r) - e + t / 2),
+                (r = u.container.find('.pv3d-pv-structure-bar')).css('display', 'block'),
+                r.css('left', e + 'px'),
+                r.css('width', n + 'px'));
+            }
+            function s() {
+              return u.container.find('.pv3d-pv-highlight-bar');
+            }
+            function c() {
+              return '.variation-y.axis.left text, .variation-y.axis.right text';
+            }
+            function A() {
+              u.pv.registerCallback('variantDataUpdated', function (t) {
+                o.forEach(function (t) {
+                  x(t) && (t.click(), t.click());
+                });
+              });
+            }
+            function h(t, e) {
+              0 < t.length && t.attr('class', t.attr('class').replace(' ' + e, ''));
+            }
+            function p(t) {
+              t = t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (t, e, n, r) {
+                return e + e + n + n + r + r;
+              });
+              t = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);
+              return t ? [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)] : null;
+            }
+            function d() {
+              var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0],
+                r = {};
+              return (
+                g().forEach(function (n) {
+                  'features' in n.categoryViewer ||
+                    (!t &&
+                      (n.name === u.settings.pvMappedStructuresCat.id ||
+                        n.name === u.settings.pvMappedStructuresCat.idPredicted ||
+                        n.name === u.settings.pvMappedStructuresCat.idProvided)) ||
+                    ((r[n.name] = []),
+                    n.data.forEach(function (e) {
+                      var t = n.tracks.filter(function (t) {
+                        return t.type === e.type;
+                      })[0];
+                      r[n.name].push({
+                        type: e.type,
+                        begin: e.begin,
+                        end: e.end,
+                        description: e.description,
+                        internalId: e.internalId,
+                        categoryTitle: n.header.text(),
+                        trackTitle: t.titleContainer.text(),
+                      });
+                    }));
+                }),
+                r
+              );
+            }
+            function f() {
+              u.pvContainer.find(y.svgIconSelector).each(function (t, e) {
+                function i(t) {
+                  var e = t.closest('div').find('.up_pftv_track'),
+                    t = u.pv.getTrackData(e),
+                    n = t.map(function (t) {
+                      return e.find('.up_pftv_feature[name="' + t.internalId + '"]').css('stroke');
+                    });
+                  return { trackData: t, trackColors: n };
+                }
+                $(e)
+                  .off()
+                  .on('click', function (t) {
+                    var n, e, r;
+                    u.lm.moleculeLoaded() &&
+                      ((t = $(t.target)),
+                      (t = (e = t).is('svg') ? e : e.closest('svg')),
+                      l.deselectFeature(),
+                      x(t)
+                        ? (u.activeFeature.unset(), h(t, 'selected'))
+                        : ((n = { trackData: [], trackColors: [] }),
+                          0 < t.closest('.up_pftv_category-tracks').length
+                            ? ((e = i(t)),
+                              (n.trackData = n.trackData.concat(e.trackData)),
+                              (n.trackColors = n.trackColors.concat(e.trackColors)))
+                            : ((e = t.closest('.up_pftv_category')),
+                              C(t, u.settings.pvVariationCat.clazz)
+                                ? ((r = a(e.parent())),
+                                  (n.trackData = r.catData),
+                                  (n.trackColors = r.catColors))
+                                : e
+                                    .find('.up_pftv_category-tracks ' + y.svgIconSelector)
+                                    .each(function (t, e) {
+                                      e = i($(e));
+                                      (n.trackData = n.trackData.concat(e.trackData)),
+                                        (n.trackColors = n.trackColors.concat(e.trackColors));
+                                    })),
+                          u.activeFeature.unset(),
+                          u.activeFeature.set(n.trackData, n.trackColors),
+                          t.attr('class', t.attr('class') + ' selected')));
+                  });
+              }),
+                u.pvContainer.find(c()).each(function (t, e) {
+                  $(e)
+                    .off()
+                    .on('click', function (t) {
+                      var e = g().filter(function (t) {
+                          return 'features' in t.categoryViewer;
+                        })[0].categoryViewer.features,
+                        n = $(t.target)
+                          .parent()
+                          .attr('class')
+                          .match(/up_pftv_aa_([^ ]*)/)[1],
+                        r = ('loss' === (n = 'd' === n ? 'del' : n) && (n = '*'), []),
+                        i = [];
+                      e.forEach(function (t) {
+                        t.variants.forEach(function (t) {
+                          var e;
+                          t.alternativeSequence === n &&
+                            ((e = u.container
+                              .find('.up_pftv_variant[name="' + t.internalId + '"]')
+                              .attr('fill')),
+                            r.push(t),
+                            i.push('(' + p(e).join(',') + ')'));
+                        });
+                      }),
+                        0 < i.length ? u.activeFeature.set(r, i) : u.activeFeature.unset();
+                    });
+                });
+            }
+            function g() {
+              return l.categories;
+            }
+            function m() {
+              return l;
+            }
+            return {
+              initialize: function (t) {
+                (u = t.globals),
+                  void 0 !== t.opts.highlightByHovering &&
+                    (r.highlightByHovering = t.opts.highlightByHovering);
+                var o,
+                  e = t.fasta.split('\n').slice(1).join(''),
+                  n = [];
+                'pdbRecords' in u &&
+                  ((o = { sequence: e, features: [] }),
+                  u.pdbRecords.forEach(function (e, n) {
+                    var r = void 0,
+                      t = e.getSource(),
+                      i = '',
+                      r =
+                        'PDB' === t
+                          ? u.settings.pvMappedStructuresCat.id
+                          : 'SMR' === t || 'AF' === t
+                            ? ((i = t + ': '), u.settings.pvMappedStructuresCat.idPredicted)
+                            : u.settings.pvMappedStructuresCat.idProvided;
+                    e.getObservedRanges().forEach(function (t) {
+                      t = e.getSeqRangeFromObservedRange(t);
+                      o.features.push({
+                        category: r,
+                        type:
+                          '' + i + e.getPdbId().toUpperCase() + ':' + e.getChainId().toUpperCase(),
+                        description: '\n' + e.getDescription(),
+                        color: u.settings.colors.pvStructureObserved,
+                        ftId: n,
+                        begin: t[0],
+                        end: t[1],
+                      });
+                    }),
+                      e.getUnobservedRanges().forEach(function (t) {
+                        o.features.push({
+                          category: r,
+                          type: e.getPdbId().toUpperCase() + ':' + e.getChainId().toUpperCase(),
+                          description: e.getDescription(),
+                          color: u.settings.colors.pvStructureUnobserved,
+                          ftId: n,
+                          begin: Math.max(e.getUnpStart(), e.mapPosStructToUnp(t.start)),
+                          end: Math.min(e.mapPosStructToUnp(t.end), e.getUnpEnd()),
+                        });
+                      });
+                  }),
+                  (n = [
+                    {
+                      source: 'SIFTS API',
+                      useExtension: !1,
+                      url: 'data:text/plain,' + encodeURI(JSON.stringify(o)),
+                    },
+                  ]),
+                  t.opts.customDataSources &&
+                    (t.opts.customDataSources.forEach(function (t) {
+                      void 0 === t.url &&
+                        (t.url = 'data:text/plain,' + encodeURI(JSON.stringify(t.data)));
+                    }),
+                    (n = n.concat(t.opts.customDataSources)))),
+                  (void 0 === t.opts.exclusions || t.opts.exclusions.indexOf(E) < 0) &&
+                    n.push(
+                      (function (t) {
+                        var e = void 0;
+                        e =
+                          void 0 !== u.uniprotId
+                            ? { source: 'PREDICT PROTEIN', useExtension: !1, url: B }
+                            : {
+                                source: 'PREDICT PROTEIN',
+                                payload: JSON.stringify({ protein: { sequence: t } }),
+                                contentType: 'application/json',
+                                url: B.replace(/\/$/, ''),
+                                unpack: function (t) {
+                                  return t.data;
+                                },
+                              };
+                        return e;
+                      })(e),
+                    ),
+                  (l = new w(
+                    v({}, t.opts, {
+                      el: document.getElementById(u.pvContainerId),
+                      uniprotacc: u.uniprotId,
+                      sequence: u.opts.sequence,
+                      defaultSources: !0,
+                      customDataSources: n,
+                    }),
+                  )),
+                  (e = i()).removeClass('pv3d-invisible'),
+                  e.attr('href', 'http://www.uniprot.org/uniprot/' + u.uniprotId),
+                  e.find('.detail').text(u.uniprotId);
+              },
+              registerCallback: function (t, e) {
+                l.getDispatcher().on(t, function (t) {
+                  e(t);
+                });
+              },
+              getPlugin: m,
+              getTrackData: function (t) {
+                for (var e = g(), n = 0; n < e.length; n++)
+                  for (var r = e[n], i = 0; i < r.tracks.length; i++) {
+                    var o = r.tracks[i];
+                    if (u.pvContainer.find(o.trackContainer[0]).is(t)) return o.data;
+                  }
+              },
+              modifyHtmlStructure: function () {
+                var t;
+                0 === u.pvContainer.find('.pv3d-pv-bars').length &&
+                  ((t = $('<div class="pv3d-pv-bars"></div>').appendTo(
+                    u.pvContainer.find('.up_pftv_category-container'),
+                  )).append('<div class="pv3d-pv-highlight-bar"></div>'),
+                  t.append('<div class="pv3d-pv-structure-bar"></div>')),
+                  e();
+              },
+              createOverlaySymbolsAndLinks: e,
+              highlightActiveStructure: n,
+              highlightActivePosition: function (t) {
+                var e = l.xScale,
+                  t = u.activeStructure.record.mapPosPdbToUnp(t),
+                  n = e(t),
+                  e = e(t + 1) - n;
+                (t = s()).css('display', 'block'),
+                  t.css('left', n - e / 2 + 'px'),
+                  t.css('width', e + 'px');
+              },
+              dehighlightActivePosition: function () {
+                s().css('display', 'none');
+              },
+              registerCallbacksAndEvents: function () {
+                var e;
+                u.pv.registerCallback('featureSelected', function (t) {
+                  var e;
+                  t.feature.category === u.settings.pvMappedStructuresCat.id ||
+                  t.feature.category === u.settings.pvMappedStructuresCat.idPredicted ||
+                  t.feature.category === u.settings.pvMappedStructuresCat.idProvided
+                    ? ((e = u.pdbRecords[t.feature.ftId]),
+                      u.activeStructure.set(e.getPdbId(), e.getChainId()),
+                      u.activeFeature.overlay(),
+                      l.deselectFeature())
+                    : (0 === (e = t.color).indexOf('#') && (e = 'rgb(' + p(t.color).join() + ')'),
+                      u.activeFeature.set([t.feature], [e]));
+                }),
+                  u.pv.registerCallback('featureDeselected', function (t) {
+                    u.activeFeature.unset();
+                  }),
+                  u.pv.registerCallback('regionHighlighted', function (t) {
+                    u.activeHighlight.set(t.begin, t.end);
+                  }),
+                  u.pvContainer.find('.up_pftv_category-viewer').each(function (t, e) {
+                    var n = !1;
+                    $(e)
+                      .mousedown(function () {
+                        n = !1;
+                      })
+                      .mousemove(function () {
+                        n = !0;
+                      })
+                      .mouseup(function () {
+                        var t = n;
+                        (n = !1), t || u.activeHighlight.unset();
+                      });
+                  }),
+                  f(),
+                  A(),
+                  (e = void 0),
+                  u.container
+                    .find('.up_pftv_category-viewer svg, .up_pftv_track svg, .up_pftv_aaviewer svg')
+                    .off()
+                    .on('mousemove', function (t) {
+                      (t = Math.round(u.pv.getPlugin().xScale.invert(t.offsetX))),
+                        (t = Math.max(t, 1));
+                      u.lm.highlightResidue(t),
+                        e !== t && ((e = t), u.eventEmitter.emit('sequenceMouseOn', t));
+                    })
+                    .on('mouseout', function (t) {
+                      u.lm.dehighlightAll(), u.eventEmitter.emit('sequenceMouseOff'), (e = void 0);
+                    }),
+                  u.container
+                    .find('.up_pftv_category-container')
+                    .off()
+                    .on('wheel mousemove', function (t) {
+                      ('wheel' === t.type || ('mousemove' === t.type && 1 === t.which)) &&
+                        u.pv.highlightActiveStructure();
+                    }),
+                  r.highlightByHovering &&
+                    u.container
+                      .find('path.up_pftv_feature')
+                      .off()
+                      .hover(
+                        function (t) {
+                          var e,
+                            n,
+                            r,
+                            i,
+                            t = t.target,
+                            o = t.getAttribute('name');
+                          0 !== o.indexOf(u.settings.pvMappedStructuresCat.id) &&
+                            0 !== o.indexOf(u.settings.pvMappedStructuresCat.idPredicted) &&
+                            0 !== o.indexOf(u.settings.pvMappedStructuresCat.idProvided) &&
+                            ((n = t.closest('div.up_pftv_category')),
+                            (e = $(n).parent().attr('class').replace('up_pftv_category_', '')),
+                            (n = g()
+                              .filter(function (t) {
+                                return t.name === e;
+                              })[0]
+                              .data.filter(function (t) {
+                                return t.internalId === o;
+                              })[0]),
+                            (t = $(t).css('stroke')),
+                            (r = u.activeFeature.features),
+                            void 0 === (i = u.activeFeature.colors) && (i = []),
+                            u.lm.mapFeatures(
+                              (r = void 0 === r ? [] : r).concat([n]),
+                              i.concat([t]),
+                            ));
+                        },
+                        function (t) {
+                          u.activeFeature.overlay();
+                        },
+                      );
+              },
+              deselectAllOverlayIcons: function () {
+                h(u.pvContainer.find(y.svgIconSelector), 'selected');
+              },
+              resized: function () {
+                var t = u.container.find('.pv3d-pv-bars'),
+                  e = u.pvContainer.find('.up_pftv_category-viewer');
+                0 < e.length &&
+                  (t.css('left', e.position().left + 'px'), t.css('width', e.width())),
+                  n();
+              },
+              extractAnnotationData: d,
+              setCategoriesTooltips: function (t, e) {
+                void 0 === t || t
+                  ? void 0 !== e &&
+                    e.forEach(function (t) {
+                      u.pvContainer
+                        .find('div.up_pftv_category_' + t[0] + ' a.up_pftv_category-name')
+                        .attr('title', t[1]);
+                    })
+                  : u.pvContainer.find('a.up_pftv_category-name').removeAttr('title');
+              },
+              reorderCategories: function () {
+                var t = u.pvContainer.find('.' + u.settings.pvPredictProteinCat.clazz),
+                  e = u.pvContainer.find('.' + u.settings.pvVariationCat.clazz),
+                  n = u.pvContainer.find('.' + u.settings.pvCategories.clazz),
+                  r = u.pvContainer
+                    .find('div[class*="' + u.settings.pvCategoryPrefix + '"]')
+                    .toArray(),
+                  i =
+                    (0 < t.length &&
+                      (t.detach(),
+                      0 < e.length && r.slice(-1).pop() === e[0] ? t.insertBefore(e) : n.append(t)),
+                    u.opts.categoryOrder),
+                  o = u.pvContainer.find('.' + u.settings.pvCustomCategoryContainer.clazz);
+                if (i)
+                  for (var a = i.length - 1; 0 <= a; --a) {
+                    var s = i[a],
+                      s = u.pvContainer.find($('.' + u.settings.pvCategoryPrefix + s));
+                    0 < s.length && (s.detach(), 0 < o.length ? s.insertAfter(o) : n.prepend(s));
+                  }
+              },
+              exportToCsv: function () {
+                for (
+                  var e,
+                    n,
+                    r = l.sequence.length,
+                    i =
+                      ((e = d(!0)),
+                      (n = {}),
+                      Object.keys(e).forEach(function (t) {
+                        e[t].forEach(function (t) {
+                          var e = t.categoryTitle + ' - ' + t.trackTitle;
+                          (e in n) || (n[e] = []), n[e].push(t);
+                        });
+                      }),
+                      n),
+                    o = {},
+                    t = Object.keys(i),
+                    a =
+                      (t.forEach(function (t) {
+                        var n = Array.from({ length: r }, function () {
+                          return 0;
+                        });
+                        i[t].forEach(function (t) {
+                          for (var e = t.begin; e <= t.end; ++e)
+                            n[e] = t.description || t.internalId;
+                        }),
+                          (o[t] = n);
+                      }),
+                      t.join(';') + '\n'),
+                    s = 0;
+                  s < r;
+                  ++s
+                )
+                  !(function (e) {
+                    a +=
+                      t
+                        .map(function (t) {
+                          return o[t][e];
+                        })
+                        .join(';') + '\n';
+                  })(s);
+                b(a, u.uniprotId + '.csv', 'text/plain');
+              },
+              getHeaderLinkContainer: i,
+            };
+          };
+        },
+        { './settings': 82, './svg.symbols': 83, ProtVista: 11, downloadjs: 34 },
+      ],
+      81: [
+        function (t, e, n) {
+          'use strict';
+          var r = t('./settings').useCorsForSmr,
+            i = t('./settings').corsServer,
+            o = t('./settings').urlPredictProtein;
+          function a(t, e) {
+            return void 0 === e && (e = 'GET'), $.ajax({ type: e, url: t });
+          }
+          function s(t) {
+            return 'https://alphafold.ebi.ac.uk/api/prediction/' + t;
+          }
+          e.exports = {
+            getFastaByUniprotId: function (t) {
+              return a('https://rest.uniprot.org/uniprotkb/' + t + '.fasta');
+            },
+            getUnpToPdbMapping: function (t) {
+              return a('https://www.ebi.ac.uk/pdbe/api/mappings/best_structures/' + t);
+            },
+            getUnpToSmrMapping: function (t) {
+              return a(
+                r
+                  ? i +
+                      'https://swissmodel.expasy.org/repository/uniprot/' +
+                      t +
+                      '.json?provider=swissmodel'
+                  : 'https://swissmodel.expasy.org/repository/uniprot/' +
+                      t +
+                      '.json?provider=swissmodel',
+              ).then(function (t) {
+                return t.result;
+              });
+            },
+            getUnpToAfMapping: function (t) {
+              return a(s(t));
+            },
+            getPredictProtein: function (t) {
+              return a('' + o + t + '?format=molart');
+            },
+            getObservedRanges: function (t, e) {
+              return a(
+                'https://www.ebi.ac.uk/pdbe/api/pdb/entry/polymer_coverage/' + t + '/chain/' + e,
+              );
+            },
+            getUniprotSegments: function (t) {
+              return a('https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/' + t);
+            },
+            getAfURL: s,
+            getAfCifURL: function (t) {
+              return 'https://alphafold.ebi.ac.uk/files/AF-' + t + '-F1-model_v1.cif';
+            },
+          };
+        },
+        { './settings': 82 },
+      ],
+      82: [
+        function (t, e, n) {
+          'use strict';
+          e.exports = {
+            homepage: 'https://github.com/davidhoksza/MolArt/',
+            loadAllChains: !0,
+            pvMappedStructuresCat: {
+              id: 'EXPERIMENTAL_STRUCTURES',
+              idPredicted: 'PREDICTED_STRUCTURES',
+              idProvided: 'USER_PROVIDED_STRUCTURES',
+              name: 'Experimental structures',
+              namePredicted: 'Predicted structures',
+              nameProvided: 'Provided structures',
+              clazz: 'up_pftv_category_EXPERIMENTAL_STRUCTURES',
+              clazzPred: 'up_pftv_category_PREDICTED_STRUCTURES',
+              clazzProvided: 'up_pftv_category_PROVIDED_STRUCTURES',
+            },
+            pvPredictProteinCat: {
+              id: 'PREDICT_PROTEIN',
+              clazz: 'up_pftv_category_PREDICT_PROTEIN',
+            },
+            pvVariationCat: { clazz: 'up_pftv_category_VARIATION' },
+            pvCategories: { clazz: 'up_pftv_category-container' },
+            pvCategoryPrefix: 'up_pftv_category_',
+            pvCustomCategoryContainer: { clazz: 'up_pftv_category_on_the_fly' },
+            variationColors: { min: [200, 200, 200], max: [50, 50, 50] },
+            boundaryFeatureTypes: ['DISULFID'],
+            useCorsForSmr: !1,
+            sortStructuresOptions: { id: 'id' },
+            corsServer: 'https://dobrman.ms.mff.cuni.cz/',
+            urlPredictProtein: 'https://api.predictprotein.org/v1/results/molart/',
+            colors: {
+              pvStructureObserved: '#2E86C1',
+              pvStructureUnobserved: '#BDBFC1',
+              lmHighlight: { r: 255, g: 233, b: 153 },
+            },
+            lmInitSurfaceTransparency: 15,
+            interactiveSelectionPrefix: 'interactive_sel_',
+            userSelectionPrefix: 'user_selection_',
+          };
+        },
+        {},
+      ],
+      83: [
+        function (t, e, n) {
+          'use strict';
+          var r = 'pv3d-svg-icon';
+          e.exports = {
+            svgIconSelector: '.pv3d-svg-icon',
+            arrowCircleRight:
+              '\n                <svg class="' +
+              r +
+              '" viewBox="0 0 1792 1792" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">            \n                <path d="M1413 896q0-27-18-45l-91-91-362-362q-18-18-45-18t-45 18l-91 91q-18 18-18 45t18 45l189 189h-502q-26 0-45 19t-19 45v128q0 26 19 45t45 19h502l-189 189q-19 19-19 45t19 45l91 91q18 18 45 18t45-18l362-362 91-91q18-18 18-45zm251 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/>\n                </svg>\n            ',
+            arrowCircleLeft:
+              '\n                <svg class="' +
+              r +
+              '" viewBox="0 0 24 28" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">            \n                <path d="M20 15v-2c0-0.547-0.453-1-1-1h-7.844l2.953-2.953c0.187-0.187 0.297-0.438 0.297-0.703s-0.109-0.516-0.297-0.703l-1.422-1.422c-0.187-0.187-0.438-0.281-0.703-0.281s-0.516 0.094-0.703 0.281l-7.078 7.078c-0.187 0.187-0.281 0.438-0.281 0.703s0.094 0.516 0.281 0.703l7.078 7.078c0.187 0.187 0.438 0.281 0.703 0.281s0.516-0.094 0.703-0.281l1.422-1.422c0.187-0.187 0.281-0.438 0.281-0.703s-0.094-0.516-0.281-0.703l-2.953-2.953h7.844c0.547 0 1-0.453 1-1zM24 14c0 6.625-5.375 12-12 12s-12-5.375-12-12 5.375-12 12-12 12 5.375 12 12z"></path>\n                </svg>\n            ',
+            controllerPrevious:
+              '\n        <svg class="' +
+              r +
+              '" viewBox="0 0 20 20" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">            \n        <path d="M14.959 4.571l-7.203 4.949c0 0-0.279 0.201-0.279 0.481s0.279 0.479 0.279 0.479l7.203 4.951c0.572 0.38 1.041 0.099 1.041-0.626v-9.609c0-0.727-0.469-1.008-1.041-0.625zM6 4h-1c-0.553 0-1 0.048-1 0.6v10.8c0 0.552 0.447 0.6 1 0.6h1c0.553 0 1-0.048 1-0.6v-10.8c0-0.552-0.447-0.6-1-0.6z"></path>\n        </svg>    \n    ',
+            controllerNext:
+              '\n        <svg class="' +
+              r +
+              '" viewBox="0 0 20 20" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">            \n        <path d="M12.244 9.52l-7.203-4.949c-0.572-0.383-1.041-0.102-1.041 0.625v9.609c0 0.725 0.469 1.006 1.041 0.625l7.203-4.951c0 0 0.279-0.199 0.279-0.478s-0.279-0.481-0.279-0.481zM14 4h1c0.553 0 1 0.048 1 0.6v10.8c0 0.552-0.447 0.6-1 0.6h-1c-0.553 0-1-0.048-1-0.6v-10.8c0-0.552 0.447-0.6 1-0.6z"></path>\n        </svg>    \n    ',
+            download:
+              '\n    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="768" height="768" viewBox="0 0 768 768">\n        <path fill="#000" d="M672 448c-19.2 0-32 12.8-32 32v128c0 19.2-12.8 32-32 32h-448c-19.2 0-32-12.8-32-32v-128c0-19.2-12.8-32-32-32s-32 12.8-32 32v128c0 54.4 41.6 96 96 96h448c54.4 0 96-41.6 96-96v-128c0-19.2-12.8-32-32-32z"></path>\n        <path fill="#000" d="M361.6 502.4c3.2 3.2 6.4 6.4 9.6 6.4 3.2 3.2 9.6 3.2 12.8 3.2s9.6 0 12.8-3.2c3.2-3.2 6.4-3.2 9.6-6.4l160-160c12.8-12.8 12.8-32 0-44.8s-32-12.8-44.8 0l-105.6 105.6v-307.2c0-19.2-12.8-32-32-32s-32 12.8-32 32v307.2l-105.6-105.6c-12.8-12.8-32-12.8-44.8 0s-12.8 32 0 44.8l160 160z"></path>\n    </svg>     \n    ',
+            createJQSvgIcon: function (t, e, n, r, i) {
+              t = $(t);
+              return (
+                t.css('top', e + 'px'),
+                t.css('left', n + 'px'),
+                r && t.css('width', r + 'px'),
+                i && t.css('height', r + 'px'),
+                t
+              );
+            },
+          };
+        },
+        {},
+      ],
+      MolArt: [
+        function (g, t, e) {
+          'use strict';
+          function n(t, e) {
+            if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function');
+          }
+          g('./css/styles.css');
+          var r,
+            l = g('downloadjs'),
+            c =
+              (window.$ ||
+                ((r = g('jquery')), (window.$ = r), window.jQuery || (window.jQuery = window.$)),
+              g('events')),
+            m = g('./lm.controller.js'),
+            v = g('./pv.controller.js'),
+            b = g('./services'),
+            y = g('./pdb.mapping'),
+            w = g('./svg.symbols');
+          g('http').globalAgent;
+          (i.prototype.set = function (e, n) {
+            var t = this;
+            if (this.pdbId !== e || this.chainId !== n) {
+              var r = this.globals.pdbRecords.filter(function (t) {
+                return t.idMatch(e, n);
+              });
+              if (0 === r.length)
+                return (
+                  console.warn('Selected PDB ID and chain did not match any record.'),
+                  Promise.resolve()
+                );
+              (this.record = r[0]),
+                (this.pdbId = this.record.getPdbId()),
+                (this.chainId = this.record.getChainId()),
+                (this.source = this.record.getSource());
+              var i,
+                o,
+                a,
+                s = this;
+              return (
+                (i = r[0]),
+                (o = this.globals),
+                (a = o.lm.loadRecord(i)),
+                o.settings.loadAllChains &&
+                  o.pdbRecords.forEach(function (t) {
+                    t.getPdbId() === i.getPdbId() &&
+                      t.getId() !== i.getId() &&
+                      (a = a.then(function () {
+                        return o.lm.loadRecord(t, { focus: !1, hideOthers: !1 });
+                      }));
+                  }),
+                a
+                  .then(
+                    function () {
+                      t.globals.lm.updateHeader(),
+                        t.globals.pv.highlightActiveStructure(),
+                        t.globals.activeFeature.overlay(),
+                        t.globals.lm.hideErrorMessage(),
+                        t.globals.eventEmitter.emit('structureLoaded');
+                    },
+                    function (t) {
+                      throw (console.log(t), s.globals.lm.showErrorMessage(t), t);
+                    },
+                  )
+                  .then(function () {
+                    t.globals.opts.alphaFoldConfidence &&
+                    ('AF' == t.source ||
+                      ('USER' == t.source &&
+                        t.globals.opts.alphaFoldConfidence.applyToUserStructures))
+                      ? t.globals.container.find('.confidence').css('display', 'inline-block')
+                      : t.globals.container.find('.confidence').css('display', 'none');
+                  })
+              );
+            }
+          }),
+            (i.prototype.getSeqStrRange = function () {
+              if (!this.isSet()) throw new Error('No structure loaded.');
+              var e = this.record;
+              return this.record.getObservedRanges().map(function (t) {
+                return e.getSeqRangeFromObservedRange(t);
+              });
+            }),
+            (i.prototype.isSet = function () {
+              return void 0 !== this.pdbId;
+            }),
+            (i.prototype.getPyMolFileName = function () {
+              var t = this.globals.opts.pyMOLExportFileName,
+                e = this.record.getSource();
+              return t && t[e]
+                ? t[e].replace('{id}', this.pdbId).replace('{chain}', this.chainId)
+                : this.pdbId + '_' + this.chainId + '.py';
+            }),
+            (i.prototype.exportToPymol = function () {
+              var c = this,
+                e = this.globals,
+                A =
+                  "import __main__\n__main__.pymol_argv = ['pymol', '-qei']\nimport pymol\npymol.finish_launching()\nfrom pymol import cmd\ncmd.delete('all')\n";
+              function h(t) {
+                return e.opts.pyMolCategoriesLabels && t in e.opts.pyMolCategoriesLabels
+                  ? e.opts.pyMolCategoriesLabels[t]
+                  : t;
+              }
+              var p = function (t) {
+                  return h(t)
+                    .replace('&', 'and')
+                    .replace(/[^a-zA-Z0-9_]/g, '_');
+                },
+                t = this.record.getSource();
+              if ('PDB' === t || 'USER' === t)
+                A += "cmd.load('" + this.record.getCoordinatesFile() + "')\n";
+              else if ('SMR' === t) {
+                var n = this.record
+                    .getCoordinatesFile()
+                    .replace(this.globals.settings.corsServer, ''),
+                  r =
+                    this.globals.uniprotId +
+                    '.' +
+                    this.record.getPdbId() +
+                    '.' +
+                    this.record.getChainId() +
+                    '.' +
+                    this.record.getPdbStart() +
+                    '-' +
+                    this.record.getPdbEnd();
+                A += "cmd.load('" + n + "', '" + r + "', 0, 'pdb')\n";
+              } else {
+                if ('AF' !== t) throw Error('Unknown structure source');
+                n = e.activeStructure.record.getCoordinatesFile();
+                A += "cmd.load('" + n + "', '" + this.globals.uniprotId + "', 0, 'cif')\n";
+              }
+              A += 'cmd.set("orthoscopic", "on")\n';
+              var i,
+                o = this.globals.pv.extractAnnotationData(),
+                a = {};
+              for (i in o) a[p(i)] = o[i];
+              var d = '_full_residues',
+                f = '_c-alpha',
+                s =
+                  (Object.keys(a).forEach(function (l) {
+                    var u = {};
+                    a[l].forEach(function (t) {
+                      (n = l),
+                        (e = t.type),
+                        (r = h(e)),
+                        (r = 'CHAIN' === e ? 'CHAIN_' : r) == n && (r += '_');
+                      var e = p(r),
+                        n = e + d,
+                        r = e + f,
+                        e = p('' + t.type + t.begin + '-' + t.end),
+                        i = e + d,
+                        e = e + f,
+                        o = c.record.mapPosUnpToPdb(t.begin),
+                        a = c.record.mapPosUnpToPdb(t.end),
+                        o = c.globals.lm.getAuthSeqNumberRange(c.record, o, a),
+                        a = void 0,
+                        s = void 0;
+                      1 === o.length
+                        ? ((a = o[0]), (s = o[0]))
+                        : 1 < o.length && ((a = o[0]), (s = o[o.length - 1])),
+                        void 0 !== a &&
+                          void 0 !== s &&
+                          (n in u || ((u[n] = []), (u[r] = [])),
+                          u[n].push(i),
+                          u[r].push(e),
+                          (o =
+                            'chain ' +
+                            c.chainId +
+                            ' and ' +
+                            (g('./settings').boundaryFeatureTypes.indexOf(t.type) < 0
+                              ? 'resi ' + a + '-' + s
+                              : '(resi ' + a + ') or (resi ' + s + ')')),
+                          (A =
+                            A +
+                            "cmd.select('" +
+                            i +
+                            "', '" +
+                            o +
+                            "')\ncmd.select('" +
+                            e +
+                            "', '" +
+                            ('(' + o + ') and name CA') +
+                            "')\n"));
+                    }),
+                      Object.keys(u).forEach(function (t) {
+                        return (A += "cmd.group('" + t + "', '" + u[t].join(' ') + "')\n");
+                      }),
+                      (A += "cmd.group('" + l + "', '" + Object.keys(u).join(' ') + "')\n");
+                  }),
+                  this.globals.lm.getVisualsInteractive());
+              Object.keys(s).forEach(function (t) {
+                var n = s[t].selectionDef,
+                  e = n.structureNumbers,
+                  e = (e =
+                    e && 0 !== e.length
+                      ? e
+                      : n.sequenceNumbers.map(function (t) {
+                          return c.record.mapPosUnpToPdb(t);
+                        }))
+                    .map(function (t) {
+                      return c.globals.lm.getAuthSeqNumber(c.record, t);
+                    })
+                    .filter(function (t, e) {
+                      return (
+                        void 0 === t &&
+                          console.warn(
+                            'Sequence-structure mapping not found for sequence position ' +
+                              n.sequenceNumbers[e] +
+                              '.',
+                          ),
+                        void 0 !== t
+                      );
+                    }),
+                  e = 'chain ' + c.chainId + ' and (resi ' + e.join(' or resi ') + ')';
+                A =
+                  A +
+                  "cmd.select('" +
+                  t +
+                  d +
+                  "', '" +
+                  e +
+                  "')\ncmd.select('" +
+                  t +
+                  f +
+                  "', '" +
+                  ('(' + e + ') and name CA') +
+                  "')\n";
+              }),
+                l(A, this.getPyMolFileName(), 'text/plain');
+            });
+          var E = i;
+          function i(t) {
+            n(this, i),
+              (this.pdbId = void 0),
+              (this.chainId = void 0),
+              (this.record = void 0),
+              (this.source = void 0),
+              (this.globals = t);
+          }
+          (o.prototype.set = function (t, e) {
+            (this.features = t), (this.colors = e), this.overlay();
+          }),
+            (o.prototype.unset = function () {
+              (this.features = void 0),
+                (this.colors = void 0),
+                this.overlay(),
+                this.globals.activeHighlight.overlay();
+            }),
+            (o.prototype.overlay = function () {
+              this.features
+                ? this.globals.lm.mapFeatures(this.features, this.colors)
+                : this.globals.lm.unmapFeature(),
+                this.globals.pv.deselectAllOverlayIcons();
+            });
+          var B = o;
+          function o(t) {
+            n(this, o), (this.features = void 0), (this.colors = void 0), (this.globals = t);
+          }
+          (a.prototype.set = function (t, e) {
+            (this.begin = t), (this.end = e), this.overlay();
+          }),
+            (a.prototype.unset = function () {
+              (this.begin = void 0), (this.end = void 0), this.overlay();
+            }),
+            (a.prototype.isSet = function () {
+              return void 0 !== this.begin;
+            }),
+            (a.prototype.overlay = function () {
+              this.isSet()
+                ? (this.globals.pv.deselectAllOverlayIcons(),
+                  this.globals.lm.highlightRegion(this.begin, this.end))
+                : this.globals.lm.groupSelected() || this.globals.lm.resetVisuals();
+            });
+          var C = a;
+          function a(t) {
+            n(this, a), (this.begin = void 0), (this.end = void 0), (this.globals = t);
+          }
+          function x(t) {
+            $('#' + t + ' .pv3d-loader-container').remove();
+          }
+          function s(t) {
+            (e = t),
+              Object.keys(e).forEach(function (t) {
+                'string' == typeof e[t] && (e[t] = e[t].trim());
+              });
+            var e,
+              A = !1,
+              h = {
+                lmCallbackRegistered: !1,
+                pv: v(),
+                lm: m(),
+                eventEmitter: new c.EventEmitter(),
+                afConfident: void 0,
+                opts: {},
+                settings: g('./settings'),
+              };
+            if (
+              ((h.activeStructure = new E(h)),
+              (h.activeFeature = new B(h)),
+              (h.activeHighlight = new C(h)),
+              (h.uniprotId = t.uniprotId),
+              (h.sequence = t.sequence),
+              void 0 !== h.uniprotId && void 0 !== h.sequence)
+            )
+              throw new Error('UniProt ID and sequence are mutually exclusive!');
+            (h.containerId = t.containerId),
+              (h.pvContainerId = h.containerId + 'ProtVista'),
+              (h.lmContainerId = h.containerId + 'LiteMol'),
+              (n = h.containerId),
+              $('#' + n).append(
+                '<div class="pv3d-loader-container"><div class="pv3d-loader"></div></div>',
+              ),
+              (this.globals = h),
+              0 === $('#' + h.containerId).height() &&
+                $('#' + h.containerId).css('height', '100vh'),
+              (h.container = jQuery('<div class="pv-inner-container"></div>').appendTo(
+                $('#' + h.containerId),
+              )),
+              (h.downloadMessage = $(
+                '\n            <div class="message-container"> \n                <div class="message">               \n                                \n                    <div class="content center-items">\n                      <button class="ui button pymol">\n                           PyMOL\n                      </button>\n                      <button class="ui button csv">\n                           CSV\n                      </button>\n                    </div>\n                </div>\n            </div>\n        ',
+              ).appendTo(h.container)),
+              h.downloadMessage.click(function () {
+                h.downloadMessage.css('display', 'none');
+              }),
+              h.downloadMessage.find('.pymol').click(function () {
+                h.activeStructure.exportToPymol(), h.downloadMessage.css('display', 'none');
+              }),
+              h.downloadMessage.find('.csv').click(function () {
+                h.pv.exportToCsv(), h.downloadMessage.css('display', 'none');
+              });
+            var n = $('<div class="pv3d-pv"></div>').appendTo(h.container),
+              r = $('<div class="pv3d-lm"></div>').appendTo(h.container),
+              i =
+                ((h.splitBar = $('<div class="pv3d-split-bar"></div>')),
+                (h.errorMessageContainer = $(
+                  '\n        <div class="message-container">\n            <div class="message">.</div>\n        </div>',
+                ).appendTo(h.container)),
+                (h.lmErrorMessageContainer = $(
+                  '\n        <div class="message-container">\n            <a href="#" class="pv3d-error-close-button"></a>\n            <div class="message">.</div>            \n        </div>',
+                ).appendTo(r)),
+                h.container.append(n),
+                h.container.append(h.splitBar),
+                h.container.append(r),
+                h.container.append(
+                  '<span class="logo ui label"><a href="' +
+                    h.settings.homepage +
+                    '" target="_blank">MolArt</a></span>',
+                ),
+                $(
+                  '        \n        <div class="pv3d-header pv3d-header-pv">\n                <a class="ui label unp-link pv3d-invisible" href="" target="_blank">\n                    UniProt:\n                    <div class="detail"></div>\n                </a>\n        </div>\n        ',
+                )),
+              o = $(
+                '        \n        <div class="pv3d-header pv3d-header-lm">\n            \n            <div class="pv3d-button pv3d-download" title="Export to PyMol">\n                ' +
+                  w.download +
+                  '\n            </div>\n            \n            <a class="ui label pdb-link pv3d-invisible" href="" target="_blank">                    \n                <div class="detail"></div>\n            </a>\n            <div class="lm-list">\n                <div class="lm-pdb-id-list ui search selection dropdown">\n                    <div class="text"></div>\n                    <i class="dropdown icon"></i>\n                </div>\n                :\n                <div class="lm-pdb-chain-list ui search selection dropdown">\n                    <div class="text"></div>\n                    <i class="dropdown icon"></i>\n                </div>\n            </div>\n            <div class="user-highlights ui selection dropdown">\n                <div class="text"></div>                    \n                <i class="dropdown icon"></i>\n            </div>\n            <div class="ui button confidence">\n                <div class="text af-confident">Show confident regions</div>\n                <div class="text af-all" style="display: none">Show all regions</div>\n            </div>      \n        </div>\n        ',
+              ),
+              a =
+                (h.opts.alphaFoldConfidence &&
+                  (h.afConfident = !h.opts.alphaFoldConfidence.startWithAll),
+                o.find('.confidence').on('click', function () {
+                  var t, e;
+                  null != h.opts.alphaFoldConfidence &&
+                    ((h.afConfident = !h.afConfident),
+                    (t = o.find('.af-confident')),
+                    (e = o.find('.af-all')),
+                    h.afConfident
+                      ? (t.css('display', 'none'), e.css('display', 'block'))
+                      : (t.css('display', 'block'), e.css('display', 'none')),
+                    h.lm.setAFConfidenceVisibility());
+                }),
+                o.find('.lm-list')),
+              s = w.createJQSvgIcon(w.controllerPrevious, 0, 0),
+              l = w.createJQSvgIcon(w.controllerNext, 0, 0),
+              s =
+                (s.addClass('shift-left'),
+                l.addClass('shift-right'),
+                a.prepend(s),
+                a.append(l),
+                n.append(i),
+                r.append(o),
+                (h.pvContainer = $(
+                  '<div id="' + h.pvContainerId + '" class="pv-container pv3d-content"></div>',
+                )),
+                (h.lmContainer = $(
+                  '\n        <div class="lm-container pv3d-content">\n            <div id="' +
+                    h.lmContainerId +
+                    '" class="lm-component-container">\n            </div>\n            <div class="pv3d-footer">\n                <div style="display: table; width: 100%;">\n                    <div style="display: table-row;"></div>                    \n                        \x3c!--<div style="display: table-cell; width: 1px; padding-right: 10px">--\x3e\n                            \x3c!--<label>Transparency: </label>--\x3e\n                        \x3c!--</div>                    --\x3e\n                        <div style="display: table-cell;">\n                        <div class="ui segment transparency-slider-container">\n                                <div class="ui range transparency-slider"></div>\n                            </div>\n                            \x3c!--<input class="pv3d-lm-transparency-slider" type="range" value="30" min="0" max="100">                            --\x3e\n                        </div>                    \n                </div>\n            </div>\n        </div>\n        ',
+                )),
+                n.append(h.pvContainer),
+                r.append(h.lmContainer),
+                h.container
+                  .find('.pv3d-content')
+                  .css('height', 'calc(100% - ' + i.outerHeight(!0) + 'px)'),
+                h.lmContainer.find('.pv3d-footer')),
+              a =
+                (h.lmContainer
+                  .find('.lm-component-container')
+                  .css('height', 'calc(100% - ' + s.outerHeight(!0) + 'px)'),
+                $(
+                  '<iframe style="height: 0; background-color: transparent; margin: 0; padding: 0; overflow: hidden; border-width: 0; position: absolute; width: 100%;"></iframe>',
+                ));
+            function u() {
+              var t = h.container.find('.pv3d-header.pv3d-header-pv').outerHeight();
+              h.pvContainer.css('top', t + 'px');
+              var e = h.container.offset().top - h.pvContainer.offset().top + t;
+              h.container.find('.pv3d-header').css('top', e + 'px'),
+                h.container.find('.logo').css('top', e + 4 + 'px'),
+                h.container.find('.pv3d-lm .message-container').css('top', e + 'px'),
+                h.lmContainer.css('top', e + t + 'px');
+            }
+            function p(t) {
+              var e,
+                n,
+                t = !(0 < arguments.length && void 0 !== t) || t;
+              (t && !A) ||
+                ((e = h.container.find('.pv3d-pv').width()),
+                (n = h.container.find('.pv3d-lm').width()),
+                h.container.find('.pv3d-header.pv3d-header-pv').width(e),
+                h.container.find('.pv3d-header.pv3d-header-lm').width(n),
+                h.lmContainer.width(n),
+                u(),
+                (e = h.container.find('.pv3d-header').outerHeight()),
+                (n = h.lmContainer.find('.pv3d-footer').height()),
+                (n = (e = h.container.height() - e) - n),
+                h.lmContainer.find('.lm-component-container').height(n),
+                h.lmContainer.height(e),
+                t && h.pv.resized());
+            }
+            function d(t, e) {
+              var n = [];
+              return b.getUnpToSmrMapping(t).then(
+                function (t) {
+                  return (
+                    0 !== t.structures.length &&
+                      (n = t.structures.map(function (t) {
+                        return y.pdbMapping(t, 'SMR');
+                      })),
+                    (n =
+                      e.smrIds && 0 < e.smrIds.length
+                        ? n.filter(function (t) {
+                            return t.isPDB() || 0 <= e.smrIds.indexOf(t.getPdbId());
+                          })
+                        : n).sort(function (t, e) {
+                      return e.getCoverage() - t.getCoverage();
+                    }),
+                    n
+                  );
+                },
+                function (t) {
+                  return [];
+                },
+              );
+            }
+            function f(t) {
+              var e = [];
+              return b.getUnpToAfMapping(t).then(
+                function (t) {
+                  return (e =
+                    t !== {} && 0 < t.length
+                      ? t.map(function (t) {
+                          return y.pdbMapping(t, 'AF');
+                        })
+                      : e);
+                },
+                function (t) {
+                  return [];
+                },
+              );
+            }
+            n.append(a),
+              a[0].contentWindow.addEventListener('resize', function (t) {
+                p();
+              }),
+              h.splitBar.mousedown(function (t) {
+                t.preventDefault(),
+                  h.container.mousemove(function (t) {
+                    var e;
+                    t.preventDefault(),
+                      (t =
+                        (((t = t).pageX - h.container.offset().left) / h.container.width()) * 100),
+                      (e = h.splitBar.width()),
+                      $(h.container.find('.pv3d-pv')).css(
+                        'width',
+                        'calc(' + t + '% - ' + e / 2 + 'px)',
+                      ),
+                      $(h.container.find('.pv3d-lm')).css(
+                        'width',
+                        'calc(' + (100 - t) + '% - ' + e / 2 + 'px)',
+                      ),
+                      window.dispatchEvent(new Event('resize')),
+                      p();
+                  });
+              }),
+              h.container.mouseup(function () {
+                h.container.unbind('mousemove'), h.pv.highlightActiveStructure();
+              }),
+              h.container.on('scroll', function () {
+                u();
+              }),
+              h.container.find('.pv3d-button.pv3d-download').on('click', function () {
+                h.downloadMessage.css('display', 'block');
+              }),
+              $(window).on('resize', function () {
+                p();
+              }),
+              h.container.find('.pv3d-error-close-button').on('click', function () {
+                $(this).parent().css('display', 'none');
+              }),
+              (function (u) {
+                h.opts = u;
+                return (function (t) {
+                  return (
+                    t.sequenceStructureMapping
+                      ? function (t) {
+                          return (
+                            (h.pdbRecords = t.sequenceStructureMapping.map(function (t) {
+                              var e = y.pdbMapping(t, 'USER'),
+                                t = t.coverage.map(function (t) {
+                                  return new y.ObservedRange(t);
+                                });
+                              return e.setObservedRanges(t), e;
+                            })),
+                            Promise.resolve()
+                          );
+                        }
+                      : function (a) {
+                          var i = !0;
+                          return b
+                            .getUnpToPdbMapping(a.uniprotId)
+                            .then(
+                              function (t) {
+                                (h.pdbRecords =
+                                  ((n = t[a.uniprotId].map(function (t) {
+                                    return y.pdbMapping(t, 'PDB');
+                                  })),
+                                  (r = []),
+                                  n.forEach(function (t) {
+                                    var e = (function (t, e) {
+                                      for (var n = 0; n < e.length; n++)
+                                        if (
+                                          t.getId() === e[n].getId() &&
+                                          t.isPDB() === e[n].isPDB()
+                                        )
+                                          return n;
+                                      return -1;
+                                    })(t, r);
+                                    0 <= e
+                                      ? n[e].setTaxId(n[e].getTaxId() + ',' + t.getTaxId())
+                                      : r.push(t);
+                                  }),
+                                  r)),
+                                  a.pdbIds &&
+                                    0 < a.pdbIds.length &&
+                                    ((t = a.pdbIds),
+                                    (o = {}),
+                                    t.forEach(function (t) {
+                                      var e = (t = t.toLowerCase().trim()),
+                                        n = void 0,
+                                        r = t.indexOf(':');
+                                      0 < r &&
+                                        ((e = t.substring(0, r).trim()),
+                                        (n = t.substring(r + 1).trim())),
+                                        Object.keys(o).indexOf(e) < 0 && (o[e] = []),
+                                        void 0 !== n && o[e].indexOf(n) < 0 && o[e].push(n);
+                                    }),
+                                    (i = o),
+                                    (h.pdbRecords = h.pdbRecords.filter(function (t) {
+                                      var e = t.getPdbId().toLowerCase(),
+                                        t = t.getChainId().toLowerCase();
+                                      return (
+                                        0 <= Object.keys(i).indexOf(e) &&
+                                        (0 === i[e].length || 0 <= i[e].indexOf(t))
+                                      );
+                                    })));
+                                var n,
+                                  r,
+                                  i,
+                                  o,
+                                  t = h.pdbRecords.map(function (t) {
+                                    return b.getObservedRanges(t.getPdbId(), t.getChainId());
+                                  });
+                                return Promise.all(t)
+                                  .then(function (t) {
+                                    for (var e = 0; e < t.length; e++) {
+                                      var n = t[e][
+                                        h.pdbRecords[e].getPdbId()
+                                      ].molecules[0].chains[0].observed.map(function (t) {
+                                        return new y.ObservedRange(t);
+                                      });
+                                      h.pdbRecords[e].setObservedRanges(n);
+                                    }
+                                  })
+                                  .then(function () {
+                                    var r = h.pdbRecords
+                                        .map(function (t) {
+                                          return t.getPdbId();
+                                        })
+                                        .filter(function (t, e, n) {
+                                          return n.indexOf(t) === e;
+                                        }),
+                                      t = r.map(function (t) {
+                                        return b.getUniprotSegments(t);
+                                      });
+                                    return Promise.all(t).then(function (n) {
+                                      h.pdbRecords.forEach(function (t) {
+                                        var e = r.indexOf(t.getPdbId());
+                                        t.parseInsertedRanges(n[e], h.uniprotId);
+                                      });
+                                    });
+                                  });
+                              },
+                              function (t) {
+                                return (
+                                  h.pdbRecords || (h.pdbRecords = []),
+                                  (i = !1),
+                                  Promise.all([f(a.uniprotId), d(a.uniprotId, a)]).then(
+                                    function (t) {
+                                      h.pdbRecords = h.pdbRecords.concat(t[0]).concat(t[1]);
+                                    },
+                                  )
+                                );
+                              },
+                            )
+                            .then(function () {
+                              var t, e, n, r;
+                              return (
+                                h.pdbRecords || (h.pdbRecords = []),
+                                a.alwaysLoadPredicted && i
+                                  ? ((t = []),
+                                    (e = f(a.uniprotId)),
+                                    (n = d(a.uniprotId, a)),
+                                    Array.isArray(a.alwaysLoadPredicted)
+                                      ? (0 <=
+                                          (r = a.alwaysLoadPredicted.map(function (t) {
+                                            return t.toUpperCase();
+                                          })).indexOf('SMR') && t.push(n),
+                                        0 <= r.indexOf('AF') && t.push(e))
+                                      : (t = [e, n]),
+                                    Promise.all(t).then(function (t) {
+                                      var e = !0,
+                                        n = !1,
+                                        r = void 0;
+                                      try {
+                                        for (
+                                          var i, o = t[Symbol.iterator]();
+                                          !(e = (i = o.next()).done);
+                                          e = !0
+                                        ) {
+                                          var a = i.value;
+                                          h.pdbRecords = h.pdbRecords.concat(a);
+                                        }
+                                      } catch (t) {
+                                        (n = !0), (r = t);
+                                      } finally {
+                                        try {
+                                          !e && o.return && o.return();
+                                        } finally {
+                                          if (n) throw r;
+                                        }
+                                      }
+                                    }))
+                                  : Promise.resolve()
+                              );
+                            })
+                            .then(function () {
+                              0 === h.pdbRecords.length
+                                ? delete h.pdbRecords
+                                : (h.pdbRecords = (function (t, e, n) {
+                                    if (
+                                      e.sortStructures &&
+                                      e.sortStructures === n.sortStructuresOptions.id
+                                    )
+                                      return t.sort(function (t, e) {
+                                        return t.getId() < e.getId()
+                                          ? -1
+                                          : t.getId() == e.getId()
+                                            ? 0
+                                            : 1;
+                                      });
+                                    return t;
+                                  })(h.pdbRecords, a, h.settings));
+                            });
+                        }
+                  )(t);
+                })((h.uniprotId, u))
+                  .then(function () {
+                    if (h.opts.uniprotId) return b.getFastaByUniprotId(h.opts.uniprotId);
+                    if (h.opts.sequence) return Promise.resolve('\n' + h.opts.sequence);
+                    throw Error("Either 'uniprotId' or 'sequence' parameter needs to be provided.");
+                  })
+                  .then(
+                    function (e) {
+                      if (
+                        (h.pv.initialize({ globals: h, fasta: e, opts: u }),
+                        h.lm.initialize({ globals: h }),
+                        'pdbRecords' in h ||
+                          (h.lm.showErrorMessage(
+                            'No PDB mapping or Swissprot or AlphaFold model available for UniprotId ' +
+                              h.uniprotId,
+                          ),
+                          h.eventEmitter.emit('pvReady'),
+                          (A = !0)),
+                        'pdbRecords' in h)
+                      ) {
+                        var t = u.defaultStructureId,
+                          n = h.pdbRecords[0];
+                        if (t) {
+                          var r = !1,
+                            i = !0,
+                            e = !1,
+                            o = void 0;
+                          try {
+                            for (
+                              var a, s = h.pdbRecords[Symbol.iterator]();
+                              !(i = (a = s.next()).done);
+                              i = !0
+                            ) {
+                              var l = a.value;
+                              if (l.getPdbId().toLowerCase() === t.toLowerCase()) {
+                                (n = l), (r = !0);
+                                break;
+                              }
+                            }
+                          } catch (t) {
+                            (e = !0), (o = t);
+                          } finally {
+                            try {
+                              !i && s.return && s.return();
+                            } finally {
+                              if (e) throw o;
+                            }
+                          }
+                          r ||
+                            console.warn(
+                              'Default structure required (' + t + ') but not found in',
+                              h.pdbRecords,
+                            );
+                        }
+                        h.activeStructure.set(n.getPdbId(), n.getChainId()).then(function () {
+                          h.eventEmitter.emit('lmReady');
+                        }),
+                          h.pv.getPlugin().getDispatcher().on('ready', c),
+                          0 < h.pv.getPlugin().categories.length && c();
+                      }
+                    },
+                    function (t) {
+                      var e;
+                      (e = 'UniProt record ' + h.uniprotId + ' could not be retrieved.'),
+                        x(h.containerId),
+                        (h.errorMessageContainer.find('.message')[0].innerHTML = e),
+                        h.errorMessageContainer.css('display', 'block'),
+                        h.eventEmitter.emit('pvReady');
+                    },
+                  );
+                function c() {
+                  h.pvContainer
+                    .find(
+                      '.up_pftv_category_PREDICTED_STRUCTURES .up_pftv_track-header,.up_pftv_category_EXPERIMENTAL_STRUCTURES .up_pftv_track-header',
+                    )
+                    .css('text-transform', 'uppercase'),
+                    h.pv.modifyHtmlStructure(),
+                    h.pv.resized(),
+                    h.pv.registerCallbacksAndEvents(),
+                    h.pv.setCategoriesTooltips(u.enableCategoriesTooltips, u.categoriesTooltips),
+                    h.pv.reorderCategories(u),
+                    h.eventEmitter.emit('pvReady'),
+                    (A = !0),
+                    p();
+                }
+              })(t).then(function () {
+                var t;
+                (t = h.container.find('.pv3d-header')),
+                  h.container
+                    .find('.pv3d-content')
+                    .css('height', 'calc(100% - ' + t.outerHeight(!0) + 'px)'),
+                  x(h.containerId);
+              });
+          }
+          (s.prototype.destroy = function () {
+            this.getLmController().destroy(), $('#' + this.globals.containerId).empty();
+          }),
+            (s.prototype.loaded = function () {
+              try {
+                return this.getLmController().getPlugin().moleculeLoaded();
+              } catch (t) {
+                return !1;
+              }
+            }),
+            (s.prototype.getGlobals = function () {
+              return this.globals;
+            }),
+            (s.prototype.getPvController = function () {
+              return this.getGlobals().pv;
+            }),
+            (s.prototype.getLmController = function () {
+              return this.getGlobals().lm;
+            }),
+            (s.prototype.on = function (t, e) {
+              this.globals.eventEmitter.on(t, e);
+            }),
+            (s.prototype.highlightInSequence = function (t, e) {
+              this.getPvController().getPlugin().highlightRegion(t, t),
+                e &&
+                  (this.getPvController().getPlugin().zoomIn(),
+                  this.getPvController().highlightActiveStructure());
+            }),
+            (s.prototype.deHighlightInSequence = function () {
+              this.getPvController().resetHighlight();
+            }),
+            (s.prototype.highlightInStructure = function (t) {
+              this.getLmController().highlightResidue(t);
+            }),
+            (s.prototype.hideSequenceView = function (t) {
+              $(this.globals.pvContainer).css('display', 'none'),
+                $(this.globals.lmContainer).css('width', '100%');
+            }),
+            (s.prototype.focusInStructure = function (t) {
+              var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0;
+              this.getLmController().focusResidue(t, e);
+            }),
+            (s.prototype.deHighlightInStructure = function () {
+              this.getLmController().dehighlightAll();
+            }),
+            (s.prototype.structureLoaded = function () {
+              return this.globals.activeStructure.isSet();
+            }),
+            (s.prototype.getSeqStrRanges = function () {
+              return this.globals.activeStructure.getSeqStrRange();
+            }),
+            (t.exports = s);
+        },
+        {
+          './css/styles.css': 75,
+          './lm.controller.js': 77,
+          './pdb.mapping': 79,
+          './pv.controller.js': 80,
+          './services': 81,
+          './settings': 82,
+          './svg.symbols': 83,
+          downloadjs: 34,
+          events: 35,
+          http: 64,
+          jquery: 40,
+        },
+      ],
+    },
+    {},
+    ['MolArt'],
+  )('MolArt');
+});
diff --git a/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx b/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx
index dc0d34ca..e70d0683 100644
--- a/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx
+++ b/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx
@@ -1,12 +1,14 @@
 import { contextMenuSelector } from '@/redux/contextMenu/contextMenu.selector';
-// import { useAppDispatch } from '@/redux/hooks/useAppDispatch';
+import { useAppDispatch } from '@/redux/hooks/useAppDispatch';
 import { useAppSelector } from '@/redux/hooks/useAppSelector';
 import React from 'react';
 import { twMerge } from 'tailwind-merge';
 import { searchedBioEntityElementUniProtIdSelector } from '@/redux/bioEntity/bioEntity.selectors';
+import { openMolArtModalById } from '@/redux/modal/modal.slice';
+import { closeContextMenu } from '@/redux/contextMenu/contextMenu.slice';
 
 export const ContextMenu = (): React.ReactNode => {
-  // const dispatch = useAppDispatch();
+  const dispatch = useAppDispatch();
   const { isOpen, coordinates } = useAppSelector(contextMenuSelector);
   const unitProtId = useAppSelector(searchedBioEntityElementUniProtIdSelector);
 
@@ -16,6 +18,13 @@ export const ContextMenu = (): React.ReactNode => {
     return isUnitProtIdAvailable() ? unitProtId : 'no UnitProt ID available';
   };
 
+  const handleOpenMolArtClick = (): void => {
+    if (isUnitProtIdAvailable()) {
+      dispatch(closeContextMenu());
+      dispatch(openMolArtModalById(unitProtId));
+    }
+  };
+
   return (
     <div
       className={twMerge(
@@ -25,14 +34,16 @@ export const ContextMenu = (): React.ReactNode => {
       // eslint-disable-next-line no-magic-numbers
       style={{ left: `${coordinates[0]}px`, top: `${coordinates[1]}px` }}
     >
-      <div
+      <button
         className={twMerge(
-          'cursor-pointer',
+          'cursor-pointer text-xs font-normal',
           !isUnitProtIdAvailable() ? 'cursor-not-allowed text-greyscale-700' : '',
         )}
+        onClick={handleOpenMolArtClick}
+        type="button"
       >
         Open MolArt ({getUnitProtId()})
-      </div>
+      </button>
     </div>
   );
 };
diff --git a/src/components/FunctionalArea/Modal/Modal.component.tsx b/src/components/FunctionalArea/Modal/Modal.component.tsx
index 4ca533ed..c7a65a98 100644
--- a/src/components/FunctionalArea/Modal/Modal.component.tsx
+++ b/src/components/FunctionalArea/Modal/Modal.component.tsx
@@ -6,6 +6,7 @@ import { Icon } from '@/shared/Icon';
 import { twMerge } from 'tailwind-merge';
 import { MODAL_ROLE } from './Modal.constants';
 import { OverviewImagesModal } from './OverviewImagesModal';
+import { MolArtModal } from './MolArtModal/MolArtModal.component';
 
 export const Modal = (): React.ReactNode => {
   const dispatch = useAppDispatch();
@@ -32,6 +33,7 @@ export const Modal = (): React.ReactNode => {
             </button>
           </div>
           {isOpen && modalName === 'overview-images' && <OverviewImagesModal />}
+          {isOpen && modalName === 'mol-art' && <MolArtModal />}
         </div>
       </div>
     </div>
diff --git a/src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx b/src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx
new file mode 100644
index 00000000..9a841361
--- /dev/null
+++ b/src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx
@@ -0,0 +1,43 @@
+import * as React from 'react';
+import { useAppSelector } from '@/redux/hooks/useAppSelector';
+import { currentSelectedBioEntityIdSelector } from '@/redux/modal/modal.selector';
+import { useEffect } from 'react';
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+declare function require(name: string): any;
+
+export const MolArtModal: React.FC = () => {
+  const uniprot = useAppSelector(currentSelectedBioEntityIdSelector);
+  const MolArt = require('MolArt');
+
+  // useEffect(() => {
+  //   const script = document.createElement('script');
+
+  //   script.src = '/molart.js';
+  //   script.async = true;
+
+  //   document.body.appendChild(script);
+
+  //   return () => {
+  //     document.body.removeChild(script);
+  //   };
+  // }, []);
+
+  useEffect(() => {
+    const molart = new MolArt({
+      uniprotId: uniprot,
+      containerId: 'molArtContainer',
+    });
+
+    // eslint-disable-next-line no-console
+    // console.log(molart.destroy(), 'testow molart');
+
+    return () => {
+      molart.destroy();
+    };
+  }, [uniprot, MolArt]);
+
+  return (
+    <div className="flex h-full w-full items-center justify-center bg-white" id="molArtContainer" />
+  );
+};
diff --git a/src/components/FunctionalArea/Modal/MolArtModal/index.ts b/src/components/FunctionalArea/Modal/MolArtModal/index.ts
new file mode 100644
index 00000000..405af4c2
--- /dev/null
+++ b/src/components/FunctionalArea/Modal/MolArtModal/index.ts
@@ -0,0 +1 @@
+export { MolArtModal } from './MolArtModal.component';
diff --git a/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx b/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx
index 4fddb0e3..19571c28 100644
--- a/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx
+++ b/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx
@@ -68,8 +68,8 @@ describe('MapAdditionalOptions - component', () => {
 
     const actions = store.getActions();
     expect(actions[FIRST_ARRAY_ELEMENT]).toStrictEqual({
-      payload: undefined,
-      type: 'modal/openOverviewImagesModal',
+      payload: 0,
+      type: 'modal/openOverviewImagesModalById',
     });
   });
 });
diff --git a/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts b/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts
index 3c4fbb64..8b784426 100644
--- a/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts
+++ b/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts
@@ -12,12 +12,13 @@ import Stroke from 'ol/style/Stroke';
 import Style from 'ol/style/Style';
 import { useMemo } from 'react';
 import { useSelector } from 'react-redux';
+import { Feature } from 'ol';
 import { getLineFeature } from './getLineFeature';
 
 const getReactionsLines = (reactions: Reaction[]): LinePoint[] =>
   reactions.map(({ lines }) => lines.map(({ start, end }): LinePoint => [start, end])).flat();
 
-export const useOlMapReactionsLayer = (): VectorLayer<VectorSource<Geometry>> => {
+export const useOlMapReactionsLayer = (): VectorLayer<VectorSource<Feature<Geometry>>> => {
   const pointToProjection = usePointToProjection();
   const reactions = useSelector(allReactionsSelectorOfCurrentMap);
   const reactionsLines = getReactionsLines(reactions);
diff --git a/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts b/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts
index e42c06b2..be06232a 100644
--- a/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts
+++ b/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts
@@ -1,6 +1,5 @@
 import { getMultiBioEntity } from '@/redux/bioEntity/bioEntity.thunks';
 import { setCurrentSelectedBioEntityId } from '@/redux/contextMenu/contextMenu.slice';
-// import { openBioEntityDrawerById } from '@/redux/drawer/drawer.slice';
 import { AppDispatch } from '@/redux/store';
 import { ElementSearchResult } from '@/types/models';
 
diff --git a/src/redux/map/map.constants.ts b/src/redux/map/map.constants.ts
index e02cb78f..5a4cd084 100644
--- a/src/redux/map/map.constants.ts
+++ b/src/redux/map/map.constants.ts
@@ -16,6 +16,8 @@ export const BACKGROUND_ID_DEFAULT: number = 0;
 
 export const OVERVIEW_IMAGE_ID_DEFAULT: number = 0;
 
+export const MOL_ART_UNIPROT_ID_DEFAULT: string = '';
+
 export const MAP_DATA_INITIAL_STATE: MapData = {
   projectId: PROJECT_ID,
   meshId: '',
diff --git a/src/redux/modal/modal.constants.ts b/src/redux/modal/modal.constants.ts
index 2266911d..8d8f27bd 100644
--- a/src/redux/modal/modal.constants.ts
+++ b/src/redux/modal/modal.constants.ts
@@ -1,4 +1,4 @@
-import { OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants';
+import { MOL_ART_UNIPROT_ID_DEFAULT, OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants';
 import { ModalState } from './modal.types';
 
 export const MODAL_INITIAL_STATE: ModalState = {
@@ -8,4 +8,7 @@ export const MODAL_INITIAL_STATE: ModalState = {
   overviewImagesState: {
     imageId: OVERVIEW_IMAGE_ID_DEFAULT,
   },
+  molArtState: {
+    uniprotId: MOL_ART_UNIPROT_ID_DEFAULT,
+  },
 };
diff --git a/src/redux/modal/modal.mock.ts b/src/redux/modal/modal.mock.ts
index 2f202d4b..47c46050 100644
--- a/src/redux/modal/modal.mock.ts
+++ b/src/redux/modal/modal.mock.ts
@@ -1,4 +1,4 @@
-import { OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants';
+import { MOL_ART_UNIPROT_ID_DEFAULT, OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants';
 import { ModalState } from './modal.types';
 
 export const MODAL_INITIAL_STATE_MOCK: ModalState = {
@@ -8,4 +8,7 @@ export const MODAL_INITIAL_STATE_MOCK: ModalState = {
   overviewImagesState: {
     imageId: OVERVIEW_IMAGE_ID_DEFAULT,
   },
+  molArtState: {
+    uniprotId: MOL_ART_UNIPROT_ID_DEFAULT,
+  },
 };
diff --git a/src/redux/modal/modal.reducers.ts b/src/redux/modal/modal.reducers.ts
index b5534465..e707efc9 100644
--- a/src/redux/modal/modal.reducers.ts
+++ b/src/redux/modal/modal.reducers.ts
@@ -23,3 +23,15 @@ export const openOverviewImagesModalByIdReducer = (
     imageId: action.payload,
   };
 };
+
+export const openMolArtModalByIdReducer = (
+  state: ModalState,
+  action: PayloadAction<string | undefined>,
+): void => {
+  state.isOpen = true;
+  state.modalName = 'mol-art';
+  state.modalTitle = 'MolArt';
+  state.molArtState = {
+    uniprotId: action.payload,
+  };
+};
diff --git a/src/redux/modal/modal.selector.ts b/src/redux/modal/modal.selector.ts
index c233d253..22768142 100644
--- a/src/redux/modal/modal.selector.ts
+++ b/src/redux/modal/modal.selector.ts
@@ -1,5 +1,5 @@
 import { createSelector } from '@reduxjs/toolkit';
-import { OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants';
+import { OVERVIEW_IMAGE_ID_DEFAULT, MOL_ART_UNIPROT_ID_DEFAULT } from '../map/map.constants';
 import { rootSelector } from '../root/root.selectors';
 
 export const modalSelector = createSelector(rootSelector, state => state.modal);
@@ -10,3 +10,8 @@ export const currentOverviewImageId = createSelector(
   modalSelector,
   modal => modal?.overviewImagesState.imageId || OVERVIEW_IMAGE_ID_DEFAULT,
 );
+
+export const currentSelectedBioEntityIdSelector = createSelector(
+  modalSelector,
+  modal => modal?.molArtState.uniprotId || MOL_ART_UNIPROT_ID_DEFAULT,
+);
diff --git a/src/redux/modal/modal.slice.ts b/src/redux/modal/modal.slice.ts
index a5ae1796..32798f62 100644
--- a/src/redux/modal/modal.slice.ts
+++ b/src/redux/modal/modal.slice.ts
@@ -4,6 +4,7 @@ import {
   closeModalReducer,
   openModalReducer,
   openOverviewImagesModalByIdReducer,
+  openMolArtModalByIdReducer,
 } from './modal.reducers';
 
 const modalSlice = createSlice({
@@ -13,9 +14,11 @@ const modalSlice = createSlice({
     openModal: openModalReducer,
     closeModal: closeModalReducer,
     openOverviewImagesModalById: openOverviewImagesModalByIdReducer,
+    openMolArtModalById: openMolArtModalByIdReducer,
   },
 });
 
-export const { openModal, closeModal, openOverviewImagesModalById } = modalSlice.actions;
+export const { openModal, closeModal, openOverviewImagesModalById, openMolArtModalById } =
+  modalSlice.actions;
 
 export default modalSlice.reducer;
diff --git a/src/redux/modal/modal.types.ts b/src/redux/modal/modal.types.ts
index cad6ec7d..69c6e466 100644
--- a/src/redux/modal/modal.types.ts
+++ b/src/redux/modal/modal.types.ts
@@ -4,9 +4,14 @@ export type OverviewImagesModalState = {
   imageId?: number;
 };
 
+export type MolArtModalState = {
+  uniprotId: string | undefined;
+};
+
 export interface ModalState {
   isOpen: boolean;
   modalName: ModalName;
   modalTitle: string;
   overviewImagesState: OverviewImagesModalState;
+  molArtState: MolArtModalState;
 }
diff --git a/src/types/modal.ts b/src/types/modal.ts
index edfac1fd..cf584f9e 100644
--- a/src/types/modal.ts
+++ b/src/types/modal.ts
@@ -1 +1 @@
-export type ModalName = 'none' | 'overview-images';
+export type ModalName = 'none' | 'overview-images' | 'mol-art';
diff --git a/yarn.lock b/yarn.lock
index 3ad8581e..c630d838 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,7 +7,7 @@
   "resolved" "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz"
   "version" "1.2.6"
 
-"@adobe/css-tools@^4.3.0":
+"@adobe/css-tools@^4.3.1":
   "integrity" "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw=="
   "resolved" "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz"
   "version" "4.3.2"
@@ -25,58 +25,58 @@
     "@jridgewell/gen-mapping" "^0.3.0"
     "@jridgewell/trace-mapping" "^0.3.9"
 
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13":
-  "integrity" "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w=="
-  "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz"
-  "version" "7.22.13"
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5":
+  "integrity" "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA=="
+  "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz"
+  "version" "7.23.5"
   dependencies:
-    "@babel/highlight" "^7.22.13"
+    "@babel/highlight" "^7.23.4"
     "chalk" "^2.4.2"
 
-"@babel/compat-data@^7.22.9":
-  "integrity" "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ=="
-  "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz"
-  "version" "7.23.2"
+"@babel/compat-data@^7.23.5":
+  "integrity" "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw=="
+  "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz"
+  "version" "7.23.5"
 
 "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.8.0":
-  "integrity" "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ=="
-  "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz"
-  "version" "7.23.2"
+  "integrity" "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw=="
+  "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz"
+  "version" "7.23.6"
   dependencies:
     "@ampproject/remapping" "^2.2.0"
-    "@babel/code-frame" "^7.22.13"
-    "@babel/generator" "^7.23.0"
-    "@babel/helper-compilation-targets" "^7.22.15"
-    "@babel/helper-module-transforms" "^7.23.0"
-    "@babel/helpers" "^7.23.2"
-    "@babel/parser" "^7.23.0"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
+    "@babel/helper-compilation-targets" "^7.23.6"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helpers" "^7.23.6"
+    "@babel/parser" "^7.23.6"
     "@babel/template" "^7.22.15"
-    "@babel/traverse" "^7.23.2"
-    "@babel/types" "^7.23.0"
+    "@babel/traverse" "^7.23.6"
+    "@babel/types" "^7.23.6"
     "convert-source-map" "^2.0.0"
     "debug" "^4.1.0"
     "gensync" "^1.0.0-beta.2"
     "json5" "^2.2.3"
     "semver" "^6.3.1"
 
-"@babel/generator@^7.23.0", "@babel/generator@^7.7.2":
-  "integrity" "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g=="
-  "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz"
-  "version" "7.23.0"
+"@babel/generator@^7.23.6", "@babel/generator@^7.7.2":
+  "integrity" "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw=="
+  "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz"
+  "version" "7.23.6"
   dependencies:
-    "@babel/types" "^7.23.0"
+    "@babel/types" "^7.23.6"
     "@jridgewell/gen-mapping" "^0.3.2"
     "@jridgewell/trace-mapping" "^0.3.17"
     "jsesc" "^2.5.1"
 
-"@babel/helper-compilation-targets@^7.22.15":
-  "integrity" "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz"
-  "version" "7.22.15"
+"@babel/helper-compilation-targets@^7.23.6":
+  "integrity" "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ=="
+  "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz"
+  "version" "7.23.6"
   dependencies:
-    "@babel/compat-data" "^7.22.9"
-    "@babel/helper-validator-option" "^7.22.15"
-    "browserslist" "^4.21.9"
+    "@babel/compat-data" "^7.23.5"
+    "@babel/helper-validator-option" "^7.23.5"
+    "browserslist" "^4.22.2"
     "lru-cache" "^5.1.1"
     "semver" "^6.3.1"
 
@@ -107,10 +107,10 @@
   dependencies:
     "@babel/types" "^7.22.15"
 
-"@babel/helper-module-transforms@^7.23.0":
-  "integrity" "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz"
-  "version" "7.23.0"
+"@babel/helper-module-transforms@^7.23.3":
+  "integrity" "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ=="
+  "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz"
+  "version" "7.23.3"
   dependencies:
     "@babel/helper-environment-visitor" "^7.22.20"
     "@babel/helper-module-imports" "^7.22.15"
@@ -137,43 +137,43 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
-"@babel/helper-string-parser@^7.22.5":
-  "integrity" "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz"
-  "version" "7.22.5"
+"@babel/helper-string-parser@^7.23.4":
+  "integrity" "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ=="
+  "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz"
+  "version" "7.23.4"
 
 "@babel/helper-validator-identifier@^7.22.20":
   "integrity" "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
   "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz"
   "version" "7.22.20"
 
-"@babel/helper-validator-option@^7.22.15":
-  "integrity" "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz"
-  "version" "7.22.15"
+"@babel/helper-validator-option@^7.23.5":
+  "integrity" "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw=="
+  "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz"
+  "version" "7.23.5"
 
-"@babel/helpers@^7.23.2":
-  "integrity" "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ=="
-  "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz"
-  "version" "7.23.2"
+"@babel/helpers@^7.23.6":
+  "integrity" "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA=="
+  "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz"
+  "version" "7.23.6"
   dependencies:
     "@babel/template" "^7.22.15"
-    "@babel/traverse" "^7.23.2"
-    "@babel/types" "^7.23.0"
+    "@babel/traverse" "^7.23.6"
+    "@babel/types" "^7.23.6"
 
-"@babel/highlight@^7.22.13":
-  "integrity" "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg=="
-  "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz"
-  "version" "7.22.20"
+"@babel/highlight@^7.23.4":
+  "integrity" "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A=="
+  "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz"
+  "version" "7.23.4"
   dependencies:
     "@babel/helper-validator-identifier" "^7.22.20"
     "chalk" "^2.4.2"
     "js-tokens" "^4.0.0"
 
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0":
-  "integrity" "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw=="
-  "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz"
-  "version" "7.23.0"
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6":
+  "integrity" "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ=="
+  "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz"
+  "version" "7.23.6"
 
 "@babel/plugin-syntax-async-generators@^7.8.4":
   "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="
@@ -211,9 +211,9 @@
     "@babel/helper-plugin-utils" "^7.8.0"
 
 "@babel/plugin-syntax-jsx@^7.7.2":
-  "integrity" "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg=="
-  "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz"
-  "version" "7.22.5"
+  "integrity" "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg=="
+  "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz"
+  "version" "7.23.3"
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
@@ -267,23 +267,23 @@
     "@babel/helper-plugin-utils" "^7.14.5"
 
 "@babel/plugin-syntax-typescript@^7.7.2":
-  "integrity" "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ=="
-  "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz"
-  "version" "7.22.5"
+  "integrity" "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ=="
+  "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz"
+  "version" "7.23.3"
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
-"@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.15", "@babel/runtime@^7.9.2":
-  "integrity" "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g=="
-  "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz"
-  "version" "7.23.1"
+"@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.22.15", "@babel/runtime@^7.23.2", "@babel/runtime@^7.9.2":
+  "integrity" "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ=="
+  "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz"
+  "version" "7.23.6"
   dependencies:
     "regenerator-runtime" "^0.14.0"
 
-"@babel/runtime@7.22.15":
-  "integrity" "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA=="
-  "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz"
-  "version" "7.22.15"
+"@babel/runtime@7.23.4":
+  "integrity" "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg=="
+  "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz"
+  "version" "7.23.4"
   dependencies:
     "regenerator-runtime" "^0.14.0"
 
@@ -296,28 +296,28 @@
     "@babel/parser" "^7.22.15"
     "@babel/types" "^7.22.15"
 
-"@babel/traverse@^7.23.2":
-  "integrity" "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw=="
-  "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz"
-  "version" "7.23.2"
+"@babel/traverse@^7.23.6":
+  "integrity" "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ=="
+  "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz"
+  "version" "7.23.6"
   dependencies:
-    "@babel/code-frame" "^7.22.13"
-    "@babel/generator" "^7.23.0"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
     "@babel/helper-environment-visitor" "^7.22.20"
     "@babel/helper-function-name" "^7.23.0"
     "@babel/helper-hoist-variables" "^7.22.5"
     "@babel/helper-split-export-declaration" "^7.22.6"
-    "@babel/parser" "^7.23.0"
-    "@babel/types" "^7.23.0"
-    "debug" "^4.1.0"
+    "@babel/parser" "^7.23.6"
+    "@babel/types" "^7.23.6"
+    "debug" "^4.3.1"
     "globals" "^11.1.0"
 
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.3.3":
-  "integrity" "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg=="
-  "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz"
-  "version" "7.23.0"
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.3.3":
+  "integrity" "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg=="
+  "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz"
+  "version" "7.23.6"
   dependencies:
-    "@babel/helper-string-parser" "^7.22.5"
+    "@babel/helper-string-parser" "^7.23.4"
     "@babel/helper-validator-identifier" "^7.22.20"
     "to-fast-properties" "^2.0.0"
 
@@ -332,15 +332,15 @@
   "version" "1.5.0"
 
 "@commitlint/cli@^17.7.1":
-  "integrity" "sha512-t3N7TZq7lOeqTOyEgfGcaltHqEJf7YDlPg75MldeVPPyz14jZq/+mbGF9tueDLFX8R6RwdymrN6D+U5XwZ8Iwg=="
-  "resolved" "https://registry.npmjs.org/@commitlint/cli/-/cli-17.7.2.tgz"
-  "version" "17.7.2"
-  dependencies:
-    "@commitlint/format" "^17.4.4"
-    "@commitlint/lint" "^17.7.0"
-    "@commitlint/load" "^17.7.2"
-    "@commitlint/read" "^17.5.1"
-    "@commitlint/types" "^17.4.4"
+  "integrity" "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg=="
+  "resolved" "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz"
+  "version" "17.8.1"
+  dependencies:
+    "@commitlint/format" "^17.8.1"
+    "@commitlint/lint" "^17.8.1"
+    "@commitlint/load" "^17.8.1"
+    "@commitlint/read" "^17.8.1"
+    "@commitlint/types" "^17.8.1"
     "execa" "^5.0.0"
     "lodash.isfunction" "^3.0.9"
     "resolve-from" "5.0.0"
@@ -348,72 +348,72 @@
     "yargs" "^17.0.0"
 
 "@commitlint/config-conventional@^17.7.0":
-  "integrity" "sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw=="
-  "resolved" "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.7.0.tgz"
-  "version" "17.7.0"
+  "integrity" "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg=="
+  "resolved" "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
     "conventional-changelog-conventionalcommits" "^6.1.0"
 
-"@commitlint/config-validator@^17.6.7":
-  "integrity" "sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ=="
-  "resolved" "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.6.7.tgz"
-  "version" "17.6.7"
+"@commitlint/config-validator@^17.8.1":
+  "integrity" "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA=="
+  "resolved" "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/types" "^17.8.1"
     "ajv" "^8.11.0"
 
-"@commitlint/ensure@^17.6.7":
-  "integrity" "sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw=="
-  "resolved" "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.6.7.tgz"
-  "version" "17.6.7"
+"@commitlint/ensure@^17.8.1":
+  "integrity" "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow=="
+  "resolved" "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/types" "^17.8.1"
     "lodash.camelcase" "^4.3.0"
     "lodash.kebabcase" "^4.1.1"
     "lodash.snakecase" "^4.1.1"
     "lodash.startcase" "^4.4.0"
     "lodash.upperfirst" "^4.3.1"
 
-"@commitlint/execute-rule@^17.4.0":
-  "integrity" "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA=="
-  "resolved" "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz"
-  "version" "17.4.0"
+"@commitlint/execute-rule@^17.8.1":
+  "integrity" "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ=="
+  "resolved" "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz"
+  "version" "17.8.1"
 
-"@commitlint/format@^17.4.4":
-  "integrity" "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ=="
-  "resolved" "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz"
-  "version" "17.4.4"
+"@commitlint/format@^17.8.1":
+  "integrity" "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg=="
+  "resolved" "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/types" "^17.8.1"
     "chalk" "^4.1.0"
 
-"@commitlint/is-ignored@^17.7.0":
-  "integrity" "sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw=="
-  "resolved" "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.7.0.tgz"
-  "version" "17.7.0"
+"@commitlint/is-ignored@^17.8.1":
+  "integrity" "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g=="
+  "resolved" "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/types" "^17.8.1"
     "semver" "7.5.4"
 
-"@commitlint/lint@^17.7.0":
-  "integrity" "sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA=="
-  "resolved" "https://registry.npmjs.org/@commitlint/lint/-/lint-17.7.0.tgz"
-  "version" "17.7.0"
-  dependencies:
-    "@commitlint/is-ignored" "^17.7.0"
-    "@commitlint/parse" "^17.7.0"
-    "@commitlint/rules" "^17.7.0"
-    "@commitlint/types" "^17.4.4"
-
-"@commitlint/load@^17.7.2", "@commitlint/load@>6.1.1":
-  "integrity" "sha512-XA7WTnsjHZ4YH6ZYsrnxgLdXzriwMMq+utZUET6spbOEEIPBCDLdOQXS26P+v3TTO4hUHOEhzUquaBv3jbBixw=="
-  "resolved" "https://registry.npmjs.org/@commitlint/load/-/load-17.7.2.tgz"
-  "version" "17.7.2"
-  dependencies:
-    "@commitlint/config-validator" "^17.6.7"
-    "@commitlint/execute-rule" "^17.4.0"
-    "@commitlint/resolve-extends" "^17.6.7"
-    "@commitlint/types" "^17.4.4"
+"@commitlint/lint@^17.8.1":
+  "integrity" "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA=="
+  "resolved" "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz"
+  "version" "17.8.1"
+  dependencies:
+    "@commitlint/is-ignored" "^17.8.1"
+    "@commitlint/parse" "^17.8.1"
+    "@commitlint/rules" "^17.8.1"
+    "@commitlint/types" "^17.8.1"
+
+"@commitlint/load@^17.8.1", "@commitlint/load@>6.1.1":
+  "integrity" "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA=="
+  "resolved" "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz"
+  "version" "17.8.1"
+  dependencies:
+    "@commitlint/config-validator" "^17.8.1"
+    "@commitlint/execute-rule" "^17.8.1"
+    "@commitlint/resolve-extends" "^17.8.1"
+    "@commitlint/types" "^17.8.1"
     "@types/node" "20.5.1"
     "chalk" "^4.1.0"
     "cosmiconfig" "^8.0.0"
@@ -423,72 +423,72 @@
     "lodash.uniq" "^4.5.0"
     "resolve-from" "^5.0.0"
     "ts-node" "^10.8.1"
-    "typescript" "^4.6.4 || ^5.0.0"
+    "typescript" "^4.6.4 || ^5.2.2"
 
-"@commitlint/message@^17.4.2":
-  "integrity" "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q=="
-  "resolved" "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz"
-  "version" "17.4.2"
+"@commitlint/message@^17.8.1":
+  "integrity" "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA=="
+  "resolved" "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz"
+  "version" "17.8.1"
 
-"@commitlint/parse@^17.7.0":
-  "integrity" "sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag=="
-  "resolved" "https://registry.npmjs.org/@commitlint/parse/-/parse-17.7.0.tgz"
-  "version" "17.7.0"
+"@commitlint/parse@^17.8.1":
+  "integrity" "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw=="
+  "resolved" "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/types" "^17.8.1"
     "conventional-changelog-angular" "^6.0.0"
     "conventional-commits-parser" "^4.0.0"
 
-"@commitlint/read@^17.5.1":
-  "integrity" "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg=="
-  "resolved" "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz"
-  "version" "17.5.1"
+"@commitlint/read@^17.8.1":
+  "integrity" "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w=="
+  "resolved" "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/top-level" "^17.4.0"
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/top-level" "^17.8.1"
+    "@commitlint/types" "^17.8.1"
     "fs-extra" "^11.0.0"
     "git-raw-commits" "^2.0.11"
     "minimist" "^1.2.6"
 
-"@commitlint/resolve-extends@^17.6.7":
-  "integrity" "sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg=="
-  "resolved" "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.6.7.tgz"
-  "version" "17.6.7"
+"@commitlint/resolve-extends@^17.8.1":
+  "integrity" "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q=="
+  "resolved" "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/config-validator" "^17.6.7"
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/config-validator" "^17.8.1"
+    "@commitlint/types" "^17.8.1"
     "import-fresh" "^3.0.0"
     "lodash.mergewith" "^4.6.2"
     "resolve-from" "^5.0.0"
     "resolve-global" "^1.0.0"
 
-"@commitlint/rules@^17.7.0":
-  "integrity" "sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA=="
-  "resolved" "https://registry.npmjs.org/@commitlint/rules/-/rules-17.7.0.tgz"
-  "version" "17.7.0"
+"@commitlint/rules@^17.8.1":
+  "integrity" "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA=="
+  "resolved" "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
-    "@commitlint/ensure" "^17.6.7"
-    "@commitlint/message" "^17.4.2"
-    "@commitlint/to-lines" "^17.4.0"
-    "@commitlint/types" "^17.4.4"
+    "@commitlint/ensure" "^17.8.1"
+    "@commitlint/message" "^17.8.1"
+    "@commitlint/to-lines" "^17.8.1"
+    "@commitlint/types" "^17.8.1"
     "execa" "^5.0.0"
 
-"@commitlint/to-lines@^17.4.0":
-  "integrity" "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg=="
-  "resolved" "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz"
-  "version" "17.4.0"
+"@commitlint/to-lines@^17.8.1":
+  "integrity" "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA=="
+  "resolved" "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz"
+  "version" "17.8.1"
 
-"@commitlint/top-level@^17.4.0":
-  "integrity" "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g=="
-  "resolved" "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz"
-  "version" "17.4.0"
+"@commitlint/top-level@^17.8.1":
+  "integrity" "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA=="
+  "resolved" "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
     "find-up" "^5.0.0"
 
-"@commitlint/types@^17.4.4":
-  "integrity" "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ=="
-  "resolved" "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz"
-  "version" "17.4.4"
+"@commitlint/types@^17.8.1":
+  "integrity" "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ=="
+  "resolved" "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz"
+  "version" "17.8.1"
   dependencies:
     "chalk" "^4.1.0"
 
@@ -539,14 +539,14 @@
     "eslint-visitor-keys" "^3.3.0"
 
 "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1":
-  "integrity" "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA=="
-  "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz"
-  "version" "4.9.1"
+  "integrity" "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA=="
+  "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz"
+  "version" "4.10.0"
 
-"@eslint/eslintrc@^2.1.2":
-  "integrity" "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g=="
-  "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz"
-  "version" "2.1.2"
+"@eslint/eslintrc@^2.1.4":
+  "integrity" "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ=="
+  "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz"
+  "version" "2.1.4"
   dependencies:
     "ajv" "^6.12.4"
     "debug" "^4.3.2"
@@ -558,17 +558,17 @@
     "minimatch" "^3.1.2"
     "strip-json-comments" "^3.1.1"
 
-"@eslint/js@8.50.0":
-  "integrity" "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ=="
-  "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz"
-  "version" "8.50.0"
+"@eslint/js@8.56.0":
+  "integrity" "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A=="
+  "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz"
+  "version" "8.56.0"
 
-"@humanwhocodes/config-array@^0.11.11":
-  "integrity" "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA=="
-  "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz"
-  "version" "0.11.11"
+"@humanwhocodes/config-array@^0.11.13":
+  "integrity" "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ=="
+  "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz"
+  "version" "0.11.13"
   dependencies:
-    "@humanwhocodes/object-schema" "^1.2.1"
+    "@humanwhocodes/object-schema" "^2.0.1"
     "debug" "^4.1.1"
     "minimatch" "^3.0.5"
 
@@ -577,10 +577,10 @@
   "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
   "version" "1.0.1"
 
-"@humanwhocodes/object-schema@^1.2.1":
-  "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
-  "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
-  "version" "1.2.1"
+"@humanwhocodes/object-schema@^2.0.1":
+  "integrity" "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw=="
+  "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz"
+  "version" "2.0.1"
 
 "@istanbuljs/load-nyc-config@^1.0.0":
   "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="
@@ -815,9 +815,9 @@
   "version" "1.4.15"
 
 "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
-  "integrity" "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz"
-  "version" "0.3.19"
+  "integrity" "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q=="
+  "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz"
+  "version" "0.3.20"
   dependencies:
     "@jridgewell/resolve-uri" "^3.1.0"
     "@jridgewell/sourcemap-codec" "^1.4.14"
@@ -843,13 +843,13 @@
     "glob" "7.1.7"
 
 "@next/font@^13.5.2":
-  "integrity" "sha512-rOMki1/9BP9N93RZABiiF0EidMGgyCvNVSKvLLAnMkVh/IYk4Z827+NRuxCyRQCeT3vv/AeCiP5SFPAP10SPrQ=="
-  "resolved" "https://registry.npmjs.org/@next/font/-/font-13.5.4.tgz"
-  "version" "13.5.4"
+  "integrity" "sha512-urmUq05uCVJsBqAAJEV+xK5OTTodrSxdiG+351SOSjlWctywdBM6qX+K9pIe3K48RxjfnxlBbXjGyOJAji+pfw=="
+  "resolved" "https://registry.npmjs.org/@next/font/-/font-13.5.6.tgz"
+  "version" "13.5.6"
 
-"@next/swc-darwin-arm64@13.4.19":
-  "integrity" "sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ=="
-  "resolved" "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz"
+"@next/swc-darwin-x64@13.4.19":
+  "integrity" "sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw=="
+  "resolved" "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz"
   "version" "13.4.19"
 
 "@nodelib/fs.scandir@2.1.5":
@@ -878,7 +878,7 @@
   "resolved" "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.4.tgz"
   "version" "3.8.4"
 
-"@pkgr/utils@^2.3.1":
+"@pkgr/utils@^2.4.2":
   "integrity" "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw=="
   "resolved" "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz"
   "version" "2.4.2"
@@ -891,9 +891,9 @@
     "tslib" "^2.6.0"
 
 "@reduxjs/toolkit@^1.9.6":
-  "integrity" "sha512-Gc4ikl90ORF4viIdAkY06JNUnODjKfGxZRwATM30EdHq8hLSVoSrwXne5dd739yenP5bJxAX7tLuOWK5RPGtrw=="
-  "resolved" "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.6.tgz"
-  "version" "1.9.6"
+  "integrity" "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ=="
+  "resolved" "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz"
+  "version" "1.9.7"
   dependencies:
     "immer" "^9.0.21"
     "redux" "^4.2.1"
@@ -901,9 +901,9 @@
     "reselect" "^4.1.8"
 
 "@rushstack/eslint-patch@^1.1.3":
-  "integrity" "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA=="
-  "resolved" "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz"
-  "version" "1.5.1"
+  "integrity" "sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw=="
+  "resolved" "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz"
+  "version" "1.6.1"
 
 "@sinclair/typebox@^0.27.8":
   "integrity" "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
@@ -946,11 +946,11 @@
     "pretty-format" "^27.0.2"
 
 "@testing-library/jest-dom@^6.1.3":
-  "integrity" "sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ=="
-  "resolved" "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz"
-  "version" "6.1.3"
+  "integrity" "sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g=="
+  "resolved" "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.5.tgz"
+  "version" "6.1.5"
   dependencies:
-    "@adobe/css-tools" "^4.3.0"
+    "@adobe/css-tools" "^4.3.1"
     "@babel/runtime" "^7.9.2"
     "aria-query" "^5.0.0"
     "chalk" "^3.0.0"
@@ -960,9 +960,9 @@
     "redent" "^3.0.0"
 
 "@testing-library/react@^14.0.0":
-  "integrity" "sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg=="
-  "resolved" "https://registry.npmjs.org/@testing-library/react/-/react-14.0.0.tgz"
-  "version" "14.0.0"
+  "integrity" "sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg=="
+  "resolved" "https://registry.npmjs.org/@testing-library/react/-/react-14.1.2.tgz"
+  "version" "14.1.2"
   dependencies:
     "@babel/runtime" "^7.12.5"
     "@testing-library/dom" "^9.0.0"
@@ -994,14 +994,14 @@
   "version" "1.0.4"
 
 "@types/aria-query@^5.0.1":
-  "integrity" "sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ=="
-  "resolved" "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.2.tgz"
-  "version" "5.0.2"
+  "integrity" "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw=="
+  "resolved" "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz"
+  "version" "5.0.4"
 
 "@types/babel__core@^7.1.14":
-  "integrity" "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA=="
-  "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz"
-  "version" "7.20.2"
+  "integrity" "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="
+  "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz"
+  "version" "7.20.5"
   dependencies:
     "@babel/parser" "^7.20.7"
     "@babel/types" "^7.20.7"
@@ -1010,65 +1010,70 @@
     "@types/babel__traverse" "*"
 
 "@types/babel__generator@*":
-  "integrity" "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w=="
-  "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz"
-  "version" "7.6.5"
+  "integrity" "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw=="
+  "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz"
+  "version" "7.6.8"
   dependencies:
     "@babel/types" "^7.0.0"
 
 "@types/babel__template@*":
-  "integrity" "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ=="
-  "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz"
-  "version" "7.4.2"
+  "integrity" "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="
+  "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz"
+  "version" "7.4.4"
   dependencies:
     "@babel/parser" "^7.1.0"
     "@babel/types" "^7.0.0"
 
 "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
-  "integrity" "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw=="
-  "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz"
-  "version" "7.20.2"
+  "integrity" "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA=="
+  "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz"
+  "version" "7.20.4"
   dependencies:
     "@babel/types" "^7.20.7"
 
+"@types/downloadjs@^1.4.2":
+  "integrity" "sha512-mp3w70vsaiLRT9ix92fmI9Ob2yJAPZm6tShJtofo2uHbN11G2i6a0ApIEjBl/kv3e9V7Pv7jMjk1bUwYWvMHvA=="
+  "resolved" "https://registry.npmjs.org/@types/downloadjs/-/downloadjs-1.4.6.tgz"
+  "version" "1.4.6"
+
 "@types/graceful-fs@^4.1.3":
-  "integrity" "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw=="
-  "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz"
-  "version" "4.1.7"
+  "integrity" "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ=="
+  "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz"
+  "version" "4.1.9"
   dependencies:
     "@types/node" "*"
 
 "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1":
-  "integrity" "sha512-YIQtIg4PKr7ZyqNPZObpxfHsHEmuB8dXCxd6qVcGuQVDK2bpsF7bYNnBJ4Nn7giuACZg+WewExgrtAJ3XnA4Xw=="
-  "resolved" "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
-  "version" "3.3.2"
+  "integrity" "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg=="
+  "resolved" "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz"
+  "version" "3.3.5"
   dependencies:
     "@types/react" "*"
     "hoist-non-react-statics" "^3.3.0"
 
 "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
-  "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
-  "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz"
-  "version" "2.0.4"
+  "integrity" "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
+  "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz"
+  "version" "2.0.6"
 
 "@types/istanbul-lib-report@*":
-  "integrity" "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ=="
-  "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz"
-  "version" "3.0.1"
+  "integrity" "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="
+  "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz"
+  "version" "3.0.3"
   dependencies:
     "@types/istanbul-lib-coverage" "*"
 
 "@types/istanbul-reports@^3.0.0":
-  "integrity" "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A=="
-  "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz"
-  "version" "3.0.2"
+  "integrity" "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="
+  "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz"
+  "version" "3.0.4"
   dependencies:
     "@types/istanbul-lib-report" "*"
 
 "@types/jest@^29.5.5", "@types/jest@>= 28":
-  "integrity" "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg=="
-  "resolved" "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz"
-  "version" "29.5.5"
+  "integrity" "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ=="
+  "resolved" "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz"
+  "version" "29.5.11"
   dependencies:
     "expect" "^29.0.0"
     "pretty-format" "^29.0.0"
@@ -1083,9 +1088,9 @@
     "parse5" "^7.0.0"
 
 "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9":
-  "integrity" "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ=="
-  "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz"
-  "version" "7.0.13"
+  "integrity" "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
+  "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz"
+  "version" "7.0.15"
 
 "@types/json5@^0.0.29":
   "integrity" "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
@@ -1093,9 +1098,9 @@
   "version" "0.0.29"
 
 "@types/minimist@^1.2.0":
-  "integrity" "sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A=="
-  "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.3.tgz"
-  "version" "1.2.3"
+  "integrity" "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag=="
+  "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz"
+  "version" "1.2.5"
 
 "@types/node@*", "@types/node@20.6.2":
   "integrity" "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw=="
@@ -1103,9 +1108,11 @@
   "version" "20.6.2"
 
 "@types/node@^18.17.5":
-  "integrity" "sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA=="
-  "resolved" "https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz"
-  "version" "18.18.3"
+  "integrity" "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg=="
+  "resolved" "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz"
+  "version" "18.19.3"
+  dependencies:
+    "undici-types" "~5.26.4"
 
 "@types/node@20.5.1":
   "integrity" "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg=="
@@ -1113,19 +1120,26 @@
   "version" "20.5.1"
 
 "@types/normalize-package-data@^2.4.0":
-  "integrity" "sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A=="
-  "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz"
-  "version" "2.4.2"
+  "integrity" "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
+  "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz"
+  "version" "2.4.4"
 
 "@types/openlayers@^4.6.20":
-  "integrity" "sha512-TYgdyK1WyLFcwlFkz2A7lK0stj3MFdVZeUc6+AWCmqsAHk+0o9V8TOgMqdPpb0cVIxknHwxty/g8VawWTt/FRw=="
-  "resolved" "https://registry.npmjs.org/@types/openlayers/-/openlayers-4.6.20.tgz"
-  "version" "4.6.20"
+  "integrity" "sha512-7jCPIa4D4LV03Rttae1AEqvkIN0+nc6Snz4IgA/IjsJD5O3ONxpscqIOdp1qAGuAsikR/ZC9vrPF9np8JRc6ig=="
+  "resolved" "https://registry.npmjs.org/@types/openlayers/-/openlayers-4.6.23.tgz"
+  "version" "4.6.23"
 
 "@types/prop-types@*":
-  "integrity" "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ=="
-  "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz"
-  "version" "15.7.8"
+  "integrity" "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
+  "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz"
+  "version" "15.7.11"
+
+"@types/react-dom@^15.5.6":
+  "integrity" "sha512-5HZym3/G/kcfkvfIGhpbpqdhr117NI+io6Wl7BZO7Gt8DaixZ/JeJO+Q0Z/ZqoOzwm9SXCADGmohy9n7HcR5EQ=="
+  "resolved" "https://registry.npmjs.org/@types/react-dom/-/react-dom-15.5.21.tgz"
+  "version" "15.5.21"
+  dependencies:
+    "@types/react" "^15"
 
 "@types/react-dom@^16.8 || ^17.0 || ^18.0", "@types/react-dom@^18.0.0", "@types/react-dom@18.2.7":
   "integrity" "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA=="
@@ -1135,9 +1149,9 @@
     "@types/react" "*"
 
 "@types/react-redux@^7.1.26":
-  "integrity" "sha512-xj7d9z32p1K/eBmO+OEy+qfaWXtcPlN8f1Xk3Ne0p/ZRQ867RI5bQ/bpBtxbqU1AHNhKJSgGvld/P2myU2uYkg=="
-  "resolved" "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.27.tgz"
-  "version" "7.1.27"
+  "integrity" "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg=="
+  "resolved" "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz"
+  "version" "7.1.33"
   dependencies:
     "@types/hoist-non-react-statics" "^3.3.0"
     "@types/react" "*"
@@ -1153,6 +1167,11 @@
     "@types/scheduler" "*"
     "csstype" "^3.0.2"
 
+"@types/react@^15", "@types/react@^15.6.16":
+  "integrity" "sha512-PExkMXrnmoRHdedMzPZxdCmrG2nE6coDeDTzSR8TWHYqb150nNnRFKPNUrFlOlAjFD+Fwq3SvNiLhT4BRl8XvA=="
+  "resolved" "https://registry.npmjs.org/@types/react/-/react-15.7.28.tgz"
+  "version" "15.7.28"
+
 "@types/redux-mock-store@^1.0.6":
   "integrity" "sha512-eg5RDfhJTXuoJjOMyXiJbaDb1B8tfTaJixscmu+jOusj6adGC0Krntz09Tf4gJgXeCqCrM5bBMd+B7ez0izcAQ=="
   "resolved" "https://registry.npmjs.org/@types/redux-mock-store/-/redux-mock-store-1.0.6.tgz"
@@ -1161,14 +1180,14 @@
     "redux" "^4.0.5"
 
 "@types/scheduler@*":
-  "integrity" "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ=="
-  "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz"
-  "version" "0.16.4"
+  "integrity" "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
+  "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz"
+  "version" "0.16.8"
 
 "@types/semver@^7.3.12", "@types/semver@^7.5.0":
-  "integrity" "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw=="
-  "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz"
-  "version" "7.5.3"
+  "integrity" "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A=="
+  "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz"
+  "version" "7.5.6"
 
 "@types/sinonjs__fake-timers@8.1.1":
   "integrity" "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g=="
@@ -1176,19 +1195,19 @@
   "version" "8.1.1"
 
 "@types/sizzle@^2.3.2":
-  "integrity" "sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag=="
-  "resolved" "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz"
-  "version" "2.3.4"
+  "integrity" "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg=="
+  "resolved" "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz"
+  "version" "2.3.8"
 
 "@types/stack-utils@^2.0.0":
-  "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
-  "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz"
-  "version" "2.0.1"
+  "integrity" "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
+  "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz"
+  "version" "2.0.3"
 
 "@types/tough-cookie@*":
-  "integrity" "sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg=="
-  "resolved" "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz"
-  "version" "4.0.3"
+  "integrity" "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="
+  "resolved" "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz"
+  "version" "4.0.5"
 
 "@types/use-sync-external-store@^0.0.3":
   "integrity" "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
@@ -1196,34 +1215,34 @@
   "version" "0.0.3"
 
 "@types/yargs-parser@*":
-  "integrity" "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ=="
-  "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz"
-  "version" "21.0.1"
+  "integrity" "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
+  "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz"
+  "version" "21.0.3"
 
 "@types/yargs@^17.0.8":
-  "integrity" "sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw=="
-  "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.26.tgz"
-  "version" "17.0.26"
+  "integrity" "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog=="
+  "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz"
+  "version" "17.0.32"
   dependencies:
     "@types/yargs-parser" "*"
 
 "@types/yauzl@^2.9.1":
-  "integrity" "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw=="
-  "resolved" "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz"
-  "version" "2.10.1"
+  "integrity" "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="
+  "resolved" "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz"
+  "version" "2.10.3"
   dependencies:
     "@types/node" "*"
 
 "@typescript-eslint/eslint-plugin@^6.4.0", "@typescript-eslint/eslint-plugin@^6.7.0":
-  "integrity" "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz"
-  "version" "6.7.4"
+  "integrity" "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz"
+  "version" "6.15.0"
   dependencies:
     "@eslint-community/regexpp" "^4.5.1"
-    "@typescript-eslint/scope-manager" "6.7.4"
-    "@typescript-eslint/type-utils" "6.7.4"
-    "@typescript-eslint/utils" "6.7.4"
-    "@typescript-eslint/visitor-keys" "6.7.4"
+    "@typescript-eslint/scope-manager" "6.15.0"
+    "@typescript-eslint/type-utils" "6.15.0"
+    "@typescript-eslint/utils" "6.15.0"
+    "@typescript-eslint/visitor-keys" "6.15.0"
     "debug" "^4.3.4"
     "graphemer" "^1.4.0"
     "ignore" "^5.2.4"
@@ -1232,14 +1251,14 @@
     "ts-api-utils" "^1.0.1"
 
 "@typescript-eslint/parser@^5.4.2 || ^6.0.0", "@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.4.0", "@typescript-eslint/parser@^6.7.0":
-  "integrity" "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz"
-  "version" "6.7.4"
-  dependencies:
-    "@typescript-eslint/scope-manager" "6.7.4"
-    "@typescript-eslint/types" "6.7.4"
-    "@typescript-eslint/typescript-estree" "6.7.4"
-    "@typescript-eslint/visitor-keys" "6.7.4"
+  "integrity" "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz"
+  "version" "6.15.0"
+  dependencies:
+    "@typescript-eslint/scope-manager" "6.15.0"
+    "@typescript-eslint/types" "6.15.0"
+    "@typescript-eslint/typescript-estree" "6.15.0"
+    "@typescript-eslint/visitor-keys" "6.15.0"
     "debug" "^4.3.4"
 
 "@typescript-eslint/scope-manager@5.62.0":
@@ -1250,21 +1269,21 @@
     "@typescript-eslint/types" "5.62.0"
     "@typescript-eslint/visitor-keys" "5.62.0"
 
-"@typescript-eslint/scope-manager@6.7.4":
-  "integrity" "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz"
-  "version" "6.7.4"
+"@typescript-eslint/scope-manager@6.15.0":
+  "integrity" "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz"
+  "version" "6.15.0"
   dependencies:
-    "@typescript-eslint/types" "6.7.4"
-    "@typescript-eslint/visitor-keys" "6.7.4"
+    "@typescript-eslint/types" "6.15.0"
+    "@typescript-eslint/visitor-keys" "6.15.0"
 
-"@typescript-eslint/type-utils@6.7.4":
-  "integrity" "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz"
-  "version" "6.7.4"
+"@typescript-eslint/type-utils@6.15.0":
+  "integrity" "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz"
+  "version" "6.15.0"
   dependencies:
-    "@typescript-eslint/typescript-estree" "6.7.4"
-    "@typescript-eslint/utils" "6.7.4"
+    "@typescript-eslint/typescript-estree" "6.15.0"
+    "@typescript-eslint/utils" "6.15.0"
     "debug" "^4.3.4"
     "ts-api-utils" "^1.0.1"
 
@@ -1273,10 +1292,10 @@
   "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz"
   "version" "5.62.0"
 
-"@typescript-eslint/types@6.7.4":
-  "integrity" "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz"
-  "version" "6.7.4"
+"@typescript-eslint/types@6.15.0":
+  "integrity" "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz"
+  "version" "6.15.0"
 
 "@typescript-eslint/typescript-estree@5.62.0":
   "integrity" "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA=="
@@ -1291,13 +1310,13 @@
     "semver" "^7.3.7"
     "tsutils" "^3.21.0"
 
-"@typescript-eslint/typescript-estree@6.7.4":
-  "integrity" "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz"
-  "version" "6.7.4"
+"@typescript-eslint/typescript-estree@6.15.0":
+  "integrity" "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz"
+  "version" "6.15.0"
   dependencies:
-    "@typescript-eslint/types" "6.7.4"
-    "@typescript-eslint/visitor-keys" "6.7.4"
+    "@typescript-eslint/types" "6.15.0"
+    "@typescript-eslint/visitor-keys" "6.15.0"
     "debug" "^4.3.4"
     "globby" "^11.1.0"
     "is-glob" "^4.0.3"
@@ -1318,17 +1337,17 @@
     "eslint-scope" "^5.1.1"
     "semver" "^7.3.7"
 
-"@typescript-eslint/utils@6.7.4":
-  "integrity" "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz"
-  "version" "6.7.4"
+"@typescript-eslint/utils@6.15.0":
+  "integrity" "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz"
+  "version" "6.15.0"
   dependencies:
     "@eslint-community/eslint-utils" "^4.4.0"
     "@types/json-schema" "^7.0.12"
     "@types/semver" "^7.5.0"
-    "@typescript-eslint/scope-manager" "6.7.4"
-    "@typescript-eslint/types" "6.7.4"
-    "@typescript-eslint/typescript-estree" "6.7.4"
+    "@typescript-eslint/scope-manager" "6.15.0"
+    "@typescript-eslint/types" "6.15.0"
+    "@typescript-eslint/typescript-estree" "6.15.0"
     "semver" "^7.5.4"
 
 "@typescript-eslint/visitor-keys@5.62.0":
@@ -1339,14 +1358,19 @@
     "@typescript-eslint/types" "5.62.0"
     "eslint-visitor-keys" "^3.3.0"
 
-"@typescript-eslint/visitor-keys@6.7.4":
-  "integrity" "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA=="
-  "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz"
-  "version" "6.7.4"
+"@typescript-eslint/visitor-keys@6.15.0":
+  "integrity" "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w=="
+  "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz"
+  "version" "6.15.0"
   dependencies:
-    "@typescript-eslint/types" "6.7.4"
+    "@typescript-eslint/types" "6.15.0"
     "eslint-visitor-keys" "^3.4.1"
 
+"@ungap/structured-clone@^1.2.0":
+  "integrity" "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
+  "resolved" "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz"
+  "version" "1.2.0"
+
 "abab@^2.0.6":
   "integrity" "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
   "resolved" "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz"
@@ -1366,14 +1390,14 @@
   "version" "5.3.2"
 
 "acorn-walk@^8.0.2", "acorn-walk@^8.1.1":
-  "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
-  "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz"
-  "version" "8.2.0"
+  "integrity" "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw=="
+  "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz"
+  "version" "8.3.1"
 
 "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.1.0", "acorn@^8.4.1", "acorn@^8.8.1", "acorn@^8.9.0":
-  "integrity" "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw=="
-  "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz"
-  "version" "8.10.0"
+  "integrity" "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w=="
+  "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz"
+  "version" "8.11.2"
 
 "agent-base@6":
   "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="
@@ -1510,7 +1534,7 @@
   "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
   "version" "2.0.1"
 
-"aria-query@^5.0.0", "aria-query@^5.1.3":
+"aria-query@^5.0.0", "aria-query@^5.3.0":
   "integrity" "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A=="
   "resolved" "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz"
   "version" "5.3.0"
@@ -1537,7 +1561,7 @@
   "resolved" "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz"
   "version" "1.0.0"
 
-"array-includes@^3.1.6":
+"array-includes@^3.1.6", "array-includes@^3.1.7":
   "integrity" "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ=="
   "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz"
   "version" "3.1.7"
@@ -1553,7 +1577,7 @@
   "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
   "version" "2.1.0"
 
-"array.prototype.findlastindex@^1.2.2":
+"array.prototype.findlastindex@^1.2.3":
   "integrity" "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA=="
   "resolved" "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz"
   "version" "1.2.3"
@@ -1564,7 +1588,7 @@
     "es-shim-unscopables" "^1.0.0"
     "get-intrinsic" "^1.2.1"
 
-"array.prototype.flat@^1.3.1":
+"array.prototype.flat@^1.3.1", "array.prototype.flat@^1.3.2":
   "integrity" "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA=="
   "resolved" "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz"
   "version" "1.3.2"
@@ -1574,7 +1598,7 @@
     "es-abstract" "^1.22.1"
     "es-shim-unscopables" "^1.0.0"
 
-"array.prototype.flatmap@^1.3.1":
+"array.prototype.flatmap@^1.3.1", "array.prototype.flatmap@^1.3.2":
   "integrity" "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ=="
   "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz"
   "version" "1.3.2"
@@ -1625,10 +1649,10 @@
   "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
   "version" "1.0.0"
 
-"ast-types-flow@^0.0.7":
-  "integrity" "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
-  "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz"
-  "version" "0.0.7"
+"ast-types-flow@^0.0.8":
+  "integrity" "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
+  "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz"
+  "version" "0.0.8"
 
 "astral-regex@^2.0.0":
   "integrity" "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
@@ -1636,9 +1660,9 @@
   "version" "2.0.0"
 
 "async@^3.2.0":
-  "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
-  "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz"
-  "version" "3.2.4"
+  "integrity" "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
+  "resolved" "https://registry.npmjs.org/async/-/async-3.2.5.tgz"
+  "version" "3.2.5"
 
 "asynciterator.prototype@^1.0.0":
   "integrity" "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg=="
@@ -1684,17 +1708,17 @@
   "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz"
   "version" "1.12.0"
 
-"axe-core@^4.6.2":
-  "integrity" "sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g=="
-  "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz"
-  "version" "4.8.2"
+"axe-core@=4.7.0":
+  "integrity" "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ=="
+  "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz"
+  "version" "4.7.0"
 
 "axios-hooks@^5.0.0":
-  "integrity" "sha512-EpmObd+mW/+TqXzFWzTMwfRWmQwWMUf64tIpumOzPtxDJuUux4bwvnqSTwglR+AvwVcBLp3jKDaok3YgRuntNg=="
-  "resolved" "https://registry.npmjs.org/axios-hooks/-/axios-hooks-5.0.0.tgz"
-  "version" "5.0.0"
+  "integrity" "sha512-A047WTutYx5mYzfPc+CFblEliHLlLQ9zyrCJGtQeu5RyX0aLiAaOqqSvu2C6ts4fHFZfK9IPflqppIeIjldlrg=="
+  "resolved" "https://registry.npmjs.org/axios-hooks/-/axios-hooks-5.0.2.tgz"
+  "version" "5.0.2"
   dependencies:
-    "@babel/runtime" "7.22.15"
+    "@babel/runtime" "7.23.4"
     "dequal" "2.0.3"
     "lru-cache" "^10.0.1"
 
@@ -1715,7 +1739,7 @@
     "form-data" "^4.0.0"
     "proxy-from-env" "^1.1.0"
 
-"axobject-query@^3.1.1":
+"axobject-query@^3.2.1":
   "integrity" "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg=="
   "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz"
   "version" "3.2.1"
@@ -1800,9 +1824,9 @@
     "tweetnacl" "^0.14.3"
 
 "big-integer@^1.6.44":
-  "integrity" "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
-  "resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz"
-  "version" "1.6.51"
+  "integrity" "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="
+  "resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz"
+  "version" "1.6.52"
 
 "binary-extensions@^2.0.0":
   "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
@@ -1850,14 +1874,14 @@
   dependencies:
     "fill-range" "^7.0.1"
 
-"browserslist@^4.21.10", "browserslist@^4.21.9", "browserslist@>= 4.21.0":
-  "integrity" "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ=="
-  "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz"
-  "version" "4.22.1"
+"browserslist@^4.21.10", "browserslist@^4.22.2", "browserslist@>= 4.21.0":
+  "integrity" "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A=="
+  "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz"
+  "version" "4.22.2"
   dependencies:
-    "caniuse-lite" "^1.0.30001541"
-    "electron-to-chromium" "^1.4.535"
-    "node-releases" "^2.0.13"
+    "caniuse-lite" "^1.0.30001565"
+    "electron-to-chromium" "^1.4.601"
+    "node-releases" "^2.0.14"
     "update-browserslist-db" "^1.0.13"
 
 "bser@2.1.1":
@@ -1885,6 +1909,11 @@
     "base64-js" "^1.3.1"
     "ieee754" "^1.1.13"
 
+"builtin-modules@^3.3.0":
+  "integrity" "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw=="
+  "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz"
+  "version" "3.3.0"
+
 "builtins@^5.0.1":
   "integrity" "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ=="
   "resolved" "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz"
@@ -1916,13 +1945,14 @@
   "resolved" "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz"
   "version" "2.3.0"
 
-"call-bind@^1.0.0", "call-bind@^1.0.2":
-  "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
-  "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
-  "version" "1.0.2"
+"call-bind@^1.0.0", "call-bind@^1.0.2", "call-bind@^1.0.4", "call-bind@^1.0.5":
+  "integrity" "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ=="
+  "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz"
+  "version" "1.0.5"
   dependencies:
-    "function-bind" "^1.1.1"
-    "get-intrinsic" "^1.0.2"
+    "function-bind" "^1.1.2"
+    "get-intrinsic" "^1.2.1"
+    "set-function-length" "^1.1.1"
 
 "callsites@^3.0.0":
   "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
@@ -1953,10 +1983,10 @@
   "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
   "version" "6.3.0"
 
-"caniuse-lite@^1.0.30001406", "caniuse-lite@^1.0.30001520", "caniuse-lite@^1.0.30001541":
-  "integrity" "sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA=="
-  "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001543.tgz"
-  "version" "1.0.30001543"
+"caniuse-lite@^1.0.30001406", "caniuse-lite@^1.0.30001520", "caniuse-lite@^1.0.30001565":
+  "integrity" "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw=="
+  "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz"
+  "version" "1.0.30001570"
 
 "caseless@~0.12.0":
   "integrity" "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
@@ -2072,9 +2102,9 @@
     "restore-cursor" "^4.0.0"
 
 "cli-spinners@^2.5.0":
-  "integrity" "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ=="
-  "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz"
-  "version" "2.9.1"
+  "integrity" "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="
+  "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz"
+  "version" "2.9.2"
 
 "cli-table3@~0.6.1":
   "integrity" "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg=="
@@ -2135,6 +2165,11 @@
   "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz"
   "version" "1.0.2"
 
+"color-blend@1.0.0":
+  "integrity" "sha512-4lA+Ru3c3wDcOvcGKihqrcchqyb4nm7v4rZJpu7rFRjfGGHeJ4VZN6hNAnIuBrPkv/OBMhjBI5XDbQcb4mHtzA=="
+  "resolved" "https://registry.npmjs.org/color-blend/-/color-blend-1.0.0.tgz"
+  "version" "1.0.0"
+
 "color-convert@^1.9.0":
   "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
   "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
@@ -2149,7 +2184,7 @@
   dependencies:
     "color-name" "~1.1.4"
 
-"color-name@^1.1.4", "color-name@~1.1.4":
+"color-name@^1.0.0", "color-name@^1.1.4", "color-name@~1.1.4":
   "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
   "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
   "version" "1.1.4"
@@ -2159,6 +2194,26 @@
   "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
   "version" "1.1.3"
 
+"color-parse@^2.0.0":
+  "integrity" "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg=="
+  "resolved" "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz"
+  "version" "2.0.0"
+  dependencies:
+    "color-name" "^1.0.0"
+
+"color-rgba@^3.0.0":
+  "integrity" "sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg=="
+  "resolved" "https://registry.npmjs.org/color-rgba/-/color-rgba-3.0.0.tgz"
+  "version" "3.0.0"
+  dependencies:
+    "color-parse" "^2.0.0"
+    "color-space" "^2.0.0"
+
+"color-space@^2.0.0", "color-space@^2.0.1":
+  "integrity" "sha512-nKqUYlo0vZATVOFHY810BSYjmCARrG7e5R3UE3CQlyjJTvv5kSSmPG1kzm/oDyyqjehM+lW1RnEt9It9GNa5JA=="
+  "resolved" "https://registry.npmjs.org/color-space/-/color-space-2.0.1.tgz"
+  "version" "2.0.1"
+
 "colorette@^2.0.16", "colorette@^2.0.20":
   "integrity" "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
   "resolved" "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz"
@@ -2268,7 +2323,7 @@
   "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
   "version" "2.0.0"
 
-"core-util-is@1.0.2":
+"core-util-is@~1.0.0", "core-util-is@1.0.2":
   "integrity" "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
   "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
   "version" "1.0.2"
@@ -2348,14 +2403,14 @@
     "cssom" "~0.3.6"
 
 "csstype@^3.0.2":
-  "integrity" "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
-  "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
-  "version" "3.1.2"
+  "integrity" "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+  "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
+  "version" "3.1.3"
 
 "cypress@^13.2.0":
-  "integrity" "sha512-mpI8qcTwLGiA4zEQvTC/U1xGUezVV4V8HQCOYjlEOrVmU1etVvxOjkCXHGwrlYdZU/EPmUiWfsO3yt1o+Q2bgw=="
-  "resolved" "https://registry.npmjs.org/cypress/-/cypress-13.3.0.tgz"
-  "version" "13.3.0"
+  "integrity" "sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw=="
+  "resolved" "https://registry.npmjs.org/cypress/-/cypress-13.6.1.tgz"
+  "version" "13.6.1"
   dependencies:
     "@cypress/request" "^3.0.0"
     "@cypress/xvfb" "^1.2.4"
@@ -2415,6 +2470,11 @@
   optionalDependencies:
     "@commitlint/load" ">6.1.1"
 
+"d3@^3.4.13":
+  "integrity" "sha512-yFk/2idb8OHPKkbAL8QaOaqENNoMhIaSHZerk3oQsECwkObkCpJyjYwCe+OHiq6UEdhe1m8ZGARRRO3ljFjlKg=="
+  "resolved" "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz"
+  "version" "3.5.17"
+
 "damerau-levenshtein@^1.0.8":
   "integrity" "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
   "resolved" "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz"
@@ -2460,7 +2520,7 @@
   dependencies:
     "ms" "^2.1.1"
 
-"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4", "debug@4", "debug@4.3.4":
+"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1", "debug@^4.3.2", "debug@^4.3.4", "debug@4", "debug@4.3.4":
   "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
   "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
   "version" "4.3.4"
@@ -2501,14 +2561,14 @@
   "version" "0.7.0"
 
 "deep-equal@^2.0.5":
-  "integrity" "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA=="
-  "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz"
-  "version" "2.2.2"
+  "integrity" "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA=="
+  "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz"
+  "version" "2.2.3"
   dependencies:
     "array-buffer-byte-length" "^1.0.0"
-    "call-bind" "^1.0.2"
+    "call-bind" "^1.0.5"
     "es-get-iterator" "^1.1.3"
-    "get-intrinsic" "^1.2.1"
+    "get-intrinsic" "^1.2.2"
     "is-arguments" "^1.1.1"
     "is-array-buffer" "^3.0.2"
     "is-date-object" "^1.0.5"
@@ -2518,11 +2578,11 @@
     "object-is" "^1.1.5"
     "object-keys" "^1.1.1"
     "object.assign" "^4.1.4"
-    "regexp.prototype.flags" "^1.5.0"
+    "regexp.prototype.flags" "^1.5.1"
     "side-channel" "^1.0.4"
     "which-boxed-primitive" "^1.0.2"
     "which-collection" "^1.0.1"
-    "which-typed-array" "^1.1.9"
+    "which-typed-array" "^1.1.13"
 
 "deep-is@^0.1.3":
   "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
@@ -2559,10 +2619,10 @@
   dependencies:
     "clone" "^1.0.2"
 
-"define-data-property@^1.0.1":
-  "integrity" "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g=="
-  "resolved" "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz"
-  "version" "1.1.0"
+"define-data-property@^1.0.1", "define-data-property@^1.1.1":
+  "integrity" "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ=="
+  "resolved" "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz"
+  "version" "1.1.1"
   dependencies:
     "get-intrinsic" "^1.2.1"
     "gopd" "^1.0.1"
@@ -2573,7 +2633,7 @@
   "resolved" "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz"
   "version" "3.0.0"
 
-"define-properties@^1.1.3", "define-properties@^1.1.4", "define-properties@^1.2.0", "define-properties@^1.2.1":
+"define-properties@^1.1.3", "define-properties@^1.2.0", "define-properties@^1.2.1":
   "integrity" "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="
   "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz"
   "version" "1.2.1"
@@ -2667,6 +2727,11 @@
   dependencies:
     "is-obj" "^2.0.0"
 
+"downloadjs@^1.4.7":
+  "integrity" "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q=="
+  "resolved" "https://registry.npmjs.org/downloadjs/-/downloadjs-1.4.7.tgz"
+  "version" "1.4.7"
+
 "downshift@^8.2.3":
   "integrity" "sha512-1HkvqaMTZpk24aqnXaRDnT+N5JCbpFpW+dCogB11+x+FCtfkFX0MbAO4vr/JdXi1VYQF174KjNUveBXqaXTPtg=="
   "resolved" "https://registry.npmjs.org/downshift/-/downshift-8.2.3.tgz"
@@ -2701,10 +2766,10 @@
     "jsbn" "~0.1.0"
     "safer-buffer" "^2.1.0"
 
-"electron-to-chromium@^1.4.535":
-  "integrity" "sha512-aoCqgU6r9+o9/S7wkcSbmPRFi7OWZWiXS9rtjEd+Ouyu/Xyw5RSq2XN8s5Qp8IaFOLiRrhQCphCIjAxgG3eCAg=="
-  "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.540.tgz"
-  "version" "1.4.540"
+"electron-to-chromium@^1.4.601":
+  "integrity" "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng=="
+  "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz"
+  "version" "1.4.615"
 
 "emittery@^0.13.1":
   "integrity" "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="
@@ -2757,25 +2822,25 @@
     "is-arrayish" "^0.2.1"
 
 "es-abstract@^1.22.1":
-  "integrity" "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA=="
-  "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz"
-  "version" "1.22.2"
+  "integrity" "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA=="
+  "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz"
+  "version" "1.22.3"
   dependencies:
     "array-buffer-byte-length" "^1.0.0"
     "arraybuffer.prototype.slice" "^1.0.2"
     "available-typed-arrays" "^1.0.5"
-    "call-bind" "^1.0.2"
+    "call-bind" "^1.0.5"
     "es-set-tostringtag" "^2.0.1"
     "es-to-primitive" "^1.2.1"
     "function.prototype.name" "^1.1.6"
-    "get-intrinsic" "^1.2.1"
+    "get-intrinsic" "^1.2.2"
     "get-symbol-description" "^1.0.0"
     "globalthis" "^1.0.3"
     "gopd" "^1.0.1"
-    "has" "^1.0.3"
     "has-property-descriptors" "^1.0.0"
     "has-proto" "^1.0.1"
     "has-symbols" "^1.0.3"
+    "hasown" "^2.0.0"
     "internal-slot" "^1.0.5"
     "is-array-buffer" "^3.0.2"
     "is-callable" "^1.2.7"
@@ -2785,7 +2850,7 @@
     "is-string" "^1.0.7"
     "is-typed-array" "^1.1.12"
     "is-weakref" "^1.0.2"
-    "object-inspect" "^1.12.3"
+    "object-inspect" "^1.13.1"
     "object-keys" "^1.1.1"
     "object.assign" "^4.1.4"
     "regexp.prototype.flags" "^1.5.1"
@@ -2799,7 +2864,7 @@
     "typed-array-byte-offset" "^1.0.0"
     "typed-array-length" "^1.0.4"
     "unbox-primitive" "^1.0.2"
-    "which-typed-array" "^1.1.11"
+    "which-typed-array" "^1.1.13"
 
 "es-get-iterator@^1.1.3":
   "integrity" "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw=="
@@ -2816,7 +2881,7 @@
     "isarray" "^2.0.5"
     "stop-iteration-iterator" "^1.0.0"
 
-"es-iterator-helpers@^1.0.12":
+"es-iterator-helpers@^1.0.12", "es-iterator-helpers@^1.0.15":
   "integrity" "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g=="
   "resolved" "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz"
   "version" "1.0.15"
@@ -2837,20 +2902,20 @@
     "safe-array-concat" "^1.0.1"
 
 "es-set-tostringtag@^2.0.1":
-  "integrity" "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg=="
-  "resolved" "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz"
-  "version" "2.0.1"
+  "integrity" "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q=="
+  "resolved" "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz"
+  "version" "2.0.2"
   dependencies:
-    "get-intrinsic" "^1.1.3"
-    "has" "^1.0.3"
+    "get-intrinsic" "^1.2.2"
     "has-tostringtag" "^1.0.0"
+    "hasown" "^2.0.0"
 
 "es-shim-unscopables@^1.0.0":
-  "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w=="
-  "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
-  "version" "1.0.0"
+  "integrity" "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw=="
+  "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz"
+  "version" "1.0.2"
   dependencies:
-    "has" "^1.0.3"
+    "hasown" "^2.0.0"
 
 "es-to-primitive@^1.2.1":
   "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="
@@ -2892,6 +2957,11 @@
   optionalDependencies:
     "source-map" "~0.6.1"
 
+"eslint-compat-utils@^0.1.2":
+  "integrity" "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg=="
+  "resolved" "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz"
+  "version" "0.1.2"
+
 "eslint-config-airbnb-base@^15.0.0":
   "integrity" "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig=="
   "resolved" "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz"
@@ -2927,14 +2997,14 @@
     "eslint-plugin-react-hooks" "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705"
 
 "eslint-config-prettier@^9.0.0":
-  "integrity" "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw=="
-  "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz"
-  "version" "9.0.0"
+  "integrity" "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw=="
+  "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz"
+  "version" "9.1.0"
 
 "eslint-config-standard-with-typescript@^39.0.0":
-  "integrity" "sha512-5+SPKis3yr6T1X6wSA7HhDuumTRMrTDMcsTrIWhdZuI+sX3e8SPGZYzuJxVxdc239Yo718dEVEVyJhHI6jUjrQ=="
-  "resolved" "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.0.tgz"
-  "version" "39.1.0"
+  "integrity" "sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A=="
+  "resolved" "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.1.tgz"
+  "version" "39.1.1"
   dependencies:
     "@typescript-eslint/parser" "^6.4.0"
     "eslint-config-standard" "17.1.0"
@@ -2944,7 +3014,7 @@
   "resolved" "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz"
   "version" "17.1.0"
 
-"eslint-import-resolver-node@^0.3.6", "eslint-import-resolver-node@^0.3.7":
+"eslint-import-resolver-node@^0.3.6", "eslint-import-resolver-node@^0.3.9":
   "integrity" "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="
   "resolved" "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz"
   "version" "0.3.9"
@@ -2973,69 +3043,71 @@
   dependencies:
     "debug" "^3.2.7"
 
-"eslint-plugin-es-x@^7.1.0":
-  "integrity" "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz"
-  "version" "7.2.0"
+"eslint-plugin-es-x@^7.5.0":
+  "integrity" "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ=="
+  "resolved" "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz"
+  "version" "7.5.0"
   dependencies:
     "@eslint-community/eslint-utils" "^4.1.2"
     "@eslint-community/regexpp" "^4.6.0"
+    "eslint-compat-utils" "^0.1.2"
 
 "eslint-plugin-import@*", "eslint-plugin-import@^2.25.2", "eslint-plugin-import@^2.25.3", "eslint-plugin-import@^2.26.0", "eslint-plugin-import@^2.28.1":
-  "integrity" "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz"
-  "version" "2.28.1"
-  dependencies:
-    "array-includes" "^3.1.6"
-    "array.prototype.findlastindex" "^1.2.2"
-    "array.prototype.flat" "^1.3.1"
-    "array.prototype.flatmap" "^1.3.1"
+  "integrity" "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw=="
+  "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz"
+  "version" "2.29.1"
+  dependencies:
+    "array-includes" "^3.1.7"
+    "array.prototype.findlastindex" "^1.2.3"
+    "array.prototype.flat" "^1.3.2"
+    "array.prototype.flatmap" "^1.3.2"
     "debug" "^3.2.7"
     "doctrine" "^2.1.0"
-    "eslint-import-resolver-node" "^0.3.7"
+    "eslint-import-resolver-node" "^0.3.9"
     "eslint-module-utils" "^2.8.0"
-    "has" "^1.0.3"
-    "is-core-module" "^2.13.0"
+    "hasown" "^2.0.0"
+    "is-core-module" "^2.13.1"
     "is-glob" "^4.0.3"
     "minimatch" "^3.1.2"
-    "object.fromentries" "^2.0.6"
-    "object.groupby" "^1.0.0"
-    "object.values" "^1.1.6"
+    "object.fromentries" "^2.0.7"
+    "object.groupby" "^1.0.1"
+    "object.values" "^1.1.7"
     "semver" "^6.3.1"
-    "tsconfig-paths" "^3.14.2"
+    "tsconfig-paths" "^3.15.0"
 
 "eslint-plugin-jsx-a11y@^6.5.1", "eslint-plugin-jsx-a11y@^6.7.1":
-  "integrity" "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz"
-  "version" "6.7.1"
-  dependencies:
-    "@babel/runtime" "^7.20.7"
-    "aria-query" "^5.1.3"
-    "array-includes" "^3.1.6"
-    "array.prototype.flatmap" "^1.3.1"
-    "ast-types-flow" "^0.0.7"
-    "axe-core" "^4.6.2"
-    "axobject-query" "^3.1.1"
+  "integrity" "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA=="
+  "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz"
+  "version" "6.8.0"
+  dependencies:
+    "@babel/runtime" "^7.23.2"
+    "aria-query" "^5.3.0"
+    "array-includes" "^3.1.7"
+    "array.prototype.flatmap" "^1.3.2"
+    "ast-types-flow" "^0.0.8"
+    "axe-core" "=4.7.0"
+    "axobject-query" "^3.2.1"
     "damerau-levenshtein" "^1.0.8"
     "emoji-regex" "^9.2.2"
-    "has" "^1.0.3"
-    "jsx-ast-utils" "^3.3.3"
-    "language-tags" "=1.0.5"
+    "es-iterator-helpers" "^1.0.15"
+    "hasown" "^2.0.0"
+    "jsx-ast-utils" "^3.3.5"
+    "language-tags" "^1.0.9"
     "minimatch" "^3.1.2"
-    "object.entries" "^1.1.6"
-    "object.fromentries" "^2.0.6"
-    "semver" "^6.3.0"
+    "object.entries" "^1.1.7"
+    "object.fromentries" "^2.0.7"
 
 "eslint-plugin-n@^15.0.0 || ^16.0.0 ", "eslint-plugin-n@^16.1.0":
-  "integrity" "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz"
-  "version" "16.1.0"
+  "integrity" "sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ=="
+  "resolved" "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.4.0.tgz"
+  "version" "16.4.0"
   dependencies:
     "@eslint-community/eslint-utils" "^4.4.0"
     "builtins" "^5.0.1"
-    "eslint-plugin-es-x" "^7.1.0"
+    "eslint-plugin-es-x" "^7.5.0"
     "get-tsconfig" "^4.7.0"
     "ignore" "^5.2.4"
+    "is-builtin-module" "^3.2.1"
     "is-core-module" "^2.12.1"
     "minimatch" "^3.1.2"
     "resolve" "^1.22.2"
@@ -3090,9 +3162,9 @@
     "postcss" "^8.4.4"
 
 "eslint-plugin-testing-library@^6.0.1":
-  "integrity" "sha512-3BV6FWtLbpKFb4Y1obSdt8PC9xSqz6T+7EHB/6pSCXqVjKPoS67ck903feKMKQphd5VhrX+N51yHuVaPa7elsw=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.0.2.tgz"
-  "version" "6.0.2"
+  "integrity" "sha512-+LCYJU81WF2yQ+Xu4A135CgK8IszcFcyMF4sWkbiu6Oj+Nel0TrkZq/HvDw0/1WuO3dhDQsZA/OpEMGd0NfcUw=="
+  "resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.2.0.tgz"
+  "version" "6.2.0"
   dependencies:
     "@typescript-eslint/utils" "^5.58.0"
 
@@ -3117,18 +3189,19 @@
   "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
   "version" "3.4.3"
 
-"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", "eslint@^7.32.0 || ^8.2.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^8.0.1", "eslint@^8.49.0", "eslint@>=7.0.0", "eslint@>=8", "eslint@>=8.0.0":
-  "integrity" "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg=="
-  "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz"
-  "version" "8.50.0"
+"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", "eslint@^7.32.0 || ^8.2.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^8.0.1", "eslint@^8.49.0", "eslint@>=6.0.0", "eslint@>=7.0.0", "eslint@>=8", "eslint@>=8.0.0":
+  "integrity" "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ=="
+  "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz"
+  "version" "8.56.0"
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.6.1"
-    "@eslint/eslintrc" "^2.1.2"
-    "@eslint/js" "8.50.0"
-    "@humanwhocodes/config-array" "^0.11.11"
+    "@eslint/eslintrc" "^2.1.4"
+    "@eslint/js" "8.56.0"
+    "@humanwhocodes/config-array" "^0.11.13"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@nodelib/fs.walk" "^1.2.8"
+    "@ungap/structured-clone" "^1.2.0"
     "ajv" "^6.12.4"
     "chalk" "^4.0.0"
     "cross-spawn" "^7.0.2"
@@ -3213,6 +3286,11 @@
   "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz"
   "version" "5.0.1"
 
+"events@^1.1.1":
+  "integrity" "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw=="
+  "resolved" "https://registry.npmjs.org/events/-/events-1.1.1.tgz"
+  "version" "1.1.1"
+
 "execa@^5.0.0":
   "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="
   "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
@@ -3344,9 +3422,9 @@
   "version" "1.3.0"
 
 "fast-glob@^3.2.12", "fast-glob@^3.2.5", "fast-glob@^3.2.9", "fast-glob@^3.3.0", "fast-glob@^3.3.1":
-  "integrity" "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg=="
-  "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz"
-  "version" "3.3.1"
+  "integrity" "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow=="
+  "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz"
+  "version" "3.3.2"
   dependencies:
     "@nodelib/fs.stat" "^2.0.2"
     "@nodelib/fs.walk" "^1.2.3"
@@ -3365,9 +3443,9 @@
   "version" "2.0.6"
 
 "fastq@^1.6.0":
-  "integrity" "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw=="
-  "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz"
-  "version" "1.15.0"
+  "integrity" "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA=="
+  "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz"
+  "version" "1.16.0"
   dependencies:
     "reusify" "^1.0.4"
 
@@ -3399,6 +3477,11 @@
   dependencies:
     "flat-cache" "^3.0.4"
 
+"file-saver@^1.3.2":
+  "integrity" "sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg=="
+  "resolved" "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz"
+  "version" "1.3.8"
+
 "fill-range@^7.0.1":
   "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
   "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
@@ -3424,15 +3507,7 @@
   "resolved" "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz"
   "version" "1.1.0"
 
-"find-up@^4.0.0":
-  "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="
-  "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
-  "version" "4.1.0"
-  dependencies:
-    "locate-path" "^5.0.0"
-    "path-exists" "^4.0.0"
-
-"find-up@^4.1.0":
+"find-up@^4.0.0", "find-up@^4.1.0":
   "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="
   "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
   "version" "4.1.0"
@@ -3459,15 +3534,15 @@
     "resolve-dir" "^1.0.1"
 
 "flat-cache@^3.0.4":
-  "integrity" "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew=="
-  "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz"
-  "version" "3.1.0"
+  "integrity" "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw=="
+  "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz"
+  "version" "3.2.0"
   dependencies:
-    "flatted" "^3.2.7"
+    "flatted" "^3.2.9"
     "keyv" "^4.5.3"
     "rimraf" "^3.0.2"
 
-"flatted@^3.2.7":
+"flatted@^3.2.9":
   "integrity" "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
   "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz"
   "version" "3.2.9"
@@ -3508,14 +3583,14 @@
     "mime-types" "^2.1.12"
 
 "fraction.js@^4.2.0":
-  "integrity" "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg=="
-  "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz"
-  "version" "4.3.6"
+  "integrity" "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="
+  "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
+  "version" "4.3.7"
 
 "fs-extra@^11.0.0":
-  "integrity" "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ=="
-  "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz"
-  "version" "11.1.1"
+  "integrity" "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw=="
+  "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz"
+  "version" "11.2.0"
   dependencies:
     "graceful-fs" "^4.2.0"
     "jsonfile" "^6.0.1"
@@ -3551,10 +3626,10 @@
   "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
   "version" "2.3.3"
 
-"function-bind@^1.1.1":
-  "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
-  "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
-  "version" "1.1.1"
+"function-bind@^1.1.1", "function-bind@^1.1.2":
+  "integrity" "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
+  "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
+  "version" "1.1.2"
 
 "function.prototype.name@^1.1.5", "function.prototype.name@^1.1.6":
   "integrity" "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg=="
@@ -3577,9 +3652,9 @@
   "version" "1.0.0-beta.2"
 
 "geotiff@^2.0.7":
-  "integrity" "sha512-FKvFTNowMU5K6lHYY2f83d4lS2rsCNdpUC28AX61x9ZzzqPNaWFElWv93xj0eJFaNyOYA63ic5OzJ88dHpoA5Q=="
-  "resolved" "https://registry.npmjs.org/geotiff/-/geotiff-2.0.7.tgz"
-  "version" "2.0.7"
+  "integrity" "sha512-B/iFJuFfRpmPHXf8aIRPRgUWwfaNb6dlsynkM8SWeHAPu7CpyvfqEa43KlBt7xxq5OTVysQacFHxhCn3SZhRKQ=="
+  "resolved" "https://registry.npmjs.org/geotiff/-/geotiff-2.1.0.tgz"
+  "version" "2.1.0"
   dependencies:
     "@petamoriken/float16" "^3.4.7"
     "lerc" "^3.0.0"
@@ -3588,21 +3663,22 @@
     "quick-lru" "^6.1.1"
     "web-worker" "^1.2.0"
     "xml-utils" "^1.0.2"
+    "zstddec" "^0.1.0"
 
 "get-caller-file@^2.0.5":
   "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
   "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
   "version" "2.0.5"
 
-"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0", "get-intrinsic@^1.2.1":
-  "integrity" "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw=="
-  "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz"
-  "version" "1.2.1"
+"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0", "get-intrinsic@^1.2.1", "get-intrinsic@^1.2.2":
+  "integrity" "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA=="
+  "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz"
+  "version" "1.2.2"
   dependencies:
-    "function-bind" "^1.1.1"
-    "has" "^1.0.3"
+    "function-bind" "^1.1.2"
     "has-proto" "^1.0.1"
     "has-symbols" "^1.0.3"
+    "hasown" "^2.0.0"
 
 "get-package-type@^0.1.0":
   "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="
@@ -3668,7 +3744,7 @@
     "split2" "^3.0.0"
     "through2" "^4.0.0"
 
-"glob-parent@^5.1.2":
+"glob-parent@^5.1.2", "glob-parent@~5.1.2":
   "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
   "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
   "version" "5.1.2"
@@ -3682,27 +3758,20 @@
   dependencies:
     "is-glob" "^4.0.3"
 
-"glob-parent@~5.1.2":
-  "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
-  "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
-  "version" "5.1.2"
-  dependencies:
-    "is-glob" "^4.0.1"
-
 "glob-to-regexp@^0.4.1":
   "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
   "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
   "version" "0.4.1"
 
-"glob@^7.1.3", "glob@^7.1.4", "glob@7.2.3":
-  "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
-  "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
-  "version" "7.2.3"
+"glob@^7.1.3", "glob@^7.1.4", "glob@7.1.7":
+  "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ=="
+  "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz"
+  "version" "7.1.7"
   dependencies:
     "fs.realpath" "^1.0.0"
     "inflight" "^1.0.4"
     "inherits" "2"
-    "minimatch" "^3.1.1"
+    "minimatch" "^3.0.4"
     "once" "^1.3.0"
     "path-is-absolute" "^1.0.0"
 
@@ -3718,15 +3787,15 @@
     "once" "^1.3.0"
     "path-is-absolute" "^1.0.0"
 
-"glob@7.1.7":
-  "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ=="
-  "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz"
-  "version" "7.1.7"
+"glob@7.2.3":
+  "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
+  "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
+  "version" "7.2.3"
   dependencies:
     "fs.realpath" "^1.0.0"
     "inflight" "^1.0.4"
     "inherits" "2"
-    "minimatch" "^3.0.4"
+    "minimatch" "^3.1.1"
     "once" "^1.3.0"
     "path-is-absolute" "^1.0.0"
 
@@ -3770,9 +3839,9 @@
   "version" "11.12.0"
 
 "globals@^13.19.0":
-  "integrity" "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw=="
-  "resolved" "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz"
-  "version" "13.22.0"
+  "integrity" "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ=="
+  "resolved" "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz"
+  "version" "13.24.0"
   dependencies:
     "type-fest" "^0.20.2"
 
@@ -3833,11 +3902,11 @@
   "version" "4.0.0"
 
 "has-property-descriptors@^1.0.0":
-  "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ=="
-  "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
-  "version" "1.0.0"
+  "integrity" "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg=="
+  "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz"
+  "version" "1.0.1"
   dependencies:
-    "get-intrinsic" "^1.1.1"
+    "get-intrinsic" "^1.2.2"
 
 "has-proto@^1.0.1":
   "integrity" "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
@@ -3856,10 +3925,12 @@
   dependencies:
     "has-symbols" "^1.0.2"
 
-"has@^1.0.3":
-  "integrity" "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ=="
-  "resolved" "https://registry.npmjs.org/has/-/has-1.0.4.tgz"
-  "version" "1.0.4"
+"hasown@^2.0.0":
+  "integrity" "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA=="
+  "resolved" "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz"
+  "version" "2.0.0"
+  dependencies:
+    "function-bind" "^1.1.2"
 
 "hoist-non-react-statics@^3.3.0", "hoist-non-react-statics@^3.3.2":
   "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="
@@ -3965,9 +4036,14 @@
   "version" "1.2.1"
 
 "ignore@^5.2.0", "ignore@^5.2.4":
-  "integrity" "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
-  "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
-  "version" "5.2.4"
+  "integrity" "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg=="
+  "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz"
+  "version" "5.3.0"
+
+"immediate@~3.0.5":
+  "integrity" "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+  "resolved" "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz"
+  "version" "3.0.6"
 
 "immer@^9.0.21":
   "integrity" "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA=="
@@ -4008,7 +4084,7 @@
     "once" "^1.3.0"
     "wrappy" "1"
 
-"inherits@^2.0.3", "inherits@^2.0.4", "inherits@2":
+"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@2":
   "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
   "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
   "version" "2.0.4"
@@ -4045,12 +4121,12 @@
     "wrap-ansi" "^7.0.0"
 
 "internal-slot@^1.0.4", "internal-slot@^1.0.5":
-  "integrity" "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ=="
-  "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz"
-  "version" "1.0.5"
+  "integrity" "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg=="
+  "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz"
+  "version" "1.0.6"
   dependencies:
-    "get-intrinsic" "^1.2.0"
-    "has" "^1.0.3"
+    "get-intrinsic" "^1.2.2"
+    "hasown" "^2.0.0"
     "side-channel" "^1.0.4"
 
 "is-arguments@^1.1.1":
@@ -4109,6 +4185,13 @@
   "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz"
   "version" "2.0.5"
 
+"is-builtin-module@^3.2.1":
+  "integrity" "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A=="
+  "resolved" "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz"
+  "version" "3.2.1"
+  dependencies:
+    "builtin-modules" "^3.3.0"
+
 "is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.7":
   "integrity" "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
   "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
@@ -4121,12 +4204,12 @@
   dependencies:
     "ci-info" "^3.2.0"
 
-"is-core-module@^2.11.0", "is-core-module@^2.12.1", "is-core-module@^2.13.0", "is-core-module@^2.5.0", "is-core-module@^2.9.0":
-  "integrity" "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ=="
-  "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz"
-  "version" "2.13.0"
+"is-core-module@^2.11.0", "is-core-module@^2.12.1", "is-core-module@^2.13.0", "is-core-module@^2.13.1", "is-core-module@^2.5.0":
+  "integrity" "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw=="
+  "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz"
+  "version" "2.13.1"
   dependencies:
-    "has" "^1.0.3"
+    "hasown" "^2.0.0"
 
 "is-date-object@^1.0.1", "is-date-object@^1.0.5":
   "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ=="
@@ -4358,6 +4441,11 @@
   "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz"
   "version" "2.0.5"
 
+"isarray@~1.0.0":
+  "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+  "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+  "version" "1.0.0"
+
 "isexe@^2.0.0":
   "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
   "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
@@ -4369,9 +4457,9 @@
   "version" "0.1.2"
 
 "istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0":
-  "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
-  "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz"
-  "version" "3.2.0"
+  "integrity" "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="
+  "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz"
+  "version" "3.2.2"
 
 "istanbul-lib-instrument@^5.0.4":
   "integrity" "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg=="
@@ -4836,9 +4924,19 @@
     "jest-cli" "^29.7.0"
 
 "jiti@^1.18.2":
-  "integrity" "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA=="
-  "resolved" "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz"
-  "version" "1.20.0"
+  "integrity" "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q=="
+  "resolved" "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz"
+  "version" "1.21.0"
+
+"jquery@^2.1.4":
+  "integrity" "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q=="
+  "resolved" "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz"
+  "version" "2.2.4"
+
+"jquery@^3.6.0":
+  "integrity" "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
+  "resolved" "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz"
+  "version" "3.7.1"
 
 "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
   "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
@@ -4981,7 +5079,7 @@
     "json-schema" "0.4.0"
     "verror" "1.10.0"
 
-"jsx-ast-utils@^2.4.1 || ^3.0.0", "jsx-ast-utils@^3.3.3":
+"jsx-ast-utils@^2.4.1 || ^3.0.0", "jsx-ast-utils@^3.3.5":
   "integrity" "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="
   "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz"
   "version" "3.3.5"
@@ -4991,10 +5089,20 @@
     "object.assign" "^4.1.4"
     "object.values" "^1.1.6"
 
+"jszip@^3.1.2":
+  "integrity" "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g=="
+  "resolved" "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz"
+  "version" "3.10.1"
+  dependencies:
+    "lie" "~3.3.0"
+    "pako" "~1.0.2"
+    "readable-stream" "~2.3.6"
+    "setimmediate" "^1.0.5"
+
 "keyv@^4.5.3":
-  "integrity" "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug=="
-  "resolved" "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz"
-  "version" "4.5.3"
+  "integrity" "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="
+  "resolved" "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz"
+  "version" "4.5.4"
   dependencies:
     "json-buffer" "3.0.1"
 
@@ -5008,17 +5116,17 @@
   "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz"
   "version" "3.0.3"
 
-"language-subtag-registry@~0.3.2":
+"language-subtag-registry@^0.3.20":
   "integrity" "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
   "resolved" "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz"
   "version" "0.3.22"
 
-"language-tags@=1.0.5":
-  "integrity" "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ=="
-  "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz"
-  "version" "1.0.5"
+"language-tags@^1.0.9":
+  "integrity" "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA=="
+  "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz"
+  "version" "1.0.9"
   dependencies:
-    "language-subtag-registry" "~0.3.2"
+    "language-subtag-registry" "^0.3.20"
 
 "lazy-ass@^1.6.0":
   "integrity" "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw=="
@@ -5043,11 +5151,23 @@
     "prelude-ls" "^1.2.1"
     "type-check" "~0.4.0"
 
-"lilconfig@^2.0.5", "lilconfig@^2.1.0", "lilconfig@2.1.0":
+"lie@~3.3.0":
+  "integrity" "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="
+  "resolved" "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz"
+  "version" "3.3.0"
+  dependencies:
+    "immediate" "~3.0.5"
+
+"lilconfig@^2.1.0", "lilconfig@2.1.0":
   "integrity" "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="
   "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz"
   "version" "2.1.0"
 
+"lilconfig@^3.0.0":
+  "integrity" "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g=="
+  "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz"
+  "version" "3.0.0"
+
 "lines-and-columns@^1.1.6":
   "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
   "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
@@ -5095,6 +5215,13 @@
     "rfdc" "^1.3.0"
     "wrap-ansi" "^8.1.0"
 
+"litemol@github:dsehnal/LiteMol":
+  "resolved" "git+ssh://git@github.com/dsehnal/LiteMol.git#2ce0190a9b369841c1c3ee7322c2f5dda3e7800e"
+  "version" "2.4.2"
+  dependencies:
+    "@types/react" "^15.6.16"
+    "@types/react-dom" "^15.5.6"
+
 "locate-path@^5.0.0":
   "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="
   "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
@@ -5216,9 +5343,9 @@
     "js-tokens" "^3.0.0 || ^4.0.0"
 
 "lru-cache@^10.0.1":
-  "integrity" "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g=="
-  "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz"
-  "version" "10.0.1"
+  "integrity" "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag=="
+  "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz"
+  "version" "10.1.0"
 
 "lru-cache@^5.1.1":
   "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="
@@ -5366,6 +5493,23 @@
   "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
   "version" "1.0.4"
 
+"molart@github:davidhoksza/MolArt":
+  "resolved" "git+ssh://git@github.com/davidhoksza/MolArt.git#7fa1d23558af0938bd74621ff2ee125f9a4c8d05"
+  "version" "1.16.0"
+  dependencies:
+    "@types/downloadjs" "^1.4.2"
+    "color-blend" "1.0.0"
+    "downloadjs" "^1.4.7"
+    "events" "^1.1.1"
+    "jquery" "^3.6.0"
+    "litemol" "github:dsehnal/LiteMol"
+    "lodash" "^4.17.21"
+    "ProtVista" "git+https://github.com/davidhoksza/protvista.git#scaling"
+    "semantic-ui-button" "2.2.12"
+    "semantic-ui-dropdown" "2.2.12"
+    "semantic-ui-label" "2.2.12"
+    "semantic-ui-transition" "2.2.12"
+
 "moo-color@^1.0.2":
   "integrity" "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ=="
   "resolved" "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz"
@@ -5393,9 +5537,9 @@
     "thenify-all" "^1.0.0"
 
 "nanoid@^3.3.4", "nanoid@^3.3.6":
-  "integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
-  "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
-  "version" "3.3.6"
+  "integrity" "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
+  "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
+  "version" "3.3.7"
 
 "natural-compare@^1.4.0":
   "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
@@ -5436,10 +5580,10 @@
   "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
   "version" "0.4.0"
 
-"node-releases@^2.0.13":
-  "integrity" "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ=="
-  "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz"
-  "version" "2.0.13"
+"node-releases@^2.0.14":
+  "integrity" "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+  "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz"
+  "version" "2.0.14"
 
 "normalize-package-data@^2.5.0":
   "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="
@@ -5500,10 +5644,10 @@
   "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
   "version" "3.0.0"
 
-"object-inspect@^1.12.3", "object-inspect@^1.9.0":
-  "integrity" "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
-  "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
-  "version" "1.12.3"
+"object-inspect@^1.13.1", "object-inspect@^1.9.0":
+  "integrity" "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
+  "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz"
+  "version" "1.13.1"
 
 "object-is@^1.1.5":
   "integrity" "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw=="
@@ -5519,16 +5663,16 @@
   "version" "1.1.1"
 
 "object.assign@^4.1.2", "object.assign@^4.1.4":
-  "integrity" "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ=="
-  "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz"
-  "version" "4.1.4"
+  "integrity" "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ=="
+  "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz"
+  "version" "4.1.5"
   dependencies:
-    "call-bind" "^1.0.2"
-    "define-properties" "^1.1.4"
+    "call-bind" "^1.0.5"
+    "define-properties" "^1.2.1"
     "has-symbols" "^1.0.3"
     "object-keys" "^1.1.1"
 
-"object.entries@^1.1.5", "object.entries@^1.1.6":
+"object.entries@^1.1.5", "object.entries@^1.1.6", "object.entries@^1.1.7":
   "integrity" "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA=="
   "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz"
   "version" "1.1.7"
@@ -5537,7 +5681,7 @@
     "define-properties" "^1.2.0"
     "es-abstract" "^1.22.1"
 
-"object.fromentries@^2.0.6":
+"object.fromentries@^2.0.6", "object.fromentries@^2.0.7":
   "integrity" "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA=="
   "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz"
   "version" "2.0.7"
@@ -5546,7 +5690,7 @@
     "define-properties" "^1.2.0"
     "es-abstract" "^1.22.1"
 
-"object.groupby@^1.0.0":
+"object.groupby@^1.0.1":
   "integrity" "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ=="
   "resolved" "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz"
   "version" "1.0.1"
@@ -5564,7 +5708,7 @@
     "define-properties" "^1.2.0"
     "es-abstract" "^1.22.1"
 
-"object.values@^1.1.6":
+"object.values@^1.1.6", "object.values@^1.1.7":
   "integrity" "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng=="
   "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz"
   "version" "1.1.7"
@@ -5573,18 +5717,13 @@
     "define-properties" "^1.2.0"
     "es-abstract" "^1.22.1"
 
-"ol-contextmenu@^5.3.0":
-  "integrity" "sha512-AO9rGKaQpLAzqpEva7mukhkWrGkL/o1s8tXPsYuYBGMoiTBbXffgTikXjTmq1m7l3gDwXWWWi6R2ROda5lgXNw=="
-  "resolved" "https://registry.npmjs.org/ol-contextmenu/-/ol-contextmenu-5.3.0.tgz"
-  "version" "5.3.0"
-  dependencies:
-    "tiny-emitter" "^2.1.0"
-
-"ol@^8.1.0", "ol@> 7.x <= 8.x":
-  "integrity" "sha512-cx3SH2plpFS9fM8pp1nCypgQXGJD7Mcb1E3mEySmy5XEw1DUEo+kkNzgtAZz5qupekqi7aU9iBJEjCoMfqvO2Q=="
-  "resolved" "https://registry.npmjs.org/ol/-/ol-8.1.0.tgz"
-  "version" "8.1.0"
+"ol@^8.1.0":
+  "integrity" "sha512-/m1ddd7Jsp4Kbg+l7+ozR5aKHAZNQOBAoNZ5pM9Jvh4Etkf0WGkXr9qXd7PnhmwiC1Hnc2Toz9XjCzBBvexfXw=="
+  "resolved" "https://registry.npmjs.org/ol/-/ol-8.2.0.tgz"
+  "version" "8.2.0"
   dependencies:
+    "color-rgba" "^3.0.0"
+    "color-space" "^2.0.1"
     "earcut" "^2.2.3"
     "geotiff" "^2.0.7"
     "pbf" "3.2.1"
@@ -5665,7 +5804,14 @@
   dependencies:
     "p-try" "^2.0.0"
 
-"p-limit@^3.0.2", "p-limit@^3.1.0":
+"p-limit@^3.0.2":
+  "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="
+  "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+  "version" "3.1.0"
+  dependencies:
+    "yocto-queue" "^0.1.0"
+
+"p-limit@^3.1.0":
   "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="
   "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
   "version" "3.1.0"
@@ -5703,6 +5849,11 @@
   "resolved" "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz"
   "version" "2.1.0"
 
+"pako@~1.0.2":
+  "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+  "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz"
+  "version" "1.0.11"
+
 "parent-module@^1.0.0":
   "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
   "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
@@ -5834,12 +5985,12 @@
     "camelcase-css" "^2.0.1"
 
 "postcss-load-config@^4.0.1":
-  "integrity" "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA=="
-  "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz"
-  "version" "4.0.1"
+  "integrity" "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="
+  "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz"
+  "version" "4.0.2"
   dependencies:
-    "lilconfig" "^2.0.5"
-    "yaml" "^2.1.1"
+    "lilconfig" "^3.0.0"
+    "yaml" "^2.3.4"
 
 "postcss-nested@^6.0.1":
   "integrity" "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ=="
@@ -5897,14 +6048,14 @@
     "fast-diff" "^1.1.2"
 
 "prettier-plugin-tailwindcss@^0.5.6":
-  "integrity" "sha512-2Xgb+GQlkPAUCFi3sV+NOYcSI5XgduvDBL2Zt/hwJudeKXkyvRS65c38SB0yb9UB40+1rL83I6m0RtlOQ8eHdg=="
-  "resolved" "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.6.tgz"
-  "version" "0.5.6"
+  "integrity" "sha512-9x3t1s2Cjbut2QiP+O0mDqV3gLXTe2CgRlQDgucopVkUdw26sQi53p/q4qvGxMLBDfk/dcTV57Aa/zYwz9l8Ew=="
+  "resolved" "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.9.tgz"
+  "version" "0.5.9"
 
 "prettier@^3.0", "prettier@^3.0.3", "prettier@>=3.0.0":
-  "integrity" "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg=="
-  "resolved" "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz"
-  "version" "3.0.3"
+  "integrity" "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw=="
+  "resolved" "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz"
+  "version" "3.1.1"
 
 "pretty-bytes@^5.6.0":
   "integrity" "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="
@@ -5938,6 +6089,11 @@
     "ansi-styles" "^5.0.0"
     "react-is" "^18.0.0"
 
+"process-nextick-args@~2.0.0":
+  "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+  "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+  "version" "2.0.1"
+
 "process@^0.11.10":
   "integrity" "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
   "resolved" "https://registry.npmjs.org/process/-/process-0.11.10.tgz"
@@ -5965,6 +6121,16 @@
   "resolved" "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz"
   "version" "3.6.0"
 
+"ProtVista@git+https://github.com/davidhoksza/protvista.git#scaling":
+  "resolved" "git+ssh://git@github.com/davidhoksza/protvista.git#d5e8390c7a58a902d1d815524acf7e118729360a"
+  "version" "2.0.6"
+  dependencies:
+    "d3" "^3.4.13"
+    "file-saver" "^1.3.2"
+    "jquery" "^2.1.4"
+    "jszip" "^3.1.2"
+    "underscore" "^1.7.0"
+
 "proxy-from-env@^1.1.0":
   "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
   "resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
@@ -5989,9 +6155,9 @@
     "once" "^1.3.1"
 
 "punycode@^2.1.0", "punycode@^2.1.1":
-  "integrity" "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
-  "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
-  "version" "2.3.0"
+  "integrity" "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
+  "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
+  "version" "2.3.1"
 
 "pure-rand@^6.0.0":
   "integrity" "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA=="
@@ -6068,7 +6234,12 @@
     "loose-envify" "^1.1.0"
     "scheduler" "^0.23.0"
 
-"react-is@^16.13.1", "react-is@^16.7.0":
+"react-is@^16.13.1":
+  "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+  "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+  "version" "16.13.1"
+
+"react-is@^16.7.0":
   "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
   "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
   "version" "16.13.1"
@@ -6078,12 +6249,7 @@
   "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
   "version" "17.0.2"
 
-"react-is@^18.0.0":
-  "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
-  "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
-  "version" "18.2.0"
-
-"react-is@^18.2.0":
+"react-is@^18.0.0", "react-is@^18.2.0":
   "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
   "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
   "version" "18.2.0"
@@ -6142,6 +6308,19 @@
     "string_decoder" "^1.1.1"
     "util-deprecate" "^1.0.1"
 
+"readable-stream@~2.3.6":
+  "integrity" "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="
+  "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"
+  "version" "2.3.8"
+  dependencies:
+    "core-util-is" "~1.0.0"
+    "inherits" "~2.0.3"
+    "isarray" "~1.0.0"
+    "process-nextick-args" "~2.0.0"
+    "safe-buffer" "~5.1.1"
+    "string_decoder" "~1.1.1"
+    "util-deprecate" "~1.0.1"
+
 "readdirp@~3.6.0":
   "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
   "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
@@ -6189,9 +6368,9 @@
     "which-builtin-type" "^1.1.3"
 
 "regenerator-runtime@^0.14.0":
-  "integrity" "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
-  "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz"
-  "version" "0.14.0"
+  "integrity" "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+  "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz"
+  "version" "0.14.1"
 
 "regexp.prototype.flags@^1.5.0", "regexp.prototype.flags@^1.5.1":
   "integrity" "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg=="
@@ -6279,20 +6458,20 @@
   "version" "2.0.2"
 
 "resolve@^1.1.7", "resolve@^1.10.0", "resolve@^1.20.0", "resolve@^1.22.2", "resolve@^1.22.4":
-  "integrity" "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw=="
-  "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz"
-  "version" "1.22.6"
+  "integrity" "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw=="
+  "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz"
+  "version" "1.22.8"
   dependencies:
     "is-core-module" "^2.13.0"
     "path-parse" "^1.0.7"
     "supports-preserve-symlinks-flag" "^1.0.0"
 
 "resolve@^2.0.0-next.4":
-  "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ=="
-  "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz"
-  "version" "2.0.0-next.4"
+  "integrity" "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="
+  "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz"
+  "version" "2.0.0-next.5"
   dependencies:
-    "is-core-module" "^2.9.0"
+    "is-core-module" "^2.13.0"
     "path-parse" "^1.0.7"
     "supports-preserve-symlinks-flag" "^1.0.0"
 
@@ -6375,6 +6554,11 @@
   "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
   "version" "5.2.1"
 
+"safe-buffer@~5.1.0", "safe-buffer@~5.1.1":
+  "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+  "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+  "version" "5.1.2"
+
 "safe-regex-test@^1.0.0":
   "integrity" "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA=="
   "resolved" "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz"
@@ -6403,6 +6587,26 @@
   dependencies:
     "loose-envify" "^1.1.0"
 
+"semantic-ui-button@2.2.12":
+  "integrity" "sha512-z5E23bbb2txw60/Dgekf/1qDyFvU1JahiG05/XqOLaLCutXoep3cMtcFRoeyID6b2EwPQ84IHFXVskL3LNXQuQ=="
+  "resolved" "https://registry.npmjs.org/semantic-ui-button/-/semantic-ui-button-2.2.12.tgz"
+  "version" "2.2.12"
+
+"semantic-ui-dropdown@2.2.12":
+  "integrity" "sha512-ODFIjI7HnTEQBXg0OGt3rnw10e+ixJE7DicGXM3r3SfDqZ1ZZ6WJhPEGYMAXceKWZqgxPTRKxLoV+q8XyHYCUA=="
+  "resolved" "https://registry.npmjs.org/semantic-ui-dropdown/-/semantic-ui-dropdown-2.2.12.tgz"
+  "version" "2.2.12"
+
+"semantic-ui-label@2.2.12":
+  "integrity" "sha512-fVfFZdzKDjP889mA8/p+cH1xsFSjSN96vb2bv9n8jK5Kt4lmYZCD2eyvXui8Vr4cexY15/CgIHL79aXm4t2o7g=="
+  "resolved" "https://registry.npmjs.org/semantic-ui-label/-/semantic-ui-label-2.2.12.tgz"
+  "version" "2.2.12"
+
+"semantic-ui-transition@2.2.12":
+  "integrity" "sha512-42M5sXYvYMu/4z14ixbj9T3Be+r559WPwhty56kmuUucItEmYdD0XEHdpvyzKjJFR4x4Z3MNLaiCqoBEqQbvOQ=="
+  "resolved" "https://registry.npmjs.org/semantic-ui-transition/-/semantic-ui-transition-2.2.12.tgz"
+  "version" "2.2.12"
+
 "semver@^6.3.0":
   "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
   "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
@@ -6425,6 +6629,16 @@
   "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz"
   "version" "5.7.2"
 
+"set-function-length@^1.1.1":
+  "integrity" "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ=="
+  "resolved" "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz"
+  "version" "1.1.1"
+  dependencies:
+    "define-data-property" "^1.1.1"
+    "get-intrinsic" "^1.2.1"
+    "gopd" "^1.0.1"
+    "has-property-descriptors" "^1.0.0"
+
 "set-function-name@^2.0.0", "set-function-name@^2.0.1":
   "integrity" "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA=="
   "resolved" "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz"
@@ -6434,6 +6648,11 @@
     "functions-have-names" "^1.2.3"
     "has-property-descriptors" "^1.0.0"
 
+"setimmediate@^1.0.5":
+  "integrity" "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+  "resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
+  "version" "1.0.5"
+
 "shebang-command@^2.0.0":
   "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
   "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
@@ -6541,9 +6760,9 @@
     "spdx-license-ids" "^3.0.0"
 
 "spdx-license-ids@^3.0.0":
-  "integrity" "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ=="
-  "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz"
-  "version" "3.0.15"
+  "integrity" "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw=="
+  "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz"
+  "version" "3.0.16"
 
 "split-on-first@^1.0.0":
   "integrity" "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
@@ -6563,9 +6782,9 @@
   "version" "1.0.3"
 
 "sshpk@^1.14.1":
-  "integrity" "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ=="
-  "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz"
-  "version" "1.17.0"
+  "integrity" "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="
+  "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz"
+  "version" "1.18.0"
   dependencies:
     "asn1" "~0.2.3"
     "assert-plus" "^1.0.0"
@@ -6608,6 +6827,13 @@
   dependencies:
     "safe-buffer" "~5.2.0"
 
+"string_decoder@~1.1.1":
+  "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="
+  "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+  "version" "1.1.1"
+  dependencies:
+    "safe-buffer" "~5.1.0"
+
 "string-argv@0.3.2":
   "integrity" "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q=="
   "resolved" "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz"
@@ -6708,7 +6934,12 @@
   "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
   "version" "3.0.0"
 
-"strip-bom@^4.0.0", "strip-bom@4.0.0":
+"strip-bom@^4.0.0":
+  "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
+  "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz"
+  "version" "4.0.0"
+
+"strip-bom@4.0.0":
   "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
   "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz"
   "version" "4.0.0"
@@ -6794,12 +7025,12 @@
   "version" "3.2.4"
 
 "synckit@^0.8.5":
-  "integrity" "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q=="
-  "resolved" "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz"
-  "version" "0.8.5"
+  "integrity" "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA=="
+  "resolved" "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz"
+  "version" "0.8.6"
   dependencies:
-    "@pkgr/utils" "^2.3.1"
-    "tslib" "^2.5.0"
+    "@pkgr/utils" "^2.4.2"
+    "tslib" "^2.6.2"
 
 "tailwind-merge@^1.14.0":
   "integrity" "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ=="
@@ -6873,9 +7104,9 @@
     "any-promise" "^1.0.0"
 
 "throttleit@^1.0.0":
-  "integrity" "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g=="
-  "resolved" "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz"
-  "version" "1.0.0"
+  "integrity" "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ=="
+  "resolved" "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz"
+  "version" "1.0.1"
 
 "through@^2.3.6", "through@^2.3.8", "through@>=2.2.7 <3":
   "integrity" "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
@@ -6889,11 +7120,6 @@
   dependencies:
     "readable-stream" "3"
 
-"tiny-emitter@^2.1.0":
-  "integrity" "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
-  "resolved" "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz"
-  "version" "2.1.0"
-
 "titleize@^3.0.0":
   "integrity" "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ=="
   "resolved" "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz"
@@ -6968,9 +7194,9 @@
   "version" "0.1.13"
 
 "ts-node@^10.8.1", "ts-node@>=10", "ts-node@>=9.0.0":
-  "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw=="
-  "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz"
-  "version" "10.9.1"
+  "integrity" "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="
+  "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz"
+  "version" "10.9.2"
   dependencies:
     "@cspotcode/source-map-support" "^0.8.0"
     "@tsconfig/node10" "^1.0.7"
@@ -6986,10 +7212,10 @@
     "v8-compile-cache-lib" "^3.0.1"
     "yn" "3.1.1"
 
-"tsconfig-paths@^3.14.2":
-  "integrity" "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g=="
-  "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz"
-  "version" "3.14.2"
+"tsconfig-paths@^3.15.0":
+  "integrity" "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="
+  "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz"
+  "version" "3.15.0"
   dependencies:
     "@types/json5" "^0.0.29"
     "json5" "^1.0.2"
@@ -7001,7 +7227,7 @@
   "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
   "version" "1.14.1"
 
-"tslib@^2.1.0", "tslib@^2.4.0", "tslib@^2.5.0", "tslib@^2.6.0", "tslib@^2.6.2":
+"tslib@^2.1.0", "tslib@^2.4.0", "tslib@^2.6.0", "tslib@^2.6.2":
   "integrity" "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
   "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
   "version" "2.6.2"
@@ -7111,10 +7337,10 @@
     "for-each" "^0.3.3"
     "is-typed-array" "^1.1.9"
 
-"typescript@*", "typescript@^4.6.4 || ^5.0.0", "typescript@^5.2.2", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=3.3.1", "typescript@>=4", "typescript@>=4.2.0", "typescript@>=4.9.5":
-  "integrity" "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w=="
-  "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz"
-  "version" "5.2.2"
+"typescript@*", "typescript@^4.6.4 || ^5.2.2", "typescript@^5.2.2", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=3.3.1", "typescript@>=4", "typescript@>=4.2.0", "typescript@>=4.9.5":
+  "integrity" "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw=="
+  "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz"
+  "version" "5.3.3"
 
 "unbox-primitive@^1.0.2":
   "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
@@ -7126,15 +7352,25 @@
     "has-symbols" "^1.0.3"
     "which-boxed-primitive" "^1.0.2"
 
+"underscore@^1.7.0":
+  "integrity" "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
+  "resolved" "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz"
+  "version" "1.13.6"
+
+"undici-types@~5.26.4":
+  "integrity" "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+  "resolved" "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz"
+  "version" "5.26.5"
+
 "universalify@^0.2.0":
   "integrity" "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
   "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz"
   "version" "0.2.0"
 
 "universalify@^2.0.0":
-  "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
-  "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
-  "version" "2.0.0"
+  "integrity" "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="
+  "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz"
+  "version" "2.0.1"
 
 "untildify@^4.0.0":
   "integrity" "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="
@@ -7174,7 +7410,7 @@
   "resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz"
   "version" "1.2.0"
 
-"util-deprecate@^1.0.1", "util-deprecate@^1.0.2":
+"util-deprecate@^1.0.1", "util-deprecate@^1.0.2", "util-deprecate@~1.0.1":
   "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
   "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
   "version" "1.0.2"
@@ -7190,9 +7426,9 @@
   "version" "3.0.1"
 
 "v8-to-istanbul@^9.0.1":
-  "integrity" "sha512-ZGBe7VAivuuoQXTeckpbYKTdtjXGcm3ZUHXC0PAk0CzFyuYvwi73a58iEKI3GkGD1c3EHc+EgfR1w5pgbfzJlQ=="
-  "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.2.tgz"
-  "version" "9.1.2"
+  "integrity" "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA=="
+  "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz"
+  "version" "9.2.0"
   dependencies:
     "@jridgewell/trace-mapping" "^0.3.12"
     "@types/istanbul-lib-coverage" "^2.0.1"
@@ -7313,13 +7549,13 @@
     "is-weakmap" "^2.0.1"
     "is-weakset" "^2.0.1"
 
-"which-typed-array@^1.1.11", "which-typed-array@^1.1.9":
-  "integrity" "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew=="
-  "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz"
-  "version" "1.1.11"
+"which-typed-array@^1.1.11", "which-typed-array@^1.1.13", "which-typed-array@^1.1.9":
+  "integrity" "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow=="
+  "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz"
+  "version" "1.1.13"
   dependencies:
     "available-typed-arrays" "^1.0.5"
-    "call-bind" "^1.0.2"
+    "call-bind" "^1.0.4"
     "for-each" "^0.3.3"
     "gopd" "^1.0.1"
     "has-tostringtag" "^1.0.0"
@@ -7384,9 +7620,9 @@
     "signal-exit" "^3.0.7"
 
 "ws@^8.11.0":
-  "integrity" "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g=="
-  "resolved" "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz"
-  "version" "8.14.2"
+  "integrity" "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ=="
+  "resolved" "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz"
+  "version" "8.15.1"
 
 "xml-name-validator@^4.0.0":
   "integrity" "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="
@@ -7423,7 +7659,12 @@
   "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
   "version" "4.0.0"
 
-"yaml@^2.1.1", "yaml@2.3.1":
+"yaml@^2.3.4":
+  "integrity" "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA=="
+  "resolved" "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz"
+  "version" "2.3.4"
+
+"yaml@2.3.1":
   "integrity" "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ=="
   "resolved" "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz"
   "version" "2.3.1"
@@ -7470,18 +7711,23 @@
   "version" "0.1.0"
 
 "zod-fixture@^2.5.0":
-  "integrity" "sha512-lMQcUI5RC9zdkU26RUaOTDsUo1xWHEHtkVrERn6Cs/sRe+s/0qzltHQlRZMwYuvGh5SGPRI3Xy4eOToVJCj9sQ=="
-  "resolved" "https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.5.0.tgz"
-  "version" "2.5.0"
+  "integrity" "sha512-qjLe9TbZL22+MVMovGc6pB7O/7iXwquS4hXX3YImYzZ1p8FN3XEpYzjfR86dDQwBs/mf/jyYjwibPXktzXEljA=="
+  "resolved" "https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.5.1.tgz"
+  "version" "2.5.1"
   dependencies:
     "randexp" "^0.5.3"
 
 "zod@^3.22.2", "zod@>=3.0.0":
-  "integrity" "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug=="
-  "resolved" "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz"
-  "version" "3.22.3"
+  "integrity" "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg=="
+  "resolved" "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz"
+  "version" "3.22.4"
 
 "zod@3.21.4":
   "integrity" "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw=="
   "resolved" "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz"
   "version" "3.21.4"
+
+"zstddec@^0.1.0":
+  "integrity" "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg=="
+  "resolved" "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz"
+  "version" "0.1.0"
-- 
GitLab